Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Invoke-PolicyEvaluation adalah cmdlet SQL Server yang melaporkan apakah kumpulan target objek SQL Server mematuhi kondisi yang ditentukan dalam satu atau beberapa kebijakan Manajemen Berbasis Kebijakan.
Menggunakan Invoke-PolicyEvaluation
Invoke-PolicyEvaluation mengevaluasi satu atau beberapa kebijakan terhadap sekumpulan objek SQL Server yang disebut set target. Kumpulan objek target berasal dari server target. Setiap kebijakan menentukan kondisi, yang merupakan status yang diizinkan untuk objek target. Misalnya, kebijakan Database Tepercaya menyatakan bahwa properti database TRUSTWORTHY harus diatur ke NONAKTIF.
Parameter -AdHocPolicyEvaluationMode menentukan tindakan yang diambil:
Periksa
Laporkan status kepatuhan objek target menggunakan kredensial login Anda saat ini. Jangan konfigurasi ulang objek apa pun. Ini adalah pengaturan default.
CheckSqlScriptAsProxy
Laporkan status kepatuhan objek target menggunakan kredensial login proksi ##MS_PolicyTSQLExecutionLogin## . Jangan konfigurasi ulang objek apa pun.
Konfigurasi
Laporkan status kepatuhan objek target menggunakan kredensial login Anda saat ini. Konfigur ulang opsi yang dapat disetel dan bersifat deterministik yang tidak memenuhi kebijakan.
Menentukan Kebijakan
Cara Anda menentukan kebijakan bergantung pada tempat kebijakan disimpan. Kebijakan dapat disimpan dalam dua format:
Mereka dapat berupa objek yang disimpan di dalam penyimpanan kebijakan, seperti sebuah instans dari Mesin Basis Data. Anda dapat menggunakan folder SQLSERVER:\SQLPolicy untuk menentukan lokasi kebijakan di penyimpanan kebijakan. Anda dapat menggunakan cmdlet Windows PowerShell untuk memfilter kebijakan input berdasarkan propertinya, seperti menggunakan Where-Object untuk memfilter kategori kebijakan atau Get-Item untuk memfilter nama kebijakan.
Mereka dapat diekspor sebagai file XML. Anda dapat menggunakan drive sistem file, seperti D:, untuk menentukan lokasi file XML. Anda dapat menggunakan cmdlet Windows PowerShell seperti Where-Object untuk memfilter kebijakan pada properti file mereka, seperti nama file.
Jika kebijakan disimpan di penyimpanan kebijakan, Anda harus meneruskan serangkaian PSObjects yang merujuk pada kebijakan yang akan dievaluasi. Ini biasanya dilakukan dengan mengarahkan output dari cmdlet seperti Get-Item ke Invoke-PolicyEvaluation, dan tidak mengharuskan Anda menentukan parameter -Policy. Misalnya, jika Anda telah mengimpor kebijakan Praktik Terbaik Microsoft ke dalam instans mesin database, perintah ini mengevaluasi kebijakan Status Database :
sl "SQLSERVER:\SQLPolicy\MyComputer\DEFAULT\Policies"
Get-Item "Database Status" | Invoke-PolicyEvaluation -TargetServerName "MYCOMPUTER"
Contoh ini menunjukkan penggunaan Where-Object untuk memfilter beberapa kebijakan dari penyimpanan kebijakan berdasarkan properti PolicyCategory mereka. Objek dari output yang disalurkan dari Where-Object dikonsumsi oleh Invoke-PolicyEvaluation.
sl "SQLSERVER:\SQLPolicy\MyComputer\DEFAULT\Policies"
gci | Where-Object {$_.PolicyCategory -eq "Microsoft Best Practices: Maintenance"} | Invoke-PolicyEvaluation -TargetServer "MYCOMPUTER"
Jika kebijakan disimpan sebagai file XML, Anda harus menggunakan parameter -Policy untuk menyediakan jalur dan nama untuk setiap kebijakan. Jika Anda tidak menentukan jalur dalam parameter -Policy , Invoke-PolicyEvaulation menggunakan pengaturan jalur sqlps saat ini. Misalnya, perintah ini mengevaluasi salah satu kebijakan Praktik Terbaik Microsoft yang diinstal dengan SQL Server terhadap database default untuk login Anda:
Invoke-PolicyEvaluation -Policy "C:\Program Files\Microsoft SQL Server\120\Tools\Policies\DatabaseEngine\1033\Database Status.xml" -TargetServerName "MYCOMPUTER"
Perintah ini melakukan hal yang sama, hanya menggunakan jalur sqlps saat ini untuk menetapkan lokasi file XML kebijakan:
sl "C:\Program Files\Microsoft SQL Server\120\Tools\Policies\DatabaseEngine\1033"
Invoke-PolicyEvaluation -Policy "Database Status.xml" -TargetServerName "MYCOMPUTER"
Contoh ini menunjukkan penggunaan cmdlet Get-ChildItem untuk mengambil beberapa file XML kebijakan dan menyalurkan objek ke Invoke-PolicyEvaluation:
sl "C:\Program Files\Microsoft SQL Server\120\Tools\Policies\DatabaseEngine\1033"
gci "Database Status.xml", "Trustworthy Database.xml" | Invoke-PolicyEvaluation -TargetServer "MYCOMPUTER"
Menentukan Set Sasaran
Gunakan tiga parameter untuk menentukan kumpulan objek target:
-TargetServerName menentukan instans SQL Server yang berisi objek target. Anda dapat menentukan informasi dalam string yang menggunakan format yang ditentukan untuk kelas SqlConnection properti ConnectionString. Anda dapat menggunakan SqlConnectionStringBuilder kelas untuk membuat string koneksi yang diformat dengan benar. Anda juga dapat membuat SqlStoreConnection objek dan meneruskannya ke -TargetServer. Jika Anda menyediakan string yang hanya memiliki nama server, Invoke-PolicyEvaluation menggunakan Autentikasi Windows untuk menyambungkan ke server.
-TargetObjects mengambil objek atau array objek yang mewakili objek SQL Server dalam kumpulan target. Misalnya, Anda dapat membuat array Database objek kelas untuk diteruskan ke -TargetObjects.
-TargetExpressions mengambil string yang berisi ekspresi kueri yang menentukan objek dalam kumpulan target. Ekspresi kueri dalam bentuk simpul yang dipisahkan oleh karakter '/'. Setiap simpul dalam bentuk ObjectType[Filter]. Jenis objek adalah salah satu objek dalam hierarki objek SQL Server Management Object (SMO). Filter adalah ekspresi yang memfilter objek pada simpul tersebut. Untuk informasi selengkapnya, lihat Ekspresi Kueri dan Nama Sumber Daya Seragam.
Tentukan -TargetObjects atau -TargetExpression, bukan keduanya.
Contoh ini menggunakan objek Sfc.SqlStoreConnection untuk menentukan server target:
sl "C:\Program Files\Microsoft SQL Server\120\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
Contoh ini menggunakan -TargetExpression untuk mengidentifikasi database tertentu untuk dievaluasi:
sl "C:\Program Files\Microsoft SQL Server\120\Tools\Policies\DatabaseEngine\1033"
Invoke-PolicyEvaluation -Policy "Database Status.xml" -TargetServerName "MyComputer" -TargetExpression "Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks2012']"
Mengevaluasi Kebijakan Analysis Services
Untuk mengevaluasi kebijakan terhadap instans Analysis Services, Anda harus memuat dan mendaftarkan rakitan ke PowerShell, membuat variabel dengan objek koneksi Analysis Services, dan meneruskan variabel ke parameter -TargetObject . Contoh ini menunjukkan bagaimana mengevaluasi kebijakan konfigurasi cakupan area Praktik Terbaik untuk Analysis Services:
sl "C:\Program Files\Microsoft SQL Server\120\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
Mengevaluasi Kebijakan Reporting Services
Untuk mengevaluasi kebijakan Reporting Services, Anda harus memuat dan mendaftarkan rakitan ke PowerShell, membuat variabel dengan objek koneksi Reporting Services, dan meneruskan variabel ke parameter -TargetObject . Contoh ini menunjukkan evaluasi kebijakan konfigurasi cakupan area Praktik Terbaik untuk Layanan Pelaporan:
sl "C:\Program Files\Microsoft SQL Server\120\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
Pemformatan Output
Secara default, output Invoke-PolicyEvaluation ditampilkan di jendela prompt perintah sebagai laporan ringkas dalam format yang dapat dibaca manusia. Anda dapat menggunakan parameter -OutputXML untuk menentukan bahwa cmdlet sebagai gantinya menghasilkan laporan terperinci sebagai file XML. Invoke-PolicyEvaluation menggunakan skema Systems Modeling Language Interchange Format (SML-IF) sehingga file dapat dibaca oleh pembaca SML-IF.
sl "SQLSERVER:\SQLPolicy\MyComputer\DEFAULT\Policies"
Invoke-PolicyEvaluation -Policy "Datbase Status" -TargetServer "MYCOMPUTER" -OutputXML > C:\MyReports\DatabaseStatusReport.xml