在我的场景中,我必须阅读机器的 Windows 组。我只需要为某些 Windows 组授予对文件夹的写权限。
我需要在 Powershell 脚本中实现它。
嗨,您可以使用下面的脚本来获取 Windows 机器组的列表,我想您需要管理员组中的用户,下面的脚本将列出管理员组中的成员。
$compname = hostname
$computer = [ADSI]("WinNT://" + $compname + ",computer")
$Group = $computer.psbase.children.find("Administrators")
$Group.psbase.invoke("Members") | %{$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)}
它的输出将如下所示
Administrator
Domain Admins
获得所需组后,您可以在我的场景中使用下面的 powershell cmdlet 分配权限,我将写入权限设置为“C:\Data\Learning Products”,我的意思是“域管理员”的“学习产品”文件夹
$Acl = Get-Acl "C:\Data\Learning Products"
$Ar = New-Object system.security.accesscontrol.filesystemaccessrule("Domain Admins","Write","Allow")
$Acl.SetAccessRule($Ar)
Set-Acl "C:\Data\Learning Products" $Acl
设置权限后,您可以通过运行来验证它
Get-Acl "C:\Data\Learning Products" | ForEach-Object { $_.Access } | ft -Wrap
哪个 wpuld 确实表明“域管理员”现在具有对该文件夹的写入权限
磷
osh (0310) > Get-Acl "C:\Data\Learning Products" | ForEach-Object { $_.Access } | ft -Wrap
FileSystemRights AccessControlType IdentityReference IsInherited InheritanceFlags PropagationFlags
---------------- ----------------- ----------------- ----------- ---------------- ----------------
Write, Synchronize Allow GDNINDIA\Domain False None None
Admins
FullControl Allow BUILTIN\Administrat True None None
ors
ObjectInherit
FullControl Allow NT AUTHORITY\SYSTEM True None None
ReadAndExecute, Allow BUILTIN\Users True ContainerInherit, None
Synchronize ObjectInherit
Modify, Synchronize Allow NT AUTHORITY\Authen True None None
ticated Users