如何使用PowerShell 2分配对Windows共享的完全访问权限

如何使用PowerShell 2分配对Windows共享的完全访问权限,powershell,wmi,Powershell,Wmi,我有一个可以共享文件夹的简单PowerShell命令: $(Get-WMIObject Win32_Share -List).Create("C:\MyPath\WebData", "WebData", 0) 但这使得“每个人”都具有只读访问权限 我如何在每个人都有完全访问权限的情况下创建它?或者任何其他途径 我无法确定如何在WMI共享创建方法上使用Win32\u SecurityDescriptor参数 到目前为止,我发现的示例只影响文件权限(获取ACL、设置ACL等),这不是我的问题,或者

我有一个可以共享文件夹的简单PowerShell命令:

$(Get-WMIObject Win32_Share -List).Create("C:\MyPath\WebData", "WebData", 0)
但这使得“每个人”都具有只读访问权限

我如何在每个人都有完全访问权限的情况下创建它?或者任何其他途径

我无法确定如何在WMI共享创建方法上使用
Win32\u SecurityDescriptor
参数

到目前为止,我发现的示例只影响文件权限(获取ACL、设置ACL等),这不是我的问题,或者它们使用命令行命令或vba,这也是我想要避免的。这在PS中必须是可能的

我无法在此处使用PowerShell 3,因此新的SMBShare和相关方法不可用


谢谢,

我以前也回答过类似的问题:

要使规则适用于
所有人
,您似乎需要使用以下内容对其进行修改:

$trustee.Name = "EVERYONE"
$trustee.Domain = $Null

测试样本:

#Username/Group to give permissions to
$trustee = ([wmiclass]'Win32_trustee').psbase.CreateInstance()
$trustee.Domain = $null
$trustee.Name = "EVERYONE"

#Accessmask values
$fullcontrol = 2032127
$change = 1245631
$read = 1179785

#Create access-list
$ace = ([wmiclass]'Win32_ACE').psbase.CreateInstance()
$ace.AccessMask = $fullcontrol
$ace.AceFlags = 3
$ace.AceType = 0
$ace.Trustee = $trustee

#Securitydescriptor containting access
$sd = ([wmiclass]'Win32_SecurityDescriptor').psbase.CreateInstance()
$sd.ControlFlags = 4
$sd.DACL = $ace
$sd.group = $trustee
$sd.owner = $trustee

$share = Get-WmiObject Win32_Share -List
$share.create("d:\testfolder", "testshare$", 0, 100, "Description", "", $sd)