Powershell Cmdlet提供对Windows 2003中共享路径上的新用户的访问

时间:2018-08-09 03:52:52

标签: windows powershell active-directory windows-server-2003 mmc

我希望自动化任务,例如通过Microsoft Computer management console compmgmt.msc中的windows server 2003通过共享路径为新用户提供访问权限。我正在寻找同样的power shell cmdlets。有人可以将我引导到可以找到这些地方的地方。

谢谢, 桑巴夫(Sambhav)

1 个答案:

答案 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权限?

     

https://social.technet.microsoft.com/Forums/ie/en-US/7fd11f99-c45b-4e8f-acb1-bd7df870a811/how-can-i-set-share-permissions-using-powershell-v20

 #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)