New-PSDrive

Создает временные и постоянные диски, связанные с расположением в хранилище данных элемента.

Синтаксис

New-PSDrive
   [-Name] <String>
   [-PSProvider] <String>
   [-Root] <String>
   [-Description <String>]
   [-Scope <String>]
   [-Persist]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Описание

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

Временные диски существуют только в текущем сеансе PowerShell и в сеансах, создаваемых в текущем сеансе. Они могут иметь любое имя, которое является допустимым в PowerShell и может быть сопоставлено с любым локальным или удаленным ресурсом. Вы можете использовать временные диски PowerShell для доступа к данным в связанном хранилище данных, как и для любого сопоставленного сетевого диска. Вы можете изменить расположение на диске с помощью Set-Locationи получить доступ к содержимому диска с помощью Get-Item или Get-ChildItem.

Так как временные диски известны только в PowerShell, вы не можете получить к ним доступ с помощью проводник, инструментария управления Windows (WMI), модели com, Microsoft платформа .NET Framework или с помощью таких средств, как net use.

В PowerShell 3.0 добавлены New-PSDrive следующие функции:

  • Подключенные сетевые диски. Параметр Persist можно использовать для создания сопоставленных сетевых New-PSDrive дисков Windows. В отличие от временных дисков PowerShell, подключенные сетевые диски Windows не зависят от сеанса. Они сохраняются в Windows и могут управляться с помощью стандартных средств Windows, таких как проводник и net use. Сопоставленным сетевым дискам должно быть присвоено имя буквы диска, и они должны подключаться к расположению удаленной файловой системы. Если область действия команды ограничена локально без точки, параметр Persist не сохраняет создание PSDrive за пределами область, в котором выполняется команда. Если вы работаете New-PSDrive в скрипте и хотите, чтобы диск сохранял его в течение неограниченного времени, необходимо использовать точку в качестве источника скрипта. Чтобы получить наилучшие результаты, чтобы принудительно сохранять новый диск в течение неограниченного времени, добавьте параметр Scope в команду и задайте для нее значение Global. Дополнительные сведения о поиске точек см. в разделе about_Scripts.
  • Внешние диски. При подключении внешнего диска к компьютеру PowerShell автоматически добавляет PSDrive в файловую систему, представляющую новый диск. Вам не нужно перезапускать PowerShell. Аналогичным образом, если внешний диск отключен от компьютера, PowerShell автоматически удаляет PSDrive , представляющий удаленный диск.
  • Учетные данные для путей UNC.

Если значение параметра Root является UNC-путем, например \\Server\Share, учетные данные, указанные в значении параметра Credential , используются для создания PSDrive. В противном случае учетные данные не будут действовать при создании дисков файловой системы.

В некоторых примерах кода используется сплаттинг для уменьшения длины строки и улучшения удобочитаемости. Дополнительные сведения см. в разделе about_Splatting.

Примечание

Если вы не используете параметр Scope, psDrives создаются в область, в котором New-PSDrive выполняется команда.

Примеры

Пример 1. Create временный диск, сопоставленный с общей сетевой папкой

В этом примере создается временный диск PowerShell, сопоставленный с общей сетевой папкой.

New-PSDrive -Name "Public" -PSProvider "FileSystem" -Root "\\Server01\Public"

Name       Provider      Root
----       --------      ----
Public     FileSystem    \\Server01\Public

New-PSDrive использует параметр Name для указания диска PowerShell с именем Public и параметр PSProvider для указания поставщика PowerShell FileSystem . Параметр Root указывает UNC-путь сетевой папки.

Чтобы просмотреть содержимое сеанса PowerShell, выполните следующие действия: Get-ChildItem -Path Public:

Пример 2. Create временный диск, сопоставленный с локальным каталогом

В этом примере создается временный диск PowerShell, который предоставляет доступ к каталогу на локальном компьютере.

$parameters = @{
    Name = "MyDocs"
    PSProvider = "FileSystem"
    Root = "C:\Users\User01\Documents"
    Description = "Maps to my My Documents folder."
}
New-PSDrive @parameters

Name        Provider      Root
----        --------      ----
MyDocs      FileSystem    C:\Users\User01\Documents

Splatting создает ключи и значения параметров. Параметр Name указывает имя диска MyDocs. Параметр PSProvider указывает поставщика PowerShell FileSystem . Root указывает каталог локального компьютера. Параметр Description описывает назначение диска. New-PSDrive использует параметры splatted для создания MyDocs диска.

Чтобы просмотреть содержимое сеанса PowerShell, выполните следующие действия: Get-ChildItem -Path MyDocs:

Пример 3. Create временный диск для раздела реестра

В этом примере создается временный диск PowerShell, который предоставляет доступ к разделу реестра. Он создает диск с именем MyCompany, сопоставленный с разделом HKLM:\Software\MyCompany реестра.

New-PSDrive -Name "MyCompany" -PSProvider "Registry" -Root "HKLM:\Software\MyCompany"

Name           Provider      Root
----           --------      ----
MyCompany      Registry      HKLM:\Software\MyCompany

New-PSDrive использует параметр Name для указания диска PowerShell с именем MyCompany и параметр PSProvider для указания поставщика PowerShell Registry . Параметр Root указывает расположение реестра.

Чтобы просмотреть содержимое сеанса PowerShell, выполните следующие действия: Get-ChildItem -Path MyCompany:

Пример 4. Create постоянно сопоставленного сетевого диска с использованием учетных данных

В этом примере сопоставляется сетевой диск, прошедший проверку подлинности с учетными данными учетной записи службы домена. Дополнительные сведения об объекте PSCredential , в котором хранятся учетные данные, и о том, как пароли хранятся в виде SecureString, см. в описании параметра Credential .

$cred = Get-Credential -Credential Contoso\ServiceAccount
New-PSDrive -Name "S" -Root "\\Server01\Scripts" -Persist -PSProvider "FileSystem" -Credential $cred
Net Use

Status       Local     Remote                    Network
---------------------------------------------------------
OK           S:        \\Server01\Scripts        Microsoft Windows Network

Примечание

Помните, что если вы используете приведенный выше фрагмент кода в скрипте, задайте для параметра Scope значение "Global" (Глобальный), чтобы диск сохранялся за пределами текущего область.

Переменная $cred хранит объект PSCredential , содержащий учетные данные учетной записи службы. Get-Credential предлагает ввести пароль, хранящийся в SecureString.

New-PSDrive создает сопоставленный сетевой диск с использованием нескольких параметров. Name указывает букву S диска, которую принимает Windows. и Root определяет \\Server01\Scripts как расположение на удаленном компьютере. Persist создает подключенный сетевой диск Windows, сохраненный на локальном компьютере. PSProvider указывает FileSystem поставщика. Учетные$cred данные используют переменную для получения учетных данных учетной записи службы для проверки подлинности.

Сопоставленный диск можно просмотреть на локальном компьютере в сеансах PowerShell, проводник и с помощью таких средств, как net use. Чтобы просмотреть содержимое сеанса PowerShell, выполните следующие действия: Get-ChildItem -Path S:

Пример 5. Create постоянных и временных дисков

В этом примере показана разница между постоянным сопоставленным сетевым диском и временным диском PowerShell, сопоставленным с той же общей сетевой папкой.

Если закрыть сеанс PowerShell, а затем открыть новый сеанс, временный PSDrive: будет недоступен, но постоянный X: диск будет доступен. При принятии решения о том, какой метод следует использовать для сопоставления сетевых дисков, подумайте, как вы будете использовать диск. Например, должен ли он быть постоянным и должен ли диск быть видимым для других компонентов Windows.

# Create a temporary PowerShell drive called PSDrive:
# that's mapped to the \\Server01\Public network share.
New-PSDrive -Name "PSDrive" -PSProvider "FileSystem" -Root "\\Server01\Public"

# Use the Persist parameter of New-PSDrive to create the X: mapped network drive,
# which is also mapped to the \\Server01\Public network share.
New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public"

# Now, you can use the Get-PSDrive drive cmdlet to examine the two drives.
# The drives appear to be the same, although the network share name appears only
# in the root of the PSDrive: drive.
Get-PSDrive -Name "PSDrive", "X"

Name       Provider      Root
----       --------      ----

PsDrive    FileSystem    \\Server01\public
X          FileSystem    X:\

# Get-Member cmdlet shows that the drives have the same object type,
# System.Management.Automation.PSDriveInfo.
Get-PSDrive "PSDrive", "x" | Get-Member

TypeName: System.Management.Automation.PSDriveInfo

Name                MemberType   Definition
----                ----------   ----------
CompareTo           Method       System.Int32 CompareTo(PSDriveInfo drive),
Equals              Method       System.Boolean Equals(Object obj),
GetHashCode         Method       System.Int32 GetHashCode()
...

# Net Use and Get-CimInstance for the Win32_LogicalDisk class,
# and Win32_NetworkConnection class find only the persistent X: drive.
# PowerShell temporary drives are known only to PowerShell.
Net Use
Get-CimInstance Win32_LogicalDisk | Format-Table -Property DeviceID
Get-CimInstance Win32_NetworkConnection

Status       Local     Remote                    Network
--------------------------------------------------------
OK           X:        \\contoso-pc\data         Microsoft Windows Network

deviceid
--------
C:
D:
X:

LocalName    RemoteName              ConnectionState          Status
---------    ----------              ---------------          ------
X:           \\products\public       Disconnected             Unavailable

Пример 6. Create постоянного диска в скрипте

PsDrive создаются в область, в котором New-PSDrive выполняется команда. При выполнении команды в скрипте сопоставление диска является локальным для скрипта. Когда сценарий завершает работу, диск становится недоступным.

New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public" -Scope Global

Чтобы диск был доступен за пределами скрипта, необходимо использовать параметр Scope для создания диска в глобальной область.

Параметры

-Confirm

Запрос подтверждения перед выполнением командлета.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Указывает учетную запись пользователя, которая имеет разрешение на выполнение этого действия. По умолчанию используется текущий пользователь.

Начиная с PowerShell 3.0, если значение параметра Root является UNC-путем, можно использовать учетные данные для создания дисков файловой системы.

Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential , созданный командлетом Get-Credential . Если ввести имя пользователя, вам будет предложено ввести пароль.

Учетные данные хранятся в объекте PSCredential , а пароль хранится как SecureString.

Примечание

Дополнительные сведения о защите данных SecureString см. в разделе Как безопасно secure is SecureString?.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Description

Указывает краткое описание диска. Введите любую строку.

Чтобы просмотреть описания всех дисков сеанса, выполните Get-PSDrive | Format-Table Name, Description.

Чтобы просмотреть описание конкретного диска, введите (Get-PSDrive <DriveName>).Description.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

Указывает имя нового диска. Для постоянно сопоставленных сетевых дисков используйте букву диска. Для временных дисков PowerShell вы не ограничены буквами дисков, используйте любую допустимую строку.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Persist

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

Сопоставленные сетевые диски сохраняются в Windows на локальном компьютере. Они постоянные, а не зависящие от сеанса, и их можно просматривать и администрировать с помощью проводник и других средств.

При локальном область команды без использования точки, параметр Persist не сохраняет создание PSDrive за пределами область, в котором выполняется команда. Если вы запускаете New-PSDrive внутри скрипта и хотите, чтобы новый диск сохранял бесконечное время, скрипт должен быть в качестве источника точки. Чтобы получить наилучшие результаты, чтобы принудить сохранение нового диска, укажите Global в качестве значения параметра Scope и включите Параметр Persist в команду.

Имя диска должно быть буквой, например D или E. Значение параметра Root должно быть UNC-путем другого компьютера. Значение параметра PSProvider должно иметь значение FileSystem.

Чтобы отключить подключенный сетевой диск Windows, используйте Remove-PSDrive командлет . При отключении сопоставленного сетевого диска Windows сопоставление удаляется без возможности восстановления с компьютера, а не только из текущего сеанса.

Сопоставленные сетевые диски относятся только к учетной записи пользователя. Сопоставленные диски, созданные в сеансах с повышенными привилегиями или сеансах с использованием учетных данных другого пользователя, не отображаются в сеансах, начатых с разными учетными данными.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PSProvider

Указывает поставщик PowerShell, который поддерживает диски такого типа.

Например, если диск связан с сетевым ресурсом или каталогом файловой системы, поставщикОм PowerShell является FileSystem. Если диск связан с разделом реестра, поставщиком является Registry.

Временные диски PowerShell можно связать с любым поставщиком PowerShell. Сопоставленные сетевые диски могут быть связаны только с поставщиком FileSystem .

Чтобы просмотреть список поставщиков в сеансе PowerShell, используйте Get-PSProvider командлет .

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Root

Указывает расположение хранилища данных, с которым сопоставляется диск PowerShell.

Например, укажите сетевую папку, например \\Server01\Public, локальный каталог, например C:\Program Files, или раздел реестра, например HKLM:\Software\Microsoft.

Временные диски PowerShell можно связать с локальным или удаленным расположением на любом поддерживаемом диске поставщика. Сопоставленные сетевые диски можно связать только с расположением файловой системы на удаленном компьютере.

Type:String
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Scope

Указывает область для диска. Допустимые значения для этого параметра: Global, Local и Script или число относительно текущего область. Области с числом от 0 до числа областей. Текущее число область равно 0, а его родительское значение — 1. Дополнительные сведения см. в разделе about_Scopes.

Type:String
Position:Named
Default value:Local
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Показывает, что произойдет при запуске командлета. Командлет не выполняется.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

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

None

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

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

PSDriveInfo

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

Примечания

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

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

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

Сопоставленные сетевые диски относятся только к учетной записи пользователя. Сопоставленные диски, созданные в сеансах с повышенными привилегиями или сеансах с использованием учетных данных другого пользователя, не отображаются в сеансах, начатых с разными учетными данными.