应用"过滤器"在Get-ADComputer Powershell命令上

时间:2016-11-04 11:35:18

标签: powershell scripting active-directory

简而言之,我尝试做的是,运行一个命令来捕获一组计算机的名称,然后将结果输出到一个文本文件中。请注意我是如何说出一套计算机",为此,我知道必须应用过滤器。我已应用过滤器,但输出文件字面输出空白!

请参阅下面的代码:

Get-ADComputer -Filter { Name -eq "GBSU1" } | select Name | out-file C:\Users\adm-arifsohm\Desktop\test-folder\computers.txt

有人可以告诉我我做错了吗?

更新

我最终能够解决这个问题。请参阅我修改后的代码:

Get-ADComputer -Filter {(Name -like 'GBSU-*') -or (Name -like 'GBSU1*')} | Select -Expand Name | out-file C:\Users\adm-arifsohm\Desktop\test-folder\computers.txt

感谢所有帮助过的人。

3 个答案:

答案 0 :(得分:0)

Get-ADComputer -Filter { Name -eq "GBSU1" } 

此部分将完全匹配“GBSU1”,而不是其他任何内容。如果这是计算机名称的前缀或部分,您应该尝试:

Get-ADComputer -Filter { Name -like "GBSU1*" } 

asterix(*)是通配符,所以上面的行就像GBSU1somethingelse

抱歉,我没时间了,如果需要,会再回来解释,但我认为这是你的问题

答案 1 :(得分:0)

1'st 关闭,你需要使用其他东西然后-eq。情商会给你一个     对象而不是一组对象。在这种情况下是。

2'nd 关闭,你需要告诉out-file它需要向文件添加内容,而不是重写它。         在这里使用属性-Append

  

-append   表示cmdlet将输出添加到现有文件的末尾,而不是替换文件内容。

如果你愿意,你也可以使用-NoClobber,不需要。

  

-NoClobber   表示cmdlet不会覆盖现有文件。默认情况下,如果指定路径中存在文件,则Out-File会在不发出警告的情况下覆盖该文件。如果同时使用Append和NoClobber,则输出将附加到现有文件中。

它看起来像out-file C:\Users\adm-arifsohm\Desktop\test-folder\computers.txt -Append

3'nd 关闭,如果您要链接到的路径不在磁盘上,则找不到路径,它会给您出现此错误Out-File : Could not find a part of the path 'C:\Users\adm-arifsohm\Desktop\test-folder\computers.txt'.

代码的外观如下:

Get-ADComputer -Filter { Name -like 'GBSU1*' } | select Name | Out-File -FilePath "C:\Users\adm-arifsohm\Desktop\test-folder\computers.txt" -Append

这将采用任何以GBSU1开头的计算机并将其放入文件中。你们都可以在名称“* GBSU1”前面开始移动,所有结束这个GBSU1的计算机都会放入文件中。

最后,我会将代码编写为:

$FilePath = 'C:\Users\adm-arifsohm\Desktop\test-folder'
$Filename = 'computers.txt'

if (-not (Test-Path $FilePath)) {
    New-Item -ItemType Directory -Path $FilePath -Force
} else {}

Get-ADComputer -Filter { Name -like 'mth24*2' } -Properties name | Out-File -FilePath $($FilePath + "\" + $Filename ) -Append -Force

答案 2 :(得分:0)

Get-ADComputer -filter {name -like“GBSU *” - 并且启用-eq“true”} | out-file C:\ Users \ adm-arifsohm \ Desktop \ test-folder \ computers.txt