2

我在 Windows 2003 和 Windows 2008 中都运行 Powershell,并且两者都运行 2.0,但在 Windows 2003 中似乎不接受通配符(或者至少不以相同的方式做出反应)。例如:

((get-counter -counter '\process(w3*)\id process').CounterSamples)

在 Windows 2008 中运行良好,但在 Windows 2003 中失败。

((get-counter -counter '\process(w3wp)\id process').CounterSamples)

在 Windows 2003 中运行良好。

如何在 Windows 2003 中根据通配符进行过滤?

4

1 回答 1

2

嗨,我遇到了这样的问题,这似乎是由 windows server 2003 和 2008 的工作方式之间的差异引起的,而不是 powershell 本身,所以我所做的是编写一个代码块来检测我正在运行的 windows server 的版本和然后更改我要执行的代码。您可以使用下面的代码或将其放入 switch 语句中。

$WindowsVesrion = Get-WmiObject win32_operatingSystem

IF ($WindowsVesrion.Version -gt 6.0)
    {
    ((get-counter -counter '\process(w3*)\id process').CounterSamples)
    }
ELSE {
     ((get-counter -counter '\process(w3wp)\id process').CounterSamples)
     }
于 2012-06-17T19:56:54.760 回答