update
This commit is contained in:
77
WSUS/Update-Approuve-Prod.ps1
Normal file
77
WSUS/Update-Approuve-Prod.ps1
Normal file
@ -0,0 +1,77 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
<Overview of script>
|
||||
|
||||
.NOTES
|
||||
Version: 1.0
|
||||
Author: Hubert CORNET
|
||||
Creation Date: <Date>
|
||||
Purpose/Change: Initial script development
|
||||
|
||||
.LINK
|
||||
https://www.tips-of-mine.fr
|
||||
|
||||
.EXEMPLE
|
||||
<Example goes here. Repeat this attribute for more than one example>
|
||||
|
||||
.DESCRIPTION
|
||||
<Brief description of script>
|
||||
|
||||
.PARAMETER <Parameter_Name>
|
||||
<Brief description of parameter input required. Repeat this attribute if required>
|
||||
|
||||
.INPUTS
|
||||
<Inputs if any, otherwise state None>
|
||||
|
||||
.OUTPUTS
|
||||
<Outputs if any, otherwise state None - example: Log file stored in C:\Windows\Temp\<name>.log>
|
||||
#>
|
||||
|
||||
#---------------------------------------------------------[Initialisations]--------------------------------------------------------
|
||||
# Définir l'action d'erreur pour continuer silencieusement
|
||||
$ErrorActionPreference = "SilentlyContinue"
|
||||
|
||||
# Bibliothèques de fonctions requises
|
||||
|
||||
#----------------------------------------------------------[Declarations]----------------------------------------------------------
|
||||
# Version Script
|
||||
$sScriptVersion = "1.0"
|
||||
|
||||
#Log File Info
|
||||
$sLogPath = "C:\Tmp"
|
||||
$sLogName = "<script_name>.log"
|
||||
$sLogFile = Join-Path -Path $sLogPath -ChildPath $sLogName
|
||||
|
||||
$WsusServerFqdn='SWADMAPPP01'
|
||||
$WsusSourceGroup = 'ServersPREPRD'
|
||||
$WsusTargetGroup = 'ServersPRD'
|
||||
$LOG = 'C:\Exploit\Logs\Approved_Updates_ServersPRD'
|
||||
$Timestamp = Get-Date -Format FileDate
|
||||
$LOGFILE = "$LOG.$Timestamp.log"
|
||||
$i = 0
|
||||
|
||||
#-----------------------------------------------------------[Functions]------------------------------------------------------------
|
||||
|
||||
#------------------------------------------------------------[Script]--------------------------------------------------------------
|
||||
|
||||
cls
|
||||
|
||||
[void][reflection.assembly]::LoadWithPartialName( “Microsoft.UpdateServices.Administration”)
|
||||
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer( $WsusServerFqdn, $False, ‘8530’)
|
||||
$Groups = $wsus.GetComputerTargetGroups()
|
||||
$WsusSourceGroupObj = $Groups | Where {$_.Name -eq $WsusSourceGroup}
|
||||
$WsusTargemtGroupObj = $Groups | Where {$_.Name -eq $WsusTargetGroup}
|
||||
|
||||
$Updates = $wsus.GetUpdates()
|
||||
|
||||
ForEach ($Update in $Updates) {
|
||||
If ($Update.GetUpdateApprovals($WsusSourceGroupObj).Count -ne 0 -and $Update.GetUpdateApprovals($WsusTargetGroupObj).Count -eq 0) {
|
||||
$i ++
|
||||
Write-Output (“Approving ” + $Update.Title) | Out-File $LOGFILE -Append
|
||||
$Update.Approve(‘Install’,$WsusTargetGroupObj) | Out-Null
|
||||
}
|
||||
}
|
||||
|
||||
Write-Output (“Approved {0} updates for target group {1}” -f $i, $WsusTargetGroup)
|
||||
|
||||
|
Reference in New Issue
Block a user