Eu preciso do SID do usuário atual
Você pode usar wmic
.
Na linha de comando:
wmic useraccount where name='%username%' get sid
F:\test>wmic useraccount where name='%username%' get sid
SID
S-1-5-21-1699878757-1063190524-3119395976-1000
De um arquivo de lote (GetSID.cmd):
@echo off
setlocal
rem use findstr to strip blank lines from wmic output
rem skip the heading
for /f "usebackq skip=1" %%i in ('wmic useraccount where name^="%username%" get sid ^| findstr /r /v "^$"') do (
set _sid=%%i
)
echo %_sid%
endlocal
Notas:
- O arquivo em lote armazena o SID em
%_sid%
para uso posterior, se necessário.
Exemplo de uso:
F:\test>GetSID
S-1-5-21-1699878757-1063190524-3119395976-1000
F:\test>
Como posso usar o SID do usuário atual em um arquivo .reg
?
A opção mais fácil é provavelmente usar o comando reg
para adicionar as chaves necessárias diretamente ao registro.
Você pode escrever um arquivo em lote que:
-
Executa o comando
wmic
. -
Salva o SID em uma variável de ambiente, por exemplo,
%_sid%
. -
Já fiz isso no arquivo de lote
GetSID.cmd
acima. -
Agora, adicione os comandos
reg add
apropriados com%-sid%
no local correto para adicionar os valores ao registro.
Leitura adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- reg - Leia, defina ou exclua chaves e valores do Registro, salve e restaure a partir de um arquivo .REG.
- wmic - Comando de instrumentação de gerenciamento do Windows.