Estou tentando encontrar uma maneira de obter uma lista abrangente de contas de usuário em um sistema Windows 7, incluindo contas ocultas. A caixa de diálogo Contas de usuário ( >control userpasswords2
) mostra apenas as contas de usuário normais, e até o editor Local User and Groups mostra apenas contas de usuário normais e ocultas / desativadas padrão, como Administrador e Convidado. A caixa de diálogo Selecionar usuários ou grupos possui um botão Localizar agora , que combina usuários e grupos, mas, infelizmente, possui o mesmo conteúdo que o LUG.
Estou procurando uma lista mais abrangente que inclua contas de usuário "super-ocultas" / virtuais como TrustedInstaller (ou, para ser mais preciso, NT Service \ TrustedInstaller - observe os diferentes "domínios").
Eu verifiquei HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList
, mas a SpecialAccounts
chave não existe.
Também verifiquei HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
e, embora ele tenha as contas SystemProfile, LocalService e NetworkService listadas, ele não possui outras (como TrustedInstaller e outros).
O TrustedInstaller especificamente é um pouco confuso porque é um usuário, um serviço e um arquivo executável. Estou usando-o como exemplo, porque é "super oculto", pois não parece estar listado em nenhum tipo de lista de usuários. (Como um experimento, tentei pesquisar em todo o registro por “instalador confiável” para ver se encontrava um local em que ele está listado como usuário, mas não encontrou nenhum.)
Para ficar claro, o que estou procurando é uma lista de todos contas que podem ser usadas em um campo de entrada do usuário, como nas caixas de diálogo de permissões ou como runas
argumento.
fonte
Respostas:
Não acho que exista uma lista definitiva de todas as contas possíveis.
Existem diferentes tipos de nomes que você pode usar no campo de entrada do usuário, como nas caixas de diálogo de permissões.
Primeiro, são Win32_Accounts padrão, para obter uma lista completa, abra uma sessão do PowerShell e execute:
Esses são os usuários habituais, grupos e as contas internas.
Desde o Vista, existe uma nova classe de contas, chamada contas virtuais, porque elas não aparecem nas ferramentas de gerenciamento habituais. Às vezes, também são chamadas contas de serviço e existem pelo menos três tipos diferentes:
Como o Vista, todo serviço do Windows tem uma conta virtual associada a ele, mesmo que seja executada em uma conta de usuário diferente e mesmo que não seja executada. Parece
NT Service\MSSQLSERVER
Para obter uma lista desses, use:
Cada pool de aplicativos IIS executado sob o ApplicationPoolIdentity é executado sob uma conta especial chamada
IIS APPPOOL\NameOfThePool
Supondo que você tenha as ferramentas de script de Gerenciamento do IIS instaladas, você pode executar:
No Server 2008+ e Windows 8+, você possui o Hyper-V, cada máquina virtual cria sua própria conta virtual, que se parece com:
NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5
para obter uma lista, use:
Embora essas contas não sejam aceitas na caixa de diálogo de permissões, você pode usá-las com o icacls.exe para definir permissões.
Há também um grupo especial
NT Virtual Machine\Virtual Machines
, que não aparece em nenhum outro lugar. Todas as contas da máquina virtual são membros deste grupo, portanto, você pode usá-lo para definir permissões para todos os arquivos da VM.Esses nomes são específicos do idioma, por exemplo, em alemão, ele é nomeado
NT Virtual Machine\Virtuelle Computer
O processo dvm.exe (Desktop Window Manager) é executado sob um usuário
Windows Manager\DWM-1
Novamente, você não pode usar esse tipo de usuário nas caixas de diálogo de permissões. Não é realmente possível enumerá-las porque existe uma para cada 'sessão da área de trabalho'; portanto, ao usar duas sessões RDP, você também possui
DWM-2
eDWM-3
além dissoDVM-1
. Portanto, existem tantos quantos desktops disponíveis.Em certos casos, você também pode usar nomes de computadores na caixa de diálogo de permissões, geralmente quando faz parte de um domínio do Active Directory.
Ao usar o PowerShell e o 'JEA (Administração suficiente)' e conectar-se a um servidor com uma sessão remota PS, um usuário virtual temporário pode ser criado.
estes têm o seguinte formato:
winrm virtual users\winrm va_x_computername_username
e um SID que começa com
S-1-5-94-
o 'x' é um número inteiro.
Essas contas podem ser usadas ao atribuir permissões NTFS, mas não sei como listar todos esses possíveis usuários virtuais.
Enquanto estiver em uma sessão JEA, você pode usar
whoami
para descobrir o nome da conta atual.Mesmo essas listas não fornecem todas as contas possíveis.
Por exemplo, você pode criar um pool de aplicativos
FooBarPool
e excluí-lo novamente. Você ainda pode usá-loIIS APPPOOL\FooBarPool
na caixa de diálogo de permissões, para que haja uma lista interna em algum lugar.fonte
everyone
,restricted
, etc., e sua discussão deNT Service\*
contas explica outros comoTrustedInstaller
. Você também cobriu casos especiais mais exóticos, mas parece que todos os casos comuns são contabilizados.Get-WebConfiguration system.applicationHost/applicationPools/add
.Isso ocorre porque o TrustedInstaller é um serviço e não um objeto "usuário". Com o Vista, os Serviços agora são objetos de segurança e podem receber permissões.
http://technet.microsoft.com/en-us/magazine/2007.06.acl.aspx
fonte
Vá para a guia segurança e clique em
Edit
Add...
Clique
Advanced...
Clique
Object Types...
e desmarqueGroups
e clique emOK
Clique em
Find Now
. Isso listará todos os usuários regulares e usuários do sistema interno ("princípios de segurança internos", como o Windows os chama).Observe que nem todas as contas que aparecem nesta página podem ser usadas em um comando Executar como, embora todas possam ser usadas em um diálogo de permissões.
fonte
SYSTEM
está (ou pelo menos deveria estar) lá, o TrustedInstaller não está .find now
botão no painel de controle Usuários e Grupos, que é semelhante, mas um pouco diferente. Que eu saiba, a única conta que não aparece aqui é TrustedInstaller. Isso ocorre porque a Microsoft faz todo o possível para impedir que você faça algo com a conta TrustedInstaller. Avisarei se pensar em outras maneiras de fazer isso.Locations...
para o seu computador se você estiver em um domínio (mas desejar apenas o seu computador).A partir do Windows Vista, os serviços são tratados como usuários. Ou seja, um Identificador de Segurança (SID) é atribuído a todos os serviços. Isso não é específico para o serviço TrustedInstaller . Você pode visualizar o SID atribuído a qualquer serviço usando o
sc showsid
comando:Observe que não há necessidade de o serviço existir no sistema. Exemplos:
ou, para o serviço Windows Management Instrumentation (
Winmgmt
):e, finalmente, por um serviço falso:
Observe que todos os SIDs começam com
S-1-5-80
, onde80
é atribuído àSECURITY_SERVICE_ID_BASE_RID
sub-autoridade. Além disso, essa atribuição é determinística: nenhum RID é usado, e o SID será o mesmo em todos os sistemas (consulte as referências no final deste post para obter mais informações).Como exemplo, vou atribuir o
NT Service\Winmgmt
serviço, permissão de gravação para algum arquivo:O Windows sublinha o nome
Winmgmt
, confirmando que é uma identidade válida:Agora, clique em OK e atribua a permissão de gravação:
Isso confirma que qualquer nome de serviço pode ser usado como uma identidade de usuário. Portanto, eu não os chamaria de contas "escondidas na ceia": D
Para mais informações, leia os seguintes artigos:
fonte
Você pode usar a API NetQueryDisplayInformation, combinar com a verificação bit a bit no sinalizador de informações do usuário. Eu tenho exatamente o mesmo requisito, então cozinho um código de exemplo (modificado da consulta MSDN GROUP).
O sinalizador de usuário que usei é UF_NORMAL_ACCOUNT UF_ACCOUNTDISABLE UF_PASSWD_NOTREQD ---> isso garante que obtemos uma conta Humana, a conta Humana sempre exige senha.
código de trabalho em: http://www.cceye.com/list-system-normal-user-account-only/
fonte