• 使用 Active Directory PowerShell 模块收集 AD 数据


    原文:https://adsecurity.org/?p=3719  chrome默认翻译结果

    Microsoft 随 Windows Server 2008 R2(和更新版本)提供了多个 Active Directory PowerShell cmdlet,这大大简化了以前需要将涉及 ADSI 的冗长代码行放在一起的任务。

    在 Windows 客户端上,安装远程服务器管理工​​具 (RSAT)并确保安装了 Active Directory PowerShell 模块。

    在 Windows 服务器(2008 R2 或更新版本)上,在 PowerShell 控制台中运行以下命令(以管理员身份):

    导入模块服务器管理器;添加-WindowsFeature RSAT-AD-PowerShell

    这是我的(糟糕的)ADSI 示例:

    $UserID = “JoeUser”
    $root = [ADSI]''
    $searcher = 新对象 System.DirectoryServices.DirectorySearcher($root)
    $searcher.filter = "(&(objectClass=user)(sAMAccountName= $UserID))"
    $user = $searcher.findall()
    $用户

    AD PowerShell cmdlet 也是如此:

    导入模块 ActiveDirectory
    $UserID = “JoeUser”
    Get-ADUser $UserID –property *

    请注意,对于 PowerShell 版本 3 及更高版本,您不需要运行第一行,因为 Powershell 将识别必要的模块并自动加载它。

    一旦你加载了 Active Directory PowerShell 模块,你就可以做一些很酷的事情,比如像文件系统一样浏览 AD

    查找有用的命令 (Cmdlet):

    发现可用的 PowerShell 模块:Get-Module -ListAvailable

    在 PowerShell 模块中发现 cmdlet:  Get-Command -module ActiveDirectory

     PowerShell AD 模块 Cmdlet:

    • Windows Server 2008 R2:76 个 cmdlet
    • Windows Server 2012:135 个 cmdlet
    • Windows Server 2012 R2:147 个 cmdlet
    • Windows Server 2016:147 个 cmdlet
    (Get-Command -module ActiveDirectory).count

    查找 Active Directory 灵活主单一操作 (FSMO) 角色:

    活动目录模块:

    • (Get-ADForest).SchemaMaster
    • (Get-ADForest).DomainNamingMaster
    • (Get-ADDomain).InfrastructureMaster
    • (Get-ADDomain).PDCEmulator
    • (Get-ADDomain).RIDMaster
      
      

    .NET 调用:

    • ([System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()).SchemaRoleOwner
    • ([System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()).NamingRoleOwner
    • ([System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()).InfrastructureRoleOwner
    • ([System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()).PdcRoleOwner
    • ([System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()).RidRoleOwner

    Active Directory PowerShell 模块 Cmdlet 示例:

    Get-RootDSE获取有关 LDAP 服务器(域控制器)的信息并显示它。结果中有一些有趣的信息,例如 DC 正在运行的操作系统。

    Get-ADForest提供有关运行命令的计算机所在的 Active Directory 林的信息。

    Get-ADDomain提供有关您所在的当前域的信息。

    Get-ADDomainController提供特定于域控制器的计算机信息。
    此 cmdlet 可以轻松查找特定站点或运行操作系统版本中的所有 DC。

    Get-ADComputer提供了您想了解的有关 AD 中计算机对象的大部分信息。
    使用“-Prop *”运行以显示所有标准属性。

    Get-ADUser提供了您想了解的有关 AD 用户的大部分信息。
    使用“-Prop *”运行以显示所有标准属性。

    Get-ADGroup提供有关 AD 组的信息。通过运行查找所有安全组:
    Get-ADGroup -Filter {GroupCategory -eq 'Security}

    Get-ADGroupMember枚举并返回组成员。使用 Recursive 参数包括嵌套组的所有成员。
    Get-ADGroupMember 'Administrators' -Recursive

    这些 cmdlet 可用于识别以前需要购买产品或自定义脚本的情况。

    以下示例查找非活动(陈旧)计算机和用户 - 在过去 10 天内未更改其密码的帐户。请注意,这是一个实验室示例。对于实际检查,请将其更改为计算机的 60 至 90 天和用户的 180 至 365 天。

    查找不活动的计算机。

    查找不活跃用户。

    枚举域信任

    获取 AD 站点信息。
    请注意,Windows 2012 模块包括用于站点的 cmdlet ( Get-ADReplicationSite *)。

    备份域 GPO
    请注意,这需要安装独立于 Active Directory 模块的组策略 PowerShell 模块。

    查找 AD Kerberos 服务帐户

    清点域控制器
    Get-ADDomainController–filter * | `选择主机名、IPv4Address、IsGlobalCatalog、IsReadOnly、OperatingSystem | `格式表-自动

    Get-ADReplicationPartnerMetadata(Windows Server 2012 和更新版本)

    Get-ADReplicationPartnerFailure提供有关 DC 复制失败状态的信息。

    Get-ADReplicationUptodatenessVectorTable跟踪域控制器之间的复制状态。

    这些示例以及更多示例在这些演示幻灯片中:http :
    //adsecurity.org/wp-content/uploads/2015/04/NoVaPowerShellUsersGroup2015-ActiveDirectoryPowerShell.pdf

  • 相关阅读:
    滑雪在日本 之 新泻篇 7
    就算神游 之四:富士山和富士游乐园 12
    滑雪在日本 之 新泻篇 15
    就算神游 之四:富士山和富士游乐园 6
    滑雪在日本 之 新泻篇 6
    就算神游 之四:富士山和富士游乐园 13
    滑雪在日本 之 新泻篇 4
    20121022日记流水账
    滑雪在日本 之 新泻篇 8
    滑雪在日本 之 新泻篇 5
  • 原文地址:https://www.cnblogs.com/mrhonest/p/14989202.html
Copyright © 2020-2023  润新知