bodyparts
Goto Top

Tool bzw Batch für Verwaltung eines TS Windows 2000

Hallo,

ich müsste einem normalen Windows User erlauben ein Tool oder halt eine Batch zu starten welches das Anmelden am TS für alle anderen User verhindert und dann alle bestehenden Verbindungen trennt, ausser die eingende.

Hintergrund ist, dass ein Programm nicht läuft wenn sich User Angemeldet haben.

Die Umgebung ist eine Windows Terminal Server 2000 in einer AD Umgebung.

Habt ihr eine Idee?

Gruß

Content-Key: 145768

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

Printed on: April 23, 2024 at 19:04 o'clock

Mitglied: 60730
60730 Jun 28, 2010 at 07:55:27 (UTC)
Goto Top
moin,

ja - über umwege ginge das (sogar ohne die Sicherheit vom OS anzupacken)

nein - ist kontraproduktiv.

Ein TS ist ja schließlich dazu gedacht, das gleichzeitig viele an Ihm arbeiten können.

Von daher - warum läuft das Programm auf dem Ts und warum läuft es nicht, wenn andere User angemeldet sind.
wäre der richtige Weg, um eine lösung zu finden.

Gruß
Member: bodyparts
bodyparts Jun 28, 2010 at 08:35:17 (UTC)
Goto Top
moin Timo,

Das Programm ist eine Produktionssteuerung und zu einem Zeitpunkt X muss der Mitarbeiter, der die Daten pflegt, eine Simulation der Daten starten. Dies geht nur, wenn keiner am TS angemeldet ist. Somit müssen alle Verbindungen getrennt werden, ausser die vom Mitarbeiter "Maxmustermann". Evtl könnte man noch eine Warnung versenden und dann kappen.

Gruß
Mitglied: 60730
60730 Jun 28, 2010, updated at Oct 18, 2012 at 16:42:39 (UTC)
Goto Top
moin,

gibt es ein fester Zeitfenster?
Wenn ja -im Prinzip geht das dann so:

Eine Batch, die via Taskplaner mit administrativen Rechten zum Zeitpunkt gestartet wird - fragt ab - ob bestimmte Parameter passen.

Zum Bleistift sowas in der Art:
if exist c:\service.ini goto service
goto end
:service
:end
exit /b

Und der Rest - da bist du bestimmt drauf gekommen, weil ich diese Frage beantwortet habe face-wink.

Und da findest du auch eigentlich den Teil für die Sprungmarke "Service"
for /f "skip=1 tokens=2,3" %%a in ('"query session"') do (  
if not "%%a"=="65536" if not "%%a"=="0" if not /i "%%a"=="Max.Mustermann"  msg %%b Bitte in 5 minuten abmelden  
)
ping -n 300 >nul

for /f "skip=1 tokens=2,3" %%a in ('"query session"') do (  
if not "%%a"=="65536" if not "%%a"=="0" if not /i "%%a"=="Max.Mustermann"  msg %%b die Zeit ist um && logoff %%a  
)

Jetzt mußt du nur noch den "bestimmten" Parameter bestimmen, der das steuert und diesen mit einem der vielen pilgerwege nach Rom setzen.

Idealerweise fragst du dann beim loginscript ab - ob der Parameter gesetzt ist und machst da ähnliches - aber da sollte wahrscheinlich ein echo do not use programm yxz reichen.

Gruß
Member: bodyparts
bodyparts Jun 28, 2010 at 12:11:47 (UTC)
Goto Top
okay..

Timo, aber wie trenne ich eine rpd Session per script?
Das Ausschliessen kann ich jetzt ja per for schleife realisieren.
Ich werde überlegen, ob ich dies jeden Morgen laufen lasse.
Zur Zeit sperrt eine Sitzung halt ein Programm welches Daten neu verarbeiten muss, dann ruft der Kollege an und bitte mich den Server zu rebooten.

Gruß
Mitglied: 60730
60730 Jun 28, 2010 at 12:26:20 (UTC)
Goto Top
Zitat von @bodyparts:
okay..

Timo, aber wie trenne ich eine rpd Session per script?

wie du es machst, weiß ich nicht - aber wenn du meinen Weg nehmen willst - einfach per copy & paste übernehmen und in der AD den vom logoff auszuschliessenden User in Max.Mustermann umbenennen .
Alternativ könntest du auch im script den Max.Mustermann gegen den User der drin bleiben soll tauschen.
Das Ausschliessen kann ich jetzt ja per for schleife realisieren.
schau mal genau hin, was hinter && steht...
Und dann auch mal, warum nicht der User %%a -sondern die Session also %%b das msg bekommt.
Der soll sich ja nur vom TS abmelden - nicht von seinem Client - außer der Client ist ein Diskless System - das ohne TS garnix kann - aber auch dazu fehlen ja Infos um das nicht doch ausschliessen zu können.

Ich werde überlegen, ob ich dies jeden Morgen laufen lasse.
Dazu schreibst du zu wenig wie die aktualisierung geschieht um dir da einen Tipp geben zu können.
Gruß
zurück.
Member: bodyparts
bodyparts Jun 28, 2010 at 13:17:58 (UTC)
Goto Top
okay, evtl drücke ich mich nicht richtig aus....

wie schliesse ich die Sitzung per Script?
Deine Schleifen sind ja einmal eine Meldung, dass getrennt wird und dann das die Zeit um ist, Meldung oder schon schiessen Befehl?

uppss jetzt sehe ich das "logoff"..... trennt das oder schliesst das?

Gruß

edit: ich weiß halt nicht welche Datei "sperrt"... somit werde ich über den Weg gehen, dass am Beginn des Arbeitstag rstmal alle Sitzungen geschlossen werden. Somit werde ich feststellen, ob es eine alte Sitzung ( älter 24Stunden ) war, oder halt eine aktive.

Obwohl ich über die Userverwaltung alle User trenne die länger als 12 Stunden nicht aktive am TS waren, nur leider sind immer wieder Sitzungen getrennt die eingentlch hätten geschlossen werden müsen.
Mitglied: 60730
60730 Jun 28, 2010 at 13:42:20 (UTC)
Goto Top
Zitat von @bodyparts:
okay, evtl drücke ich mich nicht richtig aus....

wie schliesse ich die Sitzung per Script?
Deine Schleifen sind ja einmal eine Meldung, dass getrennt wird und dann das die Zeit um ist, Meldung oder schon schiessen
Befehl?

uppss jetzt sehe ich das "logoff"..... trennt das oder schliesst das?

Das loggt die User aus.
zum trennen - was wir ja nicht wollen - hätte ich sonst tsdiscon genommen.

edit: ich weiß halt nicht welche Datei "sperrt"...

Naja - die solltest du ja auch selber vom User anlegen

Und wenn der weg erstmal "idiotensicher" ist - dann kannst du ja auch irgendwo ein
change logon /disable
change logon /enable
reinschreiben.

somit werde ich über den Weg gehen, dass am Beginn des
Arbeitstag rstmal alle Sitzungen geschlossen werden. Somit werde ich feststellen, ob es eine alte Sitzung ( älter 24Stunden )
war, oder halt eine aktive.

Obwohl ich über die Userverwaltung alle User trenne die länger als 12 Stunden nicht aktive am TS waren, nur leider sind
immer wieder Sitzungen getrennt die eingentlch hätten geschlossen werden müsen.

jaja - der übliche face-wink
Was glaubst du -für was ich dieses Script gebaut hab - ist bei uns auch nicht anders.
Auch wenn es anders sein sollte....

Gruß
Member: bodyparts
bodyparts Jun 28, 2010 at 14:05:06 (UTC)
Goto Top
okay, jetzt werde ich testen... wird die erste Zeile des "query session" unberücksichtigt? Da steht ja was von Siztungsname usw?
Ich hab mir das mal in eine Datei umgeleitet.

gruß
Mitglied: 60730
60730 Jun 28, 2010 at 14:12:42 (UTC)
Goto Top
Zitat von @bodyparts:
okay, jetzt werde ich testen... wird die erste Zeile des "query session" unberücksichtigt? Da steht ja was von
Siztungsname usw?

können wir uns drauf einigen, dass ich dieses script nicht nur selber geschrieben sondern auch selber benutze und es den Status voll konkret erfolgreich getestet und getüttelt hat?
for /f "skip=1 tokens=2,3" %%a in ('"query session"')
Welchen Felsen in der Brandung könnte denn der fette skipper da umschiffen?
Ich hab mir das mal in eine Datei umgeleitet.
Schön. Kann es sein, dass mir dein Nick irgendwie mit dem Sachverhalt des ich steh auf dem Schlauch und kriegs nur mit viel mühe des antwortenden gebacken in zusammenhang bringe?das war eine rhetorische frage an mich, deren antwort ich kenne

gruß
zurück.
btw: du kannst ruhig den einen verlinkten Beitrag von mir durchlesen und dann einen Haken dran machen, denn mir fehlen jetzt die Worte und die Zeit.