В Powershell реализована возможность подключать сетевые диски используя протоколы SMB/CIFS. Эта возможность использует разные команды работа с которыми может вызвать сложности. Рассмотрим применение команд на примерах.
В Powershell по умолчанию существует возможность обратиться по сетевому пути не используя сетевые диски. Например это можно сделать через команду ‘Get-ChildItem’:
Get-ChildItem -Path '\\localhost\c$'
Такой способ ограничен пользователем, который открыл консоль или запустил скрипт. Если вы запустите консоль от имени доменного администратора — то обращение к сетевому пути будет от его имени.
Возможность использовать другие учетные записи, а так же подключать сетевые диски, реализованы в 2 командах:
- New-SmbMapping — команда появилась в версии Powershell 5. Относится к модулю SmbShare, то есть создана специально для работы с SMB;
- New-PSDrive — работает с версии Powershell 3. Все командлеты типа ‘PSDrive’ относятся ко всем дискам.
Обе команды, аналогично Get-ChildItem, подключают диски под учетной записью, которая запустила консоль.
Хоть эти команды достаточно старые, в каждой из новых версий Powershell находятся ошибки и баги. На момент написания статьи баги были найдены в версиях 5.1 — 7.1 и все они касались процесса подключения.
Основной момент, который упростит работу с сетевыми папками в Powershell кроется в понимании понятии провайдеров. Создавая сетевой диск обычными средствами Windows вы сразу видите результат в проводнике. Делая то же самое в Powershell вы изначально обращаетесь к провайдеру услуг, а он обращается к Windows. В зависимости от указанных вами параметров и возможностью команды у вас может быть создан диск только в рамках этого провайдера либо в рамках провайдера и области Windows.
Если это сложно понять, то представьте, что среда Windows и Powershell это разные вещи и что бы скопировать файл с одного места на другое — нужно использовать дополнительный параметр, которого может и не быть.
Получение списка сетевых дисков и их удаление
Мы можем получить список сетевых дисков используя обе команды модуля:
Get-PSDrive
Get-SmbMapping
Отличия, которые видны на первый взгляд в том, что во втором случае мы возвращаем список дисков подключение к которым не восстановилось. Кроме этого ‘Get-SmbMapping’ хранит больше информации о дисках, если вывести их все:
Get-PSDrive -Name 'G' | select *
Get-SmbMapping -LocalPath 'G:' | select *
Мы можем вывести учетную запись, под которой подключена сетевая папка, следующим образом:
(Get-PSDrive -Name 'G').Credential
Команды удаления отличаются только наличием параметра ‘UpdateProfile’. Если он присутствует в команде ‘Remove-SMBMapping’, то диск не будет восстанавливать соединение после перезагрузки компьютера. В случае с Remove-PSDrive это предусмотрено автоматически:
Remove-SmbMapping -LocalPath 'G:' -UpdateProfile -Force
Remove-PSDrive -Name 'J' -Force
Force удаляет подключение без подтверждения.
Подключение сетевых дисков
Проблемы с командами могут зависеть от версии вашего интерпретатора. Powershell 5-ой версии был предустановлен во всех версиях начиная с Windows 10 и Windows Server 2016. Если вы сомневаетесь в версии, то это можно проверить следующей командой:
$PSVersionTable
# или
host
New-SmbMapping
Самый простой способ подключить диски, используя команду New-SmbMapping, будет выглядеть следующим способом:
New-SmbMapping -LocalPath 'J:' -RemotePath '\\192.168.2.200\SharedFolder' -Persistent $true
В этой команде используются следующие ключи:
- LocalPath — локальный путь или буква, под которой будет подключен диск;
- RemotePath — путь к папке через IP или DNS. В случае выше подразумевается, что у пользователя, который открыл консоль Powershell, есть права для подключения к этому пути. Важно так же обратить внимание на кавычки, если ваш путь содержит специальные символы;
- Persistent — дословно переводится как ‘постоянный’, но в случае сетевых папок обозначает восстановление соединения после отключения сети/компьютера.
Пример выше специально демонстрирует проводник так как это одна из проблем этой команды в версии 5.1 — диск начнет отображаться в проводнике только после перезагрузки компьютера или перезапуске процесса ‘explorer.exe’.
Мы можем перезапустить процесс средствами Powershell. Выполнение этой команды, как минимум, закроет все открытые окна:
Stop-Process -Name 'explorer' | Start-Process -FilePath 'C:\Windows\explorer.exe'
Так же у вас могут появиться другие ошибки, например следующие говорят об уже занятой букве:
- New-SmbMapping : Имя локального устройства уже используется.
- New-SmbMapping : The local device name is already in use.
Следующая ошибка произойдет, если вы указали слэш ‘\’ в конце пути или к нему нет доступа на уровне сети (фаерволла, dns, политик и т.д.):
- New-SmbMapping : The network name cannot be found.
New-PSDrive
В отличие от предыдущего способа — у него нет проблем с проводником, но после перезагрузки компьютера подключение к диску пропадет. Как я прочитал в каких-то версиях Powershell это исправлено, в каких-то появились новые проблем. Один из способов сделать диск постоянным — будет рассмотрен ниже.
Подключить аналогичный диск можно следующим способом:
New-PSDrive -Name 'G' -PSProvider 'FileSystem' -Root '\\192.168.2.200\SharedFolder' -Persist -Scope 'Global'
Где:
- Name — путь, буква или любой другой идентификатор определяющий диск. Чаще всего это просто буква;
- PSProvider — поставщик услуг. Всех поставщиков услуг можно увидеть через ‘Get-PSProvider’. В большинстве случаев поставщиком услуг для сетевых дисков будет ‘FileSystem’. В теории вы можете использовать поставщика «Registry» что бы в рамках сессии Powershell легче обращаться к какому-то пути. Поставщик услуг или ‘PSProvider’ — это условная программа, которая будет обрабатывать вашу команду между Powershell и Windows;
- Root — путь до удаленной папки. Если бы в ‘PSProvider’ стоял ‘Registry’, то тут можно было указать путь следующего формата: ‘HKLM:\Software\Microsoft’;
- Persist — должно ли восстанавливаться подключение при потере связи;
- Scope — область действия диска. В этом случае не должно играть значение, но на форумах советуют использовать значение ‘Global’, если не получается подключать диск. Если бы вы использовали сетевой диск только для одно сессии Powershell — вы могли бы ограничить область видимости диска.
У вас могут появиться следующие ошибки:
- New-PSDrive : The network resource type is not correct;
- The specified network resource or device is no longer available.
Один из способов решения — убрать слэш в конце пути. Так же попробуйте открыть полный путь в проводнике так как ошибка может указывать на недоступность папки. Так же можете попробовать убрать параметр ‘Persist’, т.к. после этого ошибка может изменится и принять более понятный характер.
Рабочий способ сделать этот диск постоянным — отредактировать его через реестр. Ветка, под которой был подключен диск, будет иметь следующий путь »HKCU:\Network\G». «G» в конце — это буква под который был подключен диск. Мы можем вернуть существующие значения следующей командой:
Get-ItemProperty -Path 'HKCU:\Network\G'
Вам нужно обратить внимание на выделенные фрагменты. ‘DeferFlags’, в значении 4, обозначает, что диск подключается под логином и паролем аутентифицированного пользователя. 1-ца говорит об обратном и, возможно, что пароль не указан. На одном из форумов писали, что это поле должно указывать на цифру 4 что бы команда успешно работала. Я наблюдал случаи с 1 и 4, но проблем не замечал.
Моя проблема была решена после указания 1 в поле ‘ConnectionType’. Значение 1 говорит, что будет выполняться перенаправление дисков. Установить это значение через Powershell можно так:
Set-ItemProperty -Path 'HKCU:\Network\G' -Name 'ConnectionType' -Value 1
Подключение дисков под другим пользователем
Обе команды позволяют выполнять подключение используя других пользователей. Для каждой из команд этот подход отличается.
В случае команды ‘New-PSDrive’ вам нужно будет выполнить ‘Get-Credential’ и поместить в него учетные данные. Традиционный способ поместить эти данные в переменную:
$сred = Get-Credential
Эта переменная будет хранить ссылку на объект в памяти, который нельзя будет экспортировать на другой компьютер. Как упростить процесс, если вы планируете использовать учетные данные на разных компьютерах, рассмотрено в другой статье.
После этого мы передаем переменную в параметр ‘-Credential’:
New-PSDrive -Credential $cred -Name 'G' -PSProvider 'FileSystem' -Root '\\192.168.2.200\SharedFolder' -Persist -Scope 'Global'
В случае с ‘New-SMBMapping’ эта операция выполняется проще. У вас есть 3 параметра, которые нужно заполнить:
- UserName — логин;
- Password — пароль;
- SaveCredential — нужно ли сохранять учетные данные.
Пример подключения с сохранением учетных данных:
$password = '123'
$username = 'admin@domain.local'
New-SmbMapping -Username $username -Password $password `
-LocalPath 'J:' -RemotePath '\\192.168.2.200\SharedFolder' `
-Persistent $true -SaveCredentials
Проблема, которую не получилось решить на разных версиях Powershell, связана с параметром ‘-SaveCredentials’. Его указание приводит к ошибке «New-SmbMapping : The parameter is incorrect.«. Его отсутствие — не сохраняет введенные учетные данные и после перезагрузки связь с диском может пропасть если не добавить соответствующую запись в ‘Credential Manager’.
Подключение дисков удаленно
Каждая из команд может выполняется удаленно. У команды ‘New-SMBMapping’ для этого есть встроенный параметр ‘CimSession’. В случае обоих подходов можно использовать команды из модуля PSRemoting, например ‘Invoke-Command’. Нужно отметить, что сетевые папки в Powershell всегда подключаются под тем пользователем, под которым была запущена консоль или скрипт. Если вы были аутентифицированы под пользователем ‘alex’ и открыли консоль Powershell, то диски будут подключены пользователю ‘alex’. Кроме этого, для каждой команды у вас должен быть запущен WinRM и установлены настройки в TrustedHost.
Пример команды, которая подключит диск у пользователя:
# Вводим логин и пароль пользователя
# который имеет право подключаться к удаленному компьютеру
$cred = Get-Credential
# Устанавливаем сессию с удаленным компьютером
$session = New-CimSession -Credential $cred -ComputerName 192.168.2.111
# Через созданную сессию подключаем сетевой диск
New-SmbMapping -LocalPath S: -RemotePath "\\192.168.2.200\admin2" -CimSession $session
Для обеих команд подойдет следующий способ:
# Вводим логин и пароль пользователя
# который имеет право подключаться к удаленному компьютеру
$cred = Get-Credential
# Используем учетные данные для выполнения команды
Invoke-Command -ComputerName '192.168.2.111' -Credential $cred -ScriptBlock {
New-PSDrive -Name 'G' -PSProvider 'FileSystem' -Root '\\192.168.2.200\SharedFolder' -Persist -Scope 'Global'
}
…
Теги:
#powershell
1. Подключение сетевых дисков.
1.1. New-SmbMapping
Самый простой способ подключить диски, используя команду New-SmbMapping, будет выглядеть следующим способом:
PS C:\> New-SmbMapping -LocalPath 'J:' -RemotePath '\\192.168.2.200\SharedFolder' -Persistent $true
В этой команде используются следующие ключи:
- LocalPath — локальный путь или буква, под которой будет подключен диск;
- RemotePath — путь к папке через IP или DNS. В случае выше подразумевается, что у пользователя, который открыл консоль Powershell, есть права для подключения к этому пути. Важно так же обратить внимание на кавычки, если ваш путь содержит специальные символы;
- Persistent — дословно переводится как ‘постоянный’, но в случае сетевых папок обозначает восстановление соединения после отключения сети/компьютера.
Пример выше специально демонстрирует проводник так как это одна из проблем этой команды в версии 5.1 — диск начнет отображаться в проводнике только после перезагрузки компьютера или перезапуске процесса ‘explorer.exe’.
1.2. New-PSDrive
В отличие от предыдущего способа — у него нет проблем с проводником, но после перезагрузки компьютера подключение к диску пропадет. Как я прочитал в каких-то версиях Powershell это исправлено, в каких-то появились новые проблем. Один из способов сделать диск постоянным — будет рассмотрен ниже.
Подключить аналогичный диск можно следующим способом:
PS C:\> New-PSDrive -Name 'G' -PSProvider 'FileSystem' -Root '\\192.168.2.200\SharedFolder' -Persist -Scope 'Global'
Где:
- Name — путь, буква или любой другой идентификатор определяющий диск. Чаще всего это просто буква;
- PSProvider — поставщик услуг. Всех поставщиков услуг можно увидеть через ‘Get-PSProvider’. В большинстве случаев поставщиком услуг для сетевых дисков будет ‘FileSystem’. В теории вы можете использовать поставщика «Registry» что бы в рамках сессии Powershell легче обращаться к какому-то пути. Поставщик услуг или ‘PSProvider’ — это условная программа, которая будет обрабатывать вашу команду между Powershell и Windows;
- Root — путь до удаленной папки. Если бы в ‘PSProvider’ стоял ‘Registry’, то тут можно было указать путь следующего формата: ‘HKLM:\Software\Microsoft’;
- Persist — должно ли восстанавливаться подключение при потере связи;
- Scope — область действия диска. В этом случае не должно играть значение, но на форумах советуют использовать значение ‘Global’, если не получается подключать диск. Если бы вы использовали сетевой диск только для одно сессии Powershell — вы могли бы ограничить область видимости диска.
2. Подключение дисков под другим пользователем.
Обе команды позволяют выполнять подключение используя других пользователей. Для каждой из команд этот подход отличается.
2.1. New-PSDrive.
В случае команды ‘New-PSDrive’ вам нужно будет выполнить ‘Get-Credential’ и поместить в него учетные данные. Традиционный способ поместить эти данные в переменную:
PS C:\> $сred = Get-Credential
Эта переменная будет хранить ссылку на объект в памяти, который нельзя будет экспортировать на другой компьютер. Как упростить процесс, если вы планируете использовать учетные данные на разных компьютерах, рассмотрено в другой статье.
После этого мы передаем переменную в параметр ‘-Credential’:
PS C:\> New-PSDrive -Credential $cred -Name 'G' -PSProvider 'FileSystem' -Root '\\192.168.2.200\SharedFolder' -Persist -Scope 'Global'
2.2. New-SMBMapping.
В случае с ‘New-SMBMapping’ эта операция выполняется проще. У вас есть 3 параметра, которые нужно заполнить:
- UserName — логин;
- Password — пароль;
- SaveCredential — нужно ли сохранять учетные данные.
Пример подключения с сохранением учетных данных:
PS C:\> $password = '123'
PS C:\> $username = 'admin@domain.local'
PS C:\> New-SmbMapping -Username $username -Password $password -LocalPath 'J:' -RemotePath '\\192.168.2.200\SharedFolder' -Persistent $true -SaveCredentials
Проблема, которую не получилось решить на разных версиях Powershell, связана с параметром ‘-SaveCredentials’. Его указание приводит к ошибке «New-SmbMapping : The parameter is incorrect.». Его отсутствие — не сохраняет введенные учетные данные и после перезагрузки связь с диском может пропасть если не добавить соответствующую запись в ‘Credential Manager’.
Встроенный PowerShell модуль SMBShare позволяет создавать, тонко настраивать и управлять общими сетевыми папками в Windows. В этой статье рассмотрим особенности управления сетевыми SMB папками Windows с помощью PowerShell. Вы можете использовать эти примеры для простого и быстрого управления настройками ваших файловых SMB серверов и сетевых папкок в различных сценариях автоматизации.
В модуле SMBShare доступно 42 команлета PowerShell для управления сетевыми папками. Их полный список можно вывести так:
Get-Command -Module SMBShare
Вывести текущую конфигурацию SMB сервера Windows:
Get-SmbServerConfiguration
AnnounceServer : False AsynchronousCredits : 64 AuditSmb1Access : False AutoDisconnectTimeout : 15 AutoShareServer : True AutoShareWorkstation : True CachedOpenLimit : 10 DurableHandleV2TimeoutInSeconds : 180 EnableAuthenticateUserSharing : False EnableDownlevelTimewarp : False EnableForcedLogoff : True EnableLeasing : True EnableMultiChannel : True EnableOplocks : True EnableSecuritySignature : False EnableSMB1Protocol : False EnableSMB2Protocol : True EnableStrictNameChecking : True EncryptData : False IrpStackSize : 15 KeepAliveTime : 2 MaxChannelPerSession : 32 MaxMpxCount : 50 MaxSessionPerConnection : 16384 MaxThreadsPerQueue : 20 MaxWorkItems : 1 NullSessionPipes : NullSessionShares : OplockBreakWait : 35 PendingClientTimeoutInSeconds : 120 RejectUnencryptedAccess : True RequireSecuritySignature : False ServerHidden : True Smb2CreditsMax : 2048 Smb2CreditsMin : 128 SmbServerNameHardeningLevel : 0 TreatHostAsStableStorage : False ValidateAliasNotCircular : True ValidateShareScope : True ValidateShareScopeNotAliased : True ValidateTargetName : True
Чтобы изменить эти параметры используйте командлет Set-SmbServerConfiguration:
Например, чтобы отключить использование устаревшего протокола SMB 1, выполните:
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
Вывести список версий протокола SMB, использующихся активными клиентами для подключения к общим папкам на этом файловом сервере:
Get-SmbConnection
Чтобы ограничить пропускную способность для файлового SMB трафика, можно настроить политику QoS для SMB сервера. Например, следующая команда ограничит максимальную используемую ширину канала для SMB трафика до 10 Мб:
Set-SmbBandwidthLimit -Category Default -BytesPerSecond 10MB
Создать сетевую папку Windows с помощью PowerShell
Чтобы вывести полный список сетевых папок, доступных на компьютере, выполните:
Get-SmbShare
На этом компьютере открыт доступ к административным общим ресурсам и к каталогу Distr.
Чтобы создать новую общую сетевую папку, выполните команду:
New-SmbShare -Name Scripts -Path C:\PS -FullAccess winitpro\spb_admins, winitpro\msk-man01$ -ChangeAccess "winitpro\msk-man01_script_rw" -ReadAccess “$env:USERDOMAIN\domain users” –description “Collection of management PowerShell scripts”
В этом примере мы создали сетевую папку и предоставили права доступа доменным группам и одному компьютеру.
Дополнительно при создании папки можно использовать такие параметры:
-
-CachingMode [None|Manual|Programs|Documents|BranchCache]
– задать режим кэширования для офлайн доступа (автономных файлов); -
-EncryptData $True
– включить шифрование SMB трафика; -
-FolderEnumerationMode [AccessBased | Unrestricted]
– включить опцию перечисления на основании доступа (Access-based Enumeration). Позволяет скрыть в сетевой папке объекты, на которых у пользователя нет доступа; -
-CompressData $True
– включить сжатие при передаче файлов по SMB; -
-ConcurrentUserLimit 50
– позволяет ограничить количество одновременных подключений к папке (по умолчанию 0, не ограничено); -
-Temporary
– создать временную сетевую папку (пропадет после следующей перезагрузки Window).
Полный список настроек сетевой папки можно вывести:
Get-SmbShare -Name scripts| select *
Чтобы удалить сетевую папку:
Remove-SmbShare Scripts
Добавить в список доступа сетевой папки разрешения на запись для указанного пользователя:
Grant-SmbShareAccess -Name Scripts -AccountName "winitpro\kbuldogov" -AccessRight Change –force
Вывести текущий список доступа к общей папке:
Get-SmbShareAccess scripts
Удалить группу из списка доступа:
Revoke-SmbShareAccess -Name Scripts -AccountName Everyone –Force
Принудительный запрет на доступ к общей папке (запрещающее разрешение имеет более высокий приоритет):
Block-SmbShareAccess -Name Scripts -AccountName winitpro\ExtUsers -Force
В большинстве случаев на уровне сетевой папки предоставляют доступ Everyone RW, а фактически права доступа к папке определяются на уровне NTFS.
Текущий NTFS ACL для сетевой папки можно получить с помощью команды:
(get-acl \\msk-man01\scripts).access
Чтобы изменить права доступа, используйте Set-Acl (подробнее про управление NTFS разрешениями с помощью PowerShell).
Управление открытыми файлами в сетевой папке
Командлеты модуля SMBShare можно использовать для просмотра списка файлов, открытых клиентами в сетевой папке на файловом сервере.
Вывести список открытых файлов с именами пользователей, именами компьютеров (IP адресами), и путями к файлам:
Get-SmbOpenFile|select ClientUserName,ClientComputerName,Path,SessionID
Вывести список файлов, открытых определённым пользователем:
Get-SMBOpenFile –ClientUserName "corp\kbuldogov" |select ClientComputerName,Path
Закрыть файл, открытый и заблокированный пользователем:
$sessn = New-CIMSession –Computername msk-fs01
Get-SMBOpenFile -CIMSession $sessn | where {$_.Path –like "*godovoy_otchet_2021.docx"} | Close-SMBOpenFile -CIMSession $sessn
Подключение сетевых дисков с помощью командлетов SmbMapping
Командлеты форматы SbmMapping используются для управления сетевыми дисками.
Чтобы подключить удаленную сетевую папку в сетевой диск U:, выполните команду:
New-SmbMapping -LocalPath U: -RemotePath \\msk-man01\scripts -UserName kbuldogov -Password mypass –Persistent $true -SaveCredential
- Без параметра Persistent сетевой диск будет доступен только до перезагрузки компьютера;
- Параметр SaveCredential позволяет сохранить учетные данные пользователя для подключения в диспетчер учетных данных Windows Credential Manager
Вывести список подключенных сетевых папок:
Get-SmbMapping
Для удаления сетевого диска:
Remove-SmbMapping U: -force
Последнее обновление 05.05.2023 —
Windows 10 предоставляет несколько способов подключения сетевого диска на вашем компьютере, в том числе с помощью PowerShell, который может пригодиться при создании скрипта или когда вы предпочитаете использовать интерфейс командной строки.
Когда вы используете PowerShell (или любые другие методы, такие как командная строка или проводник) для сопоставления общей сетевой папки, процесс создаст указатель на папку назначения, которая появится в проводнике как диск с назначенной вами буквой. Это.
В этом руководстве вы узнаете, как использовать PowerShell для подключения сетевого диска в Windows 10. Кроме того, мы расскажем, как отключить сопоставление, когда оно больше не нужно.
Чтобы подключить сетевой диск с помощью PowerShell, выполните следующие действия:
- Откройте Пуск в Windows 10.
- Найдите PowerShell и щелкните верхний результат, чтобы открыть консоль.
- Введите следующую команду, чтобы сопоставить букву назначения диска вручную, и нажмите Enter:
New-PSDrive -Name "DRIVER-LETTER" -PSProvider "FileSystem" -Root "\\DEVICE-NAME-OR-IP\SHARED-FOLDER" -Persist
В команде замените DRIVER-LETTER буквой диска, которая еще не используется, которую вы хотите использовать. Затем измените DEVICE-NAME-OR-IP и SHARED-FOLDER на имя имени компьютера или IP-адрес устройства, на котором размещена общая папка, и имя общей папки. Например, эта команда сопоставляет папку ShareOne с компьютером с буквой диска «E»:
New-PSDrive -Name "E" -PSProvider "FileSystem" -Root "\\vm-beta\ShareOne" -Persist
После выполнения этих шагов общая сетевая папка будет сопоставлена с компьютером и появится в проводнике.
Сопоставьте сетевой диск с учетными данными в PowerShell
Чтобы подключить сетевой диск, указав имя учетной записи и пароль, выполните следующие действия:
- Откройте Пуск.
- Найдите PowerShell и щелкните верхний результат, чтобы открыть консоль.
- Введите следующую команду, чтобы создать переменную с соответствующими учетными данными, и нажмите Enter:
$cred = Get-Credential -Credential USERNAME
Подсказка: если вы сопоставляете диск в Active Directory, не забудьте использовать сетевое имя следующим образом:
network\admin
указать информацию об учетной записи. - Подтвердите пароль своей учетной записи.
- Нажмите кнопку ОК.
- Введите следующую команду, чтобы сопоставить диск, назначив букву диска вручную, и нажмите Enter:
New-PSDrive -Name "E" -Root "\\DEVICE-NAME-OR-IP\SHARED-FOLDER" -Persist -PSProvider "FileSystem" -Credential $cred
В команде замените DRIVER-LETTER буквой диска, которая еще не используется, которую вы хотите использовать. Затем измените DEVICE-NAME-OR-IP и SHARED-FOLDER на имя имени компьютера или IP-адрес устройства, на котором размещена общая папка, и имя общей папки. Например, эта команда сопоставляет папку ShareOne с компьютером с буквой диска «E»:
New-PSDrive -Name "E" -Root "\\vm-beta\ShareOne" -Persist -PSProvider "FileSystem" -Credential $cred
После выполнения этих шагов команда проверит подлинность и сопоставит общую папку с диском в Windows 10.
При подключении с использованием учетных данных вам всегда будет предложено ввести пароль вручную. Если вы хотите избежать этого шага, вы можете сохранить пароль в зашифрованном файле на компьютере и запросить этот файл с помощью PowerShell. Или вы можете ускорить процесс, сохранив имя и пароль учетной записи удаленного хоста в диспетчере учетных данных, а затем используя ту же команду без -Crendtial
такой вариант: New-PSDrive -Name "E" -Root "\\vm-beta\ShareOne" -Persist -PSProvider "FileSystem"
Вы можете создать новую запись в Credential Manager с помощью этой команды: cmdkey /add:pcname /user:network\username /pass:password
Отключить подключенный сетевой диск в PowerShell
Чтобы отключить и удалить подключенный сетевой диск с помощью PowerShell, выполните следующие действия:
- Откройте Пуск.
- Найдите PowerShell и щелкните верхний результат, чтобы открыть консоль.
- Введите следующую команду, чтобы просмотреть все подключенные диски, и нажмите Enter:
Get-PSDrive -PSProvider "FileSystem"
- Введите следующую команду, чтобы отключить подключенный сетевой диск, и нажмите Enter:
Remove-PSDrive -Name DRIVE-LETTER
В команде замените DRIVE-LETTER на букву диска сопоставления. Например, эта команда отключает диск «E»:
Remove-PSDrive -Name E
- (Необязательно) Введите следующую команду, чтобы отключить несколько сопоставлений, и нажмите Enter:
Get-PSDrive DRIVER-LETTER-1, DRIVE-LETTER-2 | Remove-PSDrive
В команде замените DRIVER-LETTER-1 и DRIVE-LETTER-2 буквами дисков, которые вы хотите отключить. Например, эта команда отключает диски «E» и «F»:
Get-PSDrive E, F | Remove-PSDrive
После выполнения этих шагов сопоставление дисков будет удалено с компьютера.
Windows 10 provides multiple ways to map a network drive on your computer, including using PowerShell, which can come in handy when creating a script or when you prefer using a command-line interface.
When you use PowerShell (or any other methods, such as Command Prompt or File Explorer) to map a network-shared folder, the process will create a pointer to the destination folder that will appear in File Explorer as a drive with the letter you assigned it.
This guide will teach you how to use PowerShell to map a network drive on Windows 10. In addition, we will outline the steps to disconnect the mapping when it is no longer needed.
- Map network drive on PowerShell
- Map network drive with credentials on PowerShell
- Disconnect mapped network drive on PowerShell
To map a network drive with PowerShell on Windows 10, use these steps:
-
Open Start on Windows 10.
-
Search for PowerShell and click the top result to open the console.
-
Type the following command to map a drive assigning letter manually and press Enter:
New-PSDrive -Name "DRIVER-LETTER" -PSProvider "FileSystem" -Root "\\DEVICE-NAME-OR-IP\SHARED-FOLDER" -Persist
In the command, replace “DRIVER-LETTER” with the drive letter not already in use you want to use. Then, change “DEVICE-NAME-OR-IP” and “SHARED-FOLDER” for the name of the computer name or IP address of the device hosting the shared folder and the name of the shared folder. For example, this command maps the ShareOne folder to the computer with the “E” drive letter:
New-PSDrive -Name "E" -PSProvider "FileSystem" -Root "\\vm-beta\ShareOne" -Persist
Once you complete the steps, the network shared folder will map on the computer and appear in File Explorer.
Map network drive with credentials on PowerShell
To map a network drive providing the account name and password on Windows 11, use these steps:
-
Open Start.
-
Search for PowerShell and click the top result to open the console.
-
Type the following command to create a variable with the proper credentials, and press Enter:
$cred = Get-Credential -Credential USERNAME
Quick tip: If you are mapping a drive in Active Directory, remember to use the network name like this:
network\admin
to specify the account information. -
Confirm your account password.
-
Click the OK button.
-
Type the following command to map a drive assigning drive letter manually and press Enter:
New-PSDrive -Name "E" -Root "\\DEVICE-NAME-OR-IP\SHARED-FOLDER" -Persist -PSProvider "FileSystem" -Credential $cred
In the command, replace “DRIVER-LETTER” with the drive letter not already in use you want to use. Then, change “DEVICE-NAME-OR-IP” and “SHARED-FOLDER” for the name of the computer name or IP address of the device hosting the shared folder and the name of the shared folder. For example, this command maps the ShareOne folder to the computer with the “E” drive letter:
New-PSDrive -Name "E" -Root "\\vm-beta\ShareOne" -Persist -PSProvider "FileSystem" -Credential $cred
After you complete the steps, the command will authenticate and map the shared folder as a drive on Windows 10.
When connecting using credentials, you will always get prompted to provide a password manually. To avoid this step, you could store the password in an encrypted file on the computer and query that file using PowerShell. Or you can speed up the process by storing the remote host account name and password in Credential Manager and then using the same command without the -Crendtial
option. For example, New-PSDrive -Name "E" -Root "\\vm-beta\ShareOne" -Persist -PSProvider "FileSystem"
You can create a new entry in Credential Manager using cmdkey /add:pcname /user:network\username /pass:password
command.
Disconnect mapped network drive on PowerShell
To disconnect and remove a mapped network drive with PowerShell, use these steps:
-
Open Start.
-
Search for PowerShell and click the top result to open the console.
-
Type the following command to view all the mapped drives and press Enter:
Get-PSDrive -PSProvider "FileSystem"
-
Type the following command to disconnect the mapped network drive and press Enter:
Remove-PSDrive -Name DRIVE-LETTER
In the command, replace “DRIVE-LETTER” with the drive letter of the mapping. For example, this command disconnects the “E” drive:
Remove-PSDrive -Name E
-
(Optional) Type the following command to disconnect multiple mappings and press Enter:
Get-PSDrive DRIVER-LETTER-1, DRIVE-LETTER-2 | Remove-PSDrive
In the command, replace “DRIVER-LETTER-1” and “DRIVE-LETTER-2” with the drive letters you want to disconnect. For example, this command disconnects the “E” and “F” drives:
Get-PSDrive E, F | Remove-PSDrive
Once you complete the steps, the drive mapping will be removed from the computer.
We may earn commission for purchases using our links to help keep offering the free content. Privacy policy info.
All content on this site is provided with no warranties, express or implied. Use any information at your own risk. Always backup of your device and files before making any changes. Privacy policy info.