Get-PSDrive

Получает диски в текущем сеансе.

Синтаксис

Get-PSDrive
   [[-Name] <String[]>]
   [-Scope <String>]
   [-PSProvider <String[]>]
   [<CommonParameters>]
Get-PSDrive
   [-LiteralName] <String[]>
   [-Scope <String>]
   [-PSProvider <String[]>]
   [<CommonParameters>]

Описание

Командлет Get-PSDrive получает диски в текущем сеансе. Можно получить определенный диск или все диски в сеансе.

Этот командлет получает следующие типы дисков:

  • Логические диски Windows на компьютере, включая диски, сопоставленные с сетевыми ресурсами.
  • Диски, предоставляемые поставщиками PowerShell (например, certificate:, Function:и Alias: диски) и HKLM: и HKCU: диски, предоставляемые поставщиком реестра Windows PowerShell.
  • Указанные сеансом временные диски и постоянные сопоставленные сетевые диски, создаваемые с помощью командлета New-PSDrive.

Начиная с Windows PowerShell 3.0 параметр New-PSDrive "Сохранить" командлета может создавать сопоставленные сетевые диски, сохраненные на локальном компьютере и доступные в других сеансах. Дополнительные сведения см. в статье New-PSDrive.

Кроме того, начиная с Windows PowerShell 3.0, когда внешний диск подключается к компьютеру, Windows PowerShell автоматически добавляет в файловую систему объект PSDrive, представляющий новый диск. Перезапускать Windows PowerShell не нужно. Аналогичным образом, когда внешний диск отключается от компьютера, Windows PowerShell автоматически удаляет объект PSDrive, представляющий удаленный диск.

Примеры

Пример 1. Получение дисков в текущем сеансе

PS C:\> Get-PSDrive

Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
Alias                                  Alias
C                 202.06      23718.91 FileSystem    C:\
Cert                                   Certificate   \
D                1211.06     123642.32 FileSystem    D:\
Env                                    Environment
Function                               Function
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
Variable                               Variable

Эта команда получает диски в текущем сеансе.

В выходных данных показаны жесткие диски (C:), диск CD-ROM (D:) и диски, предоставляемые поставщиками Windows PowerShell (Псевдоним:, Cert:, Env:, Function:, HKCU:, HKLM:и Переменная:).

Пример 2. Получение диска на компьютере

PS C:\foo> Get-PSDrive D

Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
D                1211.06     123642.32 FileSystem    D:\

Эта команда получает диск D: на компьютере. Обратите внимание, что за буквой диска в команде не следует двоеточие.

Пример 3. Получение всех дисков, поддерживаемых поставщиком файловой системы Windows PowerShell

PS C:\> Get-PSDrive -PSProvider FileSystem
Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
A                                                    A:\
C                 202.06      23718.91 FileSystem    C:\
D                1211.06     123642.32 FileSystem    D:\
G                 202.06        710.91 FileSystem    \\Music\GratefulDead

Эта команда получает все диски, которые поддерживаются поставщиком FileSystem оболочки Windows PowerShell. Сюда входят фиксированные диски, логические секции, сопоставленные сетевые диски и временные диски, создаваемые с помощью командлета New-PSDrive.

Пример 4. Проверьте, используется ли диск в качестве имени диска Windows PowerShell

if (Get-PSDrive X -ErrorAction SilentlyContinue) {
    Write-Host 'The X: drive is already in use.'
} else {
    New-PSDrive -Name X -PSProvider Registry -Root HKLM:\SOFTWARE
}

Эта команда проверяет, используется ли диск X в качестве имени диска Windows PowerShell. Если это не так, команда использует New-PSDrive командлет для создания временного диска, сопоставленного с разделом реестра HKLM:\SOFTWARE.

Пример 5. Сравнение типов дисков файловой системы

PS C:\> Get-PSDrive -PSProvider FileSystem
Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
A                                                    A:\
C                 202.06      23718.91 FileSystem    C:\
D                1211.06     123642.32 FileSystem    D:\
G                 202.06        710.91 FileSystem    \\Music\GratefulDead
X                                      Registry      HKLM:\Network

PS C:\> net use
New connections will be remembered.
Status       Local     Remote                    Network
-------------------------------------------------------------------------------
OK           G:        \\Server01\Public         Microsoft Windows Network

PS C:\> [System.IO.DriveInfo]::GetDrives() | Format-Table
Name DriveType DriveFormat IsReady AvailableFreeSpace TotalFreeSpace TotalSize     RootDirectory VolumeLabel
---- --------- ----------- ------- ------------------ -------------- ---------     ------------- -----------
A:\    Network               False                                                 A:\
C:\      Fixed NTFS          True  771920580608       771920580608   988877418496  C:\           Windows
D:\      Fixed NTFS          True  689684144128       689684144128   1990045179904 D:\           Big Drive
E:\      CDRom               False                                                 E:\
G:\    Network NTFS          True      69120000           69120000       104853504 G:\           GratefulDead

PS N:\> Get-CimInstance -Class Win32_LogicalDisk

DeviceID DriveType ProviderName   VolumeName         Size          FreeSpace
-------- --------- ------------   ----------         ----          ---------
A:       4
C:       3                        Windows            988877418496  771926069248
D:       3                        Big!              1990045179904  689684144128
E:       5
G:       4         \\Music\GratefulDead              988877418496  771926069248


PS C:\> Get-CimInstance -Class Win32_NetworkConnection
LocalName RemoteName            ConnectionState Status
--------- ----------            --------------- ------
G:        \\Music\GratefulDead  Connected       OK

В этом примере сравниваются типы дисков файловой системы, отображаемые с теми, которые отображаются Get-PSDrive с помощью других методов. В этом примере показаны различные способы отображения дисков в Windows PowerShell, а также показано, что диски, созданные с помощью командлета New-PSDrive, доступны только в Windows PowerShell.

Первая команда используется Get-PSDrive для получения всех дисков файловой системы в сеансе. К ним относятся фиксированные диски (C: и D:), сопоставленный сетевой диск (G:), созданный с помощью параметра "Сохранить" и диска PowerShell (T:), созданного с помощью New-PSDrive параметра "Сохранить".New-PSDrive

Команда net use отображает сопоставленные сетевые диски Windows, в этом случае она отображает только диск G. Он не отображает диск X, созданный с помощью New-PSDrive. В нем показано, что диск G: также сопоставляется с \\Music\GratefulDead.

Третья команда использует метод GetDrives класса Microsoft платформа .NET Framework System.IO.DriveInfo. Эта команда получает диски файловой системы Windows, включая диск G:, но не получает диски, созданные New-PSDrive.

Четвертая команда использует Get-CimInstance командлет для получения экземпляров класса Win32_LogicalDisk . Он возвращает диски A:, C:, D:, E:и G: диски, но не диски, созданные New-PSDrive.

Последняя команда использует Get-CimInstance командлет для отображения экземпляров класса Win32_NetworkConnection . Как и net use, он возвращает только постоянный диск G: созданный New-PSDrive.

Параметры

-LiteralName

Задает имя диска.

Значение LiteralName используется точно так же, как и типизированный. Никакие символы не интерпретируются как знаки подстановки. Если имя включает escape-символы, заключите их в одинарные кавычки. Это позволит Windows PowerShell не интерпретировать какие-либо символы как символы Escape-последовательности.

Тип:String[]
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Name

Указывает в виде строкового массива имя или имя дисков, которые этот командлет получает в операции. Введите имя диска или букву без двоеточия (:).

Тип:String[]
Position:0
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-PSProvider

Указывает в виде строкового массива поставщик Windows PowerShell. Этот командлет получает только диски, поддерживаемые этим поставщиком. Введите имя поставщика, например FileSystem, Registry или Certificate.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Scope

Указывает область, в которой этот командлет получает диски.

Допустимые значения для этого параметра:

  • Глобальный
  • Local
  • Скрипт
  • число относительно текущей области (от 0 до числа областей, где 0 является текущей областью, а 1 — родительским). По умолчанию используется значение Local.

Дополнительные сведения см. в about_Scopes.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

Входные данные

None

Невозможно передать объекты в этот командлет.

Выходные данные

PSDriveInfo

Этот командлет возвращает объекты, представляющие диски в сеансе.

Примечания

PowerShell включает следующие псевдонимы для Get-PSDrive:

  • Для всех платформ.

    • gdr
  • Этот командлет предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в сеансе Get-PSProvider , используйте командлет. Дополнительные сведения см. в about_Providers.

  • Сопоставленные сетевые диски, созданные с помощью параметра "Сохранить " командлета New-PSDrive, относятся к учетной записи пользователя. Сопоставленные сетевые диски, создаваемые в сеансах, запущенных с параметром "Запуск от имени администратора" или учетными данными другого пользователя, не отображаются в сеансах, которые запускаются без явных учетных данных или с учетными данными текущего пользователя.