爲什麼我可以在PowerShell上執行以下代碼,而不是在同一臺計算機上的PowerShell(x86)上執行以下代碼?Get-WmiObject無法在PowerShell(x86)上執行,但在PowerShell上執行
Get-WmiObject -Namespace "root\Microsoft\SqlServer\ComputerManagement13" -Class ServerSettingsGeneralFlag -Filter "FlagName='ForceEncryption'"
例外:
At line:1 char:1 + Get-WmiObject -Namespace "root\Microsoft\SqlServer\ComputerManagement ... + CategoryInfo : NotSpecified: (:) [Get-WmiObject], FileNotFoundException + FullyQualifiedErrorId : System.IO.FileNotFoundException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
我懷疑各個名稱空間或類在32位環境中不存在。你可以像這樣枚舉命名空間:'function List-WmiNamespaces {Get-WmiObject -Namespace $ args [0] -Class'__namespace'| ForEach-Object {$ ns ='{0} \ {1}'-f $ _.__命名空間,$ _。Name; $納秒; List-WmiNamespaces $ ns}}; List-WmiNamespaces'root \ microsoft'',以及像這樣的命名空間中的類:'Get-WmiObject -Namespace'root \ Microsoft \ SqlServer'-List |選擇對象擴展名稱「。 –
我確實安裝了64位SQL Server。 但是,這兩個腳本在64位和32位PowerShell上都得到相同的結果。 既存在「root \ Microsoft \ SqlServer \ ComputerManagement13」和ServerSettingsGeneralFlag。 –