Eu montei um VBScript simples que mapeia as unidades que são mapeadas na sessão atual novamente para a sessão de administrador elevada. Depois de executar o script, as unidades mapeadas estão disponíveis para todos os processos elevados. Isso funciona se o usuário atual já for um administrador local:
Option Explicit
Dim objNetwork, objShell
Dim strDriveLetter, strNetworkPath
Dim colDrives, intDrive, strDrives
If WScript.Arguments.length =0 Then
Set objNetwork = CreateObject("WScript.Network")
Set colDrives = objNetwork.EnumNetworkDrives
For intDrive = 0 To (colDrives.Count -1) Step 2
WScript.Echo colDrives.Item(intDrive) & " is mapped to: " & colDrives.Item(intDrive + 1)
If Len(strDrives) > 0 Then strDrives = strDrives & " "
strDrives = strDrives & " " & Chr(34) & colDrives.Item(intDrive) & Chr(34) & " " & Chr(34) & colDrives.Item(intDrive + 1) & Chr(34)
Next
If Len(strDrives) > 0 Then
' re-call script with elevation
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cscript.exe", Chr(34) & WScript.ScriptFullName & Chr(34) & strDrives, "", "runas", 1
Else
WScript.Echo "No drives Mapped."
End If
Else
' elevated part
Set objNetwork = CreateObject("WScript.Network")
For intDrive = 0 To (WScript.Arguments.Count - 1) Step 2
WScript.Echo WScript.Arguments(intDrive) & " is mapped to: " & WScript.Arguments(intDrive + 1)
On Error Resume Next ' ignore already mapped drives
objNetwork.MapNetworkDrive WScript.Arguments(intDrive), WScript.Arguments(intDrive + 1)
On Error GoTo 0
Next
End If