クラウド管理ゲートウェイの配布ポイントへの配布中にエラーが発生する (0x80070070)

皆さん、こんにちは。

今回も、Microsoft Endpoint Configuration Manager (MECM, SCCM, Configuration Manager) ネタをお届けしたいと思います。

自宅の検証環境にて、クラウド管理ゲートウェイ (Cloud Management Gateway : CMG) を構成しているのですが、クラウド管理ゲートウェイの配布ポイントへのコンテンツの配布が失敗していたので、何事かなと思い調べてみたというネタです。

<PkgXferMgr.log>

Package upload location is https://tamaixxxxxxxx.blob.core.windows.net/content-t0100010 SMS_PACKAGE_TRANSFER_MANAGER 2022/03/26 14:09:22 40764 (0x9F3C)
About to upload files from package source directory C:\SMSPKGSIG\T0100010 SMS_PACKAGE_TRANSFER_MANAGER 2022/03/26 14:09:22 40764 (0x9F3C)
WARNING: Caught crypto exception System.Runtime.InteropServices.COMException – ディスクに十分な空き領域がありません。 (HRESULT からの例外:0x80070070) SMS_PACKAGE_TRANSFER_MANAGER 2022/03/26 14:27:16 40764 (0x9F3C)
WARNING: Caught exception System.Runtime.InteropServices.COMException – ディスクに十分な空き領域がありません。 (HRESULT からの例外:0x80070070) SMS_PACKAGE_TRANSFER_MANAGER 2022/03/26 14:27:16 40764 (0x9F3C)
Call stack: 場所 Microsoft.ConfigurationManager.AzureRoles.ContentManager.BranchCacheContentInfoStreamClass.Complete()~~ 場所 Microsoft.ConfigurationManager.AzureRoles.ContentManager.ContentInfoStream.Close()~~ 場所 Microsoft.ConfigurationManager.AzureRoles.ContentManager.CryptoUtilities.EncryptAndUploadFileAndSaveContentInfo(String fileName, String contentInfoFullPath, CloudBlockBlob blob, EncryptionParams encryptionParams, IsCanceledCallback isCanceledDelegate)~~ 場所 Microsoft.ConfigurationManager.AzureRoles.ContentManager.ContentManager.RecursiveUpload(String packageId, ContentRouter contentRouter, CloudBlobContainer container, String sourceDir, String contentInfoDir, String relativeTargetPath, EncryptionParams encryptionParams, Int32& fileCounter)~~ 場所 Microsoft.ConfigurationManager.AzureRoles.ContentManager.ContentManager.RecursiveUpload(String packageId, ContentRouter contentRouter, CloudBlobContainer container, String sourceDir, String contentInfoDir, String relativeTargetPath, EncryptionParams encryptionParams, Int32& fileCounter)~~ 場所 Microsoft.ConfigurationManager.AzureRoles.ContentManager.ContentManager.UploadContent(String packageId, String contentId, String contentSource, String contentInfoPath, Boolean uploadFiles, EncryptionParams encryptionParams, ContentRouter contentRouter, String& contentInfoFile)~~ 場所 Microsoft.ConfigurationManager.AzureRoles.ContentManager.ContentManager.UploadPackageToCloudWithContentInfo(String packageId, String contentSource, String contentInfoPath, String cloudDP, String encryptionKey, String algName, Int32 keySize, Int32 blockSize, String& contentInfoFile) SMS_PACKAGE_TRANSFER_MANAGER 2022/03/26 14:27:16 40764 (0x9F3C)
STATMSG: ID=9300 SEV=E LEV=M SOURCE=”SMS Server” COMP=”SMS_CLOUD_CONTENT_MANAGER” SYS=TAMAI-CM01.DOMAIN.NAME SITE=T01 PID=8476 TID=40764 GMTDATE=土 3 26 05:27:16.145 2022 ISTR0=”-2147024784″ ISTR1=”” ISTR2=”” ISTR3=”” ISTR4=”” ISTR5=”” ISTR6=”” ISTR7=”” ISTR8=”” ISTR9=”” NUMATTRS=2 LE=0X0 AID0=400 AVAL0=”T0100010″ AID1=404 AVAL1=”[“Display=\\tamaixxxxxxxx.sccm.jp\”]MSWNET:[“SMS_SITE=T01″]\\tamaixxxxxxxx.sccm.jp\” SMS_PACKAGE_TRANSFER_MANAGER 2022/03/26 14:27:16 40764 (0x9F3C)
WARNING: Warning – returning null/empty download address from content upload T0100010 SMS_PACKAGE_TRANSFER_MANAGER 2022/03/26 14:27:16 40764 (0x9F3C)
STATMSG: ID=9310 SEV=W LEV=M SOURCE=”SMS Server” COMP=”SMS_CLOUD_CONTENT_MANAGER” SYS=TAMAI-CM01.DOMAIN.NAME SITE=T01 PID=8476 TID=40764 GMTDATE=土 3 26 05:27:16.158 2022 ISTR0=”T0100010″ ISTR1=”” ISTR2=”” ISTR3=”” ISTR4=”” ISTR5=”” ISTR6=”” ISTR7=”” ISTR8=”” ISTR9=”” NUMATTRS=2 LE=0X0 AID0=400 AVAL0=”T0100010″ AID1=404 AVAL1=”[“Display=\\tamaixxxxxxxx.sccm.jp\”]MSWNET:[“SMS_SITE=T01″]\\tamaixxxxxxxx.sccm.jp\” SMS_PACKAGE_TRANSFER_MANAGER 2022/03/26 14:27:16 40764 (0x9F3C)
Could not generate contentinfo for the package. BranchCache feature might not be turned on. SMS_PACKAGE_TRANSFER_MANAGER 2022/03/26 14:27:16 40764 (0x9F3C)
UploadPackageToCloud() returned empty URL for upload location. SMS_PACKAGE_TRANSFER_MANAGER 2022/03/26 14:27:16 40764 (0x9F3C)

<問題事象の原因>

下記の Docs の記事にも掲載されていますが、サイト サーバー (プライマリ サイト サーバー) にて BranchCache が有効化されており、キャッシュ サイズが既定の最大キャッシュ サイズを超えた時に発生します。(既定では、ディスクの 1 % がキャッシュ サイズとなる)

https://docs.microsoft.com/ja-jp/troubleshoot/mem/configmgr/content-distribution-error-80070070

<解決方法>

コマンド プロンプトで、下記のコマンドを実行して、BranchCache のコンテンツをフラッシュする。

netsh branchcache flush

また、次のコマンドで、既定のキャッシュの場所と最大キャッシュ サイズの両方を変更出来ます。

netsh branchcache set publicationcache directory=<New Location>
netsh branchcache set publicationcachesize size=<New Value> percent=TRUE

例えば、こんな感じです。
事前に、フォルダーは作成しておく必要はあります。

(例の場合、E:\BranchCache\PublicationCache フォルダーを作成する必要あり)

netsh branchcache set publicationcache directory=E:\BranchCache\PublicationCache
netsh branchcache set publicationcachesize size=10 percent=TRUE