TFS Power Tools有個好用功能,在檔案總管加入右鍵選單提供簽入、簽出、版本比較等TFS操作,檔案、資料夾圖示也會加上最新版本(綠三角)、待簽入新増(紅十字)、待簽入修改(鉛筆)等狀態標示,不需開啟Visual Studio或TFS Explorer就能管理,十分方便。
但自從安裝後,電腦偶爾會發生桌面當住,滑鼠鍵盤全無反應的狀況,此時只能強制重開機或找另一台機器遠端桌面登入成其他使用者將當explorer.exe砍掉,狀況才會解除。
一開始不明所以,當機當得莫名其妙,直到有一次在事件檢視器看到當機期間TFSShellExt噴出大量警告及錯誤事件,才算有了眉目。
警告訊息為:TFS Shell Extension event:\n More than 5 failed calls to com provider.
錯誤訊息則為:TFS Shell Extension event:\n Failed to start COMProvider while calling CheckWorkstationCache.
用關鍵字搜索,只在TFS 2012 Power Tools討論區找到相關討論(在套件下載頁討論區找標題TFSSHellExt hangs explorer.exe after standby),問題在近兩年前就有人回報,陸續獲得不少回應補充,資訊不少但有點龐雜,總結歸納如下:
- 狀況多發生於睡眠/休眠的Windows被喚醒後,有網友發現連TFS的VPN斷線、鎖定螢幕時也可能發生
- 症狀為explorer.exe凍結,滑鼠鍵盤沒反應,事後可在事件檢視器看到大量TFSShellExt錯誤
我自己的經驗是「其實桌面仍會回應,但速度慢到嚇人」,我曾耐著性子慢慢滑慢慢等,耗掉五分鐘終於打開工作管理員把Explorer砍掉解除危機。猜想應是Explorer陷入瘋狂迴圈,才會無暇回應使用者操作 。 - TFS 2012 Power Tools與TFS 2013 Power Tools都有人回報類似狀況
- MS RD於2013/11/28證實此屬TFS 2012 Power Tools已知Bug並能重現,但尚未修補好(TFS 2013 Power Tools推出於2014/4,問題仍在)
- 有幾種解決方法
- 使用遠端桌面登入將explorer.exe砍掉
- 強制重新開機
- 使用TASKKILL /s <ip_address> /im explorer.exe從遠端砍掉所有Explorer
- 移除TFS Power Tools的「Windows Shell Extension(x64)」功能
- 砍掉tfs*.exe(TfsComProviderSvr.exe)讓Explorer恢復正常(但下次休眠會再發生)
- 發揮無比耐心,每一步操作等數十秒,開啟工作管理砍掉explorer.exe
評估後,自已透過檔案總管處理TFS作業的機會不多,導致桌面當機的頻率不低,且處理起來頗棘手,只能忍痛移除Windows Shell Extension功能,等待官方修補好再裝。