Affichage de tous les lecteurs accessibles dans PowerShell

3

J'ai remarqué que cd \ navigue à la racine de mon lecteur.

Mais il y a d'autres lecteurs auxquels je peux accéder sur mon ordinateur.

Existe-t-il une commande dans PowerShell qui répertorie tous les lecteurs auxquels je peux me connecter?

Nebur
la source

Réponses:

2

Cela dépend un peu de ce que vous appelez un "lecteur". Dans PowerShell, certains lecteurs représentent vos volumes habituels locaux ou mappés sur le réseau, ainsi que des lecteurs contenant d'autres objets tels que des alias, des variables d'environnement, des fonctions, des variables PowerShell, des ruches de registre, etc.

Pour voir une liste de tous les "lecteurs" dans PowerShell, utilisez:

Get-PSDrive

Ou vous pouvez utiliser l'alias intégré:

gdr

(N'importe où vous voyez Get-PSDriveci - dessous, vous pouvez remplacer à la gdrplace.)

Pour obtenir uniquement des lecteurs FileSystem, par exemple: des volumes ou des baies de supports mappés sur le réseau ou sur le réseau, utilisez:

Get-PSDrive -PSProvider FileSystem

Pour obtenir seulement les lecteurs locaux ou seulement les disques durs, je ne pouvais pas trouver une propriété appropriée ou d'une méthode dans la sortie des objets par Get-PSDrivefiltrer par. Un peu après Google, j'ai trouvé la documentation Get-PSDrive de Microsoft sur TechNet . Là, avec des détails sur l'utilisation Get-PSDrive, quelques autres méthodes d'énumération de lecteurs accessibles à PowerShell sont également répertoriées. J'ai trouvé utile de passer par la classe System.IO.DriveInfo dans le .NET Framework.

La commande ci-dessous, exécutable via PowerShell, répertorie uniquement les disques durs locaux.

[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -eq 'Fixed'}

Si vous souhaitez inclure un lecteur local - pas seulement des disques durs - utilisez ceci:

[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -ne 'Network'}

Si vous voulez seulement voir les lettres de lecteur, dirigez la sortie vers Select-Object, comme ceci:

[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -ne 'Network'} | Select-Object -Property Name

Notez que Where-Objectet Select-Objectont également des alias intégrés de ?et select, respectively. (Where-Object is also usable asoù` - c’est vraiment une question de préférence.) La classe System.IO.DriveInfo peut également être réduite à seulement IO.DriveInfo. Donc, cette dernière commande pourrait être lancée comme ceci, si vous voulez:

[IO.DriveInfo]::getdrives() | ? {$_.DriveType -ne 'Network} | select -Property Name

Bien sûr, vous pouvez faire beaucoup d'autres choses Get-PSDrives, les classes .NET accessibles via PowerShell, ainsi que de nombreux autres raccourcis PowerShell disponibles. Je vous suggère de lire en plus sur TechNet et des sites similaires, et en utilisant les Get-Helpet Get-Commandcmdlets pour acquérir une meilleure connaissance de l'environnement.

Iszi
la source
0

Utilisez la commande suivante powershellpour répertorier tous les lecteurs de votre PC.

gdr -PSProvider 'FileSystem'

ou

Get-PSDrive -PSProvider 'FileSystem'
Dai Nguyen-Van
la source