Windows 7 上的 troubleshooting Pack 简介
2009-03-04 19:41
267 查看
本文来源于:
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 ,你就看到了结果。
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 ,你就看到了结果。
相关文章推荐
- Know and Understand the Network Troubleshooting Tools Available in Windows 7
- Preparing for Application and Service Deployment-Debugging and Troubleshooting Windows Azure Applic
- 《Troubleshooting Windows 7 Inside Out》文摘-2
- Troubleshooting tips for using Java on Windows 8
- Windows Azure Pack与VMware VRA 对比(一)VMware vRealize Automation 简介与安装
- 《Troubleshooting Windows 7 Inside Out》文摘-1
- Windows Server Troubleshooting: "The RPC server is unavailable"
- Trouble shooting windows certificate problems.
- windows pip install twisted troubleshooting
- DB2 Linux, Unix and Windows HADR Simulator use case and troubleshooting guid
- It's Never Done That Before - A Guide to Troubleshooting Windows XP
- Troubleshooting Microsoft Windows Event Logs
- Windows Azure Pack与VMware VRA 对比(三)VRA角色简介及基础配置
- windows程序设计之对话框简介1
- [转]Windows XP Service Pack 2中弹出窗口拦截器的研究
- Windows完成端口与Linux epoll技术简介
- How to troubleshooting RAC Vip Problem
- Troubleshooting ORA-29740 in a RAC Environment (Doc ID 219361.1)
- AD troubleshooting------journal wrap
- Windows客户端开发简介(三)