En PowerShell, ¿cómo puedo determinar la raíz de una unidad (suponiendo que sea una unidad en red)?
-
03-07-2019 - |
Pregunta
En PowerShell, incluso si es posible saber si una unidad es una unidad de red: consulte en PowerShell, ¿cómo puedo determinar si la unidad actual es una unidad en red o no?
Cuando intento obtener la raíz " " " del disco, recupero la letra del disco.
La configuración: MS-Dos " uso neto " muestra que H: es realmente una unidad de red asignada:
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
OK H: \\spma1fp1\JARAVJ$ Microsoft Windows Network
The command completed successfully.
Get-PSDrive nos dice que la raíz es H:
PS:24 H:\temp
>get-psdrive h
Name Provider Root CurrentLocation
---- -------- ---- ---------------
H FileSystem H:\ temp
y el uso de system.io.driveinfo no nos da una respuesta completa:
PS:13 H:\
>$x = new-object system.io.driveinfo("h:\")
PS:14 H:\
>$x.DriveType
Network
PS:15 H:\
>$x.RootDirectory
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 29/09/2008 16:45 h:\
¿Alguna idea de cómo obtener esa información?
Gracias
Solución
Prueba WMI:
Get-WMIObject -query "Select ProviderName From Win32_LogicalDisk Where DeviceID='H:'"
Otros consejos
El truco es que el nombre del atributo es diferente al esperado. Prueba:
(Get-PSDrive h) .DisplayRoot
$ drive = gwmi win32_logicaldisk -filter " DeviceID = 'H:' " if ($ drive.DriveType -eq 4) {write-host " la unidad es un recurso compartido de red "}
$ fso = new-object -com " Scripting.Filesystemobject " $ fso.GetDrive (" Y "). ShareName