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

Windows 2k3, RDP-Abmeldung via Script

Frage Microsoft Windows Server

Mitglied: d4shoerncheN

d4shoerncheN (Level 2) - Jetzt verbinden

06.08.2012, aktualisiert 11:25 Uhr, 7016 Aufrufe, 25 Kommentare, 1 Danke

Hallo, Community.

Es kommt bei uns häufiger vor, dass sich ein bestimmter User auf unserem TSE nicht ordnungsgemäß abmeldet und einfach nur die Verbindung trennt.

Dies führt zu keiner korrekten Durchführung der Datensicherung.

Dem Benutzer wurde schon mehrfach schriftlich, wie auch telefonisch, mitgeteilt wie er sich abzumelden hat. Allerdings bringt dies alles nichts - reine Gewohnheit, vergessen, oder einfach nicht zu verstehen!? Keine Ahnung.

Aus diesem Grund möchte ich nun ein Script, welches einen bestimmten Benutzer vom TSE abmeldet.

Hier im Forum bin ich auf folgenden Beitrag gestoßen:
Allerdings würde ich das Ganze gerne ohne irgendwelche Zusatzsoftware (in dem Fall xCMD.exe) gelöst bekommen.

Im Technet von Microsoft habe ich etwas gefunden, was sich allerdings auf die Session-ID's bezieht. Auch hier leider nicht wirklich hilfreich.

Hoffe Ihr kennt ein kleines Script, welches ich zu einer bestimmten Uhrzeit via Task ausführen lassen kann - welches dann einen bestimmten Nutzer (anhand des Benutzernamens) abmeldet.

Vielen Dank und

mit freundlichen Grüßen
Euer hoerncheN

NACHTRAG 11:23 Uhr
Die Konfiguration der Terminaldienste, getrennte Verbindungen nach einer gewissen Zeit selbstständig zu beenden ist nicht gewünscht.
Mitglied: Penny.Cilin
06.08.2012 um 11:31 Uhr
Zitat von d4shoerncheN:
Hier im Forum bin ich auf folgenden Beitrag gestoßen:
> http://www.administrator.de/contentid/54387
Allerdings würde ich das Ganze gerne ohne irgendwelche Zusatzsoftware (in dem Fall xCMD.exe) gelöst bekommen.

Im Technet von Microsoft habe ich etwas gefunden, was sich allerdings auf die Session-ID's bezieht. Auch hier leider nicht
wirklich hilfreich.
> http://support.microsoft.com/kb/321705/de

Halli hallo hallöle,

ich bin jetzt nicht der Skriptspezi, aber Du hast durch Deine zwei Links gute Ansätze gefunden. Nimm aus dem ersten Link das Skript und ersetze xcmd.exe durch tdiscon. Man müßte das Skript in sofern anpassen, daß anhand der Session ID die benutzerkennung ermittelt wird und dann die Session des Benutzers getrennt wird.


Gruss Penny.
Bitte warten ..
Mitglied: d4shoerncheN
06.08.2012 um 11:38 Uhr
Hallo,

vielen Dank für die schnelle Antwort.

Man müßte das Skript in sofern anpassen, daß anhand der Session ID die benutzerkennung ermittelt wird und dann die Session des Benutzers getrennt wird.

Da fängt es schon an...
ich bin jetzt nicht der Skriptspezi
Ich leider auch nicht. Um ehrlich zu sein, habe ich vom Scripts in jeglicher Form (abgesehen von PHP etc.) ehr gar keine Ahnung davon.

Gruß
Bitte warten ..
Mitglied: bastla
06.08.2012 um 11:54 Uhr
Hallo d4shoerncheN und Penny.Cilin!

Vielleicht kann ich (auf Basis von Query Session - ich kann das leider nicht selbst testen) mit folgendem Oneliner-Batch (zum direkten Testen in CMD jeweils nur %i anstatt %%i) etwas assistieren:
for /f "tokens=3" %%i in ('query session^|findstr /i "Benutzername"') do tsdiscon %%i
Grüße
bastla
Bitte warten ..
Mitglied: d4shoerncheN
06.08.2012, aktualisiert um 11:59 Uhr
Hallo bastla,

vielen Dank für das Script.
Werde es jetzt mal testen und melde mich gleich zurück...

... wieder da.
Bekomme folgende Fehlermeldung
tsdiscon Getr. Sitzungsname Getr. nicht gefunden

Script wie folgt in der CMD.exe ausgeführt:
 for /f "tokens=3" %i in ('query session^|findstr /i "USER1"') do tsdiscon %i
Gruß
Bitte warten ..
Mitglied: bastla
06.08.2012, aktualisiert um 12:15 Uhr
Hallo d4shoerncheN!

Der Fehlermeldung entsprechend passt die Tokennummer (4) nicht - führe zu Sicherheit bitte
query session>Sessions.txt
aus und poste den Inhalt der "Sessions.txt" unter Verwendung von "<code>"- und "</code>"-Tags.

[Edit] Da ja auch der Name der Session verwendbar sein sollte, kannst Du auch noch
for /f %i in ('query session^|findstr /i "USER1"') do tsdiscon %i
versuchen (wäre vermutlich auch sicherer) ...
[/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: d4shoerncheN
06.08.2012, aktualisiert um 12:34 Uhr
Hallo bastla,

dein Wunsch sei mir Befehl

01.
 SITZUNGSNAME      BENUTZERNAME             ID  STATUS  TYP         GERŽT 
02.
 console                                     0  Verb.   wdcon                
03.
 rdp-tcp                                 65536  Abh”r.  rdpwd                
04.
 rdp-tcp#191       USER1                        5  Aktiv   rdpwd                
05.
 rdp-tcp#175       USER2                        2  Aktiv   rdpwd                
06.
 rdp-tcp#176       USER3                        3  Akti    rdpwd                             
07.
                   USER4                       14  Getr.   rdpwd                
08.
>rdp-tcp#196       Administrator            15  Aktiv   rdpwd   
USER4 ist in dem Fall der Benutzer, der nur getrennt wurde

NACHTRAG
for /f %i in ('query session^|findstr /i "USER4"') do tsdiscon %i
Erhalte dann folgendes
C:\>tsdiscon USER4 
Sitzungsname USER4 nicht gefunden
Bitte warten ..
Mitglied: bastla
06.08.2012, aktualisiert um 12:34 Uhr
Hallo d4shoerncheN!

Wie schon vermutet, kann Token 4 natürlich nicht funktionieren - mit 3 sollte es gehen (wobei ich aber trotzdem den Sitzungsnamen bevorzugen würde) ...
[Edit] Blödsinn - 4 hatte ich ja ohnehin nicht verwendet - trotzdem sollte es mit 3 funktionieren [/Edit]
Sitzungsname USER4 nicht gefunden
ist strange, da ja nach "USER1" gefiltert wird - für
query session|findstr /i "USER1"
sollte das Ergebnis eigentlich so aussehen:
 rdp-tcp#191       USER1                        5  Aktiv   rdpwd               
und daraus müsste dann
tsdiscon rdp-tcp#191
resultieren ...

Grüße
bastla
Bitte warten ..
Mitglied: d4shoerncheN
06.08.2012 um 12:36 Uhr
Hallo, bastla.

Sorry - hier muss ich meinen Fehler eingestehen.
ist strange, da ja nach "USER1" gefiltert wird - für
Habe natürlich USER4 genommen, um es der Tabelle anzupassen.

Wenn ich folgendes eingebe, bekomm ich nachfolgende Fehlermeldung:
query session|findstr /i "USER4"
USER4 14  Getr.   rdpwd
Gruß
Bitte warten ..
Mitglied: bastla
06.08.2012 um 12:38 Uhr
Hallo d4shoerncheN!

Jaja, die 4 ...

Wenn es nur um getrennte Sitzungen gehen soll, dann so:
for /f "tokens=2" %i in ('query session^|findstr /i "USER4"^|findstr /i "getr"') do tsdiscon %i
Grüße
bastla
Bitte warten ..
Mitglied: d4shoerncheN
06.08.2012, aktualisiert um 12:47 Uhr
Huhu bastla,

so halb hab ich dich schon geknutscht. Das Script scheint soweit zu funktionieren, es erscheint keine Fehlermeldung mehr und er zieht sich die richtige ID.

tsdiscon 14
Allerdings bleibt der Status des Benutzers weiterhin auf "Verbindung getrennt" und verschwindet nicht.
Ich vermute mal, ohne Programmierkenntnisse zu haben, dass ich es mal wie folgt testen sollte:
for /f "tokens=2" %i in ('query session^|findstr /i "USER4"^|findstr /i "getr"') do tsdiscon rdp-tcp#%i
Hat sich erledigt, kann ja auch nicht stimmen!

Gruß
Bitte warten ..
Mitglied: bastla
06.08.2012, aktualisiert um 12:55 Uhr
Hallo d4shoerncheN!

Mit
tsdiscon rdp-tcp#14
- kannst Du auch gleich so testen - dürftest Du eher keinen Erfolg haben - das Beispiel auf der MS-Seite (und ich kann, wie gesagt, leider nicht selbst testen) ist in dieser Hinsicht suboptimal, da Die Sitzungsnummer und die ID jeweils 5 ist ...

[Edit] Da es aber mit "tsdiscon" ja eigentlich um das Trennen von Sessions geht, sind wir vielleicht ohnehin auf dem falschen Dampfer ... [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: d4shoerncheN
06.08.2012 um 12:53 Uhr
Hallo bastla,

- kannst Du auch gleich so testen - dürftest Du eher keinen Erfolg haben
Hatte ich bereits gemerkt, daher auch durchgestrichen oben.

Gruß
Bitte warten ..
Mitglied: Penny.Cilin
06.08.2012 um 12:59 Uhr
Halli hallo Hallöle,

isch werfe da mal qwinsta bzw rwinsta rein, da es sich um RDP-Sessions handelt. Die Syntax ist analog zu tdiscon.


Gruss Penny.
Bitte warten ..
Mitglied: bastla
06.08.2012 um 13:01 Uhr
... und ich habe auf die Schnelle noch einen Thread "Script to log off DISCONNECT terminal services connections" gefunden (komme aber gerade nicht dazu, mir das näher anzusehen) ...

Grüße
bastla
Bitte warten ..
Mitglied: d4shoerncheN
06.08.2012, aktualisiert um 13:12 Uhr
Hey ihr Beiden,

ihr seid die Besten!

Mit
for /f "tokens=2" %i in ('query session^|findstr /i "USER4"^|findstr /i "getr"') do rwinsta %i
funktioniert es wunderbar. Vielen lieben Dank noch einmal.

P.S.: Bastla, muss ich es - wenn ich es als. bat ausführen lasse - wieder %%i nutzen, statt %i?

NACHTRAG
Habe es mit %%i in einer .bat-Datei getestet. Funktioniert wunderbar und auch nur wenn der Benutzer getrennt ist. Perfekt! Freitag kann ich es denn in der Praxis testen.

Gruß
Bitte warten ..
Mitglied: Penny.Cilin
06.08.2012, aktualisiert um 13:14 Uhr
Ja, musst Du

@bastla:
Könnte man dies evtl. so erweitern, daß auch auf einem englischen Sysstem läuft.
D.h. Abfrage der Sprache und dann den Befehle zum disconnecten?


Gruss Penny.
Bitte warten ..
Mitglied: d4shoerncheN
06.08.2012 um 13:13 Uhr
Perfekt, danke nochmals.

Somit -> GELÖST!
Bitte warten ..
Mitglied: bastla
06.08.2012 um 14:58 Uhr
Hallo Penny.Cilin!
Abfrage der Sprache und dann den Befehle zum disconnecten?
... oder bilingual anlegen:
for /f "tokens=2" %i in ('query session^|findstr /i "USER1"^|findstr /i "getr disc"') do rwinsta %i
Noch eine Anmerkung: Damit es zB nur den "USER1" und nicht auch einen "USER12" erwischt, könnte noch das Leerzeichen vor und nach dem Usernamen mit geprüft werden:
<code type="plain">for /f "tokens=2" %i in ('query session^|findstr /ic:" USER1 "^|findstr /i "getr disc"') do rwinsta %i
Grüße
bastla
Bitte warten ..
Mitglied: d4shoerncheN
06.08.2012, aktualisiert um 15:13 Uhr
Hallo, bastla.

Werde mein script auch mal so erweitern.
for /f "tokens=2" %%i in ('query session^|findstr /ic:" USER1 "^|findstr /i "getr disc"') do rwinsta %%i
Kann ich, wenn ich es wie folgt abänder, quasi mitloggen?
for /f "tokens=2" %%i in ('query session^|findstr /ic:" USER1 "^|findstr /i "getr disc"') do rwinsta %%i > C:\log.txt
Gruß
Bitte warten ..
Mitglied: Penny.Cilin
06.08.2012 um 15:17 Uhr
Sollte meines Wissens kein Problem darstellen. Tipp Setze vor Ausführung noch ein TIME /T, damit Du weiß wann der Disconnect ausgeführt wurde.


Gruss Penny.
(die Glaskugel ist b.a.w. in Urlaub)
Bitte warten ..
Mitglied: d4shoerncheN
06.08.2012 um 15:23 Uhr
Hey Penny,

Zeit bringt mir in diesem Fall nicht sonderlich viel. Da das Script jeden Freitag um 18:45 Uhr ausgeführt wird, wird natürlich auch die Anmeldung um 18:45 Uhr erfolgen.

Wie bekomm ich es denn hin, dass er das Datum mit in das .txt-File schreibt und immer den neusten Eintrag eine Zeile darunter setzt? Momentan, so wie ich es habe, müsste er ja jedes Mal meine .txt überschreiben.

Gruß
Bitte warten ..
Mitglied: Penny.Cilin
06.08.2012 um 15:33 Uhr
ao hängt er es an das log dran:

 for /f "tokens=2" %%i in ('query session^|findstr /ic:" USER1 "^|findstr /i "getr disc"') do rwinsta %%i >> C:\log.txt


Gruss Penny.
Bitte warten ..
Mitglied: d4shoerncheN
06.08.2012 um 15:35 Uhr
Zitat von Penny.Cilin:
ao hängt er es an das log dran:

 for /f "tokens=2" %%i in ('query session^|findstr /ic:" USER1 
> "^|findstr /i "getr disc"') do rwinsta %%i >> C:\log.txt


Gruss Penny.
Ups, ein > zu wenig. Stimmt.

Gruß
Bitte warten ..
Mitglied: Holla
13.08.2012 um 10:32 Uhr
Hallo hoerncheN,

alternativ zum Script kann man den TS auch so konfigurieren, dass er nach einer definierten Zeit der Inaktivität eine Zwangstrennung bzw. Abmeldung durchführt.

Gruß
Holla
Bitte warten ..
Mitglied: d4shoerncheN
15.08.2012 um 09:04 Uhr
Hallo, Holla.

Vielen Dank für deine Antwort, wie oben aber von mir beschrieben:
Die Konfiguration der Terminaldienste, getrennte Verbindungen nach einer gewissen Zeit selbstständig zu beenden ist nicht gewünscht.
ist dies nicht gewünscht.

Gruß
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows 7
Windows 7 RDP-Port wird nicht abgehört (8)

Frage von cramtroni zum Thema Windows 7 ...

Windows 10
Windows 10 RDP Verbindung Stürzt immer ab (1)

Frage von freelancer85 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
Suche passender Treiber (12)

Frage von stolli zum Thema Windows Server ...

Peripheriegeräte
Wlan stört Funkmaus (11)

Frage von Falaffel zum Thema Peripheriegeräte ...

Peripheriegeräte
gelöst USB Festplatte verliert Laufwerksbuchstabe (9)

Frage von cese4321 zum Thema Peripheriegeräte ...