8377
Goto Top

skriptgesteuert Benutzer kontext wechseln?

Hallo alle zusammen,

ist es möglich, aus einem Batchskript heraus z.B. ein zweites zu starten, welches unter einem anderen Benutzerkontext läuft, nämlich dem des gerade angemeldeten?
Hintergrund ist der, dass ich ein per Taskplaner (unterm Admin-Account) ausgeführtes Batchskript dazu bringen möchte, im Fehlerfall dem gerade angemeldeten User z.B. ein Komandozeilenfenster mit einer Warnung auf den Desktop zu zaubern. Mit 'runas' geht's nicht, da 'runas' die Eingabe des Benutzerpassworts erwartet.
Wär' schön, wenn mir da einer weiterhelfen könnte. Hab' auch schon alles möglich ausprobiert, bisher leider mit wenig Erfolg.

Grüße Thomas

Content-Key: 80052

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

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

Member: AndreasHoster
AndreasHoster Feb 06, 2008 at 12:26:12 (UTC)
Goto Top
Wie wäre es mit einem einfachen Net Send?

Und nein, das gibt es nicht. Wäre auch der Traum jedes Trojaner Programmierers, mal so kurz aus dem Guest Account auf den angemeldeten Admin wechseln und das noch ohne Passworteingabe.
Mitglied: 8377
8377 Feb 06, 2008 at 13:18:46 (UTC)
Goto Top
das hast du falsch verstanden; es geht nicht darum, auf den Admin zu wechseln. Das Skript läuft bereits unter dem Admin-Account. Um aber dem angemeldeten Benutzer die Warnung sichtbar zu machen, sollte die Warnung unter dessen Account gestartet werden, d.h. ich muss auf welche auch immer geartete Weise den Account wechseln.
Net Send geht nicht, da ja - wie bekannt- der Nachrichtendienst seit SP2 standardmäßig deaktiviert ist und ich diesen auch nicht auf hunderten von Rechnern aktivieren kann (noch will)

Gruß
Member: AndreasHoster
AndreasHoster Feb 06, 2008 at 16:27:18 (UTC)
Goto Top
Nein, habe ich nicht, aber das Feature, das Du Dir wünscht, würde ein solches Sicherheitsloch reißen.

Workaround:
Neuen Dienst anlegen, Berechtigung LocalSystem, mit Berechtigung zum Datenaustausch zwischen Dienst und Desktop.
Dieser Dienst ließt beim Starten eine Datei aus und zeigt den Inhalt an (Batch-Datei die Notepad aufruft im einfachsten Fall, die mit srvany.exe zum Dienst machen).

Dann aus dem anderen Skript die Datei mit der Message füllen und den neuen Dienst starten.
Member: HalloIch
HalloIch Feb 07, 2008 at 10:45:16 (UTC)
Goto Top
Hallo Thomas,
verstehe ich das richtig: es läuft ständig (oder bei der Anmeldung ?) ein Batch-File (BAT oder CMD), das bei einem bestimmten Ereignis (oder immer?) eine Meldung an den Nutzer geben soll ?
Falls ja, alle aus der Batch gestarteten Prozesse erben die Rechte, mit der das Batch gestartet wurde. Notepad oder andere Programme, die auf den Standard-Dialog für das Öffnen und Speichern von Dateien zurückgreifen verbieten sich dann von selbst.
(Hier können Dateien im 'Öffnen'-Dialog kopiert, umbenannt, gelöscht werden.)

Unklar ist mir allerdings, warum die Meldung im Benutzerkontext ausgegeben werden muss.

Falls das zwingend so sein muss, dann weiss ich dafür leider keine Lösung!

Mein Vorschlag:
- nimm eine Lösung, bei der die Rechte keine Rolle spielen.
Zum Beispiel:
- erstelle eine Text-Datei WARNUNG.VBS, schreibe (mit Notepad) rein
WScript.Echo "Dies ist eine Warnung"

- dann rufe diese in Deinem Batch auf mit
wscript WARNUNG.VBS (bzw. wscript %ganzerPfad%\WARNUNG.VBS

Falls Dir dieses weiterhilft, so kann das auch noch verfeinert werden.
Mitglied: 8377
8377 Feb 08, 2008 at 12:35:26 (UTC)
Goto Top
danke erst mal euch beiden. Es ist ein Batch, was eine Client Firewall konfiguriert bzw. diese Konfiguration aktualisiert, soweit eine aktualisierte Konfiguration auf einer Website (von der diese dann auch heruntergeladen wird) vorliegt. Das Batch läuft (aus verschiedenen Gründen) mit administrativen Rechten. Ist nun ein normaler Benutzer angemeldet, so läuft es ja im Hintergrund, er sieht also nichts davon. Im Falle etwas schiefgeht, was z.B. zur folge hätte dass die FW danach inaktiv wäre, muss dieser Benutzer also davon informiert werden. Da das Skript im Hintergrund läuft, habe ich nun das Problem, es dem angemeldeten Benutzer ja irgendwie sichtbar machen zu müssen. Wie du schon sehr richtig gesagt, läuft es aber unter einem anderen Kontext, er kriegt die Warnung also nie zu sehen. Deshalb habe ich gedacht, das Batch startet zum Beispiel ein zweites, welches dann aber eben unter dem Kontext des gerade angemeldeten Benutzers läuft, so dass das Warnfenster nun für ihn sichtbar werden kann.
Werde jetzt eure beiden Lösungen beide mal durchorgeln, hatte es schon befürchtet, dass man evt. einen Dienst dafür registrieren muss. Aber vielen Dank erstmal, werde euch über meine Erfolge auf dem Laufenden halten.