Starten Sie den aktuell ausgeführten script?

Alrighty werden, also habe ich so viel runter.

# Prompts the script user to confirm that the account from
# $userName is indeed the one they want to Terminate
function Get-Confirmation {
    [CmdletBinding(SupportsShouldProcess=$true)]
    param (
        [Parameter(Mandatory=$true)]
        [String]
        $userName
    )

    $confirmMessage = 'Are you sure that {0} is the user that you want to terminate?' -f $userName

    $PSCmdlet.ShouldContinue($confirmMessage, 'Terminate User?')
}

# Code that populates $userName and starts the Termination process
if (Get-Confirmation -User $userName) {
    # If  confirmation == True: start Termination

    # Copy user's security groups to $groups.txt in their user folder
    Out-File $logFilePath -InputObject $userNameGroups.memberOf -Encoding utf8

    # TODO: Remove $userName's security groups from AD Object
    # Remove-ADGroupMember -Identity $_ -Members $userNameGroups -Confirm:$false

    Copy-Item -Path "\\path\to\active\user\folder" ` 
        -Destination "\\path\to\terminated\user\folder"
} else {
    # Don't Terminate
    # TODO: Restart script to select another user
}

Also meine Frage ist: wie kann ich erfüllen Sie die Aufgaben in der else Aussage? Ich habe online recherchiert, aber die einzige Sache, die gekommen ist, den computer neu zu starten. Ich will einfach nur das Skript erneut ausgeführt werden. Ist es so einfach wie ./scriptName?

  • Warum würden Sie brauchen, um das Skript neu starten? Warum nicht einfach haben, die wenn-dann in einer while-Schleife?
  • Wenn der Benutzer die Eingabe war falsch, es würde neu starten, eine Eingabeaufforderung zur Eingabe eines anderen Benutzernamens. Ich bin über dieses denken der falsche Weg ist?
  • Ja. Weisen Sie den Rückgabewert der Funktion einer Variablen, so können Sie das Ergebnis in mehr als einem Ort.
  • Es macht alles Sinn jetzt, danke!
InformationsquelleAutor MFonner | 2015-09-15
Schreibe einen Kommentar