更改 Powershell 中的访问掩码(文件共享权限)
Changing the Access Mask in Powershell (File Share Permissions)
我正在尝试使用 PowerShell 在远程服务器上创建共享文件夹,其中 Everyone 需要具有完全控制权限。在 Security 中更改它真的很容易,但是对于 Share Permission,网络上没有那么多信息。
虽然我可以获得有关访问掩码的信息:
$folder='Profile'
$setting = get-wmiobject -Class Win32_LogicalShareSecuritySetting -ComputerName nano-03 -filter "Name='$folder'"
$setting.GetSecurityDescriptor().Descriptor.Dacl | Select @{Name="Domain";Expression={$_.Trustee.Domain}},@{Name="Name";Expression={$_.Trustee.Name}},AccessMask
#here is more specify
$setting.GetSecurityDescriptor().Descriptor.Dacl | Where {$_.trustee.name -eq 'Everyone'}
值是 1179817,但我需要它是 2032127 才能完全控制
有一个方法SetSecurityDescriptor(),但我不知道如何正确使用它。有人有想法吗?
谢谢!
由于您使用的是最新版本的 PowerShell,您可以使用 New-SmbShare
创建共享并设置权限:
New-SmbShare –Name MySharedFolder –Path C:\folder\MySharedFolder -FullAccess Everyone
这不能 运行 直接针对远程计算机,因此您需要使用 Invoke-Command
远程 运行 它:
Invoke-Command -ComputerName server1 -ScriptBlock { New-SmbShare –Name MySharedFolder –Path C:\folder\MySharedFolder -FullAccess Everyone }
我正在尝试使用 PowerShell 在远程服务器上创建共享文件夹,其中 Everyone 需要具有完全控制权限。在 Security 中更改它真的很容易,但是对于 Share Permission,网络上没有那么多信息。 虽然我可以获得有关访问掩码的信息:
$folder='Profile'
$setting = get-wmiobject -Class Win32_LogicalShareSecuritySetting -ComputerName nano-03 -filter "Name='$folder'"
$setting.GetSecurityDescriptor().Descriptor.Dacl | Select @{Name="Domain";Expression={$_.Trustee.Domain}},@{Name="Name";Expression={$_.Trustee.Name}},AccessMask
#here is more specify
$setting.GetSecurityDescriptor().Descriptor.Dacl | Where {$_.trustee.name -eq 'Everyone'}
值是 1179817,但我需要它是 2032127 才能完全控制
有一个方法SetSecurityDescriptor(),但我不知道如何正确使用它。有人有想法吗?
谢谢!
由于您使用的是最新版本的 PowerShell,您可以使用 New-SmbShare
创建共享并设置权限:
New-SmbShare –Name MySharedFolder –Path C:\folder\MySharedFolder -FullAccess Everyone
这不能 运行 直接针对远程计算机,因此您需要使用 Invoke-Command
远程 运行 它:
Invoke-Command -ComputerName server1 -ScriptBlock { New-SmbShare –Name MySharedFolder –Path C:\folder\MySharedFolder -FullAccess Everyone }