Para quem procura um script do PowerShell, isso deve ser feito:
gwmi Win32_UserProfile | foreach-object {
$sid = New-Object System.Security.Principal.SecurityIdentifier($_.SID)
$user = $sid.Translate([System.Security.Principal.NTAccount])
$username = $user.Value
$username
$chkCmd = "accesschk """ + $username + """ -a * -q"
iex $chkCmd
""
}
Ele obtém a lista de usuários que têm um perfil na máquina local , determina seus nomes a partir do SID e invoca accesschk
- como recomendado pela Ramhound - neles. O registro de cada usuário começa com o nome de usuário em DOMAIN\user
format, contém cada direito em uma linha e termina com uma linha em branco. (SID translation courtesy of este artigo .) Você pode despejar suas coisas em um arquivo com o redirecionamento operador, >
.
Uma ressalva do AccessChk é que parece produzir uma lista vazia para usuários de domínio que não têm direitos de administrador local. Portanto, esta versão que produz as informações acima para cada usuário conhecido no domínio e na máquina é um pouco ruim, mas pode se tornar útil com uma versão futura da ferramenta:
gwmi Win32_UserAccount | foreach-object {
$username = $_.Caption
$username
$chkCmd = "accesschk """ + $username + """ -a * -q"
iex $chkCmd
""
}
Se você está se perguntando do que o secedit
está falando, é só pegar a lista de entidades (no formulário SID) para as quais os direitos foram atribuídos na atribuição de direitos de usuário (ver secpol.msc
). Portanto, você geralmente verá os SIDs para grupos como Usuários ou Administradores, em vez de pessoas específicas.