Powershell Pausiert mittendrin, will es aber zum Schluss
Hallo zusammen
ich habe ein kleines Problem, wenn ich folgendem Powershell Code auf der Console laufen lasse, wird die Pause noch vor der zweiten if schleife ausgelöst.
Ich möchte natürlich dass es nach der Ausgabe Pausiert. Sehe aber den Fehler nicht.
Danke im voraus für eure Mühe und lieber Gruss
Cristu
ich habe ein kleines Problem, wenn ich folgendem Powershell Code auf der Console laufen lasse, wird die Pause noch vor der zweiten if schleife ausgelöst.
set-location '\\Muster.Corp.Mann.com\fredirect\DE\Muster\Maxmustermann\Desktop'
write-host "Willkommen zur Berechtigungsauswertung von Cristu!`n"
$User=read-host -prompt "Gewünschter AD-Username eingeben"
If (dsquery user -samid $user) { "Alles Klar!" }
else {"`nDer User wurde nicht gefunden, versuche es erneut.." }
$x=read-host -prompt "möchtest du es auf eine Excel? [J oder N]"
if ($x -eq 'J') {Get-ADPrincipalGroupMembership $User -server Muster.Corp.Mann.com| select name | sort-object -property name | Export-Csv -Path .\$($User)_AD.csv }
elseif ($x -eq 'N') { get-ADPrincipalgroupmembership $User Muster.Corp.Mann.com| select name | sort-object -property name}
else { "Test" }
Pause
Ich möchte natürlich dass es nach der Ausgabe Pausiert. Sehe aber den Fehler nicht.
Danke im voraus für eure Mühe und lieber Gruss
Cristu
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 511836
Url: https://administrator.de/forum/powershell-pausiert-mittendrin-will-es-aber-zum-schluss-511836.html
Ausgedruckt am: 27.12.2024 um 05:12 Uhr
3 Kommentare
Neuester Kommentar
Hi,
Ich würde den Teil...
... in dieser If unterbringen:
.. Und anschließend vielleicht nach diesem Beispiel anschließen:
Powershell: auf Bestätigung warten
Oder mit Start-Sleep <n millisekunden>
Ich würde den Teil...
if ($x -eq 'J') {Get-ADPrincipalGroupMembership $User -server Muster.Corp.Mann.com| select name | sort-object -property name | Export-Csv -Path .\$($User)_AD.csv }
elseif ($x -eq 'N') { get-ADPrincipalgroupmembership $User Muster.Corp.Mann.com| select name | sort-object -property name}
else { "Test" }
elseif ($x -eq 'N') { get-ADPrincipalgroupmembership $User Muster.Corp.Mann.com| select name | sort-object -property name}
else { "Test" }
... in dieser If unterbringen:
If (dsquery user -samid $user) { "Alles Klar!" }
else {"`nDer User wurde nicht gefunden, versuche es erneut.." }
else {"`nDer User wurde nicht gefunden, versuche es erneut.." }
.. Und anschließend vielleicht nach diesem Beispiel anschließen:
Powershell: auf Bestätigung warten
Oder mit Start-Sleep <n millisekunden>
Der Fehler ist, daß Du es nicht explizit auf der Konsole ausgibst.
Die implizite Ausgabe, also einfach mit einem Rückgabe-Wert nichts machen, sorgt zwar letztendlich auch für eine Bildschirmausgabe, wird aber wohl intern anders behandelt.
Einfach mit Out-Host der PowerShell sagen, das es ausgegeben werden soll (dann sieht auch jeder, der den Code liest, das eine Bildschirmausgabe erwünscht war und nicht eventuell was vergessen wurde):
Dann wird es auch vor der Pause Mitteilung ausgegeben.
Die implizite Ausgabe, also einfach mit einem Rückgabe-Wert nichts machen, sorgt zwar letztendlich auch für eine Bildschirmausgabe, wird aber wohl intern anders behandelt.
Einfach mit Out-Host der PowerShell sagen, das es ausgegeben werden soll (dann sieht auch jeder, der den Code liest, das eine Bildschirmausgabe erwünscht war und nicht eventuell was vergessen wurde):
elseif ($x -eq 'N') { get-ADPrincipalgroupmembership $User Muster.Corp.Mann.com| select name | sort-object -property Name | Out-Host}