leopold.bloom
Goto Top

Remote an- und abschalten per Script?

Hallo liebe Leute,

standardmäßig habe ich Remote Desktop bei meinen XP Rechnern und meinem Win7 Rechner ausgeschaltet. Jetzt soll aber doch gelegentlich Remote Access erlaubt sein. Das ganze wird über Bitvise Tunnelier und WinSSHD realisiert. Vor der Sitzung muss ich in der Systemsteuerung gehen und Remote erlauben - hinterher möchte ich es wieder sperren. Ich hätte es gerne etwas komfortabler. Gewissermaßen Remote an- und abschalten per Script. Ich habe eine VBS Lösung gefunden, die unter XP funktioniert, aber nicht unter Win7 - 64.

Const ENABLE_CONNECTIONS = 1 // Schaltet Remote ein
 
strComputer = "."  
Set objWMIService = GetObject("winmgmts:" _  
    & "{impersonationLevel=impersonate}\\" & strComputer & "\root\cimv2")  

Set colItems = objWMIService.ExecQuery _
    ("Select * from Win32_TerminalServiceSetting")  

For Each objItem in colItems
    errResult = objItem.SetAllowTSConnections(ENABLE_CONNECTIONS)
Next

Const ENABLE_CONNECTIONS = 0  // Der gleiche Code mit 0 schaltet  Remote ab

Das funktioniert - aber ich hätte gerne eine Lösung, die auch unter Win7 -64 funktioniert und ich hätte es lieber als cmd als als vbs. Geht das überhaupt? Falls nein, warum nicht? Falls ja, wie? Mir ist ehrlich gesagt nicht ganz klar, was da eigentlich passiert wenn man auf dem Remote Reiter auf der System Pappe dem Benutzer erlaubt/verbietet, eine Remoteverbindung herzustellen. Eines der vielen Windows Rätsel für mich. Wird ein Dienst gestartet/gestoppt? Welcher? Wird etwas in die Registry geschrieben? In welchen Key? Werden nur die Ports freigegeben/gesperrt? Insofern ist es nicht nur eine Batch/Shell Frage sondern etwas, das mir grundsätzlich nicht klar ist und wo ich im Netz auch keine Erklärung gefunden habe, die mich irgendwie schlauer machen würde. Es geht vermutlich irgendwie mit WMIC. Aber da habe ich keinen Plan. Vielleicht könnt ihr mir auf die Sprünge helfen. Vielen Dank.

Leopold

Content-ID: 181070

Url: https://administrator.de/contentid/181070

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

CadelPigott
CadelPigott 26.02.2012 um 09:23:25 Uhr
Goto Top
Hallo Leopold,
Wenn ich dich richtig verstehe, müsstest du lediglich auf dem jeweiligen Rechner den "remote registry" Dienst starten und dann aus der Ferne den hier beschriebenen Schlüssel setzen.
http://www.mcseboard.de/windows-forum-allgemein-83/registry-eintrag-rem ...
Gruß
Cadel
Leopold.Bloom
Leopold.Bloom 28.02.2012 um 13:31:08 Uhr
Goto Top
Hallo Cadel,

vielen Dank für Deine Hilfe - auf der Seite, die Du mir empfohlen hast, war zwar keine Lösung für das Umschalten - aber der entscheidende Registry Key war angegeben. Und jetzt habe ich eine Lösung gefunden, die auch unter Win 7 funktioniert.

Wahrscheinlich habe ich mich unklar ausgedrückt. Ich habe auf einem Rechner eine Anwendung laufen, die von außen aufgerufen werden können soll. Während jemand von außen auf dem Rechner arbeitet muß Remote erlaubt sein - sobald er die Arbeit beendet hat, möchte ich Remote wieder unterbinden. Remote wird nicht anderswo an- und abgeschaltet sondern hier. Nur möchte ich dafür nicht jedesmal in der Systemsteuerung herum fuhrwerken sondern Remote erlauben/nicht erlauben auf Knopfdruck realisieren. Und so funktioniert es.

Falls es jemanden interessiert .

@echo off

set DIENSTNAME="Remote-Registrierung"  
set DIENST="RemoteRegistry"  

NET START | FIND %DIENSTNAME% > nul
IF errorlevel 1 net start %DIENST%
 
NET START | FIND %DIENSTNAME% > nul
IF errorlevel 1 GOTO :EOF

echo Windows Registry Editor Version 5.00 >> %TEMP%\remote.reg
echo. >> %TEMP%\remote.reg
echo [HKEY_LOCAL_MACHINE\system\currentcontrolset\control\terminal Server] >> %TEMP%\remote.reg
if %1==off echo "fDenyTSConnections"=dword:00000001 >> %TEMP%\remote.reg  
if %1==on echo "fDenyTSConnections"=dword:00000000 >> %TEMP%\remote.reg  
regedit  /s %TEMP%\remote.reg
del %TEMP%\remote.reg

exit
 

Das Verfahren ist simpel. Falls der Dienst nicht läuft wird er gestartet. Falls der Dienststart nicht klappt -> EOF. Sonst wird je nach Aufrufparameter eine reg Datei ins Temp Verzeichnis geschrieben und im Silent Modus von regedit ausgeführt. Im Silent Modus wird ohne Nachfragen in die Registry geschrieben. Danach wird die reg Datei wieder gelöscht.

Unter XP funktioniert das so ohne Umwege.

Bei Win 7 muss man noch diese unsägliche Benutzerkontensteuerung umgehen, damit das An- und Abschalten auf Knopfdruck funktioniert. Ganz ausschalten will ich die UAC nicht, immerhin bietet sie etwas zusätzliche Sicherheit. Ich habe also einen Job in die Aufgabenplanung geschrieben, der mit höchsten Privilegien gestartet wird. Der Job wird mit schtasks.exe aufgerufen und alles ist ok. Ein indirekter Aufruf. Keine störende UAC-Pappe mehr.

LG aus HH

Leopold

Problem gelöst.