Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Powershell Neustart GUI

Mitglied: 136430

136430 (Level 1)

19.06.2018 um 16:33 Uhr, 1024 Aufrufe, 9 Kommentare

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.
01.

02.

03.
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
04.
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")  
05.

06.

07.

08.
$Form = New-Object System.Windows.Forms.Form 
09.
$form.Text = 'Test'   
10.
$Form.Size = New-Object System.Drawing.Size(460,420)  
11.
$form.StartPosition = 'CenterScreen'
12.
$Form.ShowIcon = $False 
13.
$Form.MaximizeBox = $False 
14.
$Form.MinimizeBox = $False
15.
#$Form.AutoScaleMode = 'Font'
16.
 
17.

18.
  $ButtonNeustart_Click={ 
19.
        
20.
        Restart-Computer -ComputerName Hostname -Credential Cred -Force
21.
        
22.
    } 
23.

24.

25.
$Button1 = New-Object System.Windows.Forms.Button 
26.
$Button1.Location = New-Object System.Drawing.Size(300,50) 
27.
$Button1.Size = New-Object System.Drawing.Size(60,60) 
28.
$Button1.Text = "restart" 
29.
$Button1.Add_Click({$ButtonNeustart_Click}) 
30.
$Form.Controls.Add($Button1) 
31.

32.
$Form.Add_Shown({$Form.Activate()})
33.
return $Form.ShowDialog()
34.
 
35.
 
Mitglied: user217
19.06.2018 um 16:36 Uhr
shutdown /? in eine Batch taugt nicht?
Bitte warten ..
Mitglied: colinardo
19.06.2018, aktualisiert um 18:02 Uhr
Servus.
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
Danach ist ein Neustart Pflicht!

Grüße Uwe
Bitte warten ..
Mitglied: 136430
20.06.2018 um 10:05 Uhr
Servus Uwe

Zitat von colinardo:

Servus.
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.


Es gibt in der Konsole keine Fehlermeldung, sonst hätte ich diese längst hier niedergeschrieben

-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
> 
Danach ist ein Neustart Pflicht!

Grüße Uwe

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

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.
Bitte warten ..
Mitglied: colinardo
20.06.2018, aktualisiert um 10:45 Uhr
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.
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.
Bitte warten ..
Mitglied: 136430
20.06.2018 um 10:52 Uhr
Zitat von colinardo:

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.
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.

ok das probiere ich
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.

kannst du mir bezüglich des vermuteten Scope-Problems mitteilen, was ich genau noch in den Code hinzufügen muss?
Bitte warten ..
Mitglied: colinardo
20.06.2018, aktualisiert um 10:56 Uhr
kannst du mir bezüglich des vermuteten Scope-Problems mitteilen, was ich genau noch in den Code hinzufügen muss?
Ohne den kompletten Code ist es nich nichtt möglich dir zu helfen.
Les mal den Link zum Thema oben, dann verstehst du vielleicht was ich meine!
Bitte warten ..
Mitglied: 136430
20.06.2018 um 11:02 Uhr
Zitat von colinardo:

kannst du mir bezüglich des vermuteten Scope-Problems mitteilen, was ich genau noch in den Code hinzufügen muss?
Ohne den kompletten Code ist es nich nichtt möglich dir zu helfen.
Les mal den Link zum Thema oben, dann verstehst du vielleicht was ich meine!

Ich bin etwas durcheinander, ich habe den kompletten Code gepostet bei -Computername Host bei -Credential Domäne/Domänenadmin, das ist der einzige Unterschied zum Original
Bitte warten ..
Mitglied: colinardo
LÖSUNG 20.06.2018, aktualisiert um 11:11 Uhr
Jetzt wo ichs gerade nochmal genau ansehe, dein Fehler liegt hier
$Button1.Add_Click({$ButtonNeustart_Click})
Die geschweiften Klammern sind zu viel, die hat schon die Variable als Scriptblock.
Das sollte hier also so aussehen
01.
$Button1.add_Click($ButtonNeustart_Click)
Bitte warten ..
Mitglied: 136430
20.06.2018 um 11:12 Uhr
Das war die Lösung! vielen Dank!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
PowerShell GUI WPF
gelöst Frage von derhoeppiBatch & Shell18 Kommentare

Hallo, heute habe ich hoffentlich wieder ein einfaches Thema. Und zwar besitzt meiner GUI (WPF) einige Checkboxen und auch ...

Windows 10
Powershell GUI Skript Filehash
gelöst Frage von BaphometWindows 104 Kommentare

Hallo Community, da ich mich erst sehr kurzzeitig mit der PS befasse tauchen immer wieder Fragen auf. > Ich ...

Batch & Shell
Powershell - GUI Elemente verstecken
gelöst Frage von BuggerBatch & Shell2 Kommentare

Hallo zusammen, ich möchte mit einer Checkbox einige Elemente verstecken. Dafür habe ich diesen Befehl: Somit zeigt er das ...

Batch & Shell

PowerShell GUI öffnen mit ShowDialog()

gelöst Frage von derhoeppiBatch & Shell4 Kommentare

Hallo, ich habe eine GUI für ein PowerShell Skript. Diesen wird via ShowDialog() geöffnet. In der öffnenden Oberfläche mit ...

Neue Wissensbeiträge
LAN, WAN, Wireless
OPNsense Captive Portal mit vordefnierten Voucher
Tipp von Crusher79 vor 9 StundenLAN, WAN, Wireless

Hallo, Ziel war es vorhandene Klienten-Daten (Nummer im System) und Kennwörter anzulegen. Voucher werden durch externes Programm in Papierform ...

Administrator.de Feedback
Entwicklertagebuch: Die nächste Version
Information von admtech vor 1 TagAdministrator.de Feedback6 Kommentare

Hallo Administrator User, vielleicht haben es einige User schon mitbekommen: Wir arbeiten aktuell an einer komplett neuen Version von ...

Windows Server

Active Directory ESE Version Store Changes in Server 2019

Information von Dani vor 4 TagenWindows Server

Moin, Last month at Microsoft Ignite, many exciting new features rolling out in Server 2019 were talked about. But ...

Exchange Server

Microsoft Extending End of Support for Exchange Server 2010

Information von Dani vor 4 TagenExchange Server5 Kommentare

Moin, After investigating and analyzing the deployment state of an extensive number of Exchange customers we have decided to ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Zukunftsicheres Heimnetzwerk aufbauen
Frage von CRO-WarriorNetzwerkgrundlagen16 Kommentare

Hallo Leute. Ich bin dabei das Haus in Kroatien zu renovieren. Da hab ich jetzt die Möglichkeit alles so ...

Router & Routing
Anmeldung am Router von einer ext. IP?
Frage von BigSnakeyeRouter & Routing15 Kommentare

Hallo, ich habe gerade seltsames in meiner Fritzbox entdeckt. Plötzlich war die Verbindung unterbrochen - kein Internet. Also habe ...

Windows Server
Windows Domäne, SBS 2011, Anmeldung als Admin nicht mehr möglich
Frage von big-dummyWindows Server14 Kommentare

Hallo, vorab: ich habe nun leider keine Grundruhe mehr - die Folgen wären katastrophal. Was ist das Problem: Ich ...

Windows 10
Win 10 PC blockiert
Frage von tsunamiWindows 1013 Kommentare

Guten Morgen, ich habe ein komisches Problem: Windows 10 Pro PC startet normal. Internet ist für ca. 5 Sekunden ...