Per batch ein Userprofile löschen
Hallo,
ich möchte per batch in der registry ein userprofil löschen und mein Problem ist den übergeordneten Eintrag zu finden.
Was ich habe ist das:
reg QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /s | findstr /I paul
ProfileImagePath REG_EXPAND_SZ C:\Users\paul
Was ich aber brauche ist der übergeodrnete Schlüssel:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-1169707632-819927519-313593124-35345
Hat da jemand eine Idee?
Grüße
mabe12
ich möchte per batch in der registry ein userprofil löschen und mein Problem ist den übergeordneten Eintrag zu finden.
Was ich habe ist das:
reg QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /s | findstr /I paul
ProfileImagePath REG_EXPAND_SZ C:\Users\paul
Was ich aber brauche ist der übergeodrnete Schlüssel:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-1169707632-819927519-313593124-35345
Hat da jemand eine Idee?
Grüße
mabe12
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 19.01.2012 um 16:53:57 Uhr
Verschoben von "Windows"-"Userverwaltung" nach "Batch & Shell"
Content-ID: 179135
Url: https://administrator.de/forum/per-batch-ein-userprofile-loeschen-179135.html
Ausgedruckt am: 05.04.2025 um 08:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo mabe12 und willkommen im Forum!
Versuch es mal so:
Grüße
bastla
Versuch es mal so:
@echo off & setlocal
set "Name=paul"
set "Key=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
set "Search=True"
for /f "delims=" %%i in ('reg QUERY "%Key%" /s') do (
echo %%i|findstr /e /i "\\%Name%">nul && set "Search="
if defined Search echo %%i|findstr /c:"%Key%">nul && for /f "tokens=7 delims=\" %%a in ("%%i") do set "SID=%%a"
)
set "ProfileKey=%Key%\%SID%"
bastla
Hallo mabe12!
Mein Ansatz oben ist zwar performancemäßig bei vielen vorhandenen Profilen eine Zumutung, hatte aber (in der geposteten Version) bei mir (unter XP) funktioniert ...
Nur der Vollständigkeit halber eine schnellere Alternative:
Grüße
bastla
[Edit] Beschränkung auf "ProfileImagePath" ergänzt [/Edit]
Mein Ansatz oben ist zwar performancemäßig bei vielen vorhandenen Profilen eine Zumutung, hatte aber (in der geposteten Version) bei mir (unter XP) funktioniert ...
Nur der Vollständigkeit halber eine schnellere Alternative:
@echo off & setlocal
set "Name=paul"
set "Key=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
set "Nr="
for /f "delims=:" %%i in ('reg QUERY "%Key%" /s^|findstr /n /e /i "\\%Name%"^|findstr "ProfileImagePath"') do set /a Nr=%%i
if not defined Nr echo "%Name%" nicht gefunden! & goto :eof
set /a Nr-=1
for /f "tokens=7 delims=\" %%a in ('reg QUERY "%Key%" /s^|findstr /n "^"^|findstr /b "%Nr%:"') do set "SID=%%a"
set "ProfileKey=%Key%\%SID%"
echo %ProfileKey%
bastla
[Edit] Beschränkung auf "ProfileImagePath" ergänzt [/Edit]