Windows-Server-2008
Powershell Get-WMIObject 失敗並出現“無效命名空間”錯誤
情況如下:我正在嘗試使用 PowerShell 自動回收 AppPool(帶有 IIS7 的 Windows Server 2008)。我正在嘗試使用此處找到的 PowerShell 腳本來執行此操作:
$appPoolName = $args[0] $appPool = get-wmiobject -namespace "root\MicrosoftIISv2" -class "IIsApplicationPool" | Where-Object {$_.Name -eq "W3SVC/APPPOOLS/$appPoolName"} $appPool.Recycle()
但是,這會導致“無效命名空間”錯誤:
我四處搜尋,發現我可能錯過了我為 IIS 設置的“IIS 管理腳本和工具”角色服務。
如何解決此問題,或者,我可以在沒有 WMI 的情況下使用 Powershell 回收 AppPool?
編輯
- 澄清這一點是沒有 Hyper-V (SP2) x64 的 Windows Sever 2008 Enterprise。
- 在 x64 版本的 Powershell 中執行上述命令會導致同樣的錯誤。
Add-PSSnaping WebAdministration
從 32 位執行:Add-PSSnapin:此電腦上未安裝 Windows PowerShell 管理單元“WebAdministration”。
- 而在 64 位環境下:
Add-PSSnapin:沒有為 Windows PowerShell 版本 2 註冊任何管理單元。
- (64 位)
Get-PSSnapin -Registered
不返回任何內容- (32 位)
Get-PSSnapin -Registered
返回 Windows.ServerBackup、PSVersion 1.0
試試http://technet.microsoft.com/en-us/library/ee807823.aspx
add-pssnapin WebAdministration Restart-WebItem 'IIS:\AppPools\DefaultAppPool'
你在執行什麼作業系統?是 x64 還是 x86?這可能會影響管理單元的載入。如果是 x64,請嘗試從 x64 和 x86 版本的 powershell 載入管理單元。
x64 位於 C:\Windows\System32\WindowsPowerShell\v1.0 中,x86 位於 C:\Windows\SysWow64\WindowsPowerShell\v1.0
還有,你跑的時候看到了什麼
Get-PSSnapin -Registered