问题是密码存储在文件中的加密字符串中,并且使用的加密密钥特定于安装 SSMS 的那台机器。因此,当您导出它们然后在新机器上导入时,您会收到该错误,因为它无法解密/使用密码。
大多数人只是在没有密码的情况下从旧机器重新导出,然后在新机器上导入新的 SSMS 后,他们手动修复所有密码。
我想补充的是,由于它“只是一个文本文件”,因此您可以通过手动编辑 C:\Users{user}\AppData\Roaming\Microsoft\SQL Server Management Studio\RegSrvr.xml 来节省大量工作。
我所做的是导入文件并忽略所有这些错误
====================================
密钥在指定状态下无效。(系统.安全)
------------------------------ 节目地点:
在Microsoft.SqlServer.Management.RegisteredServers.RegisteredServer.ProtectData(String input, Boolean encrypt) 在 Microsoft.SqlServer.Management的 System.Security.Cryptography.ProtectedData.Unprotect(Byte[] encryptedData, Byte[] optionalEntropy, DataProtectionScope 范围) 。 RegisteredServers.RegisteredServer.get_SecureConnectionString() 在 Microsoft.SqlServer.Management.RegisteredServers.RegisteredServer.get_ConnectionString() 在 Microsoft.SqlServer.Management.RegisteredServers.RegisteredServer.get_ServerName() 在 Microsoft.SqlServer.Management.RegisteredServers.RegisteredServerTree.AddRegisteredServerNode(RegisteredServer regSrv , TreeNodeCollection 节点)
然后我经历了这个过程:
- 在 SSMS 中,修复“服务器”。
- 在文件中,将“好的”加密密码字符串复制/粘贴到使用相同密码连接的所有其他“服务器”。
- 重新启动 SSMS。
- 根据需要重复。