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 , представляющий созданный диск.
Примечания
PowerShell включает следующие псевдонимы для Get-PSDrive
:
- Для всех платформ.
ndr
- Windows:
mount
New-PSDrive
предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в сеансе, используйте .Get-PSProvider
Дополнительные сведения о поставщиках см. в разделе about_Providers.
Сопоставленные сетевые диски относятся только к учетной записи пользователя. Сопоставленные диски, созданные в сеансах с повышенными привилегиями или сеансах с использованием учетных данных другого пользователя, не отображаются в сеансах, начатых с разными учетными данными.