Windows 7 上的 troubleshooting Pack 简介

本文来源于:

http://community.winsupersite.com/blogs/paul/archive/2009/01/12/crash-course-on-authoring-windows-7-troubleshooting-packs.aspx //

但是我想用更简单的中文来说明这个问题。

windows 7 上的troubleshooting 机制 仅仅是一个问题的预防解决方案, 不是一个问题分析方案,但是我看到一个MS 专家说可以产生分析报告, 这点我还不清楚。目前的机制就是将被动解决crash ,转成主动防御。



一定要windows 7 + Microsoft SDKs 7.0 。这两个是必须的。另外一定要会 power shell script .


在Window SDK的安装目录下找到 D:/Program Files/Microsoft SDKs/Windows/v7.0/Bin/TSPBuilder/Builder.exe这个 文件,这就是传说中的TSPBuilder 。那么使用很简单,以修改Calc.exe 的Program mode 为例:

在一个project 中有多个Rootcause,一个rootcause 对应一个问题,

每个Rootcase 中有一个verifier和resolver 。那么Verifier 是检测当前的状态是否OK ,如果不满足则要Call Resolver 进行 fixed 这个动作, 这个动作完成之后,又会Call verifier 进行验证。如果验证通过那么就OK。

还有一个project 中还有个东东,troubleshooter 这东东就是这场游戏的主角,主要负责修Call 用Rootcause的中的Verifier 进行检测,和其他 动作。

在verifier中的代码:就是检测Registry 中 Calc 的 layout 的值。


    #Write a status message to the user
    write-diagprogress -activity "Checking Enable calculate mode..."
  
    #Get the popup blocker settings from the registry
    $PopupMgr = get-itemproperty "Registry::HKEY_CURRENT_USER/Software/Microsoft/Calc" "layout"
 
    if (($PopupMgr.layout -ne 2)) {
  
    #Popup blocker is DISABLED. Rootcause DETECTED.
    update-diagrootcause -id RC_ProgrammodeEnble -Detected $true
 
  
    }
    else
    {
  
    update-diagrootcause -id RC_ProgrammodeEnble -Detected $false
    }

在 Resolver 中就是解决这个问题:

Write-DiagProgress -activity "Enabling Promgramming mode..."

 $PopupMgr = get-itemproperty "Registry::HKEY_CURRENT_USER/Software/Microsoft/Calc" "layout"

if($PopupMgr.layout -ne 2)
{

    stop-process -name calc
    Set-ItemProperty -path "Registry::HKEY_CURRENT_USER/Software/Microsoft/Calc" -name layout -type "DWORD" -value "2"
    start-process calc.exe
}


在troubleroot中要去检测这个问题,并进行解决:

可以直接使用./TS_tesssr.ps1 ---〉这个 ./TS_tesssr.ps1是verifier的scrippt 文件。


那么接下来build -> debugging 等 ,都很简单。


重要的是要注意这个东西有个认证机制,一定要注意你build 出来的东东,只能在你的机器上用, 如果别人的药用,那么就要自己安装认证了。


测试 :打开calc .exe 放到非程序模式,然后运行troubleshooter ,你就看到了结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值