
136430
19.06.2018
Powershell Neustart GUI
Hallo
ich möchte in einer GUI einem User einen Neustart eines Remotecomputers zur Verfügung stellen, der user führt das Script aus, bekommt die Anzeige mit dem Restart button, klickt auf den Button und der Neustart des Remotepcs wird gestartet..... klappt nur leider nicht, die Funktion scheint tot zu sein, könnt ihr mir bitte helfen, wo mein Fehler & Denkfehler ist.
ich möchte in einer GUI einem User einen Neustart eines Remotecomputers zur Verfügung stellen, der user führt das Script aus, bekommt die Anzeige mit dem Restart button, klickt auf den Button und der Neustart des Remotepcs wird gestartet..... klappt nur leider nicht, die Funktion scheint tot zu sein, könnt ihr mir bitte helfen, wo mein Fehler & Denkfehler ist.
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$Form = New-Object System.Windows.Forms.Form
$form.Text = 'Test'
$Form.Size = New-Object System.Drawing.Size(460,420)
$form.StartPosition = 'CenterScreen'
$Form.ShowIcon = $False
$Form.MaximizeBox = $False
$Form.MinimizeBox = $False
#$Form.AutoScaleMode = 'Font'
$ButtonNeustart_Click={
Restart-Computer -ComputerName Hostname -Credential Cred -Force
}
$Button1 = New-Object System.Windows.Forms.Button
$Button1.Location = New-Object System.Drawing.Size(300,50)
$Button1.Size = New-Object System.Drawing.Size(60,60)
$Button1.Text = "restart"
$Button1.Add_Click({$ButtonNeustart_Click})
$Form.Controls.Add($Button1)
$Form.Add_Shown({$Form.Activate()})
return $Form.ShowDialog()
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 377478
Url: https://administrator.de/forum/powershell-neustart-gui-377478.html
Ausgedruckt am: 16.04.2025 um 11:04 Uhr
9 Kommentare
Neuester Kommentar
Servus.
Danach ist ein Neustart Pflicht!
Grüße Uwe
klappt nur leider nicht
Für diese alleinstehende Aussage in einem Admin Forum bekommst du hier heiße Öhrchen! Mach es manuell in der Konsole und du bekommst auch die passenden Meldungen was schief läuft.-Credential Cred
- Da fehlt erstens das Dollarzeichen für die Variable und zweitens gibt es die Definition der Credentials in deinem Skript oben nicht. Bite beachte zusätzlich auch die Variable-Scopes gerade wenn du mit Win-Forms und Sub-Scriptblocks hantierst!
- Passende Firewall-Richtlinien zur Remote-Verwaltung sollten natürlich am Remote-PC gegeben sein.
- Der User dessen Credentials verwendet werden muss den PC neu starten dürfen
- Zusätzlich wenn das keine Domäne ist muss wegen der UAC am Remote-System noch ein Registry Eintrag gesetzt werden, damit per Remote lokale Admin Credentials eingesetzt werden können, Stichwort LocalAccountTokenFilterPolicy.
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
Grüße Uwe
Zitat von @136430:
Es gibt in der Konsole keine Fehlermeldung, sonst hätte ich diese längst hier niedergeschrieben
Dann schau ins Log des Remote Computers.Es gibt in der Konsole keine Fehlermeldung, sonst hätte ich diese längst hier niedergeschrieben
Und Fehlerausgaben die in einem Scriptblock einer GUI auflaufen werden nicht unbedingt angezeigt, du musst sie z.B. mit Try catch abfangen und dann mit write-host explizit ausgeben lassen.
Das Dollarzeichen vor "Cred" habe ich wie beim Computername hier niedergeschrieben, in Wirklichkeit steht dort der direkte Hostname und die tatsächlichen Credentials, ich weiß auch, dass ich das mit einer Variable hätte schreiben können
Wir sehen das hier aber dann nicht was du dort evt. falsch gemacht haben könntest.Also besser immer den kompletten Code anonymisiert so wie er bei dir steht.
Alles spielt sich innerhalb einer Domäne ab, mit dem normalen Restart-computer Befehl, kann ich jeden PC neustarten, nur nicht innerhalb des Programms mit der GUI.
Tja ohne deinen tatsächlichen Code kann man dir hier nicht helfen, das funktioniert hier problemlos.Ich vermute nach wie vor ein Variable Scope Problem auf deiner Seite! Daran scheitern die meisten Anfänger bei der GUI Entwicklung.
Da du hier das ganze vermutlich in Functions verpackt hast liegt meine Vermutung sehr nahe.