【问题标题】:Active Directory PowerShell script permissionsActive Directory PowerShell 脚本权限
【发布时间】:2023-01-19 01:46:25
【问题描述】:

我是 PowerShell 和脚本的新手 我需要编写一个脚本:

  1. 列出域的所有 GPO,并检查列表中的参数“权限”是否为具体受托人“读取”。
  2. 如果参数“Permission”为空或填充为“write”而不是“read”,则必须将其更改为“read”。

    我在 Microsoft 官方文档中找到了一个 cmdlet,但它只在控制台上进行输入: Get-GPPermission -Name "TestGPO" -All

【问题讨论】:

    标签: powershell active-directory


    【解决方案1】:

    以下是如何检查所有 GPO 中的特定权限条目的示例:

    # put your AD group name here
    $target = 'ENTERPRISE DOMAIN CONTROLLERS'
    
    # iterate through all GP objects
    Foreach ($GPO in (Get-GPO -All)) {
      
      # get current permissions for GPO
      $Current = Get-GPPermission -Name $GPO.DisplayName -TargetName $target -TargetType Group -ErrorAction Ignore
    
      # check if current permissions exist and are correct
      if ($Current -and ($Current.Permission -eq 'GpoRead')) {
        Write-Host ($GPO.DisplayName + " permissions correct")
      }
      # otherwise, set corrected permissions
      Else {
        Write-Warning ($GPO.DisplayName + " permissions NOT correct")
    
        # example way to set or add permissions
        #Set-GPPermission -Name $GPO.DisplayName -PermissionLevel GpoRead -TargetName $target -TargetType Group
      }
    }
    
    # outputs like
    Default Domain Policy permissions correct
    Default Domain Controllers Policy permissions correct
    Bad-Policy permissions NOT correct
    

    但是,请注意默认情况下所有Authenticated Users 都已经拥有对所有 GPO 的读取和应用访问权限,因此最好搜索编辑权限并将其删除(取决于您的环境)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-20
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      相关资源
      最近更新 更多