Поделиться через


New-PSDrive

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

Синтаксис

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

Описание

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

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

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

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

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

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

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

Примечание.

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

Примеры

Пример 1. Создание временного диска, сопоставленного с сетевым ресурсом

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

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

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

New-PSDriveиспользует параметр Name, чтобы указать диск PowerShell с именем Public и параметр PSProvider, чтобы указать поставщика PowerShellFileSystem. Корневой параметр указывает UNC-путь UNC сетевой общей папки.

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

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

В этом примере создается временный диск 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 . Корневой каталог локального компьютера. Параметр Description описывает назначение диска. New-PSDrive для создания MyDocs диска используется параметр splatted.

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

Пример 3. Создание временного диска для раздела реестра

В этом примере создается временный диск 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, чтобы указать поставщика PowerShellRegistry. Корневой параметр указывает расположение реестра.

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

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

В этом примере сопоставляется сетевой диск, прошедший проверку подлинности с учетными данными учетной записи службы домена. Дополнительные сведения о объекте 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 создает сопоставленный сетевой диск с помощью нескольких параметров. Имя указывает букву S диска, которую принимает Windows. и root определяется \\Server01\Scripts как расположение на удаленном компьютере. Сохранение создает сопоставленный сетевой диск Windows, сохраненный на локальном компьютере. PSProvider указывает FileSystem поставщика. Учетные $cred данные используют переменную для получения учетных данных учетной записи службы для проверки подлинности.

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

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

В этом примере показано различие между постоянным сопоставленным сетевым диском и временным диском 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. Создание постоянного диска в скрипте

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

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

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

Параметры

-Confirm

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

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

-Credential

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

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

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

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

Примечание.

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

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

-Description

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

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

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

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

-Name

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

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

-Persist

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

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

При локальной области выполнения команды без dot-sourcing параметр "Сохранить " не сохраняет создание PSDrive за пределами области, в которой выполняется команда. Если вы выполняете внутри скрипта и хотите, чтобы новый диск сохранялось New-PSDrive на неопределенный срок, необходимо создать сценарий dot-source. Чтобы получить наилучшие результаты, чтобы принудительно сохранить новый диск, укажите global в качестве значения параметра Scope и включите команду "Сохранить".

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

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

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

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

-PSProvider

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

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

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

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

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

-Root

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

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

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

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

-Scope

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

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

-UseTransaction

Включает команду в активную транзакцию. Этот параметр доступен только при выполнении транзакции. Дополнительные сведения см. в about_Transactions.

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

-WhatIf

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

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

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

None

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

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

PSDriveInfo

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

Примечания

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

  • mount
  • ndr

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

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