互联网奥秘
I've got to attend my first Microsoft Live Meeting in the morning, and since I'm remote I thought I'd just run the quick test of the Live Meeting Client before bed. You know, you visit a test page with your browser, and a Live Meeting client "jumps out" of the browser and connects. I've done it a million times before.
我必须早上参加我的第一次Microsoft Live Meeting,并且由于我很遥远,所以我想就可以在睡觉前对Live Meeting客户端进行快速测试。 您知道,您使用浏览器访问了测试页面,并且Live Meeting客户端“跳出”浏览器并进行连接。 我已经做了一百万遍了。
I open the Calendar Meeting, click, and...I get a dialog titled:
我打开日历会议,单击,然后...我得到一个标题为的对话框:
"RTC Router" - "The directory name is invalid"
“ RTC路由器”-“目录名称无效”
Of course, I try it at least 10 times to make sure it's REALLY not working. You never know, it could work that 9th try, right?
当然,我尝试了至少10次以确保它真的不起作用。 您永远不会知道,第9次尝试可以奏效,对吗?
OK. Now I'm getting tense. I need this to work, the LiveMeeting is in the morning. Um, reinstall, ok...just reinstall.
好。 现在我变得紧张了。 我需要这项工作,LiveMeeting在早上。 嗯,重新安装,确定...只需重新安装。
Microsoft has an internal website that you download all the corporate IT products you need for your regular job. I go back up in IE, am prompted for my Microsoft domain account and password (this machine isn't on the domain), find the right page, download the MSI and run the installation in place. OK. Whew. I go back open the Calendar Meeting, click, and...I still get a dialog titled:
Microsoft有一个内部网站,您可以下载日常工作所需的所有公司IT产品。 我回到IE中,提示输入我的Microsoft域帐户和密码(该计算机不在域中),找到正确的页面,下载MSI,然后就地运行安装程序。 好。 ew。 我回去打开日历会议,单击,然后...我仍然得到一个标题为的对话框:
"RTC Router" - "The directory name is invalid"
“ RTC路由器”-“目录名称无效”
Crap. Ok, it's Procmon time. Who owns this dialog box? I give the dialog a good shake while Task Manager is open. That's a low-tech way of answering the Who's Process Is This question - grab a dialog with the mouse and shake it around the screen...the process that owns it will start using a little bit of CPU.
废话好,现在是Procmon时间。 谁拥有这个对话框? 在“任务管理器”打开时,我给对话框一个很好的动摇。 这是回答“谁的进程是谁”这个问题的技术含量较低的方法-用鼠标抓住对话框并在屏幕上摇动它……拥有它的进程将开始使用一点CPU。
It's RunDll32.exe. That's a generic process that runs Procedures directly within DLLs. Basically a LoadLibrary()|GetProcAddress() command-line interface.
它是RunDll32.exe。 这是一个直接在DLL中直接运行Procedures的通用过程。 基本上是LoadLibrary()| GetProcAddress()命令行界面。
Now, I set the filters in Procmon to just watch two processes - iexplore.exe and rundll32.exe. I then reproduce the issue and watch the logs.
现在,我在Procmon中将过滤器设置为仅监视两个进程-iexplore.exe和rundll32.exe。 然后,我重现该问题并查看日志。
OK, looks like this is being called when I click the link in IE:
OK,当我单击IE中的链接时,似乎正在调用此命令:
C:\Windows\system32\rundll32.exe "C:\Program Files (x86)\Common Files\Microsoft Shared\LiveMeeting Shared\RtcRouter.dll",RouteMIME %1
C:\ Windows \ system32 \ rundll32.exe“ C:\ Program Files(x86)\ Common Files \ Microsoft Shared \ LiveMeeting Shared \ RtcRouter.dll”,RouteMIME%1
It's being launched because of the mime/type of the file being returned from the web server. The registry says that there's a .rtc and .rtc-ms extension of type "Microsoft.RTC.ConnectionFile."
由于从Web服务器返回的文件的MIME /类型而启动了它。 注册表说,有一个.rtc和.rtc-ms类型的扩展名“ Microsoft.RTC.ConnectionFile”。
The Set Associations Dialog in Vista confirms it.
Vista中的“设置关联”对话框确认了这一点。
So, this RunDll32 RtcRouter.dll action is the "Microsoft Office Live Meeting Router." RTC is probably Real Time Communication, but at this point I don't care.
因此,此RunDll32 RtcRouter.dll操作就是“ Microsoft Office Live Meeting路由器”。 RTC可能是实时通信,但是现在我不在乎。
Now, I reproduce the failure again and look for the "Live Meeting" string.
现在,我再次重现故障并寻找“ Live Meeting”字符串。
This run shows three things that are important. First the very top shows the writing to a log file called pwconsole-debug30.txt...it contains just this:
此运行显示了三件事很重要。 首先,最顶层显示了写入名为pwconsole-debug30.txt的日志文件的过程……它仅包含以下内容:
[MC] 08:55:50:031 GMT [PID 9228] [THREAD 4996] [I] RTCRouter - RouteMIME called
[MC] 08:55:50:033 GMT [PID 9228] [THREAD 4996] [W] RTCRouter - Inserting for HKLM - {69CEBEF8-52AA-4436-A3C9-684AF57B0307}
[MC] 08:55:50:042 GMT [PID 9228] [THREAD 4996] [W] RTCRouter - Using Target Product code : {69CEBEF8-52AA-4436-A3C9-684AF57B0307}
[MC] 08:55:50:043 GMT [PID 9228] [THREAD 4996] [E] RTCRouter - Error launching console
[MC] 08:55:50:031 GMT [PID 9228] [THREAD 4996] [I] RTCRouter-调用RouteMIME [MC] 08:55:50:033 GMT [PID 9228] [线程4996] [W] RTCRouter-插入HKLM-{69CEBEF8-52AA-4436-A3C9-684AF57B0307} [MC] 08:55:50:042 GMT [PID 9228] [线程4996] [W] RTCRouter-使用目标产品代码:{69CEBEF8-52AA-4436-A3C9-684AF57B0307} [MC] GMT 08:55:50:043 [PID 9228] [THREAD 4996] [E] RTCRouter-启动控制台错误
Ah, but the second thing in Procmon that jives with this long is the GUID which is apparently a Microsoft Installer Product Code leading to a Component which is the LiveMeeting Console.
嗯,但是Procmon中第二个让您兴奋不已的东西是GUID,它显然是Microsoft Installer产品代码,导致了LiveMeeting Console这个组件。
Notice the Access Denied in reading the PWConsole.exe. Ok, so this is a permissions issue.
请注意,在阅读PWConsole.exe时访问被拒绝。 好的,这是一个权限问题。
I head down into C:\Program Files (x86)\Microsoft Office\Live Meeting 8 and get ACCESS DENIED! What? I can't even go into my own folder? I JUST made this folder when I ran that installer.
我进入C:\ Program Files(x86)\ Microsoft Office \ Live Meeting 8并获得“拒绝访问” ! 什么? 我什至不能进入自己的文件夹? 运行该安装程序时,我只是创建了此文件夹。
Hm. OK, I'm Administrator, so I'm taking over ownership. I open an Administrator cmd.exe and from within that folder, run:
嗯好,我是管理员,所以我要接管所有权。 我打开一个管理员cmd.exe,然后从该文件夹中运行:
takeown /f "Live Meeting 8" /r /a
SUCCESS: The file (or folder) is now owned by user QUADPOWER\scott
带上/ f“ Live Meeting 8” / r / a 成功:文件(或文件夹)现在由用户QUADPOWER \ scott拥有
That'll teach you. Now, I took ownership, but I still need permissions, so I go into Properties, Security, and I'm sure to go into Advanced|Edit|Edit and select "Replace all existing permissions" as I want to make sure I'm taking control of the entire directory and all files, not just one directory and forgetting to recurse.
那会教你的。 现在,我获得了所有权,但是我仍然需要权限,所以我进入“属性”,“安全性”,我一定要进入“高级|编辑|编辑”并选择“替换所有现有权限”,以确保控制整个目录和所有文件,而不仅仅是一个目录,而忘记递归。
NOTE: I'm just reporting my experience here, be careful when you do crazy stuff as Administrator and don't come to me when it all blows up for you. YMMV. Seriously.
注意:我只是在这里报告我的经验,当您以管理员身份进行疯狂的工作时要当心,当一切为您炸毁时不要来找我。 YMMV。 说真的
I immediately notice something I didn't see before...the PWConsole NOW has an icon. I had a generic one before. AH. I've got permissions. And by I, I mean, explorer.exe.
我立即注意到以前从未见过的东西... PWConsole NOW现在有一个图标。 我以前有一个通用的。 啊。 我有权限。 我的意思是explorer.exe。
Cool, now I go back into Outlook, click on the Live Meeting Test Link, and I'm in:
太酷了,现在我回到Outlook,单击Live Meeting测试链接,然后进入:
Conclusion
结论
How did I get myself into this situation? Here's my working theory.
我如何陷入这种情况? 这是我的工作理论。
- When I’m remoted into Corporate authenticated as, say, MICROSOFT\mrscott on my home computer that 当我进入家用计算机上的MICROSOFT \ mrscott身份验证的公司时,
- doesn’t have a machine account 没有机器帐号
and where MICROSOFT\mrscott is a temporary identity (it’s not admin, and it’s just hanging out launching some processes, and not others) and
并且MICROSOFT \ mrscott是一个临时身份(不是admin,它只是挂出启动某些进程,而不是其他进程),并且
- I run installations with that domain authenticated identity via direct launching from Internet Explorer 通过直接从Internet Explorer启动,我使用该域身份验证身份运行安装
- THEN:然后:
- those installations run as MICROSOFT\mrscott the whole time and regular LOCALMACHINE\scott can’t access them, resulting in chaos and confusion, directories and files created and owned by an account that isn't on this machine. Oh, and it results in blog posts like this. 这些安装始终以MICROSOFT \ mrscott的身份运行,而常规的LOCALMACHINE \ scott无法访问它们,从而导致混乱和混乱,目录和文件由该计算机上没有的帐户创建和拥有。 哦,结果是这样的博客文章。
Is this something others might be having trouble with and who should be told? Or, is this totally obvious and easily discoverable?
这是别人可能遇到的麻烦吗?应该告诉谁? 或者,这是完全显而易见且容易发现的吗?
Of course! Just don’t run MSI installers launched directly from a Intranet website when you're domain authenticated against that site as someone who doesn't have administrator privileges on the local machine. <sarcasm>It's so obvious!</sarcasm> Well, actually, stated like that, it does make sense. I can't add my domain account as an Administrator on this machine without joining the box to the domain, which I don't want to do. So, I'll download my installers from the internal sites and then run them from now on.
当然! 只是不要运行直接从Intranet网站启动的MSI安装程序,当您在本地站点上没有管理员权限的人通过该站点进行域身份验证时。 < sarcasm>这是如此明显!</ sarcasm>嗯,实际上,这样说是有道理的。 如果不将该框加入到域中,我无法将域帐户添加为这台计算机上的管理员,这是我不想做的。 因此,我将从内部站点下载安装程序,然后从现在开始运行它们。
Good night!
晚安!
翻译自: https://www.hanselman.com/blog/the-mystery-of-the-failed-live-meeting-launch
互联网奥秘