我需要一个在 Vista Ultimate 上运行的脚本来共享一个外部驱动器并将完全控制权分配给每个人。我有一个批处理文件来使用创建共享net share
,但似乎没有办法更改权限。我认为这在 PowerShell 中一定是可能的,但我不知道从哪里开始。
4 回答
如果您正在寻找这个问题的答案,但您运行的是 Windows 7(而不是 Vista),就像我一样,您可能有兴趣知道现在可以直接在 NET SHARE 命令中设置权限.
例如,
NET SHARE 电影=M:\Movies /GRANT:Everyone`,阅读
将创建一个共享并授予每个人对其的只读权限。
除了 READ,您也可以使用 CHANGE 或 FULL。
从 WMF 4 开始:
New-SmbShare –Name ShareName –Path C:\LocalFolder –FullAccess Username
两个答案。
在 PowerShell 中,Get-ACL cmdlet 将检索现有权限。然后使用 .NET 命令修改这些命令,并运行 Set-ACL 将其应用回文件夹 - 这两个 cmdlet 的帮助包含示例,您可以从 www.sapienpress.com 下载书籍示例,以获取“Windows PowerShell: TFM " = 本书还包含明确的示例。
但是,这不值得您花时间。实际上,文件 ACL 处理起来非常痛苦,而且非常复杂。微软已经编写了很好的工具来做到这一点,比如 Cacls,而且使用这些工具要容易得多。
现在这就是所有 FILE 权限 - 您可能还对更改 SHARE 本身的权限感兴趣。该工具是 SUBINACL,您可以从 Microsoft 下载它。另请参阅http://cwashington.netreach.net/depo/view.asp?Index=1127&ScriptType=vbscript。
Carbon PowerShell 模块有两个函数可以为您执行此操作: Install -SmbShare和Grant-Permission。我会下载它并试一试。
Install-SmbShare -Name MyShare -Path X:\ -FullAccess 'Everybody' `
-Description 'My super-awesome file share!'
Grant-Permission -Identity Everyone -Permission FullControl -Path X:\
免责声明:我是 Carbon 的作者和创造者。我建议使用这个模块,因为在安装共享和授予权限时需要注意很多警告和坑洞。这两个功能会为您解决这个问题。