17

我需要一个在 Vista Ultimate 上运行的脚本来共享一个外部驱动器并将完全控制权分配给每个人。我有一个批处理文件来使用创建共享net share,但似乎没有办法更改权限。我认为这在 PowerShell 中一定是可能的,但我不知道从哪里开始。

4

4 回答 4

16

如果您正在寻找这个问题的答案,但您运行的是 Windows 7(而不是 Vista),就像我一样,您可能有兴趣知道现在可以直接在 NET SHARE 命令中设置权限.

例如,

NET SHARE 电影=M:\Movies /GRANT:Everyone`,阅读

将创建一个共享并授予每个人对其的只读权限。

除了 READ,您也可以使用 CHANGE 或 FULL。

于 2011-10-07T00:30:08.760 回答
16

从 WMF 4 开始:

New-SmbShare –Name ShareName –Path C:\LocalFolder –FullAccess Username

http://technet.microsoft.com/en-us/library/jj635722.aspx

于 2014-12-15T15:47:27.247 回答
13

两个答案。

在 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

于 2008-12-30T14:56:54.123 回答
4

Carbon PowerShell 模块有两个函数可以为您执行此操作: Install -SmbShareGrant-Permission。我会下载它并试一试。

Install-SmbShare -Name MyShare -Path X:\ -FullAccess 'Everybody' `
                 -Description 'My super-awesome file share!' 
Grant-Permission -Identity Everyone -Permission FullControl -Path X:\

免责声明:我是 Carbon 的作者和创造者。我建议使用这个模块,因为在安装共享和授予权限时需要注意很多警告和坑洞。这两个功能会为您解决这个问题。

于 2012-08-28T20:15:35.863 回答