Learn more about SQL Server tools

mssqltips logo

Tutorials          DBA          Dev          BI          Career          Categories          Webcasts          Scripts          Today's Tip          Join

Tutorials      DBA      Dev      BI      Categories      Webcasts

DBA    Dev    BI    Categories


Evaluating Policies on Multiple SQL Server Instances using Central Management Server

By:   |   Last Updated: 2013-01-31   |   Comments (2)   |   Related Tips: More > Central Management Servers


So, you have created a SQL Server Policy to check database recovery models. Now you need to check the databases on all of your SQL Server instances. In this tip we will show how you can evaluate a SQL Server policy against multiple instances.


To evaluate the policy against multiple SQL Servers you can use Central Management Servers or Registered Servers. In this tip we will evaluate a policy against SQL Server 2005, SQL Server 2008 and SQL Server 2012 using Central Management Servers.


To learn more about Policy Based Management please review this tip: Using Policy Based Management in SQL Server 2008.

To learn more about Central Management Servers please review this tip: Execute SQL Server query on multiple servers at the same time.

Checking Policies Across Instances

After you have setup Central Management Servers and created the policy follow these steps:

Step 1

In SQL Server Management Studio (SSMS) click the "View" menu and then click "Registered Servers"

Registered Servers

Step 2

Right click on the server or server group under Central Management Servers and select "Evaluate Policies..."

Evaluate Policy

Step 3

Select the source where the policy is saved:

Select Source

Step 4

Select the policy you want to evaluate:

Select policy

Step 5

Click "Evaluate" and then review the results as shown below:


Next Steps
  • You can also use Registered Servers in SSMS to evaluate a policy on multiple servers. Refer to this tip for more information.
  • Create other policies that you want to evaluate on multiple servers
  • Read more tips on Policy Based Management
  • Read more tips on Central Management Servers

Last Updated: 2013-01-31

get scripts

next tip button

About the author
MSSQLTips author Svetlana Golovko Svetlana Golovko is a DBA with 13 years of the IT experience (including SQL Server and Oracle) with main focus on performance.

View all my tips
Related Resources

Post a comment or let the author know this tip helped.

All comments are reviewed, so stay on subject or we may delete your comment. Note: your email address is not published. Required fields are marked with an asterisk (*).

*Name    *Email    Email me updates 

Signup for our newsletter
 I agree by submitting my data to receive communications, account updates and/or special offers about SQL Server from MSSQLTips and/or its Sponsors. I have read the privacy statement and understand I may unsubscribe at any time.


Thursday, February 07, 2013 - 9:23:14 PM - Svetlana Golovko Back To Top

Thank you, Patrick, for your feedback!

Yes, you can do this with PowerShell and SQL Server job. You can also dynamically pass Registered in Central Management Server SQL Server names to this PowerShell script:

SELECT s.server_name
   FROM [msdb].[dbo].[sysmanagement_shared_registered_servers_internal] s

Thursday, February 07, 2013 - 11:37:02 AM - Patrick Groce Back To Top

one useful option i find is to run a sql agent job calling powershell to evaluate a policy against multiple instances.

Invoke-PolicyEvaluation -Policy "d:\policies\mypolicy.xml" -TargetServer "server1\instance1"
Invoke-PolicyEvaluation -Policy "d:\policies\mypolicy.xml" -TargetServer "server2\instance1"
Invoke-PolicyEvaluation -Policy "d:\policies\mypolicy2.xml" -TargetServer "server1\instance1"

the output from the job can be reviewed to determine the results. the scheduled job hen runs each day.

Learn more about SQL Server tools