我知道我可以使用 SQL Server 配置管理器来确定 1) 当前正在运行哪些服务以及 2) 哪些服务设置为自动启动。但是,我管理着几十台服务器。我想每季度进行一次检查,以确保所有服务仍设置为自动启动,并查看当前有哪些服务正在运行。是否有表格或程序可以提供此信息?
我知道我可以使用 SQL Server 配置管理器来确定 1) 当前正在运行哪些服务以及 2) 哪些服务设置为自动启动。但是,我管理着几十台服务器。我想每季度进行一次检查,以确保所有服务仍设置为自动启动,并查看当前有哪些服务正在运行。是否有表格或程序可以提供此信息?
我会使用 Powershell 来完成这项任务。下面是一个函数,它利用 Get-WMIObject、WQL 和一些语法来获取要分析的服务器列表。
现在,有几种方法可以解决扫描所有 SQL 实例的问题。我喜欢使用中央管理服务器来完成这项任务。我将使用的代码看起来像这样(调用上述函数):
因此,您可以手动运行此报告,或在一些额外的代码中实现它以构建报告并通过电子邮件发送给您。如果它是自动化的,我实际上会说您可以每天运行一次而不是每季度运行一次。
我推荐使用@Mike 很棒的 Powershell 脚本。但是,作为替代方案,如果您的 SQL Server 是 2008R2 SP1 或最新版本,并且您有在“本地服务器组”或“中央管理服务器”下注册的服务器列表,您可以运行使用以下查询来获取服务状态信息:
您还可以使用它来查看实例中 SQL 服务的状态,而无需实际 RDPing 和打开配置管理器。您可以在此处阅读有关 sys.dm_server_services DMV的更多信息