Função para coletar Distinguishedname de objetos no Active Directory usando Powershell (sem importar módulos)

Esta função é utilizada para coletar o Distinguishedname de um objeto no Active Directory usando Powershell, sem a necessidade de importar módulos extras (testado com grupo, usuários e computadores). (maiores informações)
function ColetaDistinguishedName([string]$strFilter)
{
 $objDomain = New-Object System.DirectoryServices.DirectoryEntry
 $objSearcher = New-Object System.DirectoryServices.DirectorySearcher
 $objSearcher.SearchRoot = $objDomain
 $objSearcher.PageSize = 1000
 $objSearcher.Filter = $strFilter
 $objSearcher.SearchScope = "Subtree"
 $colResults = $objSearcher.FindOne()
 
 if ($colResults -ne $null)
 {
  $distinguishednameObjeto = $colResults.Properties["distinguishedname"]
  return  $distinguishednameObjeto
 }
}

Abaixo, segue uma forma de chamada da função (pode-se colocar os trechos logo abaixo do fechamento da função em um arquivo .ps1).
$strFilter é passado por parâmetro e muda de acordo com o que se deseja.
No caso ao se desejar o Distinguishedname de um grupo, a variável $distinguishednameGrupo receberá as informações requisitadas pela função, ou, se o grupo não for encontrado, o valor será nulo.
$NomeGrupo = "nome_grupo_AD"
$strFilter = "(&(objectCategory=Group)(sAMAccountName=$NomeGrupo))" 
$distinguishednameGrupo = ColetaDistinguishedName -strFilter $strFilter
write-host $distinguishednameGrupo
No caso de desejar capturar o Distinguishedname do computador que está executando o script, $strFilter mudará:
$strFilter = "(&(objectCategory=Computer)(SamAccountname=$($env:COMPUTERNAME)`$))"
$distinguishednameComputador = ColetaDistinguishedName -strFilter $strFilter
write-host $distinguishednameComputador
No caso de desejar capturar o Distinguishedname do usuário que está executando o script, $strFilter mudará:
$strFilter = "(&(objectCategory=user)(SamAccountname=$($env:USERNAME)))"
$distinguishednameUsuario = ColetaDistinguishedName -strFilter $strFilter
write-host $distinguishednameUsuario 
Para Maiores informações sobre Distinguished Names:
https://msdn.microsoft.com/en-us/library/aa366101%28v=vs.85%29.aspx
Maiores informações sobre realizar buscas no Active Directory utilizando scripts do Powershell:
http://rodolfo-andrade.blogspot.com.br/2015/10/aprendendo-realizar-buscas-no-active.html

Comentários

Postagens mais visitadas deste blog

Lava-louças Brastemp BLE20 - RESOLVIDO - Piscando luzes Iniciar e enxaguar/Erro ao jogar água fora

Microsoft Print to PDF não aparece na lista de impressoras nos programas