我需要一个脚本在Vista Ultimate上运行,分享一个外部驱动器并授予Everyone完全控制权限。 我有一个批处理文件来使用net share
创建共享,但似乎没有办法更改权限。 我想这应该可以在PowerShell中实现,但我不知道从哪里开始。
我需要一个脚本在Vista Ultimate上运行,分享一个外部驱动器并授予Everyone完全控制权限。 我有一个批处理文件来使用net share
创建共享,但似乎没有办法更改权限。 我想这应该可以在PowerShell中实现,但我不知道从哪里开始。
截至 WMF 4 版本:
New-SmbShare –Name ShareName –Path C:\LocalFolder –FullAccess Username
如果你正在寻找这个问题的答案,但是你使用的是Windows 7 (而不是Vista),就像我一样,你可能会感兴趣地知道,现在可以直接在NET SHARE命令中设置权限了。
例如,
NET SHARE Movies=M:\Movies /GRANT:Everyone`,READ
将创建一个共享,并给予Everyone只读权限。
你也可以使用CHANGE或FULL代替READ。
两个回答。
在PowerShell中,Get-ACL cmdlet将检索现有权限。然后使用.NET命令修改这些权限,并运行Set-ACL将其应用于文件夹,这两个cmdlet的帮助包括示例,您可以从www.sapienpress.com下载书籍示例,例如《Windows PowerShell:TFM》,该书还包含显式示例。
然而,这不值得你花费时间。实际上,文件ACL是很难处理且非常复杂的。微软已经编写了一些很好的工具来处理此类问题,如Cacls,使用它们要容易得多。
现在这是所有文件权限 - 您可能还想更改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:\