Get-WmiObject不能在PowerShell(x86)上执行,但在PowerShell上执行

时间:2016-09-18 12:37:35

标签: sql-server powershell filenotfoundexception

为什么我可以在PowerShell上执行以下代码,但不能在同一台计算机上的PowerShell(x86)上执行?

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

1 个答案:

答案 0 :(得分:0)

正如@AnsgarWiechers所说,它可能并不存在。至于为什么,也许您已经安装了64位SQL Server而不是32位?

您可以解决此问题的一种方法是使用PowerShell远程处理。如果启用并配置了PowerShell远程处理,则可以从32位进程远程访问您自己的计算机,并且您将连接到64位实例。因此,您可以运行此代码以从64位会话中获取结果。

$result64 = Invoke-Command -ComputerName . -ScriptBlock {
    Get-WmiObject -Namespace "root\Microsoft\SqlServer\ComputerManagement13" -Class ServerSettingsGeneralFlag -Filter "FlagName='ForceEncryption'"
}