我希望自动化任务,例如通过Microsoft Computer management console compmgmt.msc
中的windows server 2003
通过共享路径为新用户提供访问权限。我正在寻找同样的power shell cmdlets
。有人可以将我引导到可以找到这些地方的地方。
谢谢, 桑巴夫(Sambhav)
答案 0 :(得分:1)
在W2K3上,您只有PSv1或2及其受支持的.Net库。所以你被那些卡住了。
尽管提供访问权限只是手动或通过代码设置权限。您不使用PS来控制Compmgmt.msc。 PS,目标确实不包括GUI管理。
您可以通过自动化授予共享权限,而无需触摸GUI。
PSv2(假设您已将其装在盒子上),则只有cmdlet https://social.technet.microsoft.com/wiki/contents/articles/13876.powershell-2-0-cmdlets.aspx
因此,从该列表中是...
Get-Acl
Set-Acl
...您所追求的cmdlet。
否则,下面的内容可能会显示不同的方法。
如何使用Powershell v2.0设置SHARE权限?
#Creating Security Descriptor
$sd = ([WMIClass] "Win32_SecurityDescriptor").CreateInstance()
#Creating ACE for Authenticated Users and setting it to Security Descriptor
[System.Security.Principal.NTAccount]$account="NT Authority\Authenticated Users"
[INT]$rights='1179817'
$ace = Create-WMIAce $account $rights
$sd.DACL += @($ace.psobject.baseobject) # append
$sd.ControlFlags="0x4" # set SE_DACL_PRESENT flag
#Creating ACE for Administrators and setting it to Security Descriptor
[System.Security.Principal.NTAccount]$account="BUILTIN\Administrators"
[System.Security.AccessControl.FileSystemRights]$rights='FullControl'
$ace = Create-WMIAce $account $rights
$sd.DACL += @($ace.psobject.baseobject) # append
$sd.ControlFlags="0x4" # set SE_DACL_PRESENT flag
#Setting Share Permissions
$Share = gwmi win32_share -filter "name='ShareName'"
$Share.SetShareInfo($Share.MaximumAllowed,$Share.Description,$SD)