Поиск по сайту:

New-PSDrive - Как использовать альтернативу Net Use в PowerShell


Мы все знаем команду Net Use, которую мы можем использовать для подключения сетевых дисков из командной строки. Хотя мы можем использовать Net Use в PowerShell, существует более мощная альтернатива — cmdlet New-PSDrive.

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

В этой статье мы более подробно рассмотрим все возможности команды New-PSDrive с полезными примерами, которые вы можете использовать.

Временные и постоянные диски

Прежде чем мы перейдем к созданию сетевых дисков, я сначала хочу объяснить разницу между временными и постоянными дисками.

Временные диски могут быть использованы только в текущей сессии PowerShell. Они не будут видны в проводнике Windows и исчезнут, когда вы закроете сессию PowerShell. Их отлично использовать, когда вам необходимо взаимодействовать с удаленной папкой или длинным путем к папке на вашем локальном компьютере.

Постоянные диски получают букву диска и, следовательно, могут также использоваться в Проводнике. Они останутся доступными, когда вы закроете сессию PowerShell или даже перезагрузите компьютер.

Добавление нового сетевого диска с помощью New-PSDrive

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

Для создания сетевого соединения необходимо несколько обязательных параметров:

Name

Должна быть доступная дисковая буква

PSProvider

Установите на FileSystem для сетевых общих ресурсов и папок

Root

Сетевое расположение, которое вы хотите сопоставить

Persist

Чтобы сделать это доступным вне PowerShell (в Проводнике)

Итак, чтобы подключить сетевой ресурс \\VBoxSvr\Win11 и назначить ему букву диска v:, мы можем использовать следующую команду:

New-PSDrive -Name V -PSProvider FileSystem -Root \\VBoxSvr\Win11 -Persist

Создание сетевого диска New-PSDrive

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

Использование различных учетных данных для сетевого диска с отображением

Так же, как и с командой Net Use, мы можем использовать разные учетные данные для открытия удаленного сетевого диска. Для этого нам сначала нужно создать объект учетных данных, который мы можем использовать для сопоставления сетевого диска.

Get the credentials
$cred = Get-Credential

Create the drive mapping with the credentials
New-PSDrive -Name V -PSProvider FileSystem -Root \\VBoxSvr\Win11 -Persist -Credential $cred

Создание временного дискового подключения в PowerShell

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

Например, мы можем создать сопоставление с нашей папкой журналов с:

New-PSDrive -Name Log -PSProvider FileSystem -Root c:\temp\logfiles -Description "Log Folder"

Таким образом, мы можем быстро перейти к файлам журналов с помощью cd log:. Но мы можем не только перейти в папку, мы также можем ссылаться на это сопоставление в других командлетах. Например:

Get-ChildItem log:

новый-PSDrive

Создание постоянного отображения на локальную папку

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

Сначала откройте свой профиль:

ise $profile

Если вы получили ошибку, что ваш профиль не найден, следуйте этой статье, чтобы быстро создать его.

В ваш профиль PowerShell добавьте следующую строку:

Create shotcuts to long folder paths
New-PSDrive -Name Log -PSProvider FileSystem -Root c:\temp\logfiles -Description "Log Folder" | Out-Null

Обратите внимание, что мы добавили | Out-Null к команде. По умолчанию команда будет выводить результаты сопоставления диска. Но мы не хотим, чтобы это происходило каждый раз, когда мы открываем новую сессию PowerShell.

Сопоставление реестровых ключей с помощью New-PSDrive

Кроме сопоставления сетевых дисков и папок, мы также можем сопоставить ключи реестра с помощью командлета New-PSDrive. По умолчанию вы уже найдете сопоставления с ключом HKEY_CURRENT_USER и ключом HKEY_LOCAL_MACHINE. Вы можете просмотреть их с помощью команды:

Get-PsDrive -PSProvider Registry

Result
Name           Used (GB)     Free (GB) Provider      Root                   CurrentLocation
----           ---------     --------- --------      ----                   ---------------
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE

Если вы хотите создать сопоставление для разделов HKEY_USERS, вы можете сделать следующее:

New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS

Мы не ограничены только распорядителем верхнего уровня, вы можете создавать сопоставления с любым ключом реестра, который вам нужен. Например, ключ HKCU Windows NT:

New-PSDrive -Name WinNT -PSProvider Registry -Root HKEY_CURRENT_USER\Software\Microsoft\Windows NT

Теперь вы можете легко добавлять, редактировать или удалять ключи реестра, используя создание сопоставления:

WinNT: is the mapping that we created earlier
New-Item -Path WinNT: -Name LazyAdmin

Заключение

Честно говоря, нет особого преимущества в использовании New-PSDrive, если вы хотите только подключить сетевую папку, которая также доступна в Проводнике. Команда Net-Use короче и удобнее в использовании.

Но когда вам нужно только создать соответствие в сессии PowerShell, или когда вы хотите создать ярлык для локальных папок или реестра, этот командлет может быть довольно полезен.

Если у вас есть вопросы, просто оставьте комментарий ниже!