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á:

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.

NVLAN - Consultoria