Hallo zusammen,
in dem heutigen Post zeige ich euch, wie Ihr mit Windows Boardmittel Remotecomputer administrieren könnt.
Folgende Zusatztools kommen in dem Skript zum Einsatz:
PsTools von Windows Sysinternals –> http://technet.microsoft.com/de-de/sysinternals/bb896649.aspx
FreeCommander XE Portable –> http://www.freecommander.com/de/fc_downl_de.htm
Wenn man sich Tag täglich, mehrmals auf entfernte Computer schalten muss, um Administrative Aufgaben zu erledigen. Versucht man sich die Arbeit so einfach wie möglich zu machen.
Persönlich wird es sehr nervig, wenn man am Tag bis zu 100 Mal Domänen Admin + Passwort eingeben muss.
Das folgende Skript erleichtert mir hier sehr viel Tipparbeit.
Die PsTools lade ich mir aus dem Internet und kopiere alle *.exe Dateien in mein C:\Windows\System32 Verzeichnis.
Den FreeCommander XE Portable lade ich mir ebenfalls aus dem Internet und lege diesen zu meinem Batch Skript.
Für alle meine Batch und Powershell Skripte lege ich mir unter D:\ einen passenden Ordner an.
So sieht es aus, wenn man die Batch Datei Remote-Verwaltung.cmd das erste Mal startet.
Folgendes sollte im Batch Skript angepasst werden:
1 2 3 4 5 6 7 |
REM ------------------------------------------------------------ :: Variablen definieren (Diese Varaiablen sollten angepasst werden) REM ------------------------------------------------------------ set NetShare=Z: set DomainAdminUser=DomainAdminUser set Path "D:\Scripts\Remoteverwaltung\FreeCommander;%PATH%" REM ------------------------------------------------------------ |
Für die Remote C$ Freigabe habe ich mir einen Netzlaufwerksbuchstaben als Variable definiert.
Mein Domänen Admin Konto wird ebenfalls als Variable definiert.
Der Skriptpfad für FreeCommander wird in die Variable %PATH% hinzugefügt.
Warum nutze ich den FreeCommander Portable und nicht den Windows eigenen Explorer, habe sehr viel ausprobiert bei der Skripterstellung. Leider ist es nicht möglich die explorer.exe über das Kontextmenü „Als anderer Benutzer ausführen“ oder auch über RunAs Befehlen zu starten. Sobald man als Normaler Domänenbenutzer am Computer angemeldet ist, lässt sich die explorer.exe nicht in einem Domänen Administrator Kontext starten. Das Problem hier, ist die (UAC) User Access Control von Windows 7/8. Leider habe ich noch keinen Weg gefunden wie man das umgeht, außer natürlich man meldet sich als Domänenadministrator am Computer an.
Um nun mit dem Skript arbeiten zu können, startet man die Batch Datei als Domänen Administrator, dazu klickt man mit gedrückter SHIFT Taste + rechter Maustaste auf die CMD Datei und wählt im Kontextmenü „Als anderer Benutzer ausführen“
Nun bekommt man folgenden Prompt angezeigt, bitte hier Remote Computername oder IP-Adresse eingeben.
Im zweiten Schritt wird man nach dem Domänen Administrator Kennwort gefragt um das Netzlaufwerk zu verbinden.
Zusätzlich wird noch eine Textdatei angelegt, in dem der Remote Computername eingetragen wird, dieses benötigt man, wenn man eine weitere CMD Konsole öffnen will und die Variable %RemoteHost% benötigt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
REM ------------------------------------------------------------ :: Eingabe des zu verwaltenden Computers REM ------------------------------------------------------------ echo ===================================================================================================== echo Bitte Remote Computername oder IP-Adresse eingeben um das Skript starten zu koennen (z.B. localhost) echo ===================================================================================================== set /p RemoteHost=Computername oder IP-Adresse eingeben: echo RemoteHost=%RemoteHost% > %ScriptPath%\RemoteHostVar.txt REM ------------------------------------------------------------ :: C$ Freigabe vom Remote Computer verbinden REM ------------------------------------------------------------ if exist %NetShare% net use /delete %NetShare% /yes net use %NetShare% "\\%RemoteHost%\c$" /persistent:no /user:%USERDOMAIN%\%DomainAdminUser% |
Die wichtigste Sprungmarke ist die :START, die Batch Datei ist so geschrieben, dass sie in einen Loop steckt, solange bis man sie mit Exit verlässt.
Mit title und mode wird die CMD Konsole angepasst (mode 80 ist die Breite und 50 ist die Höhe der Konsole)
1 2 3 4 |
:START title Computer Remoteverwaltung mit %RemoteHost% mode 80,50 cls |
Bei manchen Befehlen wurde ein Pause eingebaut, diese Pause verlässt man mit drücken einer Taste.
Bei Befehl 9 und 12 gibt es noch eine Besonderheit. Um auf die Remote Registry vom Remote Computer zugreifen zu können, muss auf dem entfernten System der Dienst RemoteRegistry gestartet sein,
dies passiert mit dem Befehl sc \\%RemoteHost% start RemoteRegistry und zum zweiten kann man dem Regedit Editor keinen Computernamen mit geben. Die muss leider manuell passieren.
Damit der Befehl sc funktioniert, muss auf dem entfernten System die Firewall Ports freigeschaltet sein — RPC (Ports 137/138/139/445) oder man regelt das Ganze über Gruppenrichtlinien –> http://skatterbrainz.blogspot.de/2009/08/enabling-windows-7-remote-management.html
Bei Befehl 12 wird ein neues CMD Konsolen Fenster geöffnet, in dem die LogIn ID des angemeldeten Benutzers angezeigt wird, wenn man nun den Benutzer vom Remotesystem abmelden möchte, muss man noch manuell logoff [ID] eingeben und mit Enter bestätigen.
Alle anderen Befehle im Skript sind hoffentlich selbst erklärend, sollte dem nicht so sein, könnt ihr jederzeit einen Kommentar hinterlassen.
Hier das Skript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 |
@echo off cls REM ------------------------------------------------------------ REM Name: Computer Remoteverwaltung REM Autor: Helmut Thurnhofer REM Datum: 28. Juli 2014 REM ------------------------------------------------------------ REM Zusätzliche Befehle für die Computer Remoteverwaltung REM ------------------------------------------------------------ REM WMIMgmt = start mmc C:\Windows\System32\WmiMgmt.msc /computer:localhost REM Aufganbenplanung start mmc C:\Windows\System32\taskschd.msc /computer:localhost REM Perfmon = start mmc C:\Windows\System32\perfmon.msc /computer:localhost REM Freigegebene Ordner = start mmc C:\Windows\System32\fsmgmt.msc /computer:localhost REM ------------------------------------------------------------ REM Verwendete Administrative Tools REM ------------------------------------------------------------ REM PsTools von Windows Sysinternals --> http://technet.microsoft.com/de-de/sysinternals/bb896649.aspx REM FreeCommander XE Portable --> http://www.freecommander.com/de/fc_downl_de.htm REM ------------------------------------------------------------ REM ------------------------------------------------------------ :: Variablen definieren (Diese Varaiablen sollten angepasst werden) REM ------------------------------------------------------------ set NetShare=Z: set DomainAdminUser=DomainAdminUser set PATH "D:\Scripts\Remoteverwaltung\FreeCommander;%PATH%" REM ------------------------------------------------------------ REM ------------------------------------------------------------ :: Eingabe des zu verwaltenden Computers REM ------------------------------------------------------------ echo ==================================================================================================== echo Bitte Remote Computername oder IP-Adresse eingeben um das Skript starten zu koennen (z.B. localhost) echo ==================================================================================================== set /p RemoteHost=Computername oder IP-Adresse eingeben: echo RemoteHost=%RemoteHost% > D:\Scripts\Remoteverwaltung\RemoteHostVar.txt REM ------------------------------------------------------------ :: C$ Freigabe vom Remote Computer verbinden REM ------------------------------------------------------------ if exist %NetShare% net use /delete %NetShare% /yes net use %NetShare% "\\%RemoteHost%\c$" /persistent:no /user:%USERDOMAIN%\%DomainAdminUser% :START title Computer Remoteverwaltung mit %RemoteHost% mode 80,50 cls REM ------------------------------------------------------------ :: Anzeigetext in der Batchdatei definieren REM ------------------------------------------------------------ echo. echo ============================================================ echo Derzeit verbunden mit %RemoteHost% echo ============================================================ echo. echo 1) Remote Computer wechseln echo 2) Ping %RemoteHost% echo 3) nslookup %RemoteHost% echo 4) FreeCommander (Explorer) starten echo 5) Dienste MMC von %RemoteHost% starten echo 6) Computerverwaltung MMC von %RemoteHost% starten echo 7) Ereignisanzeige MMC von %RemoteHost% starten echo 8) Prozesse von %RemoteHost% anzeigen echo 9) Registry Editor starten echo 10) neue CMD Konsole starten echo 11) Wer ist an %RemoteHost% angemeldet echo 12) Benutzer am %RemoteHost% abmelden echo 13) Computer %RemoteHost% neu starten echo 14) Remoteunterstuetzung starten echo 15) Exit echo. echo ============================================================ REM ------------------------------------------------------------ :: Auswahl wird in die Variable %choice% geschrieben REM ------------------------------------------------------------ set /p choice=Auswahl eingeben (1-16): if "%choice%"=="1" goto CHANGECOMPUTER if "%choice%"=="2" goto PING if "%choice%"=="3" goto NSLOOKUP if "%choice%"=="4" goto FREECOMMANDER if "%choice%"=="5" goto SERVICES if "%choice%"=="6" goto COMPMGMT if "%choice%"=="7" goto EVENTMGMT if "%choice%"=="8" goto PROCESS if "%choice%"=="9" goto REGEDIT if "%choice%"=="10" goto OPENCMD if "%choice%"=="11" goto LOGGEDON if "%choice%"=="12" goto LOGOFF if "%choice%"=="13" goto REBOOT if "%choice%"=="14" goto REMOTEHELP if "%choice%"=="15" net use z: /delete %NetShare% /yes && exit REM =================================================== :CHANGECOMPUTER set /p RemoteHost=Bitte neuen Computername oder IP-Adresse eingeben: echo RemoteHost=%RemoteHost% > D:\Scripts\Remoteverwaltung\RemoteHostVar.txt if exist %NetShare% net use /delete %NetShare% /yes net use %NetShare% "\\%RemoteHost%\c$" /persistent:no /user:%USERDOMAIN%\%DomainAdminUser% goto START REM =================================================== REM =================================================== :PING ping -n 2 -4 %RemoteHost% echo. echo Bitte Taste druecken um zurueck zum Auswahlmenue zu kommen pause >nul goto START REM =================================================== REM =================================================== :NSLOOKUP nslookup %RemoteHost% echo. echo Bitte Taste druecken um zurueck zum Auswahlmenue zu kommen pause >nul goto START REM =================================================== REM =================================================== :FREECOMMANDER FreeCommander.exe goto START REM =================================================== REM =================================================== :SERVICES start mmc "%SystemRoot%\System32\services.msc" /computer:%RemoteHost% goto START REM =================================================== REM =================================================== :COMPMGMT start mmc "%SystemRoot%\System32\compmgmt.msc" /computer:%RemoteHost% goto START REM =================================================== REM =================================================== :EVENTMGMT start mmc "%SystemRoot%\System32\eventvwr.msc" /computer:%RemoteHost% goto START REM =================================================== REM =================================================== :PROCESS sc \\%RemoteHost% start RemoteRegistry pslist -t -s -r 5 \\%RemoteHost% echo. echo Bitte Taste druecken um zurueck zum Auswahlmenue zu kommen pause >nul goto START REM =================================================== REM =================================================== :REGEDIT sc \\%RemoteHost% start RemoteRegistry %SystemRoot%\System32\regedt32.exe && mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup('Bitte ueber [Datei] --> [Mit Netzwerkregistrierung verbinden], den Computernamen eingeben. Fenster schliesst automatisch nach 10 Sekunden.',10, 'Remote Registry', 64 );close()" goto START REM =================================================== REM =================================================== :OPENCMD start /i %COMSPEC% /separate /k (for /f "tokens=*" %%i in (D:\Scripts\Remoteverwaltung\RemoteHostVar.txt) do set "%%i")2>nul goto START REM =================================================== REM =================================================== :LOGGEDON sc \\%RemoteHost% start RemoteRegistry psloggedon \\%RemoteHost% echo. echo Bitte Taste druecken um zurueck zum Auswahlmenue zu kommen pause >nul goto START REM =================================================== REM =================================================== :LOGOFF sc \\%RemoteHost% start RemoteRegistry start /i %COMSPEC% /seperate /k psexec \\%RemoteHost% query session && mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup('Um den Remote User abzumelden, bitte (logoff [ID]) eingeben und mit [Enter] bestätigen. Fenster schliesst automatisch nach 10 Sekunden.',10, 'Remote User Logoff', 64 );close()" echo. echo Bitte Taste druecken um zurueck zum Auswahlmenue zu kommen pause >nul goto START REM =================================================== REM =================================================== :REBOOT sc \\%RemoteHost% start RemoteRegistry psshutdown -r -t 5 \\%RemoteHost% echo. echo Bitte Taste druecken um zurueck zum Auswahlmenue zu kommen pause >nul goto START REM =================================================== REM =================================================== :REMOTEHELP msra.exe /offerRA %RemoteHost% echo. echo Bitte Taste druecken um zurueck zum Auswahlmenue zu kommen pause >nul goto START REM =================================================== |
Download –> Remote-Verwaltung.zip
Also viel Spaß mit dem Skript.
Gruß Helmut