2016-12-07 1 views
0

Я печатаю выходные данные в этом коде, но мне сказали, что мои выходы должны быть в тексте (а не объекте). Может ли кто-нибудь объяснить мне, что это значит и что не так в моем коде? Благодарю.Вывод должен быть в тексте (а не объекте)

Write-Output "ALL INSTALLED WINDOWS FEATURES:" 
Write-Verbose -Message "Searching installed features..." -Verbose 
$obj=Get-WindowsFeature | Where-Object {$_.Installed} | Select-Object Name, InstallState | Format-Table -AutoSize 
Write-Output $obj 

Write-Output "OPERATING SYSTEM INFO:" 
Write-Verbose -Message "Searching operating system info..." -Verbose 
$opInfo=Get-CimInstance Win32_OperatingSystem | Select-Object Version, Caption, InstallDate, LastBootUpTime, TotalVirtualMemorySize , SystemDirectory | FL 
Write-Output $opInfo 
+0

В настоящее время вы выводите объекты (правильный путь). Кто-то просит вас вывести текст. Какой у Вас вопрос? – Jamiec

+0

Задайте более подробную информацию у того, кто вам сказал, что текст необходим. – vonPryz

ответ

0

Там нет ничего технически неправильно с вашим кодом, но лично я хотел бы изменить Write-Output "OPERATING SYSTEM INFO:" к Write-Verbose, имея этот заголовок на выходе будет сделать работу с результатами вашей функции в других частях кода. Однако возвращение объекта opInfo, а не сборка строк является абсолютно правильным, и единственная причина, по которой кто-то говорил бы вам не об этом, - это то, что код, который они намерены создать для взаимодействия, либо написан неправильно, либо написан на более раннем языке сценариев, например VBS, или если они просто не знают предпочтения объектов в разработке Powershell.

Смежные вопросы