Start-CMSoftwareUpdateDeployment
コマンドレットを使用して、ソフトウェア更新グループを既存のコレクションに展開しようとしています。
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
必要なすべてのパラメーターが指定されていますが、実行時に次のエラーが発生します。
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
EULAを受け入れる必要のある更新を知っていると確信していますが、これを自動化する場合は、プログラムでEULAを受け入れ、プロセスに手動の手順を実行しないとよいでしょう。
コマンドレットGet-SoftwareUpdateLicense
が表示されますが、EULAの血まみれの文字列を返すだけですnobodyは読み取りません。
今日、一歩近づいて、AcceptEULAメソッドに関する [〜#〜] msdn [〜#〜] の記事を見つけましたが、更新が次のようになっているため、更新時に呼び出す方法がわかりません。 SMS_SoftwareUpdateと入力しますが、Get-Member
にパイプすると、そのメソッドはリストされません。もちろん、メソッドを意図的に呼び出そうとすると、エラーがスローされます。
要約すると、それが私が立ち往生しているところです。特定のSMS_SoftwareUpdateオブジェクトでこのWMIメソッドを呼び出す方法がわかりません。それが違いを生む場合は、PowerShellを使用します。
だれもEULAを読んでいないので、すべてを受け入れてみませんか?
Get-WmiObject -ComputerName "sccmcs" -Class SMS_SoftwareUpdate -Namespace root\sms\site_ABC |
where {$_.EULAExists -eq $true} |
foreach {$_.AcceptEula($true)}
これを前後に実行できることを確認するには
Get-WmiObject -ComputerName "sccmcs" -Class SMS_SoftwareUpdate -Namespace root\sms\site_ABC |
where {$_.EULAExists -eq $true} | select LocalizedDisplayName, EULAExists, EULAAccepted, EULASignoffDate, EULASignoffUser | ft