You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Get-ADComputer在Server2019与Win10返回属性差异解决方案

问题现象

在Windows Server 2019(PowerShell版本5.1.17763.2931)中执行命令:

Get-ADComputer $CompName -Properties * | Get-Member | ft -AutoSize

可正常返回包含Description属性在内的百余项AD计算机对象属性、方法完整列表。
使用完全相同的AD账号在Windows 10(PowerShell版本5.1.19041.1682)上执行同一条命令时,仅能返回十余项默认属性,无法查询到计算机描述属性,但Win10端通过ADUC控制台可正常查看Active Directory中存储的计算机描述信息。


问题1:除Get-ADComputer外获取AD计算机对象描述属性的方法

以下方法均不依赖-Properties *参数的行为,可稳定获取描述字段:

  • 使用LDAP原生查询接口(无需依赖RSAT AD模块,兼容性最强)
$CompName = "替换为目标计算机名"
$searcher = New-Object System.DirectoryServices.DirectorySearcher
$searcher.Filter = "(&(objectCategory=computer)(sAMAccountName=$CompName$))"
$searcher.PropertiesToLoad.AddRange(@("name","description"))
$res = $searcher.FindOne()
# 直接输出描述值
$res.Properties.description
  • 调用AD账户管理类库查询
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$domainCtx = New-Object System.DirectoryServices.AccountManagement.PrincipalContext([System.DirectoryServices.AccountManagement.ContextType]::Domain)
$compObj = [System.DirectoryServices.AccountManagement.ComputerPrincipal]::FindByIdentity($domainCtx, $CompName)
$compObj.Description
  • 使用原生命令行工具查询(需安装RSAT AD管理工具)
:: 替换为目标计算机名执行
dsquery computer -name "WIN10-TEST-01" | dsget computer -desc

问题2:Win10端让Get-ADComputer返回全量属性的配置方案

该问题本质是Win10端自带的RSAT AD PowerShell模块默认对计算机对象的返回属性做了裁剪,和Server 2019端模块内置的默认属性集配置不一致,和账号权限无关,可通过以下方案解决:

  • 不依赖模块版本的兼容方案(推荐)
    不要直接用-Properties *通配符,手动显式传入需要拉取的属性列表,或先枚举域内计算机对象的全量属性名再传入,命令如下:
    # 仅拉取描述属性的场景,直接指定属性名即可
    Get-ADComputer $CompName -Properties Description
    
    # 需要拉取全量属性的场景,先获取所有属性名再传入
    $allPropNames = (Get-ADComputer -Filter * -ResultSetSize 1).Properties.PropertyNames
    Get-ADComputer $CompName -Properties $allPropNames | Get-Member | ft -AutoSize
    
  • 修改当前会话配置临时生效
    清空AD模块内置的默认计算机属性过滤规则,当前会话内即可让-Properties *正常返回全量属性:
    (Get-Module ActiveDirectory).SessionState.PSVariable.Get("defaultComputerProperties").Value = $null
    # 执行原命令验证
    Get-ADComputer $CompName -Properties * | Get-Member | ft -AutoSize
    
    该配置仅对当前PowerShell窗口生效,如需永久生效,可将上述配置命令写入PowerShell用户配置文件(路径可通过$PROFILE变量查看)。
  • 对齐模块版本彻底修复
    卸载Win10端当前安装的RSAT AD管理工具,从同版本Windows Server 2019系统的C:\Windows\System32\WindowsPowerShell\v1.0\Modules\ActiveDirectory路径下拷贝完整的ActiveDirectory模块文件夹,替换Win10端对应路径的同名文件,重启PowerShell后即可和Server 2019端行为完全一致。

内容的提问来源于stack exchange,提问作者Ed R.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 17:18:42