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:
for /f "delims= " %%a in ('"wmic path win32_useraccount where name='%UserName%' get sid"') do (
if not "%%a"=="SID" (
set myvar=%%a
goto :loop_end
)
)
:loop_end
echo %%myvar%%=%myvar%
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With