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

har*_*ott 16 directory permissions powershell share

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

Ken*_*vre 16

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

例如,

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

将创建一个共享,并为每个人提供只读权限.

您可以使用CHANGE或FULL代替READ.

  • 除非你引用最后一个参数,否则Powershell似乎不喜欢这个命令:NET SHARE Movies = M:\ Movies"/ GRANT:Everyone,READ" (4认同)

Don*_*nes 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.

  • MS链接:http://www.microsoft.com/downloadS/details.aspx?familyy = E8BA3E56-D8FE-A91-93CF-ED6985E3927B&displaylang = en (3认同)

xcu*_*cud 12

截至WMF 4:

New-SmbShare –Name ShareName –Path C:\LocalFolder –FullAccess Username
Run Code Online (Sandbox Code Playgroud)

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


Aar*_*sen 5

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:\
Run Code Online (Sandbox Code Playgroud)

免责声明:我是 Carbon 的作者和创建者。我建议使用此模块,因为在安装共享和授予权限时需要注意很多警告和漏洞。这两个函数会帮你处理这个问题。