Mises à jours installées sur les postes

Il peut être utile de connaître la liste des mises à jours installées sur un poste client ou serveur.

Pour avoir uniquement les mises à jour windows on peut utiliser la commande

get-hotfix

ou la commande ci dessous attention la date est affiché au format anglais (mm/jj/aaaa)

wmic qfe list full /format:htable > hotfixes.htm

Pour l’intégralité des mises à jour, voici le script a utiliser

$InputObject = Read-host -Prompt "Insert Computername to get list of installed updates"
$Report = @()
$filename = "$env:Temp\Report_$(get-date -Uformat "%Y%m%d-%H%M%S").csv"
$InputObject | % {
$objSession = [activator]::CreateInstance([type]::GetTypeFromProgID("Microsoft.Update.Session",$_))
$objSearcher= $objSession.CreateUpdateSearcher()
$HistoryCount = $objSearcher.GetTotalHistoryCount()
$colSucessHistory = $objSearcher.QueryHistory(0, $HistoryCount)
Foreach($objEntry in $colSucessHistory | where {$_.ResultCode -eq '2'}) {
$pso = "" | select Computer,Title,Date
$pso.Title = $objEntry.Title
$pso.Date = $objEntry.Date
$pso.computer = $_
$Report += $pso
}
$objSession = $null
}
$Report | where { $_.Title -notlike 'Definition Update*'} | Export-Csv $filename -NoTypeInformation -UseCulture
ii $filename
Publicités

Powershell psremoting

Lorsqu’on souhaite exécuter des commandes powershell sur des postes en Workgroup ou bien pouvoir effectuer quelque action depuis le gestionnaire de serveur il est nécessaire de suivre la procédure ci dessous.

Exécuter la commande ci dessous sur les 2 postes pour activer l’accés à distance et activer winrm

Enable-PSRemoting –force

2017-06-02_15h46_47.png

Si le poste en workgroup n’est pas présent dans le DNS, il est nécessaire de modifier le fichier host du client pour pouvoir résoudre le nom.

2017-06-02_15h55_01

Exécuter ensuite la commande ci dessous pour spécifier le serveur en workgroup que l’on souhaite gérer

Set-Item WSMan:\localhost\Client\TrustedHosts –Value  -Force

2017-06-02_15h57_07.png

Attention, cette commande remplacera les hotes déjà trustés, il faut rajouter l’argument concatenate pour ne pas remplacer les valeurs déjà existantes.

Set-Item WSMan:\localhost\Client\TrustedHosts –Value  -Force -Concatenate 

Il est possible de connaitre la liste des hotes trustées via la commande ci dessous

Get-Item WSMan:\localhost\Client\TrustedHosts  

2017-06-02_15h56_38.png

On peut ensuite utiliser le gestionnaire de serveur en renseignant le poste puis gestion en tant que

2017-06-02_15h59_47.png

Saisir ensuite les credentials du poste en workgroup.

Attention, il manque à rajouter le port firewall necessaire

https://blogs.msdn.microsoft.com/wmi/2009/07/24/powershell-remoting-between-two-workgroup-machines/