I need a way to store the current user's SID in a variable, I tried a lot of variants of:
setlocal enableextensions
for /f "tokens=*" %%a in (
'"wmic path win32_useraccount where name='%UserName%' get sid"'
) do (
if not "%%a"==""
set myvar=%%a
echo/%%myvar%%=%myvar%
pause
endlocal
None are working.
wmic path win32_useraccount where name='%UserName%' get sid
should be returning 3 lines, and I need the second one stored in a variable.
Can someone fix my script?
Edit: I am using a .cmd file.
This should fix it:
note the
"delims= "
in the FOR loop. It will separate the input at spaces, that are contained at the end of the output ouf your WMI query.The condition
if not "%%a"=="SID"
will be true for the second iteration and then assign the variable and break out of the loop.Hope that helps.
Another solution could be:
Another working example of WMIC
I write this code and it work good for me