做了个自动更新程序,运行a.bat文件
里面都是注册组件的代码,类似
regsvr32.exe /s %windir%\system32\PA.dll现在遇到的问题是,所有电脑的用户权限都没有管理员的权限,执行注册失败0x80040200
因为有下面有几十上百台电脑,DLL是程序模块,经常变更,不可能每次都帮他们转换到管理员用户再注册
他们用的电脑也是不能改为管理员权限的,请问如何解决这个问题。

解决方案 »

  1.   

    怎么做这个run as administrator
    总不能每台机子都去右键run as吧
      

  2.   

    右键是没有run as 的for bat文件。
    cmd 里runas /?查查用法。
    你这样的情况最好用terminal server。
      

  3.   

    我见过方正他们是把DLL都放在服务器上统一管理的。
    Server2003上的控制面板里有com+管理器⋯⋯
    那个东西是我见过的唯一的CS模式的真正的三层架构的东西。框架你可以不了解,那个注册机制你可以拿来用。
      

  4.   

    可以通过cmd命令行runas操作的,不过每台机器第一次运行需要输入下密码,然后才可以记忆。
      

  5.   

    net localgroup administrator 用户名 /add
      

  6.   

    有一个办法不用切换用户,但需要你知道管理员账号的密码,就是调用CreateProcessWithLogon来创建进程.另外,也可以在软件安装时就为自己创建一个升级专用账号,密码随机并且只有软件自己知道,这样安全性也可以保证.我早期也有过类似的需求,所以写了这样的代码,参考:[原创]以其他用户身份运行某程序+添加用户
    http://www.m5home.com/bbs/thread-344-1-1.html
      

  7.   

    话说这东西我也鼓捣了好久,不过对于广域网效果不太好. 后来用RDS做了个.
      

  8.   


    学习了runas  决定把DLL之类的放在服务器了,哈哈,这下客户端都不用装程序了