我在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中基于通配符进行过滤?
答案 0 :(得分:2)
您好我有这样的问题,它似乎是由于Windows Server 2003和2008的工作方式之间的差异而不是它自己的功能,所以我做的是写一个代码块,检测到什么版本的Windows服务器我正在运行,然后更改我要执行的代码。您可以使用下面的代码或将其放在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)
}