Вероятно, это проблема версии, но мне просто нужно указать имя сервера в команде Format-Table
PowerShell.
$compArray = Get-Content C:\Users\Me\Documents\ServerList_All.txt
$Proc = foreach ($strComputer in $compArray) {
Get-WMIObject Win32_Service | Where-Object {
$_.Name -like 'SQL*' -or
$_.Name -like 'MSSQL*' -or
$_.Name -like 'OLAP*' -or
$_.Name -like 'MSDTS*' -or
$_.Name -like 'MSOLAP*' -or
$_.Name -like 'ReportServer*'
} | Sort-Object -Property Name | Format-Table $strComputer, Name, State
}
$Proc | Out-File C:\Users\ME\Documents\ServerStatus_All.txt
Это работает в PS v2:
| Sort-Object -Property Name | Format-Table Name, State
Это не работает, но работает в PS v3:
| Sort-Object -Property Name | Format-Table $strComputer, Name, State
Ошибка:
Таблица формата: невозможно преобразовать System.Management.Automation.PSObject в один из следующихtypes {System.String, System.Management.Automation.ScriptBlock}.
Единственное отличие - переменная $strComputer
.Я читаю из текстового файла, и все прекрасно в v3 +.
Нет, я не могу перейти на более новую версию PS на сервере, с которого я запускаю, к сожалению.