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


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.

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