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Сетевая папка теперь будет доступна в Проводнике или любом другом инструменте, который вы хотите использовать.
Использование различных учетных данных для сетевого диска с отображением
Так же, как и с командой 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:Создание постоянного отображения на локальную папку
Временные отображения исчезают после закрытия окна 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, или когда вы хотите создать ярлык для локальных папок или реестра, этот командлет может быть довольно полезен.
Если у вас есть вопросы, просто оставьте комментарий ниже!

