这可能是版本问题,但是我只需要将服务器名称放入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
错误:
Format-Table:无法将System.Management.Automation.PSObject转换为以下类型之一{System.String,System.Management.Automation.ScriptBlock}。
唯一的区别是$strComputer
变量。我正在从一个文本文件中读取内容,并且在v3 +中一切都很漂亮。
不,遗憾的是,我无法在运行它的服务器上升级到较新的PS版本。
答案 0 :(得分:0)
这两种方法都应该对您有用...
WITH
SET [~ROWS] AS
{
FILTER([Time].[Weekly].[Week].Members, Cint([Time].[Weekly].[Week].CurrentMember.Properties("Caption")) > 50)
}
SELECT
NON EMPTY {[Measures].[Unit Sales]} ON COLUMNS,
NON EMPTY [~ROWS] ON ROWS
FROM [Sales]