skahle85
Goto Top

Powershell "Warnings to Outputbox" (GUI)

Moin Liebe Leutz,

ich hänge mal wieder beim Try and Catch. Aber diesmal versuche ich Warnings in meine Outputbox zu übergeben. Habt ihr noch eine Idee für mich?

Es geht speziell um die Funktion Reset Password. Dort bekomme ich ja logischerweise folgende Warnung:

<script>"WARNUNG: Ein Skript oder eine Anwendung auf dem Remotecomputer "DC" fordert das sichere Lesen einer Zeile an. Geben Sie vertrauliche Informationen wie Anmel
deinformationen nur ein, wenn Sie dem Remotecomputer und der anfordernden Anwendung bzw. dem anfordernden Skript vertrauen.
Kennwort wiederholen: WARNUNG: Ein Skript oder eine Anwendung auf dem Remotecomputer "DC" fordert das sichere Lesen einer Zeile an. Geben Sie vertrauliche Informationen wie Anmeldeinformationen nur ein, wenn Sie dem Remotecomputer und der anfordernden Anwendung bzw. dem anfordernden Skript vertrauen."</script>

EDIT: Für die Dropdownliste "WKS" habe ich direkt meinen DC angegeben. Das müsstet Ihr natürlich bei euch noch einstellen!

Und hier mal die Gui.

http://www.mediafire.com/view/ccdk4rhy9vgvup4/PS_GUI_AD.ps1

Thanks a lot

Sebastian

Content-ID: 252621

Url: https://administrator.de/contentid/252621

Ausgedruckt am: 25.11.2024 um 03:11 Uhr

colinardo
Lösung colinardo 21.10.2014 aktualisiert um 11:42:07 Uhr
Goto Top
Hallo Sebastian,
mach statt einem Try Catch außerhalb des Invoke-Commands, einen innerhalb des Scriptblocks des Invoke-Commands, und gebe dort mit return die Informationen an die Variable zurück. Oder nutze -WarningVariable und gebe die Info ebenfalls mit return zurück.

Also etwas so
$UserResult=Invoke-Command -ComputerName $wks -argumentlist $User,$newpwd -ScriptBlock {
    Try{
        Set-ADAccountPassword $args -NewPassword $args[1]  -Reset -PassThru -ErrorAction Stop -WarningVariable warning | Set-ADuser -ChangePasswordAtLogon $True -ErrorAction Stop -WarningVariable warning
    }catch{
        return $_.Exception.Message
    }
    return $warning
}
Grüße Uwe

p.s. wo soll die Variable $newPwd herkommen ?? Die müsstest du ebenfalls per Argument übergeben.
skahle85
skahle85 21.10.2014 um 11:21:28 Uhr
Goto Top
Also etwas so
> $UserResult=Invoke-Command -ComputerName $wks -argumentlist $User,$newpwd -ScriptBlock {
>     Try{
>         Set-ADAccountPassword $args -NewPassword $args[1]  -Reset -PassThru -ErrorAction Stop -WarningVariable warning |
> Set-ADuser -ChangePasswordAtLogon $True -ErrorAction Stop -WarningVariable warning
>     }catch{
>         return $_.Exception.Message
>     }
>     return $warning
> }
> 
Grüße Uwe
Das sieht erstmal richtig gut aus. Hatte bisher leider noch nicht das Vergnügen mit WarningVariable zu arbeiten :/.

p.s. wo soll die Variable $newPwd herkommen ?? Die müsstest du ebenfalls per Argument übergeben.
ist doch args[1] und öffnet ensprechend ein Eingabefeld bzw 2 hintereinander....
colinardo
colinardo 21.10.2014 aktualisiert um 11:25:03 Uhr
Goto Top
Zitat von @skahle85:
ist doch args[1] und öffnet ensprechend ein Eingabefeld bzw 2 hintereinander....
das hatte ich aber hier nachgetragen , in deinem Script war das noch nicht als Argument übergeben face-wink
wusste nicht das du das manuell eingeben willst.
skahle85
skahle85 21.10.2014 um 11:30:01 Uhr
Goto Top
HiHi :D

gerade gesehen...
Eigentlich braucht man es auch nicht als Argument übergeben. Aber generell natürlich richtig.

Die innerhalb des Invoke Commands Variante das Warning in die Outputbox zu "schieben", läuft das bei dir???
colinardo
colinardo 21.10.2014 aktualisiert um 11:33:55 Uhr
Goto Top
Zitat von @skahle85:
Die innerhalb des Invoke Commands Variante das Warning in die Outputbox zu "schieben", läuft das bei dir???
Habe es hier ohne die GUI auf der Konsole getestet, es gibt mir die gewünschten Infos an die Variable zurück, also sollte es laufen ... ich muss mir ja jetzt nicht dein ganzes Script reinziehen, da hab ich grad zu wenig Zeit face-wink
skahle85
skahle85 21.10.2014 um 11:34:22 Uhr
Goto Top
Leider Noch nicht.
Error "Das Kennwort entspricht nicht den Domänenanforderungen bezüglich Länge, Komplexität und Verlauf." wie wenn ich beim Kennwort nur ddd nehme kommt in der Outputbox an, Warning leider nicht...
colinardo
Lösung colinardo 21.10.2014 aktualisiert um 11:41:31 Uhr
Goto Top
Zitat von @skahle85:

Leider Noch nicht.
Error "Das Kennwort entspricht nicht den Domänenanforderungen bezüglich Länge, Komplexität und
Verlauf." wie wenn ich beim Kennwort nur ddd nehme kommt in der Outputbox an, Warning leider nicht...

Mach die Abfrage der Daten vor Invoke-Comand, z.b mit Read-Host, wandle das Passwort in einen Secure-String um, und übergebe die Daten alle als Parameter an Invoke-Command, so wie man es normalerweise macht ! Dann klappt das wie gewünscht ! Alles andere ist Käse ...
skahle85
skahle85 21.10.2014 um 11:43:08 Uhr
Goto Top
Vielen Dank für die Zeit Uwe. War mal wieder ein erfrischender und simpler Tip!

TippiToppiGalloppi

CLOSED