PI Services

Le blog des collaborateurs de PI Services

MECM (SCCM) : Script de maintenance WSUS pour changer wsyncmgr purge des mises à jour expirées de 7 jours à 0 jour

Microsoft Endpoint Configuration Manager est capable de supprimer automatiquement le contenu des mises à jour logicielles des points de distribution lorsque ce contenu est lié à des mises à jour expirées. Ce processus permet de gérer l'espace disque sur vos points de distribution en supprimant tout contenu dont vous n'avez plus besoin.

Si celles-ci ne se trouvent dans aucun groupe de mises à jour logicielles, ConfigMgr purgera automatiquement les mises à jour expirées après 7 jours. Vous pouvez modifier le nettoyage à 0 jour si vous souhaitez que les composants wsyncmgr suppriment immédiatement les mises à jour expirées (en supposant qu'ils ne soient pas dans un groupe de mises à jour logicielles). On appelle ce nombre de jours, âge de nettoyage des mises à jour (Updates Cleanup Age)

Ci-dessous un script VBS qui permet de changer la valeur de l'âge de nettoyage des mises à jour sur votre ConfigMgr :

On Error Resume Next

'***  Define string variables for device, device Resource ID and user of interest

Class_Name = 		"SMS_SCI_Component"
Class_ItemName =	"SMS_WSUS_SYNC_MANAGER|<<<***CHANGEME***SCCMSERVERNAMEHERE>>>.YOURDOMAIN.COM"
Class_ItemType =	"Component"
Property_Name = 	"Updates Cleanup Age"
Property_SiteCode = 	"*****SCCMSITECODEHERE*****"
DesiredValue =		0

'***  Check parameters - we need the provider server name and the site code

set args=wscript.arguments

If args.Count = 2 then
	SMSProviderServer = UCASE(Wscript.Arguments(0))
	SiteCode = UCASE(Wscript.Arguments(1))
Else
	wscript.Echo "Incorrect command line arguments." & vbCrLf & "Usage: cscript /nologo ModifySCFProperty.vbs <smsproviderserver> <sitecode>" & vbCrLf & "Example: cscript /nologo ModifySCFProperty.vbs SERVER1 S01 > schedules.txt" & vbCrLf
	WScript.Quit(1)
End If


'***  Connect to the provider - report the error and terminate on failure

SMSProviderServer = "\\" + SMSProviderServer + "\"
Set ObjSvc = GetObject("winmgmts:" & "{impersonationLevel=Impersonate,authenticationLevel=Pkt}!" & SMSProviderServer & "root\sms\site_" & SiteCode)

If Err.Number <> 0 Then
	wscript.Echo "Failed to connect to provider server with code: " & Err.Number & ".  Aborting!"
	WScript.Quit(2)
End If

'***  Get the desired instance of the class

Set objInst = ObjSvc.Get(Class_Name & ".ItemName='" & Class_ItemName & "',ItemType='" & Class_ItemType & "',SiteCode='" & Property_SiteCode &"'")

If Err.Number <> 0 Then
	WScript.Echo "Failed to open desired object with error code " & Err.Number & " (" & Err.Description & ").  Aborting!"
	WScript.Quit(3)
End If

'***  Loop through the Properties until we find a match or run out

bFoundProperty = False

For Each objProp in objInst.Props
	If objProp.PropertyName = Property_Name Then
		bFoundProperty = True
		Exit For
	End If
Next

If bFoundProperty = False Then
	WScript.Echo "Desired object was found but property was not found.  Exiting without making any changes."
	WScript.Quit(4)
End If	

'***  Property found so check to see if existing value matches desired, changing it as appropriate

If objProp.Value = DesiredValue Then
	WScript.Echo "Property '" & Property_Name & "' found with desired value '" & DesiredValue & "'.  Not making any changes."
	WScript.Quit(0)
Else
	OriginalValue = objProp.Value
	objProp.Value = DesiredValue
	objProp.Put_
	objInst.Put_

	If Err.Number <> 0 Then
		wscript.Echo "Failed to save the desired change with code: " & Err.Number & ".  Aborting!"
		WScript.Quit(5)
	Else
		WScript.Echo "Property '" & Property_Name & "' successfully changed from '" & OriginalValue & "' to '" & DesiredValue & "'."
	End If
End If

 

Sources:

https://docs.microsoft.com/en-us/troubleshoot/mem/configmgr/software-update-maintenance

https://www.reddit.com/r/SCCM/comments/ab7v6f/software_updates_remove_old_ones/

https://youtu.be/wqBaTp855sk?t=1765

https://setupconfigmgr.com/wp-content/uploads/2018/06/Adjust-WSync_UpdateCleanupAge.zip

Ajouter un commentaire

Loading