Mit PsExec können Sie Anwendungen über die PowerShell des Hosts über SSH ausführen und öffnen. Dieser Artikel stellt vor, wie man Windows-Anwendungen remote über PsExec und PowerShell startet und ausführt.
Mein Anwendungsfall ist zum Beispiel, dass ich nach der Verarbeitung auf einem Ubuntu-Server Java oder AutoHotkey verwenden wollte, um Tooltip-Benachrichtigungen oder Meldungsfelder an Windows zu senden.
Installieren und richten Sie PsExec auf Windows ein, damit es verwendet werden kann.
PsExec - Windows Sysinternals | Microsoft Docs
Herunterladen und extrahieren. Sie können es verwenden, indem Sie den Pfad zu PsExec64.exe kopieren.
SSH-Anmeldung bei Windows von Ubuntu aus:
ssh [email protected]
Meine aktuelle Umgebung beinhaltet die Verbindung von Ubuntu, das in VirtualBox auf dem Host läuft, zu Windows über SSH zu cmd und dann die Verwendung von PsExec innerhalb dieser SSH-Sitzung, um Anwendungen auszuführen.
Es ist etwas komplex… oder vielmehr, es könnte speziell sein. Es kann also ohne Benutzernamen und Passwort funktionieren. Auch PsExec64 vom Host zum Host funktioniert ohne Benutzernamen und Passwort. Es ist wie SSH zu sich selbst.
Leider kann ich momentan keine physische Ubuntu-Maschine verwenden, daher möchte ich überprüfen, ob ein Passwort von dort aus erforderlich ist, sobald es verfügbar wird.
C:\Users\user\Desktop\PSTools\PsExec64.exe \\192.168.3.19 notepad # => notepad funktioniert nicht.
C:\Users\user\Desktop\PSTools\PsExec64.exe \\192.168.3.19 "java.exe -jar C:\pg\SetClipboardWithBtn\build\SetClipboardWithBtn.jar" # => Fehler.
C:\Users\user\Desktop\PSTools\PsExec64.exe \\192.168.3.19 java.exe -jar C:\pg\SetClipboardWithBtn\build\SetClipboardWithBtn.jar # => Fehler.
C:\Users\user\Desktop\PSTools\PsExec64.exe \\192.168.3.19 calc # => calc funktioniert aus irgendeinem Grund einwandfrei
C:\Users\user\Desktop\PSTools\PsExec64.exe \\192.168.3.19 -d -i cmd /c notepad # => Auf diese Weise wird es erfolgreich gestartet
C:\Users\user\Desktop\PSTools\PsExec64.exe \\192.168.3.19 -d -i cmd /c C:\pg\SetClipboardWithBtn\build\SetClipboardWithBtn.jar # => Sie können jetzt alles mit Java-Dateien, Atom oder allem anderen auf die gleiche Weise tun.
C:\Users\user\Desktop\PSTools\PsExec64.exe \\192.168.3.19 -d -i cmd /c start "" C:\pg\SetClipboardWithBtn\build\SetClipboardWithBtn.jar # => Befehlszeile ausblenden
C:\Users\user\Desktop\PSTools\PsExec64.exe \\192.168.3.19 -u user -p yourPassword -d -i cmd /c start "" C:\pg\SetClipboardWithBtn\build\SetClipboardWithBtn.jar # => Beim Verbinden von einem externen PC müssen Sie (wahrscheinlich) einen Benutzernamen und ein Passwort festlegen.
Referenzen:
- windows - can’t start notepad on remote machine using psexec - Stack Overflow
- command line - How To Execute Cmd.exe Silently? - Super User
- How to get the current logged on user on PowerShell
Benutzernamen überprüfen:
$env:UserName
Oder
PS C:\pg> Get-WMIObject -class Win32_ComputerSystem | select username
username
--------
DESKTOP-HOGEHOGE\user
Ich bin mir nicht sicher, welches verwendet werden sollte. Ob es nur der Benutzername ist oder Computername + Benutzername als Benutzername. Da die SSH-Anmeldung bei cmd selbst mit nur dem Benutzernamen funktionierte… Ich bin mir nicht sicher.
Passwort überprüfen:
Unter Windows melden Sie sich normalerweise mit einer PIN an, sodass Sie dazu neigen, Ihr reguläres Passwort zu vergessen.
Außerdem gibt es mehrere Faktoren, die es komplex machen… Windows-Passwörter können mit einem Microsoft-Konto verknüpft oder als lokales Passwort festgelegt werden - es gibt zwei Muster.
Nun… Ich bin mir nicht ganz sicher, was passiert, wenn Sie dies komplett vergessen. Ich konnte mich intuitiv daran erinnern, das war gut…