连接到错误的SQL Server实例的SQL Server EraseSystemHealthPhantomRecords()Powershell方法

时间:2018-11-21 15:54:58

标签: powershell sql-server-2012

我有一个名为SQL Server的实例,该实例每晚运行标准的 syspolicy_purge_history 作业。该作业被标记为每晚成功,但是在同一服务器上的DEFAULT实例上每天晚上,从命名实例的服务帐户登录失败。

我已将其追溯到syspolicy_purge_history作业的擦除虚拟系统健康记录步骤。该作业使用标准代码,并且似乎未进行任何修改:

if ('$(ESCAPE_SQUOTE(INST))' -eq 'MSSQLSERVER') {$a = '\DEFAULT'} ELSE {$a = ''};
(Get-Item SQLSERVER:\SQLPolicy\$(ESCAPE_NONE(SRVR))$a).EraseSystemHealthPhantomRecords()

同一服务器上还有另外两个命名实例,它们使用相同的代码运行相同的作业,并且它们不会在默认实例上生成失败的登录错误。

我尝试删除该作业,并通过从其他命名实例之一编写该作业的脚本来重新创建它。没什么。

我尝试将步骤3的代码更改为:

(Get-Item SQLSERVER:\SQLPolicy\[MyServerName]\[NamedInstanceName]).EraseSystemHealthPhantomRecords()

,或者:

(Get-Item SQLSERVER:\SQLPolicy\[MyServerName]\[NamedInstanceName]`,[NamedInstancePort]).EraseSystemHealthPhantomRecords()

两个版本仍然会在默认实例上生成失败的登录。

如果我从Powershell窗口运行命令,这两个版本的命令似乎都能成功运行,并且不会生成失败的登录信息。

我想不出其他任何尝试。 Google似乎对我也没有建议。

有什么想法吗?

0 个答案:

没有答案