我使用CU3更新了我的SQL Server 2016 SP1,但是,在更新后,另一个获取WMI指标的程序停止工作。该程序只在Powershell中运行WQL查询。示例查询是:
Get-WmiObject -Class Win32_PerfRawData_MSSQLSERVER_SQLServerGeneralStatistics
在更新之前,在powershell中,这将返回适当的WMI对象。现在,在powershell中,它只返回任何内容(没有身份验证错误或任何输出)并给出另一个提示。当我更新服务器时,更新确实挂起,我不得不运行修复。 SQL Server print @@VERSION
中的查询提供Microsoft SQL Server 2016 (SP1-CU3) (KB4019916) - 13.0.4435.0 (X64)
,其他所有内容都可以顺利地与它进行交互。
在任何其他计算机上运行相同的查询(也使用SQL Server 2016 SP1 CU3)可以提供正确的输出。但是,这些在更新期间没有任何问题。
我尝试过:
在PerfMon中打开相应的计数器(例如,来自SQL Server常规统计信息的用户连接)可以提供正确的指标。
get-ciminstance -classname Win32_PerfRawData_MSSQLSERVER_SQLServerGeneralStatistics
也不会返回任何内容。
gwmi Win32_PerfRawData_MSSQLSERVER_SQLServerGeneralStatistics
也不会返回任何内容。
[Boolean] (Get-WmiObject -Class Win32_PerfRawData_MSSQLSERVER_SQLServerGeneralStatistics)
返回False
。
已验证正在运行Get-WmiObject -Query "SELECT * FROM meta_class" | Select-String "RawData" | Select-String "sql"
为WMI对象提供我正在查询的确切名称。 (例如,列表条目为\\$COMPUTER_NAME\root\cimv2:Win32_PerfRawData_MSSQLSERVER_SQLServerGeneralStatistics
)
使用-Authentication 1
运行查询会发出正确的Access is denied
错误。
Powershell以管理员身份运行,该帐户是服务器上的本地管理员。
知道为什么查询什么都没有返回?更新是否有可能使SQL服务器处于不正常状态,而WMI计数器未正确导出?但那么为什么PerfMon计数器工作正常呢?