En PowerShell, ¿cómo puedo determinar si la unidad actual es una unidad en red o no?
-
03-07-2019 - |
Pregunta
Necesito saber, desde Powershell, si la unidad actual es una unidad asignada o no.
Desafortunadamente, Get-PSDrive no funciona " como se esperaba " ;:
PS:24 H:\temp
>get-psdrive h
Name Provider Root CurrentLocation
---- -------- ---- ---------------
H FileSystem H:\ temp
pero en 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.
Lo que quiero hacer es obtener la raíz de la unidad y mostrarla en el indicador (consulte: Personalizando el indicador de PowerShell - ¿Equivalente a $ M $ P $ _ $ + $ G de CMD )
Solución
Utilice el marco .NET:
PS H:\> $x = new-object system.io.driveinfo("h:\")
PS H:\> $x.drivetype
Network
Otros consejos
Prueba WMI:
Get-WMI -query "Select ProviderName From Win32_LogicalDisk Where DeviceID='H:'"
Una forma alternativa de usar WMI:
get-wmiobject Win32_LogicalDisk | ? {$ _. deviceid -eq " s: "} | % {$ _. providername}
Obtenga todas las unidades de red con:
get-wmiobject Win32_LogicalDisk | ? {$ _. drivetype -eq 4} | % {$ _. providername}
Una variación ligeramente más compacta de la respuesta aceptada:
[System.IO.DriveInfo]("C")
Lleve esto un paso más allá como se muestra a continuación:
([System.IO.DriveInfo]("C")).Drivetype
Tenga en cuenta que esto solo funciona para el sistema local. Use WMI para computadoras remotas.
La forma más confiable es usar WMI
get-wmiobject win32_volume | ? { La forma más confiable es usar WMI
<*>
El DriveType es una enumeración con los siguientes valores
0 - Desconocido
1 - No hay directorio raíz
2 - Disco extraíble
3 - Disco local
4 - Unidad de red
5 - Disco compacto
6 - Disco RAM
Aquí hay un enlace a una publicación de blog que hice sobre el tema
.DriveType -eq 4 } | % { get-psdrive La forma más confiable es usar WMI
<*>
El DriveType es una enumeración con los siguientes valores
0 - Desconocido
1 - No hay directorio raíz
2 - Disco extraíble
3 - Disco local
4 - Unidad de red
5 - Disco compacto
6 - Disco RAM
Aquí hay un enlace a una publicación de blog que hice sobre el tema
.DriveLetter[0] }
El DriveType es una enumeración con los siguientes valores
0 - Desconocido 1 - No hay directorio raíz 2 - Disco extraíble 3 - Disco local 4 - Unidad de red 5 - Disco compacto 6 - Disco RAM
Aquí hay un enlace a una publicación de blog que hice sobre el tema