tzabbi55
Goto Top

SID per Script auslesen und als Variable einlesen

Hallo liebe Administratoren,

heute schreibe ich mein ersten Post hier.

Ich sitze derzeit an einem kleinen Script um bestimmte Registryeinträge auszulesen.
Dazu benötige ich die SID und habe folgendes Script geschrieben, um sie in eine Datei zu schreiben und diese von der Datei wieder einzulesen:


@echo off
set /p Eingabe=Geben Sie den Benutzernamen ein:
wmic useraccount where (name='%Eingabe%' and domain=de) get sid > sid.txt  
for /F "skip=1" %%x in (C:\Users\%Eingabe%\Desktop\sid.txt) do set sid=%%x  

echo %sid%


pause


Jetzt kommt mein Problem:
Ich bekomme die entsprechende Datei "sid.txt" und wenn es mir die SID in der CMD ausgeben möchte kommt die Antwort:
"echo
ECHO ist eingeschaltet (ON)."

Nun habe ich manuell eine Datei "hey.txt" erstellt und per Copy and Paste den Inhalt der "sid.txt" eingefügt, das Script entsprechend geändert, dass das Script aus dieser Datei die 2. Zeile ausgibt und es funktioniert einwandfrei.

Habe ich irgendwo einen Denkfehler?

Vielen Dank schon im Voraus für Eure Hilfe.
Gruß
tzabbi55

Content-Key: 348445

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

Printed on: April 26, 2024 at 21:04 o'clock

Member: emeriks
Solution emeriks Sep 07, 2017 updated at 08:55:26 (UTC)
Goto Top
Hi,
der Dwenkfehler wird sein, dass der Pfad der SID.txt nicht stimmt.
Warum sollte
wmic useraccount where (name='%Eingabe%' and domain=de) get sid > sid.txt
die Datei "sid.txt" zweifelsfrei auf dem Desktop erstellen?
Versuche mal auch hier den Pfad der Datei vollständig anzugeben:
wmic useraccount where (name='%Eingabe%' and domain=de) get sid > C:\Users\%Eingabe%\Desktop\sid.txt

E.
Mitglied: 133883
133883 Sep 07, 2017 updated at 09:15:19 (UTC)
Goto Top
Wieso umständlich in eine Datei schreiben?? Unnötig!
Dein Problem sind die weiteren Leerzeilen die wmic produziert, die lassen sich aber so umgehen:
@echo off
for /f "tokens=2 delims==" %%a in ('wmic useraccount where name^="%username%" get sid /value') do set "sid=%%a"  
echo %sid%
Fertsch.

Gruß
Member: tzabbi55
tzabbi55 Sep 07, 2017 at 09:15:15 (UTC)
Goto Top
Hey emeriks,

danke für die Idee, ich habe den Dateipfad eingefügt, man sieht auch, dass er die Datei erstellt, allerdings bleibt der Fehler bestehen.

Gruß
tzabbi55
Member: tzabbi55
tzabbi55 Sep 07, 2017 at 09:17:49 (UTC)
Goto Top
Hey Oneplus,

die Idee hatte ich auch schon, allerdings zeigt er, wenn ich den Code so in die Batch schreibe nur eine leere CMD an.

Gruß
tzabbi55
Mitglied: 133883
Solution 133883 Sep 07, 2017 updated at 09:26:03 (UTC)
Goto Top
Zitat von @tzabbi55:
die Idee hatte ich auch schon, allerdings zeigt er, wenn ich den Code so in die Batch schreibe nur eine leere CMD an.
Nope, funktioniert einwandfrei!! Funktioniert so nur wenn es in eine Batch geschrieben wird, wird es direkt auf der Konsole ausgeführt müssen stattdessen die doppelten durch einfache Prozentzeichen verwendet werden!

Geht so schon eh und jeh, du machst also offensichtlich etwas grundlegend falsch.

Guckst du hier:

screenshot
Member: tzabbi55
tzabbi55 Sep 07, 2017 at 10:22:26 (UTC)
Goto Top
Ok nach ca. 3 Minuten bekomme ich die SID zurück. Das ist allerdings zu lang. Gibt es noch eine andere Lösung?
Mitglied: 133883
Solution 133883 Sep 07, 2017 updated at 10:38:05 (UTC)
Goto Top
Zitat von @tzabbi55:

Ok nach ca. 3 Minuten bekomme ich die SID zurück. Das ist allerdings zu lang. Gibt es noch eine andere Lösung?
What??? face-big-smileface-big-smile Das geht hier selbst auf einem Raspi mit Windows in unter einer Sekunde! Machst du das auf nem 386er?? Kauf dir einen schnelleren Rechner! Oder nimm gleich Powershell:
(New-Object System.Security.Principal.NTAccount("DEINUSERNAME")).Translate([System.Security.Principal.SecurityIdentifier]).Value  
Mitglied: 133883
Solution 133883 Sep 07, 2017 updated at 10:48:44 (UTC)
Goto Top
Ansonsten hier noch was in Batch
@echo off
for /f "tokens=2" %%a in ('whoami /user /nh') do set "sid=%%a"  
echo %sid%

Und natürlich wie immer auf einem Server mit dem Oldtimer dsquery
dsquery * -filter "&(objectcategory=user)(samaccountname=maxmuster)" -attr objectsid  
Member: tzabbi55
tzabbi55 Sep 08, 2017 at 08:00:06 (UTC)
Goto Top
Danke face-smile