Comment accepter les CLUF pour les mises à jour logicielles déployées via SCCM à l'aide de Powershell

8

J'essaie d'utiliser l' Start-CMSoftwareUpdateDeploymentapplet de commande pour déployer un groupe de mise à jour logicielle sur une collection existante.

PS WHO:\> Start-CMSoftwareUpdateDeployment -SoftwareUpdateGroupName "Update Group - Microsoft Updates" -CollectionName `
Eval_OSUpdates -DeploymentType Required -SendWakeUpPacket $true -AllowRestart $true -PersistOnWriteFilterDevice $true `
-DownloadFromMicrosoftUpdate $true -DeploymentName "Evaluation Deployment - Update Group - Microsoft Updates" `
-UserNotification DisplayAll -RestartWorkstation $false -AllowUseMeteredNetwork $true

Tous les paramètres requis sont donnés, mais je reçois l'erreur suivante lors de l'exécution:

Start-CMSoftwareUpdateDeployment : ConfigMgr Error Object:
instance of SMS_ExtendedStatus
{
    Description = "One or more updates are present for which a EULA exists which hasn't been approved.";
    ErrorCode = 1078462208;
    File = "e:\\nts_sccm_release\\sms\\siteserver\\sdk_provider\\smsprov\\sspciassignment.cpp";
    Line = 361;
    Operation = "PutInstance";
    ParameterInfo = "";
    ProviderName = "ExtnProv";
    StatusCode = 2147749889;
};
At line:1 char:1
+ Start-CMSoftwareUpdateDeployment -SoftwareUpdateGroupName "SoM Update Group - Mi ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Microsoft.Confi...ploymentCommand:StartSoftwareUpdateDeploymentCommand) [Start-CMSoftware
   UpdateDeployment], WqlQueryException
    + FullyQualifiedErrorId : UnhandledExeception,Microsoft.ConfigurationManagement.Cmdlets.Sum.Commands.StartSoftwareUpdateDeployment
   Command

Je suis à peu près sûr de savoir quelle mise à jour avait besoin du CLUF accepté, mais en essayant d'automatiser cela, il serait bien d'accepter les CLUF par programme et de ne pas avoir d'étapes manuelles dans le processus.

Je vois l'applet de commande Get-SoftwareUpdateLicense, mais tout ce que cela fait, c'est renvoyer une foutue chaîne du CLUF, que personne ne lit.

Un pas de plus aujourd'hui, j'ai trouvé un article MSDN sur la méthode AcceptEULA, mais je ne sais pas comment l'appeler sur la mise à jour, car la mise à jour est de type SMS_SoftwareUpdate, mais cette méthode n'est pas répertoriée lorsque je redirige vers Get-Member, et sur Bien sûr, juste essayer de vouloir appeler la méthode jette une erreur.

Pour résumer, c'est là que je suis bloqué: je ne sais pas comment appeler cette méthode WMI sur un objet SMS_SoftwareUpdate particulier, en utilisant PowerShell si cela fait une différence.

MDMoore313
la source

Réponses:

3

Eh bien, puisque personne ne lit le CLUF, pourquoi ne les acceptez-vous pas tous?

Get-WmiObject -ComputerName "sccmcs" -Class SMS_SoftwareUpdate -Namespace root\sms\site_ABC | 
    where {$_.EULAExists -eq $true} |
    foreach {$_.AcceptEula($true)}

Pour vérifier que vous pouvez l'exécuter avant et après

Get-WmiObject -ComputerName "sccmcs" -Class SMS_SoftwareUpdate -Namespace root\sms\site_ABC | 
    where {$_.EULAExists -eq $true} | select LocalizedDisplayName, EULAExists, EULAAccepted, EULASignoffDate, EULASignoffUser | ft
Poubelle
la source
Je suppose que cela vaut la peine d'essayer
MDMoore313