Bagikan melalui


Invoke-PolicyEvaluation

Memanggil satu atau beberapa evaluasi kebijakan manajemen berbasis kebijakan SQL Server.

Sintaks

Invoke-PolicyEvaluation
      [-Policy] <PSObject>
      [-AdHocPolicyEvaluationMode <AdHocPolicyEvaluationMode>]
      -TargetServerName <PSObject>
      [-TargetExpression <String>]
      [-OutputXml]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]
Invoke-PolicyEvaluation
      [-Policy] <PSObject>
      [-AdHocPolicyEvaluationMode <AdHocPolicyEvaluationMode>]
      -TargetObjects <PSObject[]>
      [-OutputXml]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]

Deskripsi

cmdlet Invoke-PolicyEvaluation mengevaluasi satu atau beberapa kebijakan manajemen berbasis kebijakan terhadap sekumpulan objek SQL Server bernama dalam kumpulan target.

Kebijakan menentukan nilai yang diizinkan untuk berbagai properti yang terkait dengan objek SQL Server, seperti menetapkan standar situs untuk nama database atau kolase.

Ketika cmdlet ini berjalan dalam mode pemeriksaan, cmdlet ini melaporkan apakah properti objek saat ini dalam set target mematuhi aturan dalam definisi kebijakan.

Objek dalam set target tidak dikonfigurasi ulang jika propertinya tidak mematuhi kebijakan.

Dalam mode konfigurasi, cmdlet ini mengonfigurasi ulang objek apa pun dalam kumpulan target yang tidak mematuhi definisi kebijakan.

Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.

Contoh

Contoh 1: Mengevaluasi kebijakan pada instans default komputer

PS C:\> Set-Location "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Policies\DatabaseEngine\1033"
PS C:\> Invoke-PolicyEvaluation -Policy "Trustworthy Database.xml" -TargetServer "MYCOMPUTER"

Perintah ini mengevaluasi kebijakan pada instans default komputer yang ditentukan. Kebijakan dibaca dari file XML dan koneksi diautentikasi dengan menggunakan Autentikasi Windows.

Contoh 2: Mengevaluasi kebijakan dari file XML

PS C:\> Set-Location "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Policies\DatabaseEngine\1033"
PS C:\> Get-ChildItem "Database Status.xml", "Trustworthy Database.xml" | Invoke-PolicyEvaluation -TargetServer "MYCOMPUTER"

Perintah ini membaca dua kebijakan dari file XML dalam folder, lalu meneruskannya ke Invoke-PolicyEvaluation dengan menggunakan operator alur.

Contoh 3: Mengevaluasi kebijakan dan memformat output sesuai dengan skema SMLIF

PS C:\> Set-Location "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Policies\DatabaseEngine\1033"
PS C:\> Invoke-PolicyEvaluation -Policy "Database Status.xml" -TargetServer "MYCOMPUTER" -OutputXML > C:\MyReportFolder\MyReport.xml

Perintah ini mengevaluasi kebijakan dan memformat output dengan menggunakan skema Format Pertukaran Bahasa Pemodelan Layanan (SML-IF). Output dialihkan ke file.

Contoh 4: Mengevaluasi serangkaian kebijakan yang difilter

PS C:\> Set-Location "SQLSERVER:\SQLPolicy\MYCOMPUTER\DEFAULT\Policies"
PS C:\> Get-ChildItem | Where-Object { $_.PolicyCategory -eq "Microsoft Best Practices: Maintenance" } | Invoke-PolicyEvaluation -TargetServer 'MYCOMPUTER'

Perintah pertama mengatur jalur saat ini ke penyimpanan kebijakan SQL Server.

Perintah kedua menggunakan Get-ChildItem untuk membaca semua polisi lalu menggunakan Where-Object untuk memfilter daftar kebijakan yang properti PolicyCategory-nya diatur ke "Praktik Terbaik Microsoft: Pemeliharaan".

Output dikirim ke Invoke-PolicyEvaluation dengan menggunakan operator alur.

Contoh 5: Mengevaluasi kebijakan dari file XML dengan menggunakan objek SqlStoreConnection

PS C:\> Set-Location "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Policies\DatabaseEngine\1033"
PS C:\> $Connection = New-Object Microsoft.SqlServer.Management.Sdk.Sfc.SqlStoreConnection("server='MYCOMPUTER';Trusted_Connection=True")
PS C:\> Invoke-PolicyEvaluation -Policy "Database Status.xml" -TargetServer $Connection

Perintah pertama mengatur lokasi saat ini ke folder lokal yang berisi evakuasi kebijakan dalam file XML.

Perintah kedua menggunakan New-Object untuk membuat objek SqlStoreConnection.

Perintah ketiga mengevaluasi kebijakan dari file XML terhadap server yang ditentukan oleh objek SqlStoreConnection.

Contoh 6: Mengevaluasi kebijakan menggunakan rakitan yang dimuat secara manual

PS C:\> Set-Location "C:\Program Files (x86)\Microsoft SQL Server\140\ tools\Policies\analysisservices\1033"
PS C:\> [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")
PS C:\> $SSASsvr = New-Object Microsoft.AnalysisServices.Server
PS C:\> $SSASsvr.Connect("Data Source=localhost")
PS C:\> Invoke-PolicyEvaluation "Surface Area Configuration for Analysis Services Features.xml" -TargetObject $SSASsvr

Perintah pertama mengatur lokasi folder saat ini.

Perintah kedua memuat instans rakitan SQL Server Analysis Services.

Perintah ketiga membuat objek Microsoft.AnalysisServices.

Perintah keempat menggunakan objek AnalysisServices baru untuk membuka koneksi ke instans server default di komputer lokal.

Perintah kelima mengevaluasi kebijakan konfigurasi area permukaan Analysis Services.

Contoh 7: Mengevaluasi serangkaian kebijakan yang difilter

PS C:\> Set-Location "C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Policies\DatabaseEngine\1033"
PS C:\> Invoke-PolicyEvaluation "Database Status.xml" -TargetServer "MYCOMPUTER" -TargetExpression "Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks2014']"

Perintah ini menggunakan parameter TargetExpression untuk menentukan ekspresi kueri yang memfilter kebijakan status database dievaluasi terhadap database sampel AdventureWorks2014 dan melakukan evaluasi.

Contoh 8: Mengevaluasi kebijakan konfigurasi area permukaan layanan pelaporan

PS C:\> Set-Location "C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Policies\ReportingServices\1033"
PS C:\> [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Dmf.Adapters")
PS C:\> $SSRSsvr = New-Object Microsoft.SqlServer.Management.Adapters.RSContainer('MyComputer')
PS C:\> Invoke-PolicyEvaluation -Policy "Surface Area Configuration for Reporting Services 2008 Features.xml" -TargetObject $SSRSsvr

Perintah ini memuat rakitan SQL Server Reporting Services, membuat koneksi ke instans server default di komputer lokal, dan menjalankan kebijakan konfigurasi area permukaan Reporting Services.

Parameter

-AdHocPolicyEvaluationMode

Menentukan mode evaluasi kebijakan adhoc. Nilai yang valid adalah:

  • Periksa. Laporkan status kepatuhan target yang ditetapkan dengan menggunakan kredensial akun masuk Anda dan tanpa mengonfigurasi ulang objek apa pun.
  • CheckSqlScriptAsProxy. Jalankan laporan pemeriksaan dengan menggunakan kredensial akun proksi ##MS_PolicyTSQLExecutionLogin##.
  • Mengkonfigurasi. Konfigurasi ulang objek set target yang tidak mematuhi kebijakan dan laporkan status yang dihasilkan. Cmdlet ini hanya mengonfigurasi ulang properti yang dapat diatur dan deterministik.
Jenis:AdHocPolicyEvaluationMode
Nilai yang diterima:Check, Configure, CheckSqlScriptAsProxy
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-OutputXml

Menunjukkan bahwa cmdlet ini menghasilkan laporannya dalam format XML menggunakan skema Format Pertukaran Bahasa Pemodelan Layanan (SML-IF).

Jenis:SwitchParameter
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Policy

Menentukan satu atau beberapa kebijakan untuk dievaluasi.

Kebijakan dapat disimpan dalam instans mesin database SQL Server atau sebagai file XML yang diekspor.

Untuk kebijakan yang disimpan dalam instans mesin database, gunakan jalur yang didasarkan pada folder SQLSERVER:\SQLPolicy untuk menentukan lokasi polisi.

Untuk kebijakan yang disimpan sebagai file XML, gunakan jalur sistem file untuk menentukan lokasi kebijakan.

Parameter ini dapat mengambil string yang menentukan nama satu atau beberapa kebijakan untuk dievaluasi.

Jika hanya nama file atau kebijakan yang ditentukan dalam string, cmdlet ini menggunakan jalur saat ini.

Untuk kebijakan yang disimpan dalam instans mesin database, gunakan nama kebijakan, seperti "Status Database" atau "SQLSERVER:\SQLPolicy\MyComputer\DEFAULT\Policies\Database Status." Untuk kebijakan yang diekspor sebagai file XML, gunakan nama file, seperti "Database Status.xml" atau "C:\MyPolicyFolder\Database Status.xml."

Parameter ini dapat mengambil sekumpulan objek FileInfo, seperti output Get-ChildItem dijalankan terhadap folder yang berisi kebijakan XML yang diekspor.

Parameter ini juga dapat mengambil sekumpulan objek Kebijakan, seperti output Get-ChildItem dijalankan terhadap jalur SQLSERVER:\SQLPolicy.

Jenis:PSObject
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-ProgressAction

Menentukan bagaimana PowerShell merespons pembaruan kemajuan yang dihasilkan oleh skrip, cmdlet, atau penyedia, seperti bilah kemajuan yang dihasilkan oleh cmdlet Write-Progress. cmdlet Write-Progress membuat bilah kemajuan yang memperlihatkan status perintah.

Jenis:ActionPreference
Alias:proga
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-TargetExpression

Menentukan kueri yang mengembalikan daftar objek yang menentukan kumpulan target.

Kueri ditentukan sebagai string yang memiliki simpul yang dipisahkan oleh karakter '/'.

Setiap simpul dalam format ObjectType[Filter].

ObjectType adalah salah satu objek dalam model objek SQL Server Management Objects (SMO), dan Filter adalah ekspresi yang memfilter objek tertentu pada simpul tersebut. Simpul harus mengikuti hierarki objek SMO. Misalnya, ekspresi kueri berikut mengembalikan database sampel AdventureWorks:

[@Name='MyComputer']/Database[@Name='AdventureWorks']

Jika TargetExpression ditentukan, jangan tentukan TargetObject.

Jenis:String
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-TargetObjects

Menentukan kumpulan objek SQL Server tempat kebijakan dievaluasi. Untuk menyambungkan ke instans layanan analisis SQL Server, tentukan objek Microsoft.AnalysisServices.Server untuk TargetObject.

Jika TargetObject ditentukan, jangan tentukan TargetExpression.

Jenis:PSObject[]
Position:Named
Nilai default:None
Diperlukan:True
Terima input alur:False
Terima karakter wildcard:False

-TargetServerName

Menentukan instans mesin database yang berisi kumpulan target.

Anda dapat menentukan variabel yang berisi objek Microsoft.SqlServer.Management.Sfc.Sdk.SQLStoreConnection.

Anda juga dapat menentukan string yang sesuai dengan format yang digunakan dalam properti ConnectionString kelas System.Data.SqlClient.SqlConnection (v21 modul) atau kelas Microsoft.Data.SqlClient.SqlConnection (v22+ modul) di .Net.

Ini termasuk string seperti yang dibuat dengan menggunakan System.Data.SqlClient.SqlConnectionStringBuilder atau Microsoft.Data.SqlClient.SqlConnectionStringBuilder.

Secara default, cmdlet ini tersambung dengan menggunakan Autentikasi Windows.

Jenis:PSObject
Position:Named
Nilai default:None
Diperlukan:True
Terima input alur:False
Terima karakter wildcard:False

Input

System.Management.Automation.PSObject