J'essaie de trouver un moyen de créer un rapport WSUS des mises à jour qui ont été approuvées pour le groupe d'ordinateurs A qui n'ont pas été approuvées pour un ou plusieurs autres groupes. Alternativement, un rapport tabulaire qui répertorie l'état d'approbation pour chaque mise à jour et chaque groupe, afin qu'il puisse être traité pour extraire ce dont j'ai besoin. Il ne semble pas y avoir un tel rapport dans WSUS lui-même, ou du moins pas un que je puisse trouver, donc un script pour produire un tel rapport serait le bienvenu.
9
Réponses:
Ce script PowerShell fait exactement votre demande initiale. Examinez un groupe d'ordinateurs et recherchez les mises à jour non approuvées pour un ou plusieurs autres groupes d'ordinateurs.
Remarque Vous devrez l'exécuter sur un serveur WSUS ou sur une machine sur laquelle les outils d'administration WSUS sont installés.
Configuration
Définissez
$targetComputerGroup
le groupe d'ordinateurs que vous souhaitez utiliser comme ligne de base Définissez$CheckForMissing
les noms du ou des groupes pour lesquels vous souhaitez voir s'ils ont été approuvés. Remarque: Pour faire des multiples juste un coma séparés ("Groupe1, Groupe2")Une fois terminé, vous aurez une sortie comme:
Si au lieu de sortir à l'écran, vous souhaitez exporter la liste vers un fichier CSV, remplacez la partie inférieure par le code suivant:
la source
On peut "simplement" se connecter à la base de données WSUS et exécuter des requêtes sur celle-ci:
\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query
aide de l' authentification Windows .Ces tableaux semblent intéresser votre question:
tbUpdate
Contient des informations sur les mises à jour uniques
tbTargetGroup
Contient des informations sur tous les groupes d'ordinateurs
tbDeployment
Contient des informations sur les mises à jour approuvées pour quels groupes d'ordinateurs
Cependant, il semble avantageux d'utiliser la vue déjà existante
vUpdateApproval
pour récupérer la plupart des informations que vous recherchez, car cette vue traduit déjà laActionID
colonnetbDeployment
entre autres choses.La
vUpdateApproval
vue, cependant, ne comprend aucun titre facilement lisible pour les mises à jour. Les titres sont généralement lustbLocalizedProperty
. Pour le rendre plus facile pour nous, il y a une autre vue:vUpdate
.Je n'ai pas vraiment les données appropriées dans notre base de données WSUS pour construire la requête appropriée qui conviendrait à votre première demande (et je ne suis pas assez confiant pour la construire aveuglément). Voici donc une approche pour votre demande secondaire. Si je ne me trompe pas, il produit une liste de toutes les mises à jour et l'état d'approbation pour tous les groupes.
Ce qui produit cette sortie sur notre SBS allemand:
Pour notre SBS avec ses 5 groupes par défaut, cela produit 121558 lignes de résultats en ~ 26s. Donc, si vous voulez jouer avec la requête, il peut être conseillé de changer la première ligne en
SELECT TOP 1000
pendant le test.J'ai également pris le temps de tout résumer dans un script PowerShell:
Veuillez noter que ce script inclut la
SELECT TOP 10
limitation pour éviter d'inonder votre shell pendant les tests.la source
myscript.ps1 | fl
pour obtenir une sortie différente (non tronquée).