我在 Windows 2003 和 Windows 2008 中都运行 Powershell,并且两者都在运行 2.0,但在 Windows 2003 中,通配符似乎不被接受(或者至少不以相同的方式使用react)。例如:
((get-counter -counter '\process(w3*)\id process').CounterSamples)
在 Windows 2008 中运行良好,但在 Windows 2003 中失败。
((get-counter -counter '\process(w3wp)\id process').CounterSamples)
在 Windows 2003 中运行良好。
如何在 Windows 2003 中根据通配符进行过滤?
最佳答案
嗨,我遇到了这样的问题,这似乎是由 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)
}
关于Powershell Windows 2003 通配符不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11060811/