Aracılığıyla paylaş


ınvoke PolicyEvaluation cmdlet'i kullanma

Çağır PolicyEvaluation is a SQL Server Rapor komut kabuğu için Windows PowerShell cmdlet'i bir hedef mi küme nesneleri SQL Server'ın uyumlu bir veya daha çok ilke tabanlı yönetim ilkelerinde belirtilen koşullarla.

Invoke PolicyEvaluation kullanma

Çağır PolicyEvaluation karşı bir veya daha fazla ilkesi değerlendirilir bir küme SQL Server'ın, hedef nesne adlı küme.küme Hedefi olan bir hedef sunucu nesneleri gelir.Her ilke nesneleri hedeflemek için izin verilen durumlar koşullarına tanımlar.Örneğin, Güvenilir bir veritabanı ilkesi TRUSTWORTHY veritabanı özellik olması gerektiğini belirten küme için KAPALı.

The -AdHocPolicyEvaluationMode parameter specifies the actions taken:

  • Onay
    Hedef nesnelerinin, geçerli oturum açma kimlik bilgileri bilgilerini kullanarak uyumluluk durumu rapor edin.Hiçbir yeniden yapılandırın, nesneleri yapın.Varsayılan ayar budur.

  • CheckSqlScriptAsProxy
    kimlik bilgileri bilgilerini kullanarak hedef nesneleri uyumluluk durumu rapor ## MS_PolicyTSQLExecutionLogin ## proxy oturumu.Hiçbir yeniden yapılandırın, nesneleri yapın.

  • Yapılandırma
    Hedef nesnelerinin, geçerli oturum açma kimlik bilgileri bilgilerini kullanarak uyumluluk durumu rapor edin.Ilkeleri ile uyumlu olmayan ayarlanabilir ve deterministic seçeneklerini yeniden yapılandırın.

Belirleyen ilkeler

Bir ilke belirttiğiniz nasıl ilke nerede depolandığını bağlıdır.Ilkeler iki biçimden depolanabilir:

  • Bunlar, veritabanı altyapısı örnek gibi bir ilke deposundaki saklanan nesneler olabilir.SQLSERVER:\SQLPolicy klasörü, bir ilke deposunda ilke konumu belirtmek için kullanabilirsiniz.Windows PowerShell davranırlar için kullandığınız süzgeci, giriş ilkeleri ilke kategori veya ilke adı süzmek için get-öğe süzmek için WHERE nesne kullanma gibi özellikleri, temel.

  • XML dosyaları olarak verilebilir.Bir dosya sistemi sürücüsü D: gibi XML dosyalarının konumunu belirtmek için kullanabilirsiniz.Windows PowerShell davranırlar WHERE nesne gibi dosya adı gibi dosya özelliklerini, ilkeleri'ni süzmek için kullanabilirsiniz.

Ilkeler, bir ilke deposunda depolanıyorsa, içinde geçmesi gereken bir küme, ilkeler için işaret PSObjects değerlendirilecek.Bu genellikle, GET-öğe gibi bir cmdlet'i çıkışını aktarmak tarafından yapılır Çağır PolicyEvaluationve belirttiğiniz gerektirmez.-Ilke parametresi.Örneğin Microsoft en iyi uygulamalar ilkeleri olarak aldıysanız, örnek veritabanı altyapısı bu komutu veren Veritabanı durumu policy:

sl "SQLSERVER:\SQLPolicy\MyComputer\DEFAULT\Policies"
Get-Item "Database Status" | Invoke-PolicyEvaluation -TargetServerName "MYCOMPUTER"

Bu örnek, temel bir ilke deposundaki birden çok ilke süzmek için WHERE nesne kullanarak gösterir, PolicyCategory özellik.Piped çıkışını nesnelerden Nereden nesnesi tarafından tüketilenÇağır PolicyEvaluation.

sl "SQLSERVER:\SQLPolicy\MyComputer\DEFAULT\Policies"
cgi | Where-Object {$_.PolicyCategory -eq "Microsoft Best Practices: Maintenance"} | Invoke-PolicyEvaluation -TargetServer "MYCOMPUTER"

Ilkeler, XML dosyaları olarak depolanır, kullanmalısınız -Ilke parametresi yol ve adı her ilke için.Bir yol belirtirseniz, -Ilke parametresiÇağır PolicyEvaulation geçerli ayarı kullanır.sqlps yol.Örneğin, bu komut, oturum açma için varsayılan veritabanı SQL Server ile yüklenen Microsoft önerilen ilkelerinden biri olur:

Invoke-PolicyEvaluation -Policy "C:\Program Files\Microsoft SQL Server\100\Tools\Policies\DatabaseEngine\1033\Database Status.xml" -TargetServerName "MYCOMPUTER"

Bu komut aynı şeyi yapar, yalnızca geçerli kullanır sqlps yolunu XML ilke dosyasının konumunu oluşturmak için:

sl "C:\Program Files\Microsoft SQL Server\100\Tools\Policies\DatabaseEngine\1033"
Invoke-PolicyEvaluation -Policy "Database Status.xml" -TargetServerName "MYCOMPUTER"

Bu örneği kullanarak gösterir GET ChildItem birden çok ilke XML dosyaları ve nesneleri yöneltme cmdlet'iÇağır PolicyEvaluation:

sl "C:\Program Files\Microsoft SQL Server\100\Tools\Policies\DatabaseEngine\1033"
cgi "Database Status.xml", "Trustworthy Database.xml" | Invoke-PolicyEvaluation -TargetServer "MYCOMPUTER"

Hedef belirleme küme

Belirtmek için üç parametre kullanın küme hedef nesne:

  • -TargetServerName hedef nesneler içeren bir SQL Server örneğini belirtir.ConnectionString özellik için tanımlanan biçimi kullanan bir dize bilgileri belirtmek SQLConnection sınıf. Kullanabileceğiniz SqlConnectionStringBuilder bir doğru biçimlendirilmiş bağlantı dizisini oluşturmak için sınıf'ı tıklatın. Ayrıca oluşturabileceğiniz bir SqlStoreConnection Nesne ve onu için -HedefSunucu.Yalnızca, sunucu adını taşıyan bir dize girerseniz Çağır PolicyEvaluation , sunucuya bağlanmak için Windows kimlik doğrulaması kullanır.

  • -TargetObjects bir nesne veya nesnelerin hedef SQL Server nesneleri temsil eden bir dizi alır küme.Örneğin, bir dizi oluşturabilirsiniz. Database içinde geçmesi için sınıf nesneleri -TargetObjects.

  • -TargetExpressions , hedef kümesindeki nesneleri belirten bir sorgu ifadesinde içeren bir dize alır.'/' Karakteri tarafından ayrılmış olan düğümlerin formunda sorgu ifade.Her düğüm NesneTürü [süzgeç] biçimindedir.Nesne türü, bir SQL Server Management nesnesi (SMO) nesne hiyerarşisini nesneleri biridir.Süzgeç nesneleri, bu düğümdeki filtre uygulayan ifade.Daha fazla bilgi için bkz: Ifadeler ve benzersiz kaynak adları.

Ya da belirtin. -TargetObjects or -TargetExpression, her ikisini birden değil.

Bu örnek, hedef sunucuyu belirtmek için nesne Sfc.SqlStoreConnection kullanır:

sl "C:\Program Files\Microsoft SQL Server\100\Tools\Policies\DatabaseEngine\1033"
$conn = New-Object Microsoft.SqlServer.Management.Sdk.Sfc.SqlStoreConnection("server='MYCOMPUTER';Trusted_Connection=True")
Invoke-PolicyEvaluation -Policy "Database Status.xml" -TargetServerName $conn

Bu örnek kullanır. -TargetExpression değerlendirmek için belirli bir veritabanı tanımlamak için:

sl "C:\Program Files\Microsoft SQL Server\100\Tools\Policies\DatabaseEngine\1033"
Invoke-PolicyEvaluation -Policy "Database Status.xml" -TargetServerName "MyComputer" -TargetExpression "Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks']"

Analysis Services ilkeleri değerlendiriliyor

Ilkeleri örnek karşı değerlendirilemiyor. Analysis Services, yüklemek ve bir derleme olarak kaydetme sqlps. Analysis Services bağlantı nesnesi ile bir değişken oluşturmak ve değişken geçirmek için -TargetObject parametresi.Bu örnek, en iyi yöntemleri yüzey alanı yapılandırması ilke için değerlendirme gösterir. Analysis Services:

sl "C:\Program Files\Microsoft SQL Server\100\Tools\Policies\AnalysisServices\1033"
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")
$SSASsvr = new-object Microsoft.AnalysisServices.Server
$SSASsvr.Connect("Data Source=Localhost")
Invoke-PolicyEvaluation -Policy "Surface Area Configuration for Analysis Services Features.xml" -TargetObject $SSASsvr

Raporlama Hizmetleri ilkeleri değerlendiriliyor

Değerlendirme Reporting Services ilkeler, yüklemek ve derleme içine kaydettirmek gerekir sqlps., bir değişkeni oluşturmaReporting Services bağlantı nesnesi ve değişkene geçirin -TargetObject parametresi.Bu örnek, en iyi yöntemleri yüzey alanı yapılandırması ilke için değerlendirme gösterir. Reporting Services:

sl "C:\Program Files\Microsoft SQL Server\100\Tools\Policies\ReportingServices\1033"
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Dmf.Adapters")
$SSRSsvr = new-object Microsoft.SqlServer.Management.Adapters.RSContainer('MyComputer')
Invoke-PolicyEvaluation -Policy "Surface Area Configuration for Reporting Services 2008 Features.xml" -TargetObject $SSRSsvr

Çıktı biçimlendirme

Varsayılan olarak, çıktısı Çağır PolicyEvaluation okunabilir bir biçimde kısa bir rapor olarak komut istemi penceresinde görüntülenir.Kullanabileceğiniz -OutputXML parametre cmdlet'i yerine bir XML dosyası olarak ayrıntılı bir rapor üretmek belirtin.Çağır PolicyEvaluation değişim sistemleri modelleme dil biçimini kullanır (SML - IF) dosya SML tarafından okunabilecek şekilde şema-IF okuyucuları.

sl "SQLSERVER:\SQLPolicy\MyComputer\DEFAULT\Policies"
Invoke-PolicyEvaluation -Policy "Datbase Status" -TargetServer "MYCOMPUTER" -OutputXML > C:\MyReports\DatabaseStatusReport.xml