Akzeptieren von EULAs für Software-Updates, die über SCCM mithilfe von Powershell bereitgestellt werden


8

Ich versuche, mit dem Start-CMSoftwareUpdateDeploymentCmdlet eine Softwareupdategruppe für eine vorhandene Sammlung bereitzustellen.

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

Alle erforderlichen Parameter sind angegeben, ich erhalte jedoch bei der Ausführung den folgenden Fehler:

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

Ich bin mir ziemlich sicher, dass ich weiß, für welches Update die EULA akzeptiert werden muss, aber bei dem Versuch, dies zu automatisieren, wäre es schön, alle EULAs programmgesteuert zu akzeptieren und keine manuellen Schritte in diesem Prozess zu haben.

Ich sehe das Cmdlet Get-SoftwareUpdateLicense, aber alles, was ich tun muss, ist eine blutige Zeichenfolge der EULA zurückzugeben, die niemand liest.

Einen Schritt näher heute habe ich einen MSDN- Artikel über die AcceptEULA-Methode gefunden, aber ich weiß nicht, wie ich ihn beim Update aufrufen soll, da das Update vom Typ SMS_SoftwareUpdate ist, aber diese Methode wird nicht aufgelistet, wenn ich zu Get-Memberund von weiterleitung Natürlich wirft nur der Versuch, die Methode wohl oder übel aufzurufen, einen Fehler auf.

Zusammenfassend kann ich sagen, dass ich hier nicht weiterkomme: Ich weiß nicht, wie ich diese WMI-Methode für ein bestimmtes SMS_SoftwareUpdate-Objekt aufrufen und Powershell verwenden soll, wenn dies einen Unterschied macht.

Antworten:


3

Nun, da niemand die EULA liest, warum akzeptierst du sie nicht einfach alle?

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

Um dies zu überprüfen, können Sie dies vorher und nachher ausführen

Get-WmiObject -ComputerName "sccmcs" -Class SMS_SoftwareUpdate -Namespace root\sms\site_ABC | 
    where {$_.EULAExists -eq $true} | select LocalizedDisplayName, EULAExists, EULAAccepted, EULASignoffDate, EULASignoffUser | ft

Ich nehme an, das ist einen Versuch wert
MDMoore313
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.