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

Terminal Server Force Logoff nach Ablauf der Anmeldezeit

Frage Microsoft Windows Server

Mitglied: 73329

73329 (Level 1)

17.11.2009, aktualisiert 15:37 Uhr, 3931 Aufrufe, 5 Kommentare

Die Anmeldezeiten die Microsoft zur Verfügung stellt sind ja schön und gut, nur wie immer nicht ganz fertig gedacht…

Problem:
User meldet sich an einem W2k3 TS an wobei er dies nur zwischen 07:00 bis 14:00 darf. Ist er aber ab 14:00 immer noch angemeldet kann er uneingeschränkt weiterarbeiten.

Ziel:
User die um 14:00 immer noch angemeldet sind sollen automatisch abgemeldet werden (schön wäre eine Gnadenfrist von weiteren 5min mit einer Nachricht – muss aber nicht sein!). Der kniff an der ganzen Sache ist, dass es spezialuser geben könnte die länger arbeiten wollen und somit kommt ein „globaler“ logoff oder shutdown nicht in frage.


Meine Infos die ich Zusammengeragen habe, jedoch noch nicht so funktionieren wie ich will:

- net accounts /forcelogoff:5
Ergebnis: User kann weiterarbeiten (selbst wenn der befehl mit /domain erweitert wird). Was steckt hinter dem Befehl?!

- Skript das erst die angemeldeten User Checkt, die Erlaubte anmeldezeit prüft und einen Logoff absetzen würde:
(Meine Domäne: TestDom)
01.
@echo off 
02.
 
03.
rem Wochentag bestimmen 
04.
FOR /F "tokens=1,2,3 delims=." %%a in ('echo %date%') do set yy=%%c & set mm=%%b & set dd=%%a 
05.
 
06.
set /a "TwoDigitYearMax=2038%%1000" 
07.
if 1%yy% LSS 200 if 1%yy% LSS 1%TwoDigitYearMax% (set yy=20%yy%) else (set yy=19%yy%) 
08.
set /a dd=100%dd%%%100,mm=100%mm%%%100 
09.
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,dow=153*m+2 
10.
set /a dow=dow/5+dd+y*365+y/4-y/100+y/400-2472630,dow%%=7,dow+=1 
11.
 
12.
If %dow% equ 1 set "WoTa=Montag" 
13.
If %dow% equ 2 set "WoTa=Dienstag" 
14.
If %dow% equ 3 set "WoTa=Mittwoch" 
15.
If %dow% equ 4 set "WoTa=Donnerstag" 
16.
If %dow% equ 5 set "WoTa=Freitag" 
17.
If %dow% equ 6 set "WoTa=Samstag" 
18.
If %dow% equ 7 set "WoTa=Sonntag" 
19.
 
20.
rem eigentlicher Logoff Skript 
21.
for /f "skip=1 delims=\ tokens=2" %%i in ('psloggedon.exe -x -l ^| findstr "TestDom"') do ( 
22.
	echo Username: %%i 
23.
	for /f "tokens=3 delims= " %%w in ('net user %%i /domain ^| findstr /i "%WoTa%"') do ( 
24.
		if /i "%%w" == "%WoTa% 07:00 - 14:00" echo shutdown /a /f /t 30 
25.
26.
	echo Naechster Benutzer 
27.
)
Das Problem ist, dass nur 1 angemeldeten User angezeigt wird. Hab ich eventuell noch einen Fehler in der Schlaufe?

- Force Disconnect via GP
Einfach nur unbrauchbar! Trennt nur die SMB verbindungen und meldet den Benutzer nicht automatisch ab!!!

- Logonskript für den User der sich am TS anmeldet, das einen Geplanten Task hinzufügt der um 14:00 gestartet wird. Im Skript würde so was stehen wie:
01.
if C:\Dokumente und Einstellungen\User1\spezial.txt exist goto exitt 
02.
logoff 
03.
:exitt 
04.
exit
Wurde noch nicht getestet da das Ziel ist das ganze über die Anmeldezeiten zu steuern und nicht mit einem Textfile dass man immer erstellen muss für spezialuser die länger arbeiten wollen. (wäre aber eine denkbare Notlösung…)


Soviel zu meinen vorarbeiten…
Mir ist eigentlich alles recht was die Lösungsansätze betrifft– verstekte GPO‘s, DOS- VBS- PS-Skripts, alles…


MERCI
Mitglied: DerWoWusste
17.11.2009 um 23:18 Uhr
Ich hab zwar zu diesem sicher uralten und 100fach irgendwie gelösten Problem gerade keinen Link parat, aber immerhin ein Skript, das funktionieren solte und open source ist.
http://sourceforge.net/projects/trbdk3netlogoff/
Bitte warten ..
Mitglied: 73329
18.11.2009 um 11:30 Uhr
Merci für dein Feedback, werde ich gleich ausprobieren...
Bitte warten ..
Mitglied: 73329
18.11.2009 um 14:50 Uhr
Könntest du mir vieleicht kurz sagen wozu und was für Werte auf den Zeilen 4-6 gesetzt werden muss?
01.
' declare the required variables 
02.
Dim arrbytLogonHours(20) 
03.
Dim arrintLogonHoursBits(167) 
04.
Set objUser = GetObject("LDAP://" & strUserDN)
Wenn ich das skript einfach so laufen lasse kriege ich einen Fehler (Debug mit "VbsEdit"):
Line: 24
Column: 1
Error: Die Verzeichniseigenschaften wurden nicht im Cache gefunden.
Code: 8000500D
Source: Active Directory


MERCI
Bitte warten ..
Mitglied: 73329
18.11.2009 um 15:12 Uhr
...zudem sieht es aus als ob das skript nicht für TerminalServer geschrieben wurde, da der Computername abfragt und nicht die session ID des Users. Trotzdem ist es auf jeden fall ein guter anhaltspunkt auf dem ich aufbauen kann.

Falls du noch weitere lösungen kennst - seeehr gerne :D
Bitte warten ..
Mitglied: DerWoWusste
18.11.2009 um 18:20 Uhr
Zur weiteren Hilfe bin ich nicht firm genug. Ich hab dies Skript nur in der Hinterhand behalten, falls ich es mal brauchen sollte. Im ReadMe bietet der Programmierer eine Mailadresse für Hilfestellung an.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...