Caso você prefira fazer o script por VBS (para não ter que assinar digitalmente para poder usar em GPO, por expmplo), leia nosso posto de Script VBS para mapear objetos do AD
Para executar esse script, você precisará:
- Criar objeto(s) de rede na(s) OU(s) do(s) usuário(s);
- Entender o que é um Distinguished Name, caso não saiba leia nosso post sobre Como obter o Distinguished Name (DN) no Active Directory;
- Definir a OU base (menor nível).
Esse script fará o seguinte:
- Vai consultar em qual OU o usuário está;
- Dessa OU, de onde o usuário está, até o nível mais básico definido no código (em cinza), irá listar todos os objetos dessa OU, e:
- Para cada objeto de Pasta Compartilhada encontrado irá mapear, usando o nome da pasta como letra e o caminho de rede definido.
- Para cada objeto de Impressora de rede encontrado irá mapear, usando o caminho da impressora definido.
Clear-Host $OU_BASE = “OU=FILIAL_A,DC=seudominio,DC=com,DC=br“ Retrieve DN of local computer. $SysInfo = New-Object -ComObject “ADSystemInfo” $OU = $SysInfo.GetType().InvokeMember(“UserName”, “GetProperty”, $Null, $SysInfo, $Null) while($OU -ne $OU_BASE) { $OU = $OU.Replace($OU.split(“,”)[0]+”,”,””) $objOU = New-Object System.DirectoryServices.DirectoryEntry(“LDAP://”+$OU) $objSearcher = New-Object System.DirectoryServices.DirectorySearcher $objSearcher.SearchRoot = $objOU $objSearcher.SearchScope = “OneLevel” $objSearcher.Filter = “(&(objectCategory=)(objectClass=))” $objPath = $objSearcher.FindAll() $objPath.Properties | ForEach-Object { $objectcategory = $null $uncname = $null $cn = $null $description = $null $objectcategory = $_.objectcategory $uncname = $_.uncname $cn = $_.cn $description = $_.description If ($objectcategory -like “CN=Volume”) { If ($description -eq $null) { $description = $uncname.split(“\”)[-1] } If ( ($cn -ne $null) -and ($uncname -ne $null)) { $cn = “”+$cn.Replace(“:”,””).Replace(“\”,””).Replace(“/”,””)+”:” net use $cn $uncname } If ($objectcategory -like “CN=Print-Queue”) { If ($uncname -ne $null) { Add-Printer -ConnectionName $uncname } } } } } |
Fontes/Referências
NVLAN – Como obter o Distinguished Name (DN) no Active Directory
NVLAN – Script PowerShell para mapear objetos do AD
https://community.idera.com/database-tools/powershell/powertips/b/tips/posts/finding-all-domain-controllers-no-module-required
https://docs.microsoft.com/en-us/powershell/module/printmanagement/add-printer?view=win10-ps
https://gallery.technet.microsoft.com/scriptcenter/Export-AD-Users-properties-eea93c89
https://stackoverflow.com/questions/7597707/directoryservices-filter-and-methods
Mais Informações
Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.
Entre em contato conosco pelo e-mail equipe@nvlan.com.br.