Выход Powershell -файл отображается только при заполнении

#powershell #output

#powershell #вывод

Вопрос:

Я пытаюсь выводить файлы в формате .txt, но я хочу видеть только заполненные атрибуты. Некоторая помощь была бы весьма признательна.

 $T | ft Name,Logonworkstations | OUT-FILE c:tempname.txt
  

Комментарии:

1. Под «заполненными» атрибутами вы подразумеваете атрибуты, которые не являются пустыми или нулевыми?

2. Ну, то, что я пытаюсь сделать, это извлечь атрибут из большого количества учетных записей, но я хочу видеть только учетные записи, в которых этот атрибут заполнен.

Ответ №1:

 $T | ?{[string]::IsNullOrWhiteSpace($_.Name) -ne $ture -and `
       [string]::IsNullOrWhiteSpace($_.Logonworkstations) -ne $true} `
   | ft Name,Logonworkstations | OUT-FILE c:tempname.txt
  

Это проверит, имеют ли Logonworkstations Name атрибуты ether $null или or и empty string ( "" ) в качестве значения. Если эфир из них равен нулю / пуст, строка пропускается. Но если оба атрибута имеют значение, объект будет записан в файл.

Комментарии:

1. Спасибо за ответ, но когда я запускаю его, я все равно получаю Name — (Null) в .txt . То, что я пытаюсь сделать, это вывести имя Logonworkstations в текстовый файл.txt, но если Logonworkstations пуст, я не хочу, чтобы они были в текстовом файле. Это то, что находится внутри $ T, если это может помочь: Get-ADUser -SearchBase «OU = Учетные записи служб, OU = …., OU = …., dc = …., dc = ….., dc = …..» -Фильтр * -Свойства *

2. @ChevelloLo Я обновил свой ответ, чтобы включить только пользователей с обоими атрибутами.