Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Nur eine (auch getrennte!) RDP Session pro Rechner

Frage Microsoft Windows 7

Mitglied: Friesima

Friesima (Level 1) - Jetzt verbinden

13.10.2014, aktualisiert 15.10.2014, 1961 Aufrufe, 13 Kommentare

Hallo Administrator.de-Forum,

erstmal möchte ich euch allen danken, weil ich hier beim Lesen schon oft Hilfe gefunden habe, und ohne euch wirklich etwas fehlen würde.

Bei meinem aktuellen Problem, komme ich aber trotz allen google Suchen nicht weiter.
Ich habe folgende Umgebung:
ein paar Dutzend Windows-7 Clients in 2008R2-Domäne.

Wir haben auch einige Laptop-User, die gelegentlich rechenintensive Aufgaben auf andere Rechner auslagern (ebenfalls Windows 7, Verbindung per RDP), damit haben sie folgende Vorteile:
-Sie haben mehr Ressourcen, sie müssen keine Workstation im Büro stehen haben, sie legen ihr Outlook nicht lahm, sie können ihren Laptop in eine Besprechung oder nach Hause nehmen (während die Workstation weiter arbeitet) ... alles ganz große Klasse.

Jetzt gibt es nur folgendes Problem: User1 verwendet PC1 per RDP, wenn er den Laptop aus dem Dock nimmt wird die RDP Session getrennt. Jetzt kommt User2 und meldet sich an PC1 an...
Resultierende Probleme: User1 kann nicht mehr zurück in seine Session solange User2 ihn blockiert, User2 muss mit nem Rechner leben, auf dem im Hintergrund irgendwelche rechenintensiven Prozesse ausgeführt werden.

Kann ich irgendwie verhindern, dass sich ein zweiter user an einem PC mit getrennter RDP Session anmeldet? Mit den mir bekannten GPO-Einstellungen komme ich nicht weiter, weil die nur bei aktiven Sitzungen greifen.

Mir ist bekannt, dass möglicherweise der PC bis zum Session-Timeout lahmgelegt wird, aber das wäre okay.

Ich hoffe, ich konnte die Fragestellung verdeutlichen?!
Vielen Dank und viele Grüße

Mathias
Mitglied: emeriks
13.10.2014, aktualisiert um 18:47 Uhr
Hi,
ich würde mal sagen, dass kannst Du nur unterbinden, wenn Du den "Schnellen Benutzerwechsel" generell deaktivierst. Dann kann sich kein zweiter Benutzer anmelden, solange noch einer angemeldet ist. Außer Admins: Diese können gesperrte Benutzersitzungen trotzdem noch abmelden.

Siehe mal hier: http://www.addictivetips.com/windows-tips/how-to-enable-disable-fast-us ...

Hilft das?

E.
Bitte warten ..
Mitglied: DerWoWusste
13.10.2014 um 23:23 Uhr
Hi.

Die Lösung ist http://technet.microsoft.com/en-us/library/cc784146(v=ws.10).aspx ->auf eins setzen. Gilt auch für win7.
Bitte warten ..
Mitglied: emeriks
14.10.2014 um 08:52 Uhr
@DerWoWusste
Und was ist, wenn sich ein Benutzer lokal anmeldet? Dann ist der Rechner doch auch für die Remote-Anmeldungen blockiert, weil Win7 doch nur einen aktiven Desktop gleichzeitig zulässt.

E.
Bitte warten ..
Mitglied: Friesima
14.10.2014 um 09:12 Uhr
Das korrespondiert bei Windows 7 vermutlich mit Computereinstellungen > Adm. Vorlagen > Windows-Komponenten > Remotedesktopdienste > RD-Sitzungs-Host > Verbindungen > Amzahl der Verbindungen einschränken ..

richtig? Das hatte ich schon auf 1 gestellt. Das verhindert nur dass User2 eine aktive Session von User1 killen kann. Sobald User1 seine Verbindung trennt kann User2 noch mit dazu.

Hier meine aktuelle Client-GPO:


Richtlinien
Administrative Vorlagen

System/Anmelden
Einstiegspunkte für die schnelle Benutzerumschaltung ausblenden Aktiviert

Windows-Komponenten/Remotedesktopdienste/Remotedesktopsitzungs-Host/Verbindungen
Anzahl der Verbindungen einschränken Aktiviert
Maximale Anzahl von Remotedesktopverbindungen 1


lokale Anmeldungen sind übrigens kein Problem, die Kisten stehen hinter Schloss und Riegel.
Bitte warten ..
Mitglied: DerWoWusste
14.10.2014 um 10:00 Uhr
Das verhindert nur dass User2 eine aktive Session von User1 killen kann. Sobald User1 seine Verbindung trennt kann User2 noch mit dazu.
Dann sorg dafür, dass der Nutzer seine eigene Sitzung nicht trennt, sondern offen lässt und alles ist wie gewünscht. Klar, Du willst das nicht, aber so ist es, es geht nicht anders, außer Du arbeitest mit eigenen Skripten, die den Zweiten als Zweiten identifizieren und sofort wieder abmelden.
Bitte warten ..
Mitglied: Friesima
14.10.2014 um 10:10 Uhr
Zitat von DerWoWusste:

Dann sorg dafür, dass der Nutzer seine eigene Sitzung nicht trennt, sondern offen lässt und alles ist wie
gewünscht.

Kann man das RDP-Fenster schließen ohne die Session zu trennen? Vermutlich nicht, oder? Also doch Skripte... Schade, ich hatte die Hoffnung, dass es mit Bordmitteln geht.
Bitte warten ..
Mitglied: Friesima
15.10.2014 um 12:24 Uhr
Also mein Skript sieht jetzt so aus:

01.
set ende=0 
02.
REM Getrennte Session finden 
03.
for /f "skip=2 tokens=3" %%G in ('qwinsta^|find /i "Ge"') DO set ende=1 
04.
 
05.
if "%ende%" == "1" ( 
06.
REM SessionID rausbekommen 
07.
for /f "skip=1 tokens=3" %%H in ('qwinsta %sessionname% ') DO set SessID=%%H 
08.
msg %SessID% /server:localhost /time:120 /w Dieser Computer ist gerade durch eine getrennte Session belegt. Sie werden in 120 Sekunden automatisch abgemeldet. 
09.
logoff %SessID% 
10.
)
Das funktioniert eigentlich wie benötigt.
wie ist es denn sinnvoll möglich, dieses Skript nur bei Anmeldung auf einzelnen Computern (dieser handvoll Workstations) auszuführen?
Bitte warten ..
Mitglied: DerWoWusste
LÖSUNG 15.10.2014, aktualisiert um 17:08 Uhr
Nimm den Taskplaner dafür, der kennt als Starttrigger "Bei der Anmeldung".
Bitte warten ..
Mitglied: Friesima
15.10.2014 um 13:52 Uhr
Ja, sehr gut... Jetzt kam als Ergebnis der Aufgabenausführung:

Die Aufgabenplanung konnte die Aufgabe "\Abmeldeskript ausführen" für den Benutzer "VORDEFINIERT\VORDEFINIERT" nicht starten. Zusätzliche Daten: Fehlerwert: 2147943645

darauf habe ich als Benutzerkonto statt %LogonDomain%\%LogonUser% (oder so) folgendes gesetzt: %userdomain%\%username%.

Jetzt versucht der Taskplaner den Task mit dem Computerkonto auszuführen, der Fehlerwert ist derselbe wie oben. Es ist unabhängig davon, ob das batch lokal oder im Netz liegt.

Wie kann ich die Aufgabe im Userkontext starten? Oder ist das nicht nötig?
Bitte warten ..
Mitglied: DerWoWusste
LÖSUNG 15.10.2014, aktualisiert um 17:08 Uhr
Auf keinen Fall im Userkontext, nimm System.
Im Userkontext würde bedeuten, dass jeder User das Recht "Anmeldung als Stapelverarbeitungsauftrag" bekommen müsste - vergiss es.

Schau also, was Du mit system machen kannst: Sitzungen mit qwinsta listen, suchen nach der eigenen (system), suchen nach getrennten, alles weitere trennen - zum Beispiel.
Bitte warten ..
Mitglied: Friesima
15.10.2014 um 15:39 Uhr
Nur eine Verständnisfrage warum nicht den User? Ist die genannte Berechtigung kritisch?

Ich habe jetzt System genommen, ich starte die Batch über den Aufruf von C:\Windows\System32\cmd.exe /k c:\temp\batch.bat
Alles was passiert ist, dass auf dem Computer ein cmd Prozess gestartet wird. Von Aktivitäten des Batch files merkt man nix.
Das batch habe ich angepasst, um die richtige Session auszuloggen:

01.
REM Getrennte Session finden 
02.
for /f "skip=2 tokens=1" %%G in ('qwinsta^|find /i "Ge"') DO set ende=1 & set user2=%%G 
03.
if %ende% == 1 ( 
04.
 
05.
REM Session ID des aktiven Users rausbekommen 
06.
for /f "tokens=3" %%H in ('qwinsta^|find /i "Aktiv"') DO set SessID=%%H 
07.
REM USername des aktiven Users rausbekommen 
08.
for /f "tokens=2" %%I in ('qwinsta^|find /i "Aktiv"') DO set user3=%%I 
09.
 
10.
REM Nachricht an aktiven user schicken 
11.
msg %user3% /server:localhost /time:120 /w Dieser Computer wird gerade von %user2% benutzt. Sie werden in 120 Sekunden automatisch abgemeldet. 
12.
 
13.
REM aktiven user abmelden 
14.
logoff %SessID% 
15.
)
Leider passiert damit nichts.
Bitte warten ..
Mitglied: DerWoWusste
LÖSUNG 15.10.2014, aktualisiert um 17:08 Uhr
Ja, ist kritisch. Wie kritisch, muss jeder selbst sagen, ich würde es sicher nicht gutheißen.
Zum Skript: teste mal als system. Nimm psexec (free download von Microsoft) und starte eine cmd als system. Und zwar so: von einem elevated command prompt aus:
psexec -s -i cmd
->von dort dann Deine Batch aufrufen.
Bitte warten ..
Mitglied: Friesima
15.10.2014, aktualisiert um 17:36 Uhr
Okay psexec war ein phantastischer Tipp. Jetzt habe ich folgendes festgestllt: der code läuft bis Zeile 10 (siehe post oben) einwandfrei unter System. Die Variablen user3 und SessID werden wie gewünscht gesetzt.

beim Aufruf von Zeile 11 und 14 werden die Variablen aber nicht eingesetzt. Ulkigerweise: Lasse ich das Skript zweimal hintereinander laufen werden die Umgebungsvariablen richtig aufgelöst.

Ich habe jetzt probiert vor Zeile 10 einen 10-sekunden timout einzubauen, aber das hilft auch nicht. Es liegt also nicht an der Zeit.

edit:
ich habe das skript jetzt zweimal hintereinander in derselben batch stehen... Jetzt tut es zumindest mal im Command Window. Jetzt mal schauen, wie es aus der Aufgabenplanung heraus aussieht.

edit2:
und es läuft wie gewünscht... Jetzt ist Feierabend!


Vielen Dank für eure (Deine!) Hilfe!
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Windows Server
gelöst RDP Session friert direkt nach Anmeldung ein - suche alternativen RDP-Client (8)

Frage von YotYot zum Thema Windows Server ...

Windows Tools
Zwischenspeicher TS RDP-Verbindung (3)

Frage von Yannosch zum Thema Windows Tools ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...

DSL, VDSL
DSL-Signal bewerten (8)

Frage von SarekHL zum Thema DSL, VDSL ...