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

如何将Get-ADComputer结果存为字符串数组并获取机器名称值

关于Get-ADComputer的输出格式与字符串数组转换问题

1. Get-ADComputer的输出格式是什么?

Get-ADComputer默认返回的是ADComputer类型的对象集合,每个对象包含Active Directory中计算机账户的各类属性(比如Name、DNSHostName、SamAccountName等)。当你直接把这些对象赋值给[string[]]数组时,PowerShell会自动将每个对象转换为字符串形式,而ADComputer对象的默认字符串表示就是@{属性名=属性值}这种哈希格式——这就是你看到@{Name=some-machine-name-123-here}的原因。

2. 如何将结果保存为字符串数组并获取纯名称值?

要得到只包含计算机名称的字符串数组,你需要明确提取Name属性的值,而不是直接保留整个对象。这里有两种常用且可靠的方法:

方法一:使用Select-Object -ExpandProperty

这个参数会直接提取指定属性的原始值,而非返回包含该属性的对象:

[string[]]$server_list = Get-ADComputer -Filter * -Property Name | Select-Object -ExpandProperty Name

方法二:使用ForEach-Object遍历提取属性

这种方式更直观,逐个遍历每个ADComputer对象并取出Name属性:

[string[]]$server_list = Get-ADComputer -Filter * -Property Name | ForEach-Object { $_.Name }

验证效果

执行上面任意一种方法后,再运行你的foreach循环:

foreach ($machine_name in $server_list) { 
    "processing : $machine_name"
}

输出就会变成你想要的纯名称格式:

processing : some-machine-name-123-here

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:54:15