Если у вас Windows 8 или свежее, всё очень и очень просто. В этих ОС есть готовый модуль для PowerShell. Расшарить папку очень просто:
New-SmbShare -Name $sharename -Path $sharepath -ContinuouslyAvailable 0 –FullAccess Все
Где
- $sharename — имя шары
- $sharepath — путь к шаре
- ContinuouslyAvailable — доступность после перезагрузки (0 — недоступны, 1 — доступны)
- –FullAccess — полный доступ
В более ранних версиях, без небольших танцев с буном не обойтись. Необходимо использовать утилиту командной строки net share
В скрипте надо сформаровать переменную, содержащую имя и путь к шаре, вида
sharename=DISK:\\sharepath
например
$sharename = "mainshare"
$sharepath = $volumeletter + ":\main"
$sharecmd = $sharename+'='+$sharepath
И после этого, можно запустить net share
net share $sharecmd --% /GRANT:all,FULL
Что тут важно?
- «—%» — все переменные слева от этой последовательности powershell преобразует в значения до запуска команды
- Из powershell в командную строку плохо передаются русские символы, да и вообще, все национальные символы, по этому, если надо добавить доступ служебной группе «Все», самый простой способ выкрутиться:
- Создать группу All
- Сделать членом группы All, группу Все 🙂