Top-Themen

Aktuelle Themen (A bis Z)

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

Logoff RDP Session mit VBScript?

Frage Entwicklung VB for Applications

Mitglied: Micha1982

Micha1982 (Level 1) - Jetzt verbinden

11.12.2008, aktualisiert 12.12.2008, 10579 Aufrufe, 5 Kommentare

Hallo Zusammen,

ich hoffe ihr könnt mir bei folgendem Problem weiterhelfen.

Ich möchte via Task Scheduler und VBscript ein zeitgesteuertes Logoff aller RDP Sessions vornehmen.

Über den Befehl

C:\>qwinsta /server:localhost
SESSIONNAME USERNAME ID STATE TYPE DEVICE
console user1 0 Active wdcon
rdp-tcp 65536 Listen rdpwd
rdp-tcp#18 user2 1 Active rdpwd

werden mir die angemeldeten Benutzer aufgelistet.

mit dem Befehl rwinsta /server:localhost <ID> können diese dann beendet werden.
Jedoch würde ich dies gerne per VBScript durchführen ohne den rwinsta Befehl zu benutzen. Somit stellt sich mir die Frage über welche Klasse / welches Objekt ich das in VBScript (evetuell über WMI) realisieren kann?
Die WMI Klassen die ich bisher ausprobiert habe geben mir nur die Filesystem Sessions wieder (Computerverwaltung->Freigegebene Ordner->Sitzungen).

Grüße

Michael
Mitglied: problemsolver
11.12.2008 um 11:39 Uhr
Hallo Micha,

ich kann Dir meine Lösung geben, die ich iwann mal gestrickt habe. Ist eine Batchdatei und erfüllt deine Anforderungen auf jeden Fall.

Also hier ist der CODE: (Erläuterungen innerhalb der Batchdatei)
01.
@echo off 
02.
setlocal 
03.
:: SERVERNAME ANGEBEN!!! 
04.
set RDPSERVER=CITRIX2 
05.
:: Zum Abmelden von allen Sitzungen (auch Citrix) nur nach "#" suchen lassen!) 
06.
set "SUCHESITZUNGSTYP=rdp-tcp#" 
07.
 
08.
echo !!!ACHTUNG! VORSICHT!!! 
09.
echo Alle Sitzungen vom Typ "%SUCHESITZUNGSTYP%" werden jetzt vom Server "%RDPSERVER%" abgemeldet!!! 
10.
echo Zum Abbrechen STRG+C druecken!! 
11.
pause 
12.
 
13.
For /F "usebackq tokens=1,2,3,4,5 delims= " %%i IN (`qwinsta /SERVER:%RDPSERVER% ^| find "%SUCHESITZUNGSTYP%"`) DO call :process %%k %%l %%m %%n %%o 
14.
pause 
15.
goto eof 
16.
 
17.
:process 
18.
@rem Die Sitzungsnummer steht immer 2 Spalten vor dem Connectiontyp 
19.
if "%5" EQU "rdpwd" set sitzungsnummer=%3 
20.
if "%4" EQU "rdpwd" set sitzungsnummer=%2 
21.
if "%3" EQU "rdpwd" set sitzungsnummer=%1 
22.
@rem if "%sitzungsnummer%" NEQ "" echo %sitzungsnummer% 
23.
if "%sitzungsnummer%" NEQ "" rwinsta %SITZUNGSNUMMER% /SERVER:%RDPSERVER% 
24.
set SITZUNGSNUMMER=
Bei Fragen bitte melden, ansonsten daran denken den Beitrag als gelöst zu markieren

Gruß

Markus
Bitte warten ..
Mitglied: Micha1982
11.12.2008 um 19:33 Uhr
Hallo Markus,

erstmal vielen Dank für deinen Lösungsvorschlag.

Ich werde den Weg als Alternativlösung in Betracht ziehen. Momentan bevorzuge ich eine VBScript Variante, da das Logoff der Sessions in ein bestehendes Cleanup Script (vbs) implementiert werden soll.

Somit müsste ich dann in Zukunft nur ein Skript pflegen. Sollte dies aber aus vbs heraus nicht anders gehen, so werde ich deine Lösung via cmd und Parametern verweden.

Grüße Micha
Bitte warten ..
Mitglied: problemsolver
12.12.2008 um 08:50 Uhr
Hallo,

einfach die Batch in das gleich Verzeichnis des VBScriptes legen.

01.
set fs = CreateObject("Scripting.FilesystemObject") 
02.
scriptname = Wscript.ScriptFullName 
03.
scriptpath = fs.getparentfoldername(scriptname) 
04.
set fs = Nothing 
05.
Set WshShell = WScript.CreateObject("WScript.Shell") 
06.
WshShell.Run chr(34) &  scriptpath & "\shot.bat" & chr(34), 0, True 
07.
Set WshShell = Nothing
Den Bereich bei WshSehll.Run (besonders die Optionen) schau Dir noch mal an. Momentan würde die Batch "unsichtbar" ausgeführt werden. (vbHide = 0, vbNormalFocus = 1)

Mit
01.
WshShell.Run chr(34) &  scriptpath & "\shot.bat" & chr(34), 1, True
führt er die z.B. shot.bat sichtbar aus.

Gruß und noch viel Erfolg

Markus
Bitte warten ..
Mitglied: user217
12.12.2008 um 11:58 Uhr
und wenn du einfach in der Terminaldienstekonfiguration einstellst das sich die im leerlauf befindlichen sitzung nach x minuten abmelden?
Bitte warten ..
Mitglied: Micha1982
12.12.2008 um 16:21 Uhr
Zitat von user217:
und wenn du einfach in der Terminaldienstekonfiguration einstellst das
sich die im leerlauf befindlichen sitzung nach x minuten abmelden?

Das ist natürlich der eleganteste Weg. Wo wird denn diese Option eingestellt (Server ist in einer Domäne)?
Ansonsten habe ich es bisher nur geschafft mir die aktiven Session (Konsole und RDP) mit folgendem Code anzeigen zu lassen:

01.
strComputer = "." 
02.
 
03.
Set objWMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
04.
 
05.
Set colSessions = objWMI.ExecQuery _ 
06.
    ("Select * from Win32_LogonSession Where LogonType = 2 OR LogonType = 10") 
07.
 
08.
If colSessions.Count <> 0 then 
09.
   For Each objSession in colSessions 
10.
     If objSession.LogonType = 2 Then 
11.
       WScript.Echo "Console" 
12.
     Else 
13.
       WScript.Echo "RDP/Terminal Server" 
14.
     End If 
15.
     Set colList = objWMI.ExecQuery("Associators of " & "{Win32_LogonSession.LogonId=" & objSession.LogonId & "} " & "Where AssocClass=Win32_LoggedOnUser Role=Dependent" ) 
16.
 
17.
     For Each objItem in colList 
18.
       WScript.Echo "User: " & objItem.Name 
19.
       WScript.Echo "FullName: " & objItem.FullName 
20.
       WScript.Echo "Domain: " & objItem.Domain 
21.
     Next 
22.
   Next 
23.
End If 
24.
 
Wenn ich hiermit noch die RDP Sessions töten kann, dann bis ich eigentlich happy...

Danke und Gruß

Micha
Bitte warten ..
Ähnliche Inhalte
Windows 7
Andere Auflösung in RDP Session (Multimonitor)
Frage von RudeRaccoonWindows 71 Kommentar

Hi, ich habe folgendes Problem: Wir arbeiten bei uns mit Remotedesktop Servern. Jetzt habe ich eine Userin die 2 ...

Windows 7
Druckereinstellung in RDP-Session werden nicht vom Client übernommen
Frage von KlKeuschWindows 71 Kommentar

Hallo, ich habe folgende Umgebung: - Windows 7 SP1 - VM (läuft auf MS Server 2008R2 mit Hyper-V) - ...

Windows Server
Anzeige der RDP-Session friert nach Anmeldung ein
gelöst Frage von YotYotWindows Server4 Kommentare

Moin! Ich habe da ein Phänomen, das bereits seit Jahren von vielen beschrieben wird, viele fragen danach, aber so ...

Windows 7
Nur eine (auch getrennte!) RDP Session pro Rechner
gelöst Frage von FriesimaWindows 713 Kommentare

Hallo Administrator.de-Forum, erstmal möchte ich euch allen danken, weil ich hier beim Lesen schon oft Hilfe gefunden habe, und ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 8 StundenWindows 101 Kommentar

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 9 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server12 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...