dabrain
Goto Top

Batch Script läuft mit Admin-Rechten, dieses Script ruft per call Befehl eine andere bat auf. Diese soll jedoch mit lokalen Rechten aufgerufen werden

Hallo zusammen,

folgende Herausforderung:

(Beispiel)
Unser Azubi soll ein Tool mittels Batch realisieren. Dieses soll ein Auswahlmenü bekommen. Das klappt schon mal.
Da dieses Tool auch sfc /scannow ausführt, benötigt es Adminrechte. Beim starten des Tools wird ein Adminuser benötigt. Bis hierhin läuft alles wunderbar.
Wenn man aber z.B. ein "net use Z: \\server\user\%username%" ausführt, soll hier nicht der Adminuser genommen werden, sondern der angemeldete User am Rechner.

Hier konnte ich unserem Azubi auch nicht weiter helfen, da auch ein call Aufruf hier mit Adminrechten ausgeführt wird bzw. das zweite cmd Fenster die Befehle mit Adminrechten ausführt.

Ich hoffe es einigermaßen verständlich geäußert zu haben. Sind für jeden Tipp dankbar.

Euer DaBrain

Content-Key: 430337

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

Printed on: April 18, 2024 at 13:04 o'clock

Member: Kraemer
Kraemer Mar 20, 2019 at 19:23:22 (UTC)
Goto Top
Moin,

seit wann lässt man Azubis arbeiten erledigen, die man selbst nicht drauf hat?

runas

Gruß
Member: DaBrain
DaBrain Mar 21, 2019 at 07:12:34 (UTC)
Goto Top
Moin auch,

der Azubi hat sich was mit batchscripting gewünscht.

Bezüglich dem "runas" muss hier der User explizit vorgegeben werden. Die Abfrage mit %username% ergibt den Adminuser mit dem die Console gestartet worden ist, oder liege ich hier falsch?

Grüße
DaBrain
Member: rubberman
rubberman Mar 21, 2019 at 09:41:22 (UTC)
Goto Top
Also, so ziemlich alles was du abgesehen von runas versuchst, wird nicht funktionieren um einen Prozess unter einen anderen Benutzer laufen zu lassen. CALL erzeugt nicht einmal einen neuen cmd.exe Prozess und ist somit von vorn herein zum Scheitern verurteilt. Runas selbst wird den User und das Passwort des Benutzers haben wollen für den der neue Prozess gestartet werden soll, was die anschließende Auflösung von %username% natürlich ad absurdum führt. Das ist also alles nicht zielführend.
Ich vermute mal dass man mit einer Kaskade von WMIC Aufrufen an den an der Workstation angemeldeten Benutzer kommt. Welche WMI oder CIM Klassen im Einzelnen verarbeitet werden müssen, findet Google sicherlich für dich. Anderenfalls kann ich mir das heute Abend mal ansehen, wenn ich zu Hause bin.

Grüße
Steffen
Member: rubberman
Solution rubberman Mar 21, 2019 updated at 17:21:28 (UTC)
Goto Top
@echo off &setlocal
for /f "delims=" %%i in ('wmic PATH Win32_ComputerSystem GET UserName /value') do for /f "delims=" %%j in ("%%i") do set "loggedInUser=%%~nxj"  
echo %loggedInUser%
pause
Mal testen ...

So, und nun kommt NET USE und legt für welches Konto das Netzlaufwerk an? Hmm...

Steffen
Member: DaBrain
DaBrain Mar 22, 2019 at 11:56:13 (UTC)
Goto Top
Hi rubberman,

werde ich am Montag mal mit dem Azubi testen.
Werde berichten face-wink

Grüße
Georg