New-PSDrive
Создает временные и постоянные диски, связанные с расположением в хранилище данных элемента.
Синтаксис
New-PSDrive
[-Name] <String>
[-PSProvider] <String>
[-Root] <String>
[-Description <String>]
[-Scope <String>]
[-Persist]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<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 |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
None
Невозможно передать объекты в этот командлет
Выходные данные
Этот командлет возвращает объект PSDriveInfo , представляющий созданный диск.
Примечания
PowerShell включает следующие псевдонимы для Get-PSDrive
:
- Все платформы:
ndr
- Windows:
mount
New-PSDrive
предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в сеансе, используйте Get-PSProvider
. Дополнительные сведения о поставщиках см. в about_Providers.
Сопоставленные сетевые диски относятся только к учетной записи пользователя. Сопоставленные диски, созданные в сеансах с повышенными привилегиями или сеансах с использованием учетных данных другого пользователя, не отображаются в сеансах, запущенных с использованием различных учетных данных.
Связанные ссылки
PowerShell