如何使用 PowerShell 2 分配对 Windows 共享的完全访问权限
How do I assign full access to a Windows Share using PowerShell 2
我有一个可以共享文件夹的简单 PowerShell 命令:
$(Get-WMIObject Win32_Share -List).Create("C:\MyPath\WebData", "WebData", 0)
但是创建它时 "Everyone" 具有只读访问权限。
如何创建每个人都具有完全访问权限?或任何其他访问权限。
我不知道如何在 WMI 共享创建方法中使用 Win32_SecurityDescriptor
参数。
到目前为止我找到的例子只影响文件权限(Get-ACL、Set-ACL 等),不是我遇到的问题,或者他们使用命令行命令或 vba,我也想避免。这在 PS.
中必须是可能的
我这里不能使用PowerShell 3,所以新的New-SMBShare 和相关方法不可用。
谢谢,
我之前回答过类似的问题:
Powershell - Invoke-WmiMethod to create a Sharefolder remotely with full controle permission
要使规则适用于 Everyone
那么您似乎需要修改它:
$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)
我有一个可以共享文件夹的简单 PowerShell 命令:
$(Get-WMIObject Win32_Share -List).Create("C:\MyPath\WebData", "WebData", 0)
但是创建它时 "Everyone" 具有只读访问权限。
如何创建每个人都具有完全访问权限?或任何其他访问权限。
我不知道如何在 WMI 共享创建方法中使用 Win32_SecurityDescriptor
参数。
到目前为止我找到的例子只影响文件权限(Get-ACL、Set-ACL 等),不是我遇到的问题,或者他们使用命令行命令或 vba,我也想避免。这在 PS.
中必须是可能的我这里不能使用PowerShell 3,所以新的New-SMBShare 和相关方法不可用。
谢谢,
我之前回答过类似的问题:
Powershell - Invoke-WmiMethod to create a Sharefolder remotely with full controle permission
要使规则适用于 Everyone
那么您似乎需要修改它:
$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)