Dans PowerShell, comment puis-je déterminer si le lecteur actuel est un lecteur en réseau ou non?

StackOverflow https://stackoverflow.com/questions/158359

Question

J'ai besoin de savoir depuis Powershell si le lecteur actuel est un lecteur mappé ou non.

Malheureusement, Get-PSDrive ne fonctionne pas "comme prévu":

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

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

mais dans MS-Dos "utilisation nette" montre que H: est vraiment un lecteur réseau mappé:

New connections will be remembered.

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

The command completed successfully.

Ce que je veux faire, c'est récupérer la racine du lecteur et l'afficher dans l'invite (voir: Personnalisation de l’invite PowerShell - Équivalent à CMD $ M $ P $ _ $ + $ G? )

Était-ce utile?

La solution

Utilisez le framework .NET:

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

Autres conseils

Essayez WMI:

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

Une autre façon d'utiliser WMI:

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

Obtenez tous les lecteurs réseau avec:

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

Une variante légèrement plus compacte de la réponse acceptée:

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

Allez plus loin, comme indiqué ci-dessous:

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

Notez que cela ne fonctionne que pour le système local. Utilisez WMI pour les ordinateurs distants.

La méthode la plus fiable consiste à utiliser WMI

get-wmiobject win32_volume | ? { 

La méthode la plus fiable consiste à utiliser WMI

<*>

Le DriveType est une énumération avec les valeurs suivantes

0 - Inconnu 1 - Pas de répertoire racine 2 - Disque amovible 3 - Disque local 4 - Lecteur réseau 5 - Disque compact 6 - Disque RAM

Voici un lien vers un article de blog que j'ai publié sur le sujet

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

La méthode la plus fiable consiste à utiliser WMI

<*>

Le DriveType est une énumération avec les valeurs suivantes

0 - Inconnu 1 - Pas de répertoire racine 2 - Disque amovible 3 - Disque local 4 - Lecteur réseau 5 - Disque compact 6 - Disque RAM

Voici un lien vers un article de blog que j'ai publié sur le sujet

.DriveLetter[0] }

Le DriveType est une énumération avec les valeurs suivantes

0 - Inconnu 1 - Pas de répertoire racine 2 - Disque amovible 3 - Disque local 4 - Lecteur réseau 5 - Disque compact 6 - Disque RAM

Voici un lien vers un article de blog que j'ai publié sur le sujet

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top