在PowerShell中共享文件夹并设置权限

时间:2008-12-30 10:45:30

标签: powershell permissions directory share

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

4 个答案:

答案 0 :(得分:16)

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

例如,

NET SHARE Movies = M:\ Movies / GRANT:Everyone`,READ

将创建一个共享并为Everyone提供只读权限。

您也可以使用CHANGE或FULL而不是READ。

答案 1 :(得分: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

答案 2 :(得分:12)

截至WMF 4:

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

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

答案 3 :(得分: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的作者和创造者。我建议使用此模块,因为在安装共享和授予权限时需要注意很多警告和坑洼。这两个功能为您解决了这个问题。