2008-12-30 433 views
15

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

回答

12

两个答案。

在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

+0

由于唐。我尝试了链接中的subinacl脚本,但其中存在错误。 – harriyott 2008-12-31 11:49:18

+3

MS链接:http://www.microsoft.com/downloadS/details.aspx?familyid=E8BA3E56-D8FE-4A91-93CF-ED6985E3927B&displaylang=en – 2009-02-13 02:58:13

15

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

例如,

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

将创建一个共享,并给大家只读权限给它。

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

4

Carbon PowerShell模块有两个功能,将为您做到这一点:Install-SmbShareGrant-Permission。我会download it并试一试。

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

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