New-PSDrive
Создает временные и постоянные диски, связанные с расположением в хранилище данных элемента.
Синтаксис
All
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.
Следующие функции добавлены в New-PSDrive в PowerShell 3.0:
- Сопоставленные сетевые диски. Для создания сопоставленных сетевых дисков Windows можно использовать параметр сохранить
New-PSDrive. В отличие от временных дисков PowerShell, сопоставленные с Windows сетевые диски не зависят от сеанса. Они сохраняются в Windows и могут управляться с помощью стандартных средств Windows, таких как проводник и net use. Сопоставленные сетевые диски должны иметь имя буквы диска и подключаться к удаленному расположению файловой системы. Если ваша команда ограничена локально, параметр " Сохранить " не сохраняет создание 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 , чтобы указать поставщика PowerShell FileSystem .
Корневой параметр указывает 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 , чтобы указать поставщика PowerShell Registry .
Корневой параметр указывает расположение реестра.
Чтобы просмотреть содержимое сеанса 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
Запрашивает подтверждение перед запуском cmdlet.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | cf |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Credential
Указывает учетную запись пользователя, которая имеет разрешение на выполнение этого действия. По умолчанию используется текущий пользователь.
Так как PowerShell 3.0, если значение корневого параметра является UNC-путем, можно использовать учетные данные для создания дисков файловой системы.
Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential, созданный командлетом Get-Credential. Если ввести имя пользователя, вам будет предложено ввести пароль.
Учетные данные хранятся в объекте PSCredential, а пароль хранится в виде SecureString.
Замечание
Дополнительные сведения о защите данных SecureString см. в разделе Как безопасно SecureString?.
Свойства параметра
| Тип: | PSCredential |
| Default value: | Current user |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Description
Указывает краткое описание текста диска. Введите любую строку.
Чтобы просмотреть описания всех дисков сеанса, Get-PSDrive | Format-Table Name, Descriptionвыполните следующие действия.
Чтобы просмотреть описание конкретного диска, введите (Get-PSDrive <DriveName>).Description.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Name
Задает имя нового диска. Для постоянных сопоставленных сетевых дисков используйте букву диска. Для временных дисков PowerShell вы не ограничиваетесь буквами дисков, используйте любую допустимую строку.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Persist
Указывает, что этот командлет создает сопоставленный сетевой диск Windows. Параметр "Сохранить " доступен только в Windows.
Сопоставленные сетевые диски сохраняются в Windows на локальном компьютере. Они постоянны, не зависят от сеанса и могут просматриваться и управляться в проводнике и других средствах.
При локальной области выполнения команды без dot-sourcing параметр " Сохранить " не сохраняет создание PSDrive за пределами области, в которой выполняется команда. Если вы запускаете New-PSDrive внутри скрипта, и вы хотите, чтобы новый диск сохранялось на неопределенный срок, необходимо использовать сценарий dot-source. Чтобы получить наилучшие результаты, чтобы принудительно сохранить новый диск, укажите global в качестве значения параметра Scope и включите команду "Сохранить ".
Имя диска должно быть буквой, например D или E. Значение параметра Root должно быть UNC-путем другого компьютера. Значение параметра PSProvider должно быть FileSystem.
Чтобы отключить сопоставленный сетевой диск Windows, используйте командлет Remove-PSDrive. При отключении подключенного сетевого диска Windows сопоставление окончательно удаляется с компьютера, а не только из текущего сеанса.
Сопоставленные сетевые диски относятся к учетной записи пользователя. Сопоставленные диски, созданные в сеансах с повышенными привилегиями или сеансах с использованием учетных данных другого пользователя, не отображаются в сеансах, запущенных с использованием различных учетных данных.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-PSProvider
Указывает поставщик PowerShell, поддерживающий диски такого типа.
Например, если диск связан с сетевым ресурсом или каталогом файловой системы, поставщик PowerShell .FileSystem Если диск связан с разделом реестра, поставщик .Registry
Временные диски PowerShell можно связать с любым поставщиком PowerShell. Сопоставленные сетевые диски могут быть связаны только с поставщиком FileSystem .
Чтобы просмотреть список поставщиков в сеансе PowerShell, используйте командлет Get-PSProvider.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | 1 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Root
Указывает расположение хранилища данных, с которым сопоставляется диск PowerShell.
Например, укажите сетевую папку, например \\Server01\Publicлокальный каталог, например C:\Program Filesраздел реестра, например HKLM:\Software\Microsoftраздел реестра.
Временные диски PowerShell можно связать с локальным или удаленным расположением на любом поддерживаемом диске поставщика. Сопоставленные сетевые диски могут быть связаны только с расположением файловой системы на удаленном компьютере.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | 2 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Scope
Указывает область для диска. Допустимыми значениями этого параметра являются глобальные, локальные и скрипты или число относительно текущей области. Число областей 0 по количеству областей. Текущее число области равно 0, а его родительский — 1. Для получения дополнительной информации см. about_Scopes.
Свойства параметра
| Тип: | String |
| Default value: | Local |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-WhatIf
Показывает, что произойдет, если командлет будет запущен. Командлет не выполняется.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | wi |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
None
Невозможно передать объекты в этот командлет
Выходные данные
PSDriveInfo
Этот командлет возвращает объект PSDriveInfo , представляющий созданный диск.
Примечания
PowerShell включает следующие псевдонимы для Get-PSDrive:
- Все платформы:
ndr
- Виндоус:
mount
New-PSDrive предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в сеансе, используйте Get-PSProvider. Дополнительные сведения о поставщиках см. в about_Providers.
Сопоставленные сетевые диски относятся к учетной записи пользователя. Сопоставленные диски, созданные в сеансах с повышенными привилегиями или сеансах с использованием учетных данных другого пользователя, не отображаются в сеансах, запущенных с использованием различных учетных данных.