Invoke-PolicyEvaluation

Appelle une ou plusieurs évaluations de stratégie de gestion basées sur des stratégies SQL Server.

Syntax

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

Description

L’applet de commande Invoke-PolicyEvaluation évalue une ou plusieurs stratégies de gestion basées sur des stratégies par rapport à un ensemble d’objets SQL Server nommés dans l’ensemble cible.

Les stratégies spécifient les valeurs autorisées pour les différentes propriétés associées aux objets SQL Server, par exemple l'établissement des normes de site pour les noms de bases de données ou les classements.

Lorsque cette applet de commande s’exécute en mode case activée, elle indique si les propriétés actuelles des objets du jeu cible sont conformes aux règles des définitions de stratégie.

Les objets du jeu de cibles ne sont pas reconfigurés si leurs propriétés ne sont pas conformes aux stratégies.

En mode configurer, cette applet de commande reconfigure tous les objets de l’ensemble cible qui ne sont pas conformes aux définitions de stratégie.

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

Exemples

Exemple 1 : Évaluer une stratégie sur le instance par défaut de l’ordinateur

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"

Cette commande évalue une stratégie sur le instance par défaut de l’ordinateur spécifié. La stratégie est lue à partir d’un fichier XML et la connexion est authentifiée à l’aide de l’authentification Windows.

Exemple 2 : Évaluer des stratégies à partir de fichiers 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"

Cette commande lit deux stratégies à partir de fichiers XML dans un dossier, puis les transmet à Invoke-PolicyEvaluation à l’aide de l’opérateur de pipeline.

Exemple 3 : Évaluer les stratégies et mettre en forme la sortie en fonction du schéma 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

Cette commande évalue une stratégie et met en forme la sortie à l’aide du schéma SML-IF (Services Modeling Language Interchange Format). La sortie est redirigée vers un fichier.

Exemple 4 : Évaluer un ensemble de stratégies filtrées

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'

La première commande définit le chemin d’accès actuel à un magasin de stratégies SQL Server.

La deuxième commande utilise Get-ChildItem pour lire toutes les stratégies, puis utilise Where-Object pour filtrer la liste des stratégies dont la propriété PolicyCategory est définie sur « Microsoft Best Practices: Maintenance ».

La sortie est envoyée à Invoke-PolicyEvaluation à l’aide de l’opérateur de pipeline.

Exemple 5 : Évaluer des stratégies à partir de fichiers XML à l’aide d’un objet 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

La première commande définit l’emplacement actuel sur un dossier local qui contient des évaulations de stratégie dans des fichiers XML.

La deuxième commande utilise New-Object pour créer un objet SqlStoreConnection.

La troisième commande évalue la stratégie à partir d’un fichier XML par rapport au serveur défini par l’objet SqlStoreConnection.

Exemple 6 : Évaluer la stratégie à l’aide d’un assembly chargé manuellement

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

La première commande définit l’emplacement du dossier actif.

La deuxième commande charge un instance de l’assembly SQL Server Analysis Services.

La troisième commande crée un objet Microsoft.AnalysisServices.

La quatrième commande utilise le nouvel objet AnalysisServices pour ouvrir une connexion au serveur par défaut instance sur l’ordinateur local.

La cinquième commande évalue la stratégie de configuration de la surface d’exposition Analysis Services.

Exemple 7 : Évaluer un ensemble de stratégies filtrées

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

Cette commande utilise le paramètre TargetExpression pour spécifier une expression de requête qui filtre la base de données status stratégie à évaluer par rapport à l’exemple de base de données AdventureWorks2014 et effectue l’évaluation.

Exemple 8 : Évaluer la stratégie de configuration de surface d’exposition reporting services

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

Cette commande charge l’assembly SQL Server Reporting Services, crée une connexion au serveur par défaut instance sur l’ordinateur local et exécute la stratégie de configuration Reporting Services surface d’exposition.

Paramètres

-AdHocPolicyEvaluationMode

Spécifie le mode d’évaluation de stratégie ad hoc. Les valeurs autorisées sont :

  • Vérifier. Signalez le status de conformité de la cible définie à l’aide des informations d’identification de votre compte de connexion et sans reconfigurer aucun objet.
  • CheckSqlScriptAsProxy. Exécutez un rapport case activée à l’aide des informations d’identification du compte proxy ##MS_PolicyTSQLExecutionLogin##.
  • Configurer : Reconfigurez les objets de l’ensemble cible qui ne sont pas conformes aux stratégies et signalez les status résultants. Cette applet de commande reconfigure uniquement les propriétés qui sont paramétrables et déterministes.
Type:AdHocPolicyEvaluationMode
Accepted values:Check, Configure, CheckSqlScriptAsProxy
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OutputXml

Indique que cette applet de commande produit son rapport au format XML à l’aide du schéma SML-IF (Service Modeling Language Interchange Format).

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Policy

Spécifie une ou plusieurs stratégies à évaluer.

Les stratégies peuvent être stockées dans un instance du moteur de base de données SQL Server ou sous forme de fichiers XML exportés.

Pour les stratégies stockées dans un instance du moteur de base de données, utilisez un chemin basé sur le dossier SQLSERVER:\SQLPolicy pour spécifier l’emplacement des stratégies.

Pour les stratégies stockées en tant que fichiers XML, utilisez un chemin d'accès au système de fichiers pour spécifier l'emplacement des stratégies.

Ce paramètre peut prendre une chaîne qui spécifie les noms d’une ou plusieurs stratégies à évaluer.

Si seul un nom de fichier ou de stratégie est spécifié dans la chaîne, cette applet de commande utilise le chemin actuel.

Pour les stratégies stockées dans un instance du moteur de base de données, utilisez le nom de la stratégie, par exemple « État de la base de données » ou « SQLSERVER:\SQLPolicy\MyComputer\DEFAULT\Policies\Database Status ». Pour les stratégies exportées en tant que fichiers XML, utilisez le nom du fichier, par exemple « Database Status.xml » ou « C:\MyPolicyFolder\Database Status.xml ».

Ce paramètre peut prendre un ensemble d’objets FileInfo, comme la sortie de Get-ChildItem s’exécuter sur un dossier qui contient des stratégies XML exportées.

Ce paramètre peut également prendre un ensemble d’objets Policy, tels que la sortie de Get-ChildItem s’exécutent sur un chemin SQLSERVER:\SQLPolicy.

Type:PSObject
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-TargetExpression

Spécifie une requête qui retourne la liste des objets qui définissent l’ensemble cible.

Les requêtes sont spécifiées sous forme d'une chaîne qui contient des nœuds séparés par le caractère « / ».

Chaque nœud se présente au format TypeObjet[Filtre].

TypeObjet est l'un des objets du modèle d'objet SMO (SQL Server Management Objects), et Filtre est une expression qui filtre des objets spécifiques sur ce nœud. Ces nœuds doivent respecter la hiérarchie des objets SMO. Par exemple, l’expression de requête suivante retourne l’exemple de base de données AdventureWorks :

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

Si TargetExpression est spécifié, ne spécifiez pas TargetObject.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TargetObjects

Spécifie l’ensemble d’objets SQL Server sur lesquels la stratégie est évaluée. Pour vous connecter à un instance de SQL Server Analysis Services, spécifiez un objet Microsoft.AnalysisServices.Server pour TargetObject.

Si TargetObject est spécifié, ne spécifiez pas TargetExpression.

Type:PSObject[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-TargetServerName

Spécifie la instance du moteur de base de données qui contient l’ensemble cible.

Vous pouvez spécifier une variable qui contient un objet Microsoft.SqlServer.Management.Sfc.Sdk.SQLStoreConnection.

Vous pouvez également spécifier une chaîne conforme aux formats utilisés dans la propriété ConnectionString de la classe System.Data.SqlClient.SqlConnection (v21 du module) ou la classe Microsoft.Data.SqlClient.SqlConnection (v22+ du module) dans .Net.

Il s’agit notamment de chaînes telles que celles créées à l’aide de System.Data.SqlClient.SqlConnectionStringBuilder ou de Microsoft.Data.SqlClient.SqlConnectionStringBuilder.

Par défaut, cette applet de commande se connecte à l’aide de l’authentification Windows.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Entrées

System.Management.Automation.PSObject