2018年1月22日 星期一

CPU與記憶體無法使用 - Windows Management Instrumentation 修復


最近買了一張二手冷氣卡 GTX 750TI 到公司來裝,目的是為了減少系統記憶體的使用。
因為公司的個人電腦汰舊換新,之前用的是 i7-2600,12G記憶體,但硬碟GG!
現在換了成 i7-6700,可是記憶體只有8G,公司又沒有多餘的記憶體給我裝,我只好把 intel 內建的 HD530 關掉了。
也順便把家裡換下來的 Plextor M6 Pro 拿到公司來用。
可是卻發生了詭異的狀況。

當我讓硬體就緒,重開後,到「我的電腦」按右鍵→「內容」去確認時,
CPU 和 記憶體 卻都是顯示「無法使用」的狀態。
嚇得我馬上到「裝置管理員」裡面去看,可是裡面的CPU資訊是正常的。

但我再用 Speccy 這個軟體去看資料的時候,所有的資訊都出現以下訊息
「無法完成要求的操作,因為磁碟上的異常媒體失敗或資料結構損毀」

我就納悶了。
只好再去拜讀 Google 大神,終於讓我找到方法可以解決。

這個問題就是 Windows Management Instrumentation (WMI) 這個服務(Service)發生問題。


以下就記錄一下我使用的二種解法:

一、重整 Windows Management Instrumentation 服務
  1. 到「控制台」→「系統及安全性」→「系統管理工具」,打開「服務」 (或是直接WIn鍵+R,執行Services.msc)
  2. 找到 Windows Management Instrumentation 服務,將其停止。
  3. 到 C:\Windows\System32\wbem\repository,刪除所有檔案。
  4. 重新啟動 Windows Management Instrumentation 服務。 
  5. 重新開機。
正常的話應該是這樣就好了,但是這個方法我失敗了orz。
所以只好使用第二個方法。

二、安全模式下執行 Bat 檔
  1. 到 C:\Windows\System32\wbem\repository,刪除所有檔案。
  2. 將以下文字(橘色)複製到記事本,並存成 Bat 檔。

    @echo on
    cd /d
    if not exist %windir%\system32\wbem goto TryInstall
    cd /d %windir%\system32\wbem
    net stop winmgmt
    winmgmt /kill
    if exist Rep_bak rd Rep_bak /s /q
    rename Repository Rep_bak
    for %%i in (*.dll) do RegSvr32 -s %%i
    for %%i in (*.exe) do call :FixSrv %%i
    for %%i in (*.mof,*.mfl) do Mofcomp %%i
    net start winmgmt
    goto End
    :FixSrv
    if /I (%1) == (wbemcntl.exe) goto SkipSrv
    if /I (%1) == (wbemtest.exe) goto SkipSrv
    if /I (%1) == (mofcomp.exe) goto SkipSrv
    %1 /RegServer
    :SkipSrv
    goto End
    :TryInstall
    if not exist wmicore.exe goto End
    wmicore /s
    net start winmgmt
    :End
  3. 重新啟動 Windows 至安全模式。
  4. 執行 bat 檔。
  5. 重新開機。
改用第二個方式我就成功了,重新開機後,去看系統的內容就正常了。用 Speccy 看資料也是一切正常。

再來就是希望哪天公司可以有多餘的 DDR4 記憶體給我插了,
不然現在記憶體的價格真的是貴成狗啊!

雖然顯卡也是就是了,他奶奶的。



    沒有留言:

    張貼留言