Я новичок в PowerShell, и я пытаюсь написать сценарий, который будет запрашивать AD для имен машин, проверять, какие из них отвечают, и записывать вывод в файл. До сих пор у меня есть это:PowerShell - итерирование имен компьютеров в Active Directory
$computers = Get-ADComputer -filter {(Name -like "PC*")} | Select-Object -Property Name
foreach ($computer in $computers) {
if((Test-Connection -Cn $computer -BufferSize 16 -Count 1 -Ea 0 -Quiet)) {
"Machine $computer connected." | Out-File "out.txt" -Append
} else {
"Machine $computer not connected." | Out-File "out.txt" -Append
} #end if
} #end foreach
Что я получаю в выходной текстовый файл выглядит следующим образом:
...
Machine @{Name=PC-0649} not connected.
Machine @{Name=PC-1541} not connected.
Machine @{Name=PC-1574} not connected.
...
Я думаю, что моя проблема заключается в Select-Object -Property Name
части первой линии. Запустив отладчик, похоже, что PowerShell форматирует каждую итерацию $computer
для включения строки заголовка.
[DBG]: PS Y:\>> $computer
Name
----
PC-0649
Какой лучший способ для меня удалить все, кроме ПК, - #### в этой ситуации?
Это сработало отлично! Спасибо. – paulorv