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

Active Directory PowerShell脚本查询计算机信息无法写入CSV求助

解决PowerShell查询AD计算机信息无CSV输出的问题

你脚本里的几个关键错误导致了无输出,逐一修正如下:

核心问题分析

  • 查错了对象类型:你要查询的是AD里的计算机,但用了Get-ADUser(这是查询用户的命令),根本拿不到计算机数据。
  • 过滤逻辑完全跑偏:需求是用CSV里的计算机名称查AD,但你用了CSV里的Description字段做过滤,而且直接把多行CSV数据塞到过滤条件里,生成的语法AD根本识别不了。
  • 重复读取CSV:没必要两次执行Import-Csv,一次读入即可。
  • 没处理OU提取:你要的是组织单元,但原脚本只存了完整的DistinguishedName,没提取出实际的OU路径。

修正后的完整脚本

# 定义CSV文件路径
$filePath = "C:\Temp\Description.csv"

# 读取CSV中的计算机名称列表
$computerList = Import-Csv $filePath

# 构建AD查询的过滤条件:匹配所有CSV中的计算机名称
$filter = $computerList.Name | ForEach-Object { "Name -eq '$($_)'" } | Join-String -Separator " -or "

# 查询AD计算机对象,获取描述和DN属性
$adComputers = Get-ADComputer -Filter $filter -Properties Description, DistinguishedName | 
    Select-Object Name, 
                  Description,
                  # 从DN中提取OU部分作为单独字段
                  @{Name='OrganizationalUnit'; Expression={
                      $dnSegments = $_.DistinguishedName -split ','
                      $ouSegments = $dnSegments | Where-Object { $_ -like 'OU=*' }
                      $ouSegments -join ','
                  }}

# 匹配原始CSV数据,填充查询结果
foreach ($row in $computerList) {
    $matched = $adComputers | Where-Object { $_.Name -eq $row.Name }
    if ($matched) {
        $row.Description = $matched.Description
        $row.OrganizationalUnit = $matched.OrganizationalUnit
    } else {
        # 标记未找到的计算机
        $row.Description = "AD中无此计算机记录"
        $row.OrganizationalUnit = "未找到"
    }
}

# 将结果写入CSV(UTF8编码避免乱码)
$computerList | Export-Csv $filePath -NoTypeInformation -Encoding UTF8

关键修正说明

  1. 用对AD命令:换成Get-ADComputer专门查询计算机对象,确保能拿到正确数据。
  2. 正确构建过滤条件:把CSV里的每个计算机名称转换成Name -eq 'XXX'的格式,再用-or拼接,让AD能正确查询所有目标计算机。
  3. 提取OU路径:通过拆分DistinguishedName字符串,筛选出所有OU=开头的部分,组合成清晰的OU路径。
  4. 增加容错处理:对AD中找不到的计算机做标记,避免结果缺失。
  5. 编码优化:加上-Encoding UTF8,防止CSV出现乱码问题。

内容的提问来源于stack exchange,提问作者Jeff

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 16:27:17