Eu pego drives mapeados de uma máquina remota usando o powershell como parte de um script para mover suas configurações para a nova máquina de uma pessoa: (defina $ OldComputer para o nome ou IP do computador antigo) Ele passa pela lista de todos unidades no sistema remoto e, se não forem unidades locais, ele tentará remover esse mapeamento de unidade no computador atual (caso ele seja usado por outra coisa) e, em seguida, remapear. Comente o segundo para a última linha (o acima para foreach, e adicione sua própria linha para logar ou msgbox se você quiser.)
$netObj = New-Object -com wscript.Network
$WMI1 = [WMISearcher] "Select Name, Providername from win32_mappedLogicalDisk"
$WMI1.Scope.path="\" + $oldComputer + "\root\cimv2"
$WMI1.Options.ReturnImmediately
$ColDrives = $WMI1.Get()
foreach ($objDrive in $colDrives) {
$TestLocal = get-wmiObject Win32_LogicalDisk | ? {$_.DeviceID -eq $objDrive.Name} | % {$_.Providername}
If ($TestLocal) {
Net Use /Delete $objDrive.Name >> $LogFile
}#If
#Map the drive
Net use $objDrive.Name $objDrive.ProviderName >> $LogFile
}#foreach