Próbuję znaleźć sposób na utworzenie raportu WSUS o aktualizacjach, które zostały zatwierdzone dla grupy komputerów A, które nie zostały zatwierdzone dla jednej lub więcej grup. Alternatywnie, raport tabelaryczny, który zawiera stan zatwierdzenia każdej aktualizacji i każdej grupy, dzięki czemu można go przetworzyć w celu wyodrębnienia tego, czego potrzebuję. Wydaje się, że nie ma takiego raportu w samym WSUS, a przynajmniej nie mogę go znaleźć, więc skrypt do sporządzenia takiego raportu byłby bardzo mile widziany.
9
Odpowiedzi:
Ten skrypt PowerShell robi dokładnie to, co było początkowe żądanie. Zbadaj jeden komputer Grupa i znajdź aktualizacje niezatwierdzone dla jednej lub wielu innych grup komputerów.
Uwaga: Musisz uruchomić to na serwerze WSUS lub na komputerze, na którym są zainstalowane narzędzia administracyjne WSUS.
Konfiguracja
Ustaw
$targetComputerGroup
na grupę komputerów, której chcesz użyć jako linię bazową. Ustaw$CheckForMissing
nazwy grup lub grup, które chcesz sprawdzić, czy zostały zatwierdzone. Uwaga: Aby wykonać wielokrotność, wystarczy oddzielić przecinek („Grupa 1, Grupa 2”)Po zakończeniu będziesz mieć wyjście takie jak:
Jeśli zamiast wyświetlać dane na ekranie, chcesz wyeksportować listę do pliku CSV, zastąp dolną część następującym kodem:
źródło
Można „po prostu” połączyć się z bazą danych WSUS i uruchomić na niej zapytania:
\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query
przy użyciu uwierzytelniania systemu Windows .Te tabele wydają się być interesujące w odniesieniu do twojego pytania:
tbUpdate
Przechowuje informacje o pojedynczych aktualizacjach
tbTargetGroup
Przechowuje informacje o wszystkich grupach komputerów
tbDeployment
Przechowuje informacje o tym, jakie aktualizacje zostały zatwierdzone dla których grup komputerów
Wydaje się jednak, że korzystne jest wykorzystanie już istniejącego widoku
vUpdateApproval
do odzyskania większości poszukiwanych informacji, ponieważ widok ten tłumaczy między innymiActionID
kolumnętbDeployment
.vUpdateApproval
Widok, jednak nie zawiera żadnych czytelnych tytułów aktualizacji. Tytuły są zwykle odczytywane ztbLocalizedProperty
. Aby ułatwić nam, że jest inny widok:vUpdate
.Naprawdę nie mam odpowiednich danych w naszej bazie danych WSUS, aby zbudować odpowiednie zapytanie, które pasowałoby do twojego pierwszego żądania (i nie jestem wystarczająco pewny, aby je skonstruować na ślepo). Oto podejście do drugiego żądania. Jeśli się nie zepsułem, wyświetla listę wszystkich aktualizacji i stan zatwierdzenia dla wszystkich grup.
Który produkuje ten wynik w naszym niemieckim SBS:
W przypadku naszego SBS z 5 domyślnymi grupami daje to 121558 wierszy wyników w ~ 26 sekund. Tak więc, jeśli chcesz pobawić się zapytaniem, może być wskazana zmiana pierwszej linii na
SELECT TOP 1000
podczas testowania.Poświęciłem też czas na podsumowanie tego wszystkiego w skrypcie PowerShell:
Pamiętaj, że ten skrypt zawiera
SELECT TOP 10
ograniczenie, aby uniknąć zalania powłoki podczas testowania.źródło
myscript.ps1 | fl
aby uzyskać inne (nie obcięte) wyjście.