2012-06-16 54 views
2

我在Windows 2003和Windows 2008中運行Powershell,兩者都運行2.0,但在Windows 2003通配符似乎不被接受(或至少不以同樣的方式作出反應)。例如:Powershell 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?

回答

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) 
    }