Invoke PolicyEvaluation cmdlet'i

Invoke-PolicyEvaluationolan bir SQL ServerSQL Server nesneleri hedef kümesi bir veya daha çok ilke tabanlı yönetimi ilkelerinde belirtilen koşulları ile uyumludur olup olmadığını raporlar cmdlet.

Invoke PolicyEvaluation kullanma

Invoke-PolicyEvaluationSQL Server nesneleri hedef kümesi adı verilen bir dizi karşı bir veya daha fazla ilkeleri değerlendirir. Hedef nesne kümesini hedef sunucudan geliyor. Her ilke, hedef nesneler için izin verilen Birleşik olan koşullar tanımlar. Örneğin, Trustworthy Databaseilke devletlerin aygıtlarım için güvenilir veritabanı özelliği ayarlanmalıdır

-AdHocPolicyEvaluationModeParametresi, gerçekleştirilen eylemleri belirtir:

  • Onay
    Geçerli oturum açma kimlik bilgilerini kullanarak hedef nesneleri uygunluk durumunu bildirir. Hiçbir RECONFIGURE herhangi bir nesne yok. Bu, varsayılan ayardır.

  • CheckSqlScriptAsProxy
    Kimlik bilgilerini kullanarak hedef nesneleri uygunluk durumunu rapor **##MS_PolicyTSQLExecutionLogin##**proxy giriş. Hiçbir RECONFIGURE herhangi bir nesne yok.

  • Yapılandırma
    Geçerli oturum açma kimlik bilgilerini kullanarak hedef nesneleri uygunluk durumunu bildirir. İlkeleri ile uyumlu olmayan herhangi bir ayarlanabilir ve deterministik seçeneklerini yeniden yapılandırın.

İlkeler belirleme

Nasıl bir politika belirleme politikası saklandığı bağlıdır. İlkeleri iki biçimlerde depolanabilir:

  • Veritabanı altyapısı örneği gibi bir ilke deposunda saklanan nesneleri olabilirler. İlke deposunda ilkeleri konumunu belirtmek için SQLSERVER:\SQLPolicy klasörünü kullanabilirsiniz. Sen-ebilmek kullanma için Windows PowerShell cmdlet'leri filtre giriş ilkelerinin ilke kategori veya Get-Item ilke adı üzerinde filtre uygulamak için filtre Where-nesne kullanma gibi özellikleri, temel alır.

  • xml dosyaları olarak verilebilir. d: gibi bir dosya sistemi sürücüsü, xml dosyalarının konumunu belirtmek için kullanabilirsiniz. Dosya özellikleri, dosyanın adı gibi ilkeleri filtrelemek için Windows PowerShell cmdlet'leri nerede-nesne gibi kullanabilirsiniz.

İlkeleri ilke deposunda depolanıyorsa, değerlendirilecek ilkeler işaret PSObjects kümesindeki geçmesi gerekir. Bu genellikle Get-Item için gibi bir cmdlet çıkışını Borulama tarafından yapılır Invoke-PolicyEvaluationve does değil istemek belirttiğiniz -Policyparametresi. Örneğin, veritabanı altyapısı örneğinin Microsoft için en iyi yöntemler ilkeleri aldıysanız, bu komut değerlendirir Database Statusİlkesi:

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

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

Bu örnek gösteren temel bir ilke deposundan birden çok ilke süzmek için nereye-nesnesini kullanarak kendi PolicyCategoryözellik. Borulu çıkış nesneleri Where-Objecttarafından tüketilen Invoke-PolicyEvaluation.

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

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

İlkeleri xml dosyaları olarak depolanan, kullanmanız gereken -Policyparametresi her ilkenin adını ve yolunu sağlayın. Bir yol belirtmezseniz, -Policyparametresi Invoke-PolicyEvaulationgeçerli ayarı kullanır sqlpsyolu Örneğin, bu komutu karşı girişiniz için varsayılan veritabanı SQL Server ile yüklenen Microsoft en iyi uygulama ilkelerini birini değerlendirir:

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

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

Yalnızca geçerli kullandığı bu komutu aynı şeyi yapar sqlpsyolu ilke xml dosyasının konumunu kurmak için:

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

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

Bu örnek kullanarak Get-ChildItemcmdlet birden çok ilke xml dosyalarını alabilir ve nesneleri boru Invoke-PolicyEvaluation:

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

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

Hedef kümesi belirtme

Üç parametre, hedef nesne kümesini belirtmek için kullanın:

  • -TargetServerNameSQL Server hedef nesneleri içeren örneği belirtir. Tanımlanan biçimi için ConnectionString özelliğini kullanan dizesindeki bilgileri belirleyebilirsiniz SQLConnectionsınıf Sen-ebilmek kullanma SqlConnectionStringBuilderdoğru biçimlendirilmiş bağlantı dizisini oluşturmak için sınıf. Sen-ebilmek da yaratmak a SqlStoreConnectionnesne ve geçmek için -TargetServer. Yalnızca sunucu adını içeren bir dize sağlarsanız Invoke-PolicyEvaluationsunucuya bağlanmak için Windows kimlik doğrulaması kullanır.

  • -TargetObjectsbir nesne veya hedef kümesi SQL Server nesneleri temsil eden nesneler dizisi alır. Örneğin, sen-ebil yaratmak bir dizi Databasesınıf nesneleri içinde geçmesini -TargetObjects.

  • -TargetExpressionshedef kümesi nesneleri belirtir bir sorgu ifade içeren bir dize alır. Sorgu düğümleri ayrılmış şeklinde ifadesidir '/' karakter. Her düğüm NesneTürü [süzgeç] biçimindedir. Nesne türü nesneleri SQL Server Management nesne (smo) nesne hieararchy biridir. Filtre uygulayan nesneler bu düğümdeki bir ifadesidir. Daha fazla bilgi için, bkz. Sorgu ifadeleri ve Tekdüzen Kaynak adları.

Ya da belirtmek -TargetObjectsya -TargetExpression, değil hem.

Bu örnek, hedef sunucu belirtmek için Sfc.SqlStoreConnection bir nesneyi 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

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 -TargetExpressiondeğerlendirmek için belirli 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='AdventureWorks2012']"

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='AdventureWorks2012']"

Çözümleme Hizmetleri ilkeleri değerlendirme

Örneği karşı ilkeleri değerlendirmek için Analysis Services, yük ve PowerShell içine derleme kaydolun, değişken bir Çözümleme Hizmetleri bağlantı nesne oluşturma ve gerekir değişken geçmek -TargetObjectparametresi. Bu örnek için en iyi yöntemler yüzey alanı yapılandırması ilke değerlendirme 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

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ğerlendirme

Değerlendirmek için Reporting Servicesilkeleri, size yük gerekir ve PowerShell içine derleme kaydolun, bir değişken oluşturmak bir Reporting Servicesbağlantı nesnesi ve değişken geçmek -TargetObjectparametresi. Bu örnek için en iyi yöntemler yüzey alanı yapılandırması ilke değerlendirme 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

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ıyı biçimlendirmek

Varsayılan olarak, çıkış Invoke-PolicyEvaluationkomut istemi penceresinde okunabilir biçimde kısa bir rapor görüntülenir. Sen-ebilmek kullanma -OutputXMLcmdlet'i yerine bir xml dosyası olarak ayrıntılı bir rapor üretmek belirtmek için parametre. Invoke-PolicyEvaluationDeğişim sistemleri modelleme dil biçimini kullanır (sml-Eğer) dosyasının 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

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

Ayrıca bkz.

Kavramlar

Veritabanı altyapısı cmdlet'leri kullanın