Get-ADComputer将结果保存为字符串数组?

时间:2018-04-11 19:38:58

标签: powershell

Get-ADComputer的输出格式是什么?我试图做这样的事情来盘点。

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

但是,当我在foreach中使用$ server_list时,我看到对象大括号如此

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

输出:

@ {名称=一些机器名-123-这里}

我只需要实际的名称值,我该怎么做?

2 个答案:

答案 0 :(得分:2)

-Property Name参数是不必要的,因为Get-ADComputer始终会检索Name属性。 (这似乎没有选择 Name属性,正如您所想的那样。)

而不是-Property Name,将| Select-Object -ExpandProperty Name附加到Get-ADComputer命令行。

答案 1 :(得分:0)

所以,我的查询返回了不同的结果。因此,您可能需要对此做一些工作。

基本上,<textarea id="input" rows="5" cols="30">console.log("test snippet");</textarea> <button onclick="run()" id="run">RUN</button>表示你想要一个具有特定字段的对象。选择或多或少都是一样的。

如果要保留现有解决方案,请展开属性而不是选择它。这是最好的方法:

-Property

你返回@ {},这是powershell在字符串中表示对象的方式。在这种情况下,包含有关ADComputers的属性的对象,您选择的对象仅包含“名称”。如果您包含其他属性,则会看到一个更大的逗号分隔列表type = value。

您实际上可以删除[string[]]$server_list = (Get-ADComputer -Filter * -Property Name).Name,但这需要更长时间才能运行,因为您正在过滤右侧。 (收集大量数据,然后将其过滤为仅名称。)