Czy mogę zmienić opisy aktualizacji w WSUS?

11

Każdego dnia poprawki Microsoft mam dość dużą liczbę nowych aktualizacji, które chcę zatwierdzić dla moich klientów. Ale zamiast „Zatwierdź wszystkie aktualizacje i kontynuuj”, zbieram informacje o każdej aktualizacji w jej artykule z Bazy wiedzy, aby zdecydować, czy jest to dla nas ważna aktualizacja, czy nie.

To dość żmudne zadanie, ponieważ muszę wpisać odpowiedni numer KB w przeglądarce mojego klienta i czekać na załadowanie strony internetowej. Zastanawiałem się, dlaczego Microsoft nie używa pola opisu aktualizacji w panelu sterowania programu WSUS, aby wyświetlać naprawdę pomocne, szczegółowe informacje. Zamiast tego wszystkie moje aktualizacje brzmią:

Zainstaluj tę aktualizację, aby rozwiązać problemy w systemie Windows. Aby uzyskać pełną listę problemów zawartych w tej aktualizacji, zobacz powiązany artykuł z bazy wiedzy Microsoft Knowledge Base, aby uzyskać więcej informacji. Po zainstalowaniu tego elementu może być konieczne ponowne uruchomienie komputera.

Zacząłem myśleć o małym skrypcie Powershell, który dodaje mi niezbędnych informacji. Ale nie udało mi się na pierwszym etapie, który polega na ręcznej zmianie opisu aktualizacji:

PS C: \ Users \ Administrator> $ wsus = Get-WsusServer

PS C: \ Users \ Administrator> $ update = $ wsus.SearchUpdates ('KB3013791')

PS C: \ Users \ Administrator> $ update [0] .Opis
Zainstaluj tę aktualizację, aby rozwiązać problemy w systemie Windows. Aby uzyskać pełną listę problemów zawartych w tej aktualizacji, zobacz powiązany artykuł z bazy wiedzy Microsoft Knowledge Base, aby uzyskać więcej informacji. Po zainstalowaniu tego elementu może być konieczne ponowne uruchomienie komputera.

PS C: \ Users \ Administrator> $ update [0] .Description = '"0x00000133" Zatrzymaj błąd, gdy w systemie Windows 8.1 lub Windows Server 2012 R2 występuje błąd "

PS C: \ Users \ Administrator> $ update [0]
.Opis „0x00000133” Zatrzymaj błąd, gdy w systemie Windows 8.1 lub Windows Server 2012 R2 wystąpił błąd

PS C: \ Users \ Administrator> $ update = $ wsus.SearchUpdates ('KB3013791')

PS C: \ Users \ Administrator> $ update [0] .Opis
Zainstaluj tę aktualizację, aby rozwiązać problemy w systemie Windows. Aby uzyskać pełną listę problemów zawartych w tej aktualizacji, zobacz powiązany artykuł z bazy wiedzy Microsoft Knowledge Base, aby uzyskać więcej informacji. Po zainstalowaniu tego elementu może być konieczne ponowne uruchomienie komputera.

Wygląda na to, że moje zmiany nie są zatwierdzane w bazie danych. Albo brakuje mi czegoś, $wsus.SubmitChanges()albo $wsus.SearchUpdates()polecenie zwraca „update.Clone ()”, dzięki czemu moje zmiany są zapisywane do nikąd.

Jak mogę osiągnąć cel polegający na zmianie opisów aktualizacji WSUS?

Physikbuddha
źródło
$update[0].Description | Get-MemberMożesz być w stanie użyć .Replace()funkcji członka, ale nie jest jasne, jak sobie z tym poradzić. Musisz jakoś zadzwonić, Set()ale nie rozumiem od razu, jak to działa.
mortenya
Powiązane pytanie dotyczące SuperUser dotyczy tego, co prawdopodobnie już rozwiązałeś: Jak uzyskać sensowny opis każdej aktualizacji. Wygląda na to, że już rozwiązałeś tę część, byłbym bardzo wdzięczny, gdybyś mógł rzucić okiem. superuser.com/q/878753/99136
krlmlr
@krlmlr Musiałem przegapić Twój komentarz do tego pytania. Teraz, gdy utworzyłem rzeczywisty program dla opisanego tutaj problemu, opublikowałem odpowiedź na powyższe pytanie na stronie Superuser.
Physikbuddha,

Odpowiedzi:

7

Aktualizacja

Korzystając z poniższej odpowiedzi, stworzyłem małe narzędzie, które automatycznie dodaje opisy do mojego serwera WSUS. Postanowiłem opublikować moje narzędzie na Github, więc spróbuj go przetestować.

https://github.com/Physikbuddha/wsus-online-descriptions/releases/latest

Przykładowy zrzut ekranu

Oryginalna odpowiedź

Próbowałem rozwiązać problem z Get-Member, jak sugeruje mortenya w sekcji komentarzy, ale bez powodzenia.
Wreszcie skończyłem z bezpośrednią edycją bazy danych WSUS w celu zmiany opisu.

Bądź ostrożny! Skorzystaj z mojego rozwiązania tylko wtedy, gdy masz absolutną pewność, co robisz. Edycja bazy danych, od której zależy serwer, jest jak przeprowadzanie operacji na otwartym sercu u najlepszego przyjaciela.

Moja instalacja programu WSUS korzysta z wewnętrznej bazy danych Windows do przechowywania informacji o aktualizacji. Ponieważ ta wersja nie pozwala na zdalne zapytania, musiałem użyć lokalnej instalacji SQL Server Management Studio.
Połącz się z bazą danych, używając nazwy serwera podanej w powyższym artykule.

Udało mi się zmienić opis aktualizacji, uruchamiając to zapytanie:

UPDATE tbPreComputedLocalizedProperty
SET Description = '"0x00000133" Stop error when there''s faulty hardware in Windows 8.1 or Windows Server 2012 R2'
FROM tbPreComputedLocalizedProperty p
JOIN tbUpdate u ON p.UpdateID = u.UpdateID
JOIN tbRevision r ON u.LocalUpdateID = r.LocalUpdateID
JOIN tbKBArticleForRevision kb ON r.RevisionID = kb.RevisionID
WHERE kb.KBArticleID LIKE '3013791' AND p.ShortLanguage = 'en'
GO

Jest to tylko sposób na ręczne ustawienie opisu, dlatego zamierzam przeprowadzić dalsze eksperymenty, w jaki sposób uzyskać opisy bezpośrednio ze strony KB i zastosować je automatycznie do wszystkich nowych aktualizacji. Dodam informacje do tego postu.

Physikbuddha
źródło
Prawie na pewno powinieneś zaznaczyć swoją odpowiedź jako zaakceptowaną . Zachęcamy nawet do samodzielnej odpowiedzi .
jscott,