Dado um par de usuário e um privilégio , preciso determinar se um usuário tem o privilégio no servidor. O que se segue é verdadeiro na minha configuração:
- O servidor é parte de um domínio, mas não de um controlador de domínio
- Existem vários domínios com relação de confiança na infraestrutura
- Às vezes, os usuários (local, domínio ou de um domínio diferente) podem pertencer a um grupo local por um mérito deles em outro grupo (domínio ou local) que pertença a um grupo local, em vez de pertencer ao grupo grupo diretamente.
Cenário de exemplo para o último ponto:
- O usuário1 pertence ao grupo TeamA no domínioA
- DomaimA \ TeamA é um membro do DomainB \ SpecialAccess
- DomainB \ SpecialAccess é um membro do DomainB \ DomainAdmins
- Finalmente DomainB \ DomainAdmins pertence ao grupo de administradores locais
- O grupo de administradores locais tem privilégio SeRemoteInteractiveLogonRight
Agora, se eu tiver na entrada DomainA \ User1 e SeRemoteInteractiveLogonRight, preciso chegar a uma resposta Sim ou Não. Então eu abro a Política Local na máquina, anote quais grupos estão listados contra a direita. Estou interessado também, então vá para os gerenciadores de servidores e veja o que os membros do grupo precisam e, em seguida, preciso ver quais membros de quaisquer grupos nesses grupos e assim por diante.
Tenho a impressão de que pode ser mais fácil. Fiquei muito empolgado quando encontrei o utilitário AccessChk . Durou três minutos inteiros que me levaram a descobrir que ele só lista o relacionamento direto, portanto, o usuário dentro de um grupo não será listado.
Agora eu estou supondo que seria possível combinar resultados do AccessChk de alguma forma para que eu possa verificar se um usuário pertence a qualquer um dos grupos que o AccessChk retorna, mas dado que não é um único domínio, mas vários deles Não tenho certeza de como abordar isso. Também a saída AccessChk não parece distinguir entre um grupo e um usuário.
EDIT : No espírito de não cair na armadilha do problema XY, o que eu realmente preciso fazer é ter certeza de que em um grupo de servidores não há contas de usuário específicas que são usadas como pool de aplicativos do IIS identidades têm privilégios SeInteractiveLogonRight ou SeRemoteInteractiveLogonRight. Eu não tenho nenhum problema com a parte do IIS, mas a última etapa de verificar uma conta em relação a um privilégio é algo que eu estou lutando para encontrar uma maneira simples de verificar. Eu também gostaria de automatizar o cheque porque isso é algo que precisa ser feito regularmente.