首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在Azure启动任务中调用32位regsvr32?

为什么在Azure启动任务中调用32位regsvr32?
EN

Stack Overflow用户
提问于 2012-05-05 08:51:09
回答 1查看 720关注 0票数 1

我的Azure角色启动任务正在调用一个.cmd文件:

代码语言:javascript
复制
<Startup>
    <Task commandLine="startup.cmd" executionContext="elevated" taskType="simple"/>
</Startup>

.cmd文件包含对regsvr32的调用

代码语言:javascript
复制
//startup.cmd
regsvr32 PathToMyComServer\MyComServer.dll

用于注册32位proc服务器。

现在在64位系统中有两个版本的regsvr32 --一个在SysWOW64文件夹中用于32位COM服务器,另一个在System32文件夹中用于64位COM服务器。当然,只有匹配版本的regsvr32可以用于任何给定的-proc服务器。

当我登录到DevelopmentWindows2008框并从命令行运行regsvr32时,就会调用64位版本,但是当我的启动任务运行时--无论是在计算模拟器中还是在实时云中--32位版本都会被调用并正确注册我的invoked服务器。这让我很困惑。

为什么在Azure启动任务中调用32位版本的regsvr32

EN

回答 1

Stack Overflow用户

发布于 2012-05-05 22:28:41

如下面的链接所述,请尝试在真实用户上下文中运行您的启动任务,这将解决此问题:

http://www.davidaiken.com/2011/01/19/running-azure-startup-tasks-as-a-real-user/

在Azure上,我尝试使用PxExec工具启动Regsvr32

psexec regsvr32 ->推出32位版本的regsvr32 psexec -s regsvr32 ->推出64位版本的regsvr32

在这两种情况下,psexec都是在运行Win2K2008 64位的Azure上以32位模式启动的。

这就是为什么我建议尝试在实际用户上下文中启动启动任务的原因,因为在我的64位计算机上,有限的用户权限,启动regsvr32.exe实际上启动32位REGSVR32,而在管理用户上下文中,相同的命令启动64位regsvr32。因为启动任务不是在实际用户上下文中启动的,所以我怀疑这可能是原因之一。

另一个选项是您也可以使用"PsExec -s“选项启动64位版本的regsvr32。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10460282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档