Встроенный 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
Чтобы вывести полный список сетевых папок, доступных на компьютере, выполните:
Get-SmbShare
На этом компьютере открыт доступ к административным общим ресурсам и к каталогу Distr.
Чтобы создать новую общую сетевую папку, выполните команду:
New-SmbShare -Name Scripts -Path C:PS -FullAccess remontkaspb_admins, remontkamsk-man01$ -ChangeAccess "remontkamsk-man01_script_rw" -ReadAccess “$env:USERDOMAINdomain 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 "remontkakbuldogov" -AccessRight Change –force
Вывести текущий список доступа к общей папке:
Get-SmbShareAccess scripts
Удалить группу из списка доступа:
Revoke-SmbShareAccess -Name Scripts -AccountName Everyone –Force
Принудительный запрет на доступ к общей папке (запрещающее разрешение имеет более высокий приоритет):
Block-SmbShareAccess -Name Scripts -AccountName remontkaExtUsers -Force
Текущий NTFS ACL для сетевой папки можно получить с помощью команды:
(get-acl \msk-man01scripts).access
Чтобы изменить права доступа, используйте Set-Acl (подробнее про управление NTFS разрешениями с помощью PowerShell ).
Командлеты модуля SMBShare можно использовать для просмотра списка файлов, открытых клиентами в сетевой папке на файловом сервере.
Вывести список открытых файлов с именами пользователей, именами компьютеров (IP адресами), и путями к файлам:
Get-SmbOpenFile|select ClientUserName,ClientComputerName,Path,SessionID
Вывести список файлов, открытых определённым пользователем:
Get-SMBOpenFile –ClientUserName "corpkbuldogov" |select ClientComputerName,Path
Закрыть файл, открытый и заблокированный пользователем:
$sessn = New-CIMSession –Computername msk-fs01
Get-SMBOpenFile -CIMSession $sessn | where {$_.Path –like "*godovoy_otchet_2021.docx"} | Close-SMBOpenFile -CIMSession $sessn
Командлеты форматы SbmMapping используются для управления сетевыми дисками.
Чтобы подключить удаленную сетевую папку в сетевой диск U:, выполните команду:
New-SmbMapping -LocalPath U: -RemotePath \msk-man01scripts -UserName kbuldogov -Password mypass –Persistent $true -SaveCredential
Вывести список подключенных сетевых папок:
Get-SmbMapping
Для удаления сетевого диска:
Remove-SmbMapping U: -force
Как менялся логотип Apple на протяжении многих лет. Логотип Apple — это не просто символ,…
Security Boot Fail при загрузке Acer — решение проблемы При загрузке ноутбука Acer с флешки,…
Ноутбук не включается — варианты решения Если при попытке включить ноутбук вы обнаруживаете, что он…
The AC power adapter wattage and type cannot be determined — причины и решение При…
Свистит или звенит блок питания компьютера — причины и решения Некоторые владельцы ПК могут обратить…
Мигает Caps Lock на ноутбуке HP — почему и что делать? При включении ноутбука HP…