SID aus TXT auslesen und in Variable einlesen
Hallo,
Ich habe ein VBS-Skript, dass eine TXT ausgibt.
In der TXT stehen dann die User und deren SIDs.
Ich müsste per Batch die TXT einlesen und nur die SID selbst des aktuell angemeldeten Users in eine Variable kriegen.
Format der TXT:
Username : Administrator
SID : S-1-5-21-839522115-842925246-2147074499-500
Profile dir :
Username : ASPNET
SID : S-1-5-21-839522115-842925246-2147074499-1004
Profile dir :
.
.
.
Ohne es zu können müsste es ungefähr zumindest von der Funktionsweise her so gehen:
wo Username: %Username%, dann nächste Zeile, Wert nach SID : in Variable %User-SID%
Tausend Dank,
Bin mal gespannt ob sich jemand vor Bastla meldet^^
Gruß Thomas
Ich habe ein VBS-Skript, dass eine TXT ausgibt.
In der TXT stehen dann die User und deren SIDs.
Ich müsste per Batch die TXT einlesen und nur die SID selbst des aktuell angemeldeten Users in eine Variable kriegen.
Format der TXT:
Username : Administrator
SID : S-1-5-21-839522115-842925246-2147074499-500
Profile dir :
Username : ASPNET
SID : S-1-5-21-839522115-842925246-2147074499-1004
Profile dir :
.
.
.
Ohne es zu können müsste es ungefähr zumindest von der Funktionsweise her so gehen:
wo Username: %Username%, dann nächste Zeile, Wert nach SID : in Variable %User-SID%
Tausend Dank,
Bin mal gespannt ob sich jemand vor Bastla meldet^^
Gruß Thomas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 99510
Url: https://administrator.de/forum/sid-aus-txt-auslesen-und-in-variable-einlesen-99510.html
Ausgedruckt am: 02.04.2025 um 10:04 Uhr
5 Kommentare
Neuester Kommentar
Moin chizophren,
bis bastla erscheint kannst du noch ein wenig folgenden Oneliner vom CMD-Prompt aus abfeuern.
[ ">" ist der Prompt, nicht mit copy&pasten]
Als formatierte Batchzeile sieht dat so aus.
Grüße
Biber
P.S. Und ja, ich habe für jede der drei FOR-Anweisungen immer wieder die Laufvariable %i bzw. %%i verwendet.
Und nein, das bedeutet nicht, dass mir langsam die Variablen ausgehen. Oder dass ich geizig wäre.
bis bastla erscheint kannst du noch ein wenig folgenden Oneliner vom CMD-Prompt aus abfeuern.
>for /f "delims=:" %i in ('findstr /n /v "^$" sids.txt^|find "ASP"') do @for /f %i in ('set /a %i+1') do for /f "delims=: tokens=3" %i in ('findstr /n /v "^$" sids.txt^|find "%i:"') do @echo Set TheSid=%i
Als formatierte Batchzeile sieht dat so aus.
REM Annahme. Sids stehe in Datei sids.txt im aktuellen Verzeichnis
.....
Set "such=ASP"
for /f "delims=:" %%i in ('findstr /n /v "^$" sids.txt^|find /i "%such%"') do (
for /f %%i in ('set /a %%i+1') do (
for /f "delims=: tokens=3" %%i in ('findstr /n /v "^$" sids.txt^|find "%%i:"') do (
@Set TheSid=%%i
)))
set theSid
REM ...das letzte Set war zum Anzeigen der Variable %theSid%
Grüße
Biber
P.S. Und ja, ich habe für jede der drei FOR-Anweisungen immer wieder die Laufvariable %i bzw. %%i verwendet.
Und nein, das bedeutet nicht, dass mir langsam die Variablen ausgehen. Oder dass ich geizig wäre.
Hallo chizophren und Biber!
Da das Thema ja eigentlich schon erledigt ist, nur kurz die Frage: Warum (wenn schon mit Batch fortgesetzt werden soll) nicht einfach die VBS-Ausgabe als CSV (bzw SSV
), zB:
Wenn Du so dann alle Daten in einer Zeile zur Verfügung hast, genügt ein "findstr":
Ansonsten vielleicht noch der Hinweis auf PsGetSid - zu verwenden etwa so:
Grüße
bastla
Da das Thema ja eigentlich schon erledigt ist, nur kurz die Frage: Warum (wenn schon mit Batch fortgesetzt werden soll) nicht einfach die VBS-Ausgabe als CSV (bzw SSV
Administrator;S-1-5-21-839522115-842925246-2147074499-500;
ASPNET;S-1-5-21-839522115-842925246-2147074499-1004;
TestUser;S-1-5-21-839522115-842925246-2147074499-4444;\\Server\Profiles$\TestUser
for /f "tokens=2 delims=;" %%i in ('findstr /c:"%username%" sids.txt') do set "TheSid=%%i"
Ansonsten vielleicht noch der Hinweis auf PsGetSid - zu verwenden etwa so:
for /f %%i in ('C:\Scripts\PsGetSid %username%') do set "TheSid=%%i"
bastla
Hallo,
habe zum gleichen Thema ein Problem.
Leider bin ich nicht so firm, das obige Beispiel zur Lösung meines Problems zu transformieren:
Ich benötige unter WinXP aus der Ausgabe von ipconfig in eine Textdatei ( ipconfig >ipc.txt ) die 3. Zahl der Client-IP-Nr. (sind z.T. ein-,zwei- und dreistellig) als Umgebungsvariable "Raum".
Kann mir da noch mal jemand helfen?
Dank vorab und schöne Grüße,
Ene
habe zum gleichen Thema ein Problem.
Leider bin ich nicht so firm, das obige Beispiel zur Lösung meines Problems zu transformieren:
Ich benötige unter WinXP aus der Ausgabe von ipconfig in eine Textdatei ( ipconfig >ipc.txt ) die 3. Zahl der Client-IP-Nr. (sind z.T. ein-,zwei- und dreistellig) als Umgebungsvariable "Raum".
Kann mir da noch mal jemand helfen?
Dank vorab und schöne Grüße,
Ene
Hallo ee2592 und willkommen im Forum!
"Gleiches Thema" würde ich es vielleicht nicht nennen, aber anyhow - mit
solltest Du aus der ersten IP-Adresse (falls ein Rechner mehrere NW-Karten hat) die 3. Stelle erhalten.
Grüße
basttla
"Gleiches Thema" würde ich es vielleicht nicht nennen, aber anyhow - mit
@echo off & setlocal
set Raum=
for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr /i "IP-Adr"') do for /f "tokens=3 delims=." %%r in ("%%i") do if not defined Raum set "Raum=%%r"
Grüße
basttla