Screenshot eines Remotesystems machen: Unterschied zwischen den Versionen
Flo84 (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Wer den Wunsch verspürt, von einem Remotesystem (unbemerkt?) einen Screenshot zu erstellen, dem empfehle ich die Kombination zweier Tools: # [http://www.nirs…“) |
Flo84 (Diskussion | Beiträge) |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 12: | Zeile 12: | ||
Nun kommt was wichtiges: die Datei '''nircmd.exe''' MUSS am Remotesystem installiert sein! Im Beispiel liegt die Datei dort unter C:\Windows\System32\nircmd.exe - das ist unbedingt zu beachten! Wenn man aber ohnehin die administrativen Zugangsdaten des Zielsystems kennt, weiß man, dass am Arbeitsplatz über '''\\<ziel-system\c$''' auf die Standardfreigabe eines jeden Windows-Rechners zugegriffen und die Datei entsprechend / unbemerkt rüberkopiert werden kann :-) | Nun kommt was wichtiges: die Datei '''nircmd.exe''' MUSS am Remotesystem installiert sein! Im Beispiel liegt die Datei dort unter C:\Windows\System32\nircmd.exe - das ist unbedingt zu beachten! Wenn man aber ohnehin die administrativen Zugangsdaten des Zielsystems kennt, weiß man, dass am Arbeitsplatz über '''\\<ziel-system\c$''' auf die Standardfreigabe eines jeden Windows-Rechners zugegriffen und die Datei entsprechend / unbemerkt rüberkopiert werden kann :-) | ||
Gefolgt vom nircmd.exe-Aufruf kommen die Parameter für dieses Tool: '''savescreenshotfull''' veranlasst, dass ein Screenshot des kompletten Desktops erstellt wird - auch wenn das Zielsystem über zwei oder mehrere Monitore verfügt erhält man auf diese Weiße einen Screenshot über alle Monitore. Der letzte Parameter '''\\<eigener-rechner>\<freigabe>\screenshot.png''' gibt dann den Speicherort der erstellten PNG-Datei an. Dies kann - wie im Beispiel zu sehen - eine Netzwerkfreigabe sein. Gibt man hier einen lokalen Speicherort, also z. B. C:\temp\screenshot.png an, so landet die Datei am Ziel-System (!) im Ordner C:\temp, und nicht auf dem eigenen Rechner - obacht also! | Gefolgt vom nircmd.exe-Aufruf kommen die Parameter für dieses Tool: '''savescreenshotfull''' veranlasst, dass ein Screenshot des kompletten Desktops erstellt wird - auch wenn das Zielsystem über zwei oder mehrere Monitore verfügt erhält man auf diese Weiße einen Screenshot über alle Monitore. Der letzte Parameter '''\\<eigener-rechner>\<freigabe>\screenshot.png''' gibt dann den Speicherort der erstellten PNG-Datei an. Dies kann - wie im Beispiel zu sehen - eine Netzwerkfreigabe sein. Gibt man hier einen lokalen Speicherort, also z. B. C:\temp\screenshot.png an, so landet die Datei am Ziel-System (!) im Ordner C:\temp, und nicht auf dem eigenen Rechner - obacht also! | ||
+ | |||
+ | == Kleines Script == | ||
+ | |||
+ | Das Ganze kann man natürlich auch mittels "billigem Batch-Script" automatisieren. Hier mal ein Beispiel: | ||
+ | |||
+ | @echo off | ||
+ | :start | ||
+ | REM Pfadwechsel zum Kopieren der nircmd.exe (und wegen Bequemlichkeit ^^) | ||
+ | c: | ||
+ | cd C:\remscreen | ||
+ | set hour=%time:~0,2% | ||
+ | if "%hour:~0,1%" == " " set hour=0%hour:~1,1% | ||
+ | set min=%time:~3,2% | ||
+ | if "%min:~0,1%" == " " set min=0%min:~1,1% | ||
+ | set secs=%time:~6,2% | ||
+ | if "%secs:~0,1%" == " " set secs=0%secs:~1,1% | ||
+ | set year=%date:~-4% | ||
+ | set month=%date:~3,2% | ||
+ | if "%month:~0,1%" == " " set month=0%month:~1,1% | ||
+ | set day=%date:~0,2% | ||
+ | if "%day:~0,1%" == " " set day=0%day:~1,1% | ||
+ | set datetimef=%year%%month%%day%_%hour%%min%%secs% | ||
+ | echo Auth-User angeben: | ||
+ | set /p user= | ||
+ | echo Aut-Passwort angeben: | ||
+ | set /p pass= | ||
+ | echo Ziel-Rechner angeben: | ||
+ | set /p host_name= | ||
+ | echo. | ||
+ | echo Kopiere nircmd.exe nach \\%host_name%\C$\Windows\System32 ... | ||
+ | xcopy /Y /C nircmd.exe \\%host_name%\C$\Windows\System32 | ||
+ | echo Starte aufruf Befehlsaufruf ... | ||
+ | echo. | ||
+ | psexec.exe -i -u %user% -p %pass% \\%host_name% "C:\Windows\system32\nircmd.exe" savescreenshotfull "\\<lokaler-rechner>\C$\remscreen\screenshot_%host_name%_%datetimef%.png" | ||
+ | echo. | ||
+ | echo Wiederholen (y/n)? | ||
+ | set /p repeat= | ||
+ | if %repeat% == y cls && goto start | ||
+ | exit | ||
+ | |||
+ | Kurze Erklärung: das Script frägt zunächst Benutzername, Kennwort und Zielsystem ab. Es folgt das Kopieren der nircmd.exe auf das Zielsystem in das System32-Verzeichnis - sollte die Datei vorhanden sein, wird nicht die Aufforderung zum Überschreiben unterdrückt. Beachte an dieser Stelle, dass du das Script als Admin aufrufst, und zwar als jender Admin, der auch am Zielsystem über administrative Berechtigungen verfügt! | ||
+ | Es folgt der Befehlsaufruf. Die einzelnen Parameter erkläre ich nicht, hierzu gibt's tolle Hilfen zu psexec und nircmd. Einzige Besonderheit ist der Dateiname, der für jeden Screenshot individuell vergeben wird, und zwar lautet das Format des Dateinamens '''screenshot_<hostname-zielsystem>_<datum>_<uhrzeit>.png'''. Das hilft bei der Zuordnung eines erstellten Screenshots zu System und Erstellzeit :-) | ||
== Nützliche Links == | == Nützliche Links == |
Aktuelle Version vom 12. Juni 2012, 11:50 Uhr
Wer den Wunsch verspürt, von einem Remotesystem (unbemerkt?) einen Screenshot zu erstellen, dem empfehle ich die Kombination zweier Tools:
Geschickt kombiniert, kann man damit sehr fein von Remote-Rechnern Bildschirmschnappschüsse erstellen. Beispiel:
C:\Programme\PSTools\psexec.exe -i -u <username> -p <passwort> \\<ziel-system> "C:\Windows\System32\nircmd.exe" savescreenshotfull "\\<eigener-rechner\<freigabe>\screenshot.png"
Kurz erklärt: der Parameter -i veranlasst das Ausführen des psexec-Befehls im "interaktiven Modus", soll heißen, das Programm wird in der Desktopsession des aktuell am System angemeldeten Users aufgerufen. Nur so erhält man einen Screenshot des derzeit angemeldeten Users, sonst beinhaltet die "screenshot.png" nur ein schwarzes Bild... Parameter -u und -p sollten klar sein: das sind Username und Kennwort, also jene Anmeldedaten, die benötigt werden, um Zugriff auf's Remotesystem zu erhalten. Es folgt die Angabe des \\<ziel-system> - dürfte auch verständlich sein. Das ist der Rechner, von dem ein Screenshot gemacht werden soll. Nun kommt was wichtiges: die Datei nircmd.exe MUSS am Remotesystem installiert sein! Im Beispiel liegt die Datei dort unter C:\Windows\System32\nircmd.exe - das ist unbedingt zu beachten! Wenn man aber ohnehin die administrativen Zugangsdaten des Zielsystems kennt, weiß man, dass am Arbeitsplatz über \\<ziel-system\c$ auf die Standardfreigabe eines jeden Windows-Rechners zugegriffen und die Datei entsprechend / unbemerkt rüberkopiert werden kann :-) Gefolgt vom nircmd.exe-Aufruf kommen die Parameter für dieses Tool: savescreenshotfull veranlasst, dass ein Screenshot des kompletten Desktops erstellt wird - auch wenn das Zielsystem über zwei oder mehrere Monitore verfügt erhält man auf diese Weiße einen Screenshot über alle Monitore. Der letzte Parameter \\<eigener-rechner>\<freigabe>\screenshot.png gibt dann den Speicherort der erstellten PNG-Datei an. Dies kann - wie im Beispiel zu sehen - eine Netzwerkfreigabe sein. Gibt man hier einen lokalen Speicherort, also z. B. C:\temp\screenshot.png an, so landet die Datei am Ziel-System (!) im Ordner C:\temp, und nicht auf dem eigenen Rechner - obacht also!
Kleines Script[Bearbeiten]
Das Ganze kann man natürlich auch mittels "billigem Batch-Script" automatisieren. Hier mal ein Beispiel:
@echo off :start REM Pfadwechsel zum Kopieren der nircmd.exe (und wegen Bequemlichkeit ^^) c: cd C:\remscreen set hour=%time:~0,2% if "%hour:~0,1%" == " " set hour=0%hour:~1,1% set min=%time:~3,2% if "%min:~0,1%" == " " set min=0%min:~1,1% set secs=%time:~6,2% if "%secs:~0,1%" == " " set secs=0%secs:~1,1% set year=%date:~-4% set month=%date:~3,2% if "%month:~0,1%" == " " set month=0%month:~1,1% set day=%date:~0,2% if "%day:~0,1%" == " " set day=0%day:~1,1% set datetimef=%year%%month%%day%_%hour%%min%%secs% echo Auth-User angeben: set /p user= echo Aut-Passwort angeben: set /p pass= echo Ziel-Rechner angeben: set /p host_name= echo. echo Kopiere nircmd.exe nach \\%host_name%\C$\Windows\System32 ... xcopy /Y /C nircmd.exe \\%host_name%\C$\Windows\System32 echo Starte aufruf Befehlsaufruf ... echo. psexec.exe -i -u %user% -p %pass% \\%host_name% "C:\Windows\system32\nircmd.exe" savescreenshotfull "\\<lokaler-rechner>\C$\remscreen\screenshot_%host_name%_%datetimef%.png" echo. echo Wiederholen (y/n)? set /p repeat= if %repeat% == y cls && goto start exit
Kurze Erklärung: das Script frägt zunächst Benutzername, Kennwort und Zielsystem ab. Es folgt das Kopieren der nircmd.exe auf das Zielsystem in das System32-Verzeichnis - sollte die Datei vorhanden sein, wird nicht die Aufforderung zum Überschreiben unterdrückt. Beachte an dieser Stelle, dass du das Script als Admin aufrufst, und zwar als jender Admin, der auch am Zielsystem über administrative Berechtigungen verfügt! Es folgt der Befehlsaufruf. Die einzelnen Parameter erkläre ich nicht, hierzu gibt's tolle Hilfen zu psexec und nircmd. Einzige Besonderheit ist der Dateiname, der für jeden Screenshot individuell vergeben wird, und zwar lautet das Format des Dateinamens screenshot_<hostname-zielsystem>_<datum>_<uhrzeit>.png. Das hilft bei der Zuordnung eines erstellten Screenshots zu System und Erstellzeit :-)