2016-04-07 14 views
2

Geçerli kullanıcının SID'sini değişkene nasıl kaydedebilirim? benzer bir soru kapalı göre, geçerli kod aşağıdaki gibidir:Wmic useraccount kaydedileceği yere ad

@echo off 
for /f %%a in ('wmic useraccount where Name='%username%' get SID') do set "usersid=%%a" 
echo %usersid% 
exit /b 

Ben değişkeni% UserSid% Bu kaydedebilen bir yolu var mı? Bu, '% kullanıcı adı%' sini çevreleyen işaretlerle ilgili bir sorun olduğuna inanıyorum.

cevap

2
@echo off 
for /f "usebackq tokens=* delims=" %%a in (`wmic useraccount where Name^='%username%' get SID /format:value`) do (
    for /f "tokens=* delims=" %%# in ("%%a") do set "%%#" 
) 
set sid 

Makinemde kullanıcı adı takma adı yok.

+0

Hey npocmaka, kodunuzu çalıştırdığımda, sid değişkeninin tanımlanmadığını belirten bir hata alıyorum. Bu set sid çizgisi olur mu? –

+0

@ 7thLuke - 'wmic kullanıcı adı komutunun çıktısı çıktı = '% username%' ifadesi SID/format: value ' – npocmaka

+0

kullanıcı adı - Alias ​​bulunamadı. Sanırım wmic useraccount'u kullanmalıyız, burada name = '% username%' olsun SID –

1

Bunu yapmak için gerekli kod ile yanıtlanmış bir soru buldum. Npocmaka cevaba yakındı (orijinal wmic komutumu yanlış yazmamıştım).

@echo off 
for /f "delims= " %%a in ('"wmic useraccount where name='%UserName%' get sid"') do (
    if not "%%a"=="SID" (   
     set myvar=%%a 
     goto :loop_end 
    ) 
) 

:loop_end 
echo %myvar% 
İlgili konular