Windows Server 2016においてSNMPがなかなか入らなかったお話
●はじめに
オンプレのWindows Server 2016 Standardにおいて SNMPサービスのインストールがうまくいかなくて苦労したので、ここに記します。
●発端
本来SNMPのインストールは実に簡単。
サーバマネージャの役割の追加から追加するだけ。そのはずだった・・・。
インストールの最後の最後で、「0x8007370」エラーが発生した。
調査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” (DLL “C:\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」??ドイツ語?
ドイツ語を追加したところ、ようやく変化が訪れた。
「0x800f081f」
改めて、RestoreHealthとsfc を実施するが変化なし。
同時期に購入した別サーバでsnmpを入れ直してみるが、問題ない。
●調査4日目
正常なサーバからWindowsフォルダをもってくると行けるらしいので、
以下を実施。
Dism /Online /Cleanup-Image /RestoreHealth /Source:\\(別サーバ)\c$\Windows /LimitAccess
どうにもならないので別に手として以下を実施したところ、かなり時間を要し、6時間かかった。
Dism /Online /Cleanup-Image /StartComponentCleanup
その後お決まりのRestoreHealthとsfc のおまじない。
「0x80073701」に戻った。
げんなりしながら C:\Windows\Logs\CBS\CBS.log を見ると・・・。
またドイツ語を要求されている。
設定からドイツ語を再度ダウンロードをしようとすると何度押してもダウンロードが消えないことが分かった。
よって、別のサーバで「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週間かかった。
ここにたどり着いた人がいち早く再インストールなり、修復なりで解決しますように。
この記事が気に入ったらサポートをしてみませんか?