Using REG.EXE on Windows 2000, from the Windows 2000 Support Tools,
or REG.EXE built into Windows XP and later,
and the SIDTONAME freeware,
I have scripted ProfileList.bat, to retrieve the SID and UserName of all the profiles on a specified computer.
The syntax for using ProfileList.bat is:
ProfileList \\ComputerName
where ComputerName can be local or remote.
NOTE: If you wish to process the list in a batch file, use the following syntax:
for /f "Tokens=1*" %%s in ('ProfileList \\ComputerName') do set SID=%%s&set User=%%t&call :YourLabel
If you use the ProfileList \\ComputerName syntax, the console output is similar to:
S-1-5-18 "NT AUTHORITY\SYSTEM" S-1-5-19 "NT AUTHORITY\LOCAL SERVICE" S-1-5-20 "NT AUTHORITY\NETWORK SERVICE" S-1-5-21-4032795696-1918355027-149915103-500 "JSI009\Administrator" S-1-5-21-4134520471-696337240-1581626817-1137 "JSIINC\Jerry"ProfileList.bat contains:
@echo off setlocal If \{%1\}==\{\} goto syntax set computer=%1 set computer=\\%computer:\=% if not exist %computer%\c$ goto syntax for /f "Skip=3 Tokens=*" %%i in ('reg QUERY "%computer%\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /s') do set line=%%i&call :IsSID endlocal goto :EOF :syntax @echo Syntax ProfileList \\ComputerName endlocal goto :EOF :IsSID set SID=%line:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\=% If "%SID%" EQU "%line%" goto :EOF set user=Unknown for /f "Tokens=*" %%u in ('SIDTONAME %SID%') do set user=%%u @echo %SID% "%user%"
0 comments
Hide comments