App-V 参考工具之(三):如何在Client端使用FileMon和RegMon

今天分享一下FileMon和RegMon如何在App-V client端使用,假如有哪里说得不对,请大家指正,谢谢.

FileMon和RegMon是来做workstation的排错有用的工具,有时候我们会用它们来进行排错,但是你可能会发现, FileMon和RegMon在App-V client端用不了,它不能对App-V client的client端的Q盘进行捕获,会出现以下的错误. (下面以Filemon为例子,你可以为 RegMon 中使用相同的步骤)

  11.jpg
  5.png
 
那么,怎样才能让FileMon捕捉到Q盘的数据进行应用程序的排错呢,我们可以这样做
1. 在Server端,我们以DefaultApp为例, 我们打开DefaultApp.osd, 在<dependency> 标记之后添加以下行,保存退出
<SCRIPT TIMEOUT="0" TIMING="PRE" EVENT="LAUNCH" WAIT="TRUE" PROTECT="TRUE">
<SCRIPTBODY>%systemroot%\system32\cmd.exe</SCRIPTBODY>
</SCRIPT>
解释:
TIMING="PRE"和EVENT="LAUNCH"暗示这个script在你要启动的应用程序启动前执行
WAIT="TRUE"必须等待这个script执行完成才会尝试启动会让应用程序启动,这样就可以更好地捕捉到启动的全过程,方便排错
TIMEOUT="0" 指这个script不会timeout,一直运行,给你足够的时间进行排错
PROTECT="TRUE" 提供了进入虚拟环境的权限。假如PROTECT="FALSE",就不能进入Q盘或者虚拟注册表,那注册表的任何改变都有可能影响到实际的操作系统
 
2. 在Client端,当DefaultApp启动时,首先会先启动命令行,这时我们定位到filemon.exe的位置(如本例中的C:\ filemon.exe)将其启动
  2.png
 
3. 你可能会收到以下报错, 系统找不到文件. 原因是 FileMon 和 RegMon可执行文件中使用嵌入的服务, 而本地服务控制管理器(Services.exe) 无法访问虚拟环境,所以FileMon 和 RegMon 工具在不会启动。
  6.png
 
4. 我们去C:\system32\drivers确认一下FileMon的sys文件的具体文件名是filem701.sys还是filem.sys,因版本不同这里可能有所区别   1.png
 
5. 使用记事本编辑一个文件,添加以下的文本接着创建保存为 *. reg (*为你命名文件名的名字)文件导入到App-V client端的注册表中,这次FileMon就可以找到文件了 (假如刚才你检查到本机装的filemon使用的是filem.sys,请将以下的701三个字母删去)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Filemon701]
"Type"=dword:00000001
"ErrorControl"=dword:00000001
"Start"=dword:00000003
"ImagePath"="\\??\\c:\\windows\\system32\\drivers\\filem701.sys"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Regmon701]
"Type"=dword:00000001
"ErrorControl"=dword:00000001
"Start"=dword:00000003
"ImagePath"=[url=file://\\??\\c:\\windows\\system32\\drivers\\regsys701.sys]\\??\\c:\\windows\\system32\\drivers\\regsys701.sys[/url]

6. 我们重新关闭Default App启动一次, 重复第二步操作, 这是不会报错说系统找不到文件了,这次我们可以成功捕获到Q盘的信息
  12.jpg
  3.png

你可能感兴趣的:(职场,微软,虚拟化,休闲,App-v)