为什么我可以在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
答案 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'"
}