Posso modificare le descrizioni degli aggiornamenti in WSUS?


11

In ogni giorno della patch di Microsoft, ho una quantità piuttosto grande di nuovi aggiornamenti che voglio approvare per i miei clienti. Invece di "Approva tutti gli aggiornamenti e continua", raccolgo informazioni su ciascun aggiornamento nel suo articolo della Knowledge Base per decidere se si tratta di un aggiornamento importante per noi o meno.

Questo è un compito piuttosto noioso, perché devo digitare il numero KB corrispondente nel browser del mio client e attendere il caricamento della pagina web. Mi chiedevo perché Microsoft non stia utilizzando la casella di descrizione dell'aggiornamento nel pannello di controllo di WSUS per mostrare informazioni utili e dettagliate. Invece, tutti i miei aggiornamenti leggono:

Installa questo aggiornamento per risolvere i problemi in Windows. Per un elenco completo dei problemi inclusi in questo aggiornamento, consultare l'articolo della Microsoft Knowledge Base associato per ulteriori informazioni. Dopo aver installato questo elemento, potrebbe essere necessario riavviare il computer.

Ho iniziato a pensare a una piccola sceneggiatura di Powershell, che aggiunge le informazioni necessarie per me. Ma ho fallito nel primo passaggio, che sta modificando manualmente una descrizione dell'aggiornamento:

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

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

PS C: \ Users \ Administrator> $ update [0]. Descrizione
Installa questo aggiornamento per risolvere i problemi in Windows. Per un elenco completo dei problemi inclusi in questo aggiornamento, consultare l'articolo della Microsoft Knowledge Base associato per ulteriori informazioni. Dopo aver installato questo elemento, potrebbe essere necessario riavviare il computer.

PS C: \ Users \ Administrator> $ update [0] .Description = '"0x00000133" Errore di interruzione in caso di hardware difettoso in Windows 8.1 o Windows Server 2012 R2'

PS C: \ Users \ Administrator> $ update [0]. Descrizione
"0x00000133" Errore di interruzione in caso di hardware difettoso in Windows 8.1 o Windows Server 2012 R2

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

PS C: \ Users \ Administrator> $ update [0]. Descrizione
Installa questo aggiornamento per risolvere i problemi in Windows. Per un elenco completo dei problemi inclusi in questo aggiornamento, consultare l'articolo della Microsoft Knowledge Base associato per ulteriori informazioni. Dopo aver installato questo elemento, potrebbe essere necessario riavviare il computer.

Sembra che le mie modifiche non vengano impegnate nel database. O mi manca una sorta di $wsus.SubmitChanges()o il $wsus.SearchUpdates()comando restituisce un 'update.Clone ()' in modo che le mie modifiche non vengano salvate da nessuna parte.

Come posso raggiungere il mio obiettivo di modificare le descrizioni degli aggiornamenti di WSUS?


$update[0].Description | Get-MemberPotresti essere in grado di utilizzare la .Replace()funzione membro, ma non è chiaro come gestirla modificandola. Dovresti in qualche modo chiamare un Set()ma non vedo subito come funziona.
mortenya,

Una domanda correlata su SuperUser chiede cosa probabilmente hai già risolto: Come ottenere una descrizione significativa di ogni aggiornamento. Sembra che tu abbia già risolto quella parte, apprezzerei molto se potessi dare un'occhiata. superuser.com/q/878753/99136
krlmlr

@krlmlr Devo aver perso il tuo commento su questa domanda. Ora che ho creato un programma reale per il mio problema descritto qui, ho pubblicato una risposta alla domanda sopra nella sua pagina Superuser.
Physikbuddha,

Risposte:


7

Aggiornare

Usando la risposta di seguito ho creato un piccolo strumento che aggiunge automagicamente le descrizioni al mio server WSUS. Ho deciso di pubblicare il mio strumento su Github, quindi sentitevi liberi di provare e testarlo.

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

Schermata di esempio

Risposta originale

Ho provato a risolvere il problema con Get-Member, come suggerito da Mortenya nella sezione commenti, ma senza fortuna.
Alla fine, ho finito per modificare direttamente il database WSUS per cambiare la descrizione.

Stai attento! Usa la mia soluzione solo se sei assolutamente sicuro di cosa stai facendo. Modificare il database da cui dipende il tuo server, è come eseguire un intervento a cuore aperto sul tuo migliore amico.

La mia installazione di WSUS utilizza il database interno di Windows per memorizzare le informazioni di aggiornamento. Poiché questa versione non consente query remote, ho dovuto utilizzare un'installazione locale di SQL Server Management Studio.
Connettiti al database utilizzando il nome del server fornito dall'articolo collegato sopra.

Sono stato in grado di modificare la descrizione dell'aggiornamento eseguendo questa query:

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

Questo è solo un modo per impostare manualmente la descrizione, quindi farò ulteriori esperimenti su come ottenere le descrizioni direttamente dal sito Web KB e applicarle automaticamente su tutti i nuovi aggiornamenti. Aggiungerò le informazioni a questo post.


Dovresti quasi certamente contrassegnare la tua risposta come accettata . L'auto-risposta è persino incoraggiata .
jscott,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.