Eu gostaria de usar o PowerShell para criar scripts de exibição e edição de regras de auditoria para objetos do Active Directory em vez de operar por meio da GUI conforme descrito abaixo: Em Usuários e Computadores do Active Directory, habilite "Recursos Avançados" no menu "Exibir", selecione o "Domínio UO de controladores" no painel esquerdo Clique com o botão direito no objeto "OU de controladores de domínio" e selecione "Propriedades" Selecione a guia "Segurança" Selecione o botão "Avançado" e depois a guia "Auditoria"
Aqui está o que tenho até agora. Primeiro obtenha o distintoName da UO:
import activedirectory
set-location ad:
dir
Insira o distintoName correto da saída dir acima em Get-Acl:
$acl = Get-Acl -Path "DC=something,DC=somethingElse"
O método GetSecurityDescriptorSddlForm do objeto $acl parece relacionado, mas não fornece saída legível por humanos. Em seguida, tentei:
$domain = Get-AdDomain -Server "serverName"
$domainSID = $domain.DomainSID
$acl.GetAuditRules(1,1,$domainSID)
Mas isso gera um erro: Não é possível converter o argumento targetType com valor "..." para GetAuditRules digitar "System.Type": Não é possível converter o valor "..." do tipo System.Security.Principal.SecurityIdentifier para digitar "System. Tipo"
A documentação do GetAuditRules parece dizer que ele aceitará um SecurityIdentifier para o terceiro parâmetro, que é o que pensei ter alimentado o método GetAuditRules. https://docs.microsoft.com/en-us/dotnet/api/system.security.accesscontrol.commonobjectsecurity.getauditrules?view=dotnet-plat-ext-3.1
Além disso, a postagem aqui parece relacionada, mas não entendo como selecionar o método construtor correto para criar um ActiveDirectoryAuditRule e como coletar os parâmetros necessários, como GUID https://social.technet.microsoft.com/Forums/en-US/70881826-6189-48c0-8ee7-0d79aa18f085/powershell-to-set-audit-flags-on-ou?forum=ITCG
Qualquer ajuda é apreciada. Obrigado!
Responder1
este é para um registro, mas parece muito semelhante. tente a opção "-audit" no seu get-acl.
$acl = get-acl -path $pathtoOU -Auditoria
$acl.getauditrules($true,$true, [System.Security.Principal.NTAccount] )