Domanda

Devo sapere, dall'interno di Powershell, se l'unità corrente è o meno mappata.

Sfortunatamente, Get-PSDrive non funziona " come previsto " ;:

PS:24 H:\temp
>get-psdrive  h

Name       Provider      Root      CurrentLocation
----       --------      ----      ---------------
H          FileSystem    H:\          temp

ma in MS-Dos " net use " mostra che H: è davvero un'unità di rete mappata:

New connections will be remembered.

Status       Local     Remote                    Network
-------------------------------------------------------------------------------
OK           H:        \\spma1fp1\JARAVJ$        Microsoft Windows Network

The command completed successfully.

Quello che voglio fare è ottenere il root del drive e mostrarlo nel prompt (vedi: Personalizzazione del prompt di PowerShell - Equivalente a $ M $ P $ _ $ + $ G di CMD? )

È stato utile?

Soluzione

Usa il framework .NET:

PS H:\> $x = new-object system.io.driveinfo("h:\")
PS H:\> $x.drivetype
Network

Altri suggerimenti

Prova WMI:

Get-WMI -query "Select ProviderName From Win32_LogicalDisk Where DeviceID='H:'"

Un modo alternativo di usare WMI:

get-wmiobject Win32_LogicalDisk | ? {$ _. deviceid -eq " s: "} | % {$ _. providername}

Ottieni tutte le unità di rete con:

get-wmiobject Win32_LogicalDisk | ? {$ _. drivetype -eq 4} | % {$ _. providername}

Una variazione leggermente più compatta sulla risposta accettata:

[System.IO.DriveInfo]("C")

Fai un ulteriore passo come mostrato di seguito:

([System.IO.DriveInfo]("C")).Drivetype

Nota che funziona solo per il sistema locale. Usa WMI per computer remoti.

Il modo più affidabile è usare WMI

get-wmiobject win32_volume | ? { 

Il modo più affidabile è usare WMI

<*>

DriveType è un enum con i seguenti valori

0 - Sconosciuto 1 - Nessuna directory principale 2 - Disco rimovibile 3 - Disco locale 4 - Unità di rete 5 - Compact Disk 6 - Disco RAM

Ecco un link a un post sul blog che ho fatto sull'argomento

.DriveType -eq 4 } | % { get-psdrive

Il modo più affidabile è usare WMI

<*>

DriveType è un enum con i seguenti valori

0 - Sconosciuto 1 - Nessuna directory principale 2 - Disco rimovibile 3 - Disco locale 4 - Unità di rete 5 - Compact Disk 6 - Disco RAM

Ecco un link a un post sul blog che ho fatto sull'argomento

.DriveLetter[0] }

DriveType è un enum con i seguenti valori

0 - Sconosciuto 1 - Nessuna directory principale 2 - Disco rimovibile 3 - Disco locale 4 - Unità di rete 5 - Compact Disk 6 - Disco RAM

Ecco un link a un post sul blog che ho fatto sull'argomento

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top