在PowerShell中共享文件夹并设置权限
我需要一个脚本在Vista Ultimate上运行,以共享一个外部驱动器并将完全控制权分配给每个人。我有一个批处理文件,可以使用在PowerShell中共享文件夹并设置权限,powershell,permissions,directory,share,Powershell,Permissions,Directory,Share,我需要一个脚本在Vista Ultimate上运行,以共享一个外部驱动器并将完全控制权分配给每个人。我有一个批处理文件,可以使用netshare创建共享,但似乎没有办法更改权限。我认为这在PowerShell中一定是可能的,但我不知道从哪里开始。两个答案 在PowerShell中,Get-ACL cmdlet将检索现有权限。然后使用.NET命令修改这些内容,并运行Set-ACL将其应用回文件夹-这两个cmdlet的帮助包括示例,您可以从www.sapienpress.com下载“Windows
netshare
创建共享,但似乎没有办法更改权限。我认为这在PowerShell中一定是可能的,但我不知道从哪里开始。两个答案
在PowerShell中,Get-ACL cmdlet将检索现有权限。然后使用.NET命令修改这些内容,并运行Set-ACL将其应用回文件夹-这两个cmdlet的帮助包括示例,您可以从www.sapienpress.com下载“Windows PowerShell:TFM”的书籍示例=该书还包含显式示例
然而,这不值得你花时间。实际上,文件ACL是一个非常棘手的问题,而且非常复杂。微软已经编写了一些可爱的工具来实现这一点,比如Cacls,而且仅仅使用这些工具就容易多了
现在,这就是所有文件权限-您可能还对更改共享本身的权限感兴趣。这方面的工具是SUBINACL,您可以从Microsoft下载它。另见 如果您正在搜索此问题的答案,但您正在运行Windows 7(而不是Vista),就像我一样,您可能有兴趣知道,现在可以直接在NET SHARE命令中设置权限 比如说, NET SHARE Movies=M:\Movies/GRANT:Everyone`,阅读 将创建一个共享,并向每个人授予该共享的只读权限 您也可以使用“更改”或“完全”来代替“读取”。PowerShell模块有两个功能可以为您执行此操作:和。我想试试看
Install-SmbShare -Name MyShare -Path X:\ -FullAccess 'Everybody' `
-Description 'My super-awesome file share!'
Grant-Permission -Identity Everyone -Permission FullControl -Path X:\
免责声明:我是碳的作者和创造者。我建议使用此模块,因为在安装共享和授予权限时,需要注意很多注意事项和漏洞。这两个功能将为您解决此问题。从WMF 4开始:
New-SmbShare –Name ShareName –Path C:\LocalFolder –FullAccess Username
谢谢你,唐。我尝试了链接中的subinacl脚本,但其中有一个错误。MS link:Powershell似乎不喜欢此命令,除非您引用最后一个参数:NET SHARE Movies=M:\Movies”/GRANT:everybody,READ“添加转义字符以便不解析逗号…”/GRANT:Everyone`,READnote to future users:在win10 1803中工作正常,与运行win10 1607的本地hyperV实例共享