Windows Server 2016においてSNMPがなかなか入らなかったお話

●はじめに

オンプレのWindows Server 2016 Standardにおいて SNMPサービスのインストールがうまくいかなくて苦労したので、ここに記します。

●発端

本来SNMPのインストールは実に簡単。
サーバマネージャの役割の追加から追加するだけ。そのはずだった・・・。
インストールの最後の最後で、「0x8007370」エラーが発生した。

画像1

調査1日目 さらっと修復
「0x80073701」はインストール用のファイルが足りないと出るらしい。
お作法としてはコマンドプロンプトから以下を行ってOS再起動を実施。

sfc /scannow

コマンドの結果エラーもなく終わったけど、例のエラーは消えない。お次は

dism.exe /online /cleanup-image /restorehealth

からの

sfc /scannow

でもインストールはできない。Windows Updateを念のため行ったけど何もなし。

●調査2日目 メディアから修復

OEMのメディアを利用して再度以下を実施してみる。(ドライブはEドライブ)

DISM /Online /Cleanup-Image /RestoreHealth /source:WIM:E:\Sources\Install.wim:1 /LimitAccess
sfc /scannow

変化なし。
ではメディアからインストールはどうかということで以下を実施したがだめ


DISM /online /Enable-Feature /FeatureName:SNMP /All /LimitAccess /Source:E:\sources\sxs

DISM /online /Enable-Feature /FeatureName:SNMP /All /LimitAccess /Source: E:\sources\replacementmanifests

メディアを変えても変化はなかった。

●調査3日目 ログから調査

アプリログを見たら以下のメッセージが

サービス “BITS” (DLLC:\WINDOWS\system32\bitsperf.dll”) の Open プロシージャに失敗しました。

以下のコマンドで黙らせたが変化なし。

lodctr C:\Windows\inf\BITS\0411\bitsctrs.ini

0x80073701」と同時に表示される以下のログを確認。
C:\Windows\Logs\CBS\CBS.log
するとerrorに気になるものが・・・

HRESULT_FROM_WIN32(ERROR_SXS_ASSEMBLY_MISSING) #15385 # from Windows::ServicingAPI::CCSITransaction::ICSITransaction_PinDeployment(Flags = 0, a = Microsoft-Windows-ServerManager-Core-MgmtProvider-Deployment-LanguagePack, version 10.0.14393.0, arch amd64, culture [l:5]'de-DE', nonSxS, pkt {l:8 b:31bf3856ad364e35}, cb = (null), s = (null), rid = 'Microsoft-Windows-CoreSystem-ServerManager-Core-Package~31bf3856ad364e35~amd64~de-DE~10.0.14393.0.ServerManager-Core-MgmtProvider-Deployment-LangPack', rah = (null), manpath = (null), catpath = (null), ed = 0, disp = 0)[gle=0x80073701]

de-DE」、「ServerManager-Core-MgmtProvider-Deployment-LangPack」??ドイツ語?

ドイツ語を追加したところ、ようやく変化が訪れた。 

画像2


 「0x800f081f
 改めて、RestoreHealthとsfc を実施するが変化なし。
 同時期に購入した別サーバでsnmpを入れ直してみるが、問題ない。

●調査4日目

正常なサーバからWindowsフォルダをもってくると行けるらしいので、
以下を実施。

Dism /Online /Cleanup-Image /RestoreHealth /Source:\\(別サーバ)\c$\Windows /LimitAccess 

どうにもならないので別に手として以下を実施したところ、かなり時間を要し、6時間かかった。

Dism /Online /Cleanup-Image /StartComponentCleanup

 その後お決まりのRestoreHealthとsfc のおまじない。

画像3

0x80073701」に戻った。
げんなりしながら C:\Windows\Logs\CBS\CBS.log を見ると・・・。
またドイツ語を要求されている。
 
設定からドイツ語を再度ダウンロードをしようとすると何度押してもダウンロードが消えないことが分かった。

画像4


よって、別のサーバで「lb.cab」をダウンロードしたものを抽出し、以下のコマンドを実施。

Dism /online /add-package /packagePath:lp.cab

エラーが発生しました - Microsoft-Windows-Server-LanguagePack-Package エラー: 0x80073701

改めて事例検索をかけてみる。全て踏んだことのあるリンクばかりだったが、こちらの情報を改めて再発見した。

最初の再起動をした時点で不要な言語パックが消え、稀に役割と機能の追加ができなくなる場合がある 

上記を見て諦めて、OSから入れ直しを行ったところ、SNMPは難なくインストールができた。
 

●結論 

購入したばかりのオンプレで「0x80073701」にであったらOS再インストールを。そうでない場合は以下の流れで復旧を試みるといいみたい。

・対処1 とりあえずの

DISM /Online /Cleanup-Image /RestoreHealth

sfc/scannnow


・対処2 メディアを入れて

DISM /Online /Cleanup-Image /RestoreHealth /source:WIM:E:\Sources\Install.wim:1 /LimitAccess

sfc /scannow

・対処3 正常な同じバージョンのサーバがあればそこからWindows フォルダをコピーして(C:\windows2としてコピーしたと仮定)

Dism /Online /Cleanup-Image /RestoreHealth /Source:c:\Windows2 /LimitAccess

sfc /scannow

・対処4 肥大したWinsxsの縮小対応

dism /Online /Cleanup-Image /StartComponentCleanup
dism.exe /online /cleanup-image /restorehealth
sfc /scannow

対処4はもっと早くにやってもいいかもしれない。
なんだかんだで、実際には3週間かかった。
ここにたどり着いた人がいち早く再インストールなり、修復なりで解決しますように。

この記事が気に入ったらサポートをしてみませんか?