none
可否实现这样的功能, RRS feed

  • 问题

  • 公司有一些自己开发的小软件,但是在域模式下,power user是无法安装的,我现在希望将程序放入文件服务器,需要安装的用户可以自己下载安装,程序内部集成一个类似runas的命令,执行主动以管理员的身份进行安装,我尝试用runas,但是runas命令都是要输入密码的,而且其他的工具虽然可以不用输入密码,但是前提是要在该客户机上安装有类似lsrunase的工具,这样不是很方便
    如果可以的请帮忙给出部分代码,谢谢

    2009年9月11日 1:59

答案

  • 公司有一些自己开发的小软件,但是在域模式下,power user是无法安装的,我现在希望将程序放入文件服务器,需要安装的用户可以自己下载安装,程序内部集成一个类似runas的命令,执行主动以管理员的身份进行安装,我尝试用runas,但是runas命令都是要输入密码的,而且其他的工具虽然可以不用输入密码,但是前提是要在该客户机上安装有类似lsrunase的工具,这样不是很方便
    如果可以的请帮忙给出部分代码,谢谢


    http://www.mswindows.com.cn/Windows/217.html
    直接从服务器发布就好了
    恭喜自己5星用户达成
    2009年9月11日 8:45
    版主

全部回复

  • 你好!
         可以在Windows线程中模拟其他用户登陆:
    using System.Runtime.InteropServices;
    using System.Security.Principal;
    class Program
    {
          [DllImport("Advapi32.dll")]
          static extern bool LogonUser(
                 string sUserName,
                 string sDomain,
                 string sUserPassword,
                 uint dwLogonType,
                 uint dwLogonProvider,
                 out System.IntPtr token);
    
           [DllImport("Kernel32.dll")]
           static extern void CloseHandle(System.IntPtr token);
            
           static void Main()
           {
                 System.IntPtr pToken;
                 if(LogonUser(
                        "Administrator",
                        "DomainName",
                        "Password",
                        2,
                        0,
                        out pToken)){
                 WindowsIdentity.Imersonate(pToken);//模拟用户
                 WindowsIdentity id=WindowsIdentity.GetCurrent();
                 Console.WriteLine(id.Name);
                 CloseHandle(pToken);
               

    周雪峰
    2009年9月11日 5:53
    版主
  • 哇 好厉害啊
    聚信与共 ,创赢未来 如果问题没有解决,请继续跟帖讨论;如果问题得到解决,请标记为答复。有帮助请投票
    2009年9月11日 6:28
  • 老周你这个还是要输入密码

    恭喜自己5星用户达成
    2009年9月11日 8:44
    版主
  • 公司有一些自己开发的小软件,但是在域模式下,power user是无法安装的,我现在希望将程序放入文件服务器,需要安装的用户可以自己下载安装,程序内部集成一个类似runas的命令,执行主动以管理员的身份进行安装,我尝试用runas,但是runas命令都是要输入密码的,而且其他的工具虽然可以不用输入密码,但是前提是要在该客户机上安装有类似lsrunase的工具,这样不是很方便
    如果可以的请帮忙给出部分代码,谢谢


    http://www.mswindows.com.cn/Windows/217.html
    直接从服务器发布就好了
    恭喜自己5星用户达成
    2009年9月11日 8:45
    版主
  • 老周你这个还是要输入密码

    恭喜自己5星用户达成
    多谢韦兄指教,看来很难饶过UAC的提示!

    周雪峰
    2009年9月11日 10:58
    版主
  • 我今天看到一个用vbs可以实现以其他身份执行,并且完成后自动删除VBS脚本,不知道这样是否可以行,各位还有什么看法,感谢大家的积极探讨
    2009年9月11日 11:27
  • 你好!

    关于VB Script的问题,你可以去Visual Basic论坛咨询。你会得到更多的帮助。

    谢谢您的理解!
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年9月15日 8:04