@passstrada

Как сделать общий доступ к папке через PowerShell?

Нужен скрипт, который при запуске установит и включит необходимые компоненты для работы общей сети и откроет доступ к текущей папке (где будет выполнен скрипт) поставит "для всех" и без ввода пароля.
(не думайте мне чисто для себя, открыть доступ чтобы телевизор видел hdd второй, чтоб фильмы смотреть)

1. Установит компонент SMBv1
2. Включает службы "Обнаружение SSDP", "Узел универсальных PNP-устройств", "Хост поставщика функции обнаружения", "Публикация ресурсов обнаружения функции" и "DNS-клиент".
3. Включает сетевой доступ для частной и общей сети.
4. Получает текущий путь к папке.
5. Создает новое правило доступа, предоставляющее полный контроль для группы "Everyone" на указанной папке.
6. Получает текущие разрешения на папку.
7. Добавляет новое правило доступа в разрешения на папку.
8. Применяет измененные разрешения на папку.

Я тут набросал что нашел, но чет не работает:

[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("UTF-8")
chcp 65001
Clear-Host

Write-Host "Проверяем, установлен ли компонент SMBv1"
if ((Get-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol").State -ne "Enabled")
{
    Write-Host "Устанавливаем компонент SMBv1"
    Enable-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol" -NoRestart
}
else
{
    Write-Host "Компонент SMBv1 уже установлен."
}

Write-Host "Включение службы Обнаружение SSDP"
Set-Service -Name "SSDPSRV" -StartupType Automatic
Start-Service -Name "SSDPSRV"
Write-Host "Включение службы Узел универсальных PNP-устройств"
Set-Service -Name "upnphost" -StartupType Automatic
Start-Service -Name "upnphost"
Write-Host "Включение службы Хост поставщика функции обнаружения"
Set-Service -Name "fdPHost" -StartupType Automatic
Start-Service -Name "fdPHost"
Write-Host "Включение службы Публикация ресурсов обнаружения функции"
Set-Service -Name "FDResPub" -StartupType Automatic
Start-Service -Name "FDResPub"
Write-Host "Включение службы DNS-клиент"
Set-Service -Name "Dnscache" -StartupType Automatic
Start-Service -Name "Dnscache"

Write-Host "Включение сетевого доступа для частной и общей сети"
netsh advfirewall firewall set rule group="Обнаружение сети" new enable=Yes
Write-Host "Получите текущий путь к папке"
$folderPath = (Get-Location).Path
Write-Host "Создайте новое правило доступа"
$permission = "Everyone", "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow"
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
Write-Host "Получите текущие разрешения на папку"
$acl = Get-Acl $folderPath
Write-Host "Добавьте новое правило доступа в разрешения на папку"
$acl.AddAccessRule($accessRule)
Write-Host "Примените измененные разрешения на папку"
Set-Acl $folderPath $acl
Pause
Exit
  • Вопрос задан
  • 296 просмотров
Пригласить эксперта
Ответы на вопрос 1
@NortheR73
системный инженер
что б фильмы смотреть =)
Включить DLNA не вариант?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы