Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator Biber am 19.01.2012 um 16:53:57 Uhr
Verschoben von "Windows"-"Userverwaltung" nach "Batch & Shell"

Per batch ein Userprofile löschen

Frage Entwicklung Batch & Shell

Mitglied: mabe12

mabe12 (Level 1) - Jetzt verbinden

18.01.2012, aktualisiert 19.01.2012, 3601 Aufrufe, 6 Kommentare

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
Mitglied: bastla
18.01.2012 um 18:16 Uhr
Hallo mabe12 und willkommen im Forum!

Versuch es mal so:
01.
@echo off & setlocal 
02.
set "Name=paul" 
03.
set "Key=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList 
04.
 
05.
set "Search=True" 
06.
for /f "delims=" %%i in ('reg QUERY "%Key%" /s') do ( 
07.
    echo %%i|findstr /e /i "\\%Name%">nul && set "Search=" 
08.
    if defined Search echo %%i|findstr /c:"%Key%">nul && for /f "tokens=7 delims=\" %%a in ("%%i") do set "SID=%%a" 
09.
10.
set "ProfileKey=%Key%\%SID%"
Grüße
bastla
Bitte warten ..
Mitglied: Logan000
19.01.2012 um 08:28 Uhr
Mon Moin

Als Plan B gann man die SID des Users mit PsGetSID ermitteln.

Gruß L.
Bitte warten ..
Mitglied: mabe12
19.01.2012 um 10:50 Uhr
Moin,
danke erstmal für das welcome und natürlich die Antworten.
Wenn ich diese sehe merke ich das ich von for und findstr nicht wirklich viel verstehe ;-(

@bastla
erst hatte ich es mit Deiner Lösung versucht, aber in der Zeile:
echo %%i|findstr /e /i "\\%Name%">nul && set "Search="
ist ein Syntaxfehler drin (wird ganz kurz angezeigt).

Nun habe ich es aber so gelöst:
set "Name=paul"
set "Key=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
for /f %%i in ('psgetsid %Name%') do ( set "bla=%%i")
echo %Key%\%bla%


Was ich noch vergessen hatte:
Das Ergebnis aus bastlas Vorschlag lieferte immer den letzten vorhandenen Schlüssel...

Danke nochmals
Grüße mabe12
Bitte warten ..
Mitglied: bastla
19.01.2012 um 11:42 Uhr
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:
01.
@echo off & setlocal 
02.
set "Name=paul" 
03.
set "Key=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList 
04.
 
05.
set "Nr=" 
06.
for /f "delims=:" %%i in ('reg QUERY "%Key%" /s^|findstr /n /e /i "\\%Name%"^|findstr "ProfileImagePath"') do set /a Nr=%%i 
07.
if not defined Nr echo "%Name%" nicht gefunden! & goto :eof 
08.
 
09.
set /a Nr-=1 
10.
for /f "tokens=7 delims=\" %%a in ('reg QUERY "%Key%" /s^|findstr /n "^"^|findstr /b "%Nr%:"') do set "SID=%%a" 
11.
set "ProfileKey=%Key%\%SID%" 
12.
echo %ProfileKey%
Grüße
bastla

[Edit] Beschränkung auf "ProfileImagePath" ergänzt [/Edit]
Bitte warten ..
Mitglied: mabe12
19.01.2012 um 15:21 Uhr
Hallo bastla,

ja nun geht es super, danke nochmals.
Ich versuche mich mal durchzuarbeiten, vllt. verstehe ich es ja doch noch .

Auf jeden Fall wird auf diese Weise der tatsächliche Pfad herausgefunden
und es gibt keine Probs wenn windows das Profil schon auf *.bak umbennant hat.

Gestern hatte ich vllt. vergessen zu erwähnen, das es für w7 und xp funzen soll.
Aber eigentlich sollte es zumindest an dieser Stelle keine Unterschiede geben.

Danke nochmal
Grüße
mabe12
Bitte warten ..
Mitglied: bastla
19.01.2012 um 15:49 Uhr
Hallo mabe12!
vllt. verstehe ich es ja doch noch .
Wenn nicht, weißt Du ja, wo Du fragen könntest ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Windows Server
RD-Server User kann Drucker anderer Userprofile löschen!? (5)

Frage von supermario zum Thema Windows Server ...

Batch & Shell
gelöst Alle Ordner bis auf die letzten 3 per Batch löschen (5)

Frage von Stefan2733 zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (31)

Frage von Maik82 zum Thema Linux Netzwerk ...

Exchange Server
gelöst Bestehende eMails autoamatisch weiterleiten (22)

Frage von metal-shot zum Thema Exchange Server ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...

Switche und Hubs
LAG zwischen SG300-Switches macht Probleme. Wer weiß Rat? (19)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...