我一个程序是用计划任务每天启动的,计划任务是System权限启动,安装在多台密码为空的局域网电脑上,因为不用system权限启动计划任务的话,只能手动添加,并手动设置组策略,才能正常启动。但是我这个system权限运行的程序(启动后任务管理器里面显示是system用户),每天启动后都会判断并打开另外一个程序,那个程序有时可能会退出的,并且那个程序是有界面的,如果用system权限启动的话,用shell的方法,那个程序就没有界面了。所以现在想实现system权限的程序,打开一个以当前用户启动的进程,该怎么实现?下面有两个chenhui写的用普通用户权限启动一个system权限的进程(提权操作)http://blog.csdn.net/chenhui530/article/details/1932599
http://gujin162.blog.163.com/blog/static/733434420075701121737/下面这个是老马写的,用其他用户启动程序的代码,但是我试了下,没有成功,不知道怎么弄。
http://www.m5home.com/bbs/thread-344-1-1.html麻烦哪位高手,帮忙看看应该怎么写,谢谢

解决方案 »

  1.   

    shell runas /user:administrator cmd
    shell 程序 就可以了Runas
    允许用户用其他权限运行指定的工具和程序,而不是用户当前登录提供的权限。
    语法
    runas [{/profile | /noprofile}] [/env] [/netonly] [/savedcreds] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program
    参数
    /profile
    加载用户的配置文件。/profile 是默认值。
    /no profile
    指定不加载用户的配置文件。这使应用程序载入的更加快速,但是在一些应用程序中也会引起错误。
    /env
    指定当前使用的网络环境,而不是用户的本地环境。
    /netonly
    指明指定的用户信息只用于远程访问。
    /savedcreds
    指出凭据以前是否由此用户保存。
    /smartcard
    表示凭据是否是由智能卡提供的。
    /showtrustlevels
    列出 /trustlevel 开关项。
    /trustlevel
    指定应用程序运行所在的授权级别。使用 /showtrustlevels 查看可用的信任级别。
    /user:UserAccountName
    指定在其下运行程序的用户帐户的名称。用户帐户格式应该为 User@Domain 或 Domain\UserName。
    program
    指定要用在 /user 中指定的帐户运行的程序或命令。
    /?
    在命令提示符下显示帮助。
    注释
    管理员可以使用一个权限受限制的帐户执行日常、非管理性的任务,只有在执行特定管理任务时,才使用一个权限更大的帐户。要不经过注销再重新登录就完成这样的任务,可以用一般帐户登录,然后使用 runas 命令来运行需要更大权限的工具。
    有关 runas 命令的使用示例,请参阅“相关主题”。
    尽管 runas 通常由 Administrator 帐户使用,但并非仅限于 Administrator 帐户。任何拥有多个帐户的用户均可以利用备用凭据,使用 runas 运行程序、MMC 控制台或“控制面板”项。
    如果要在计算机上使用 Administrator 帐户,对于 /user:,键入下列参数之一:
    /user:AdministratorAccountName@ComputerName
    /user:ComputerName\AdministratorAccountName
    如果想以域管理员身份使用这个命令,键入下列参数之一:
    /user:AdministratorAccountName@DomainName
    /user:DomainName\AdministratorAccountName
    runas 命令允许您运行程序 (*.exe)、保存的 MMC 控制台 (*.msc)、程序和保存的 MMC 控制台的快捷方式及“控制面板”项。作为另一组(例如“Users”或“Power Users”组)的成员登录到计算机时,可以以管理员的身份运行。
    可以使用 runas 命令来启动任何程序、MMC 控制器或“控制面板”项。只要提供适当的用户帐户和密码信息,用户帐户就具有登录到计算机的能力,并且程序、MMC 控制台、“控制面板”项在系统中及对该用户帐户均可用。
    runas 命令允许您管理其他域的服务器(运行工具的计算机和要管理的服务器在不同的域中)。
    如果尝试使用 runas 从网络位置启动程序、MMC 控制台或“控制面板”项,可能会因为用来连接到共享网络资源的凭据与用来启动程序的凭据不同而失败。后者的凭据可能无法访问同一共享网络资源。
    有些项,例如“打印机”文件夹和桌面项,间接打开,而不能使用 runas 命令启动。
    如果 runas 命令失败,则可能是没有运行 Secondary Logon 服务或使用的用户帐户无效。要检查 Secondary Logon 服务的状态,请在“计算机管理”中单击“服务和应用程序”,然后单击“服务”。要测试用户帐户,请尝试使用该帐户登录合适的域。
    示例
    要在本地计算机上以管理员身份启动命令提示行实例,请键入:
    runas /user:localmachinename\administrator cmd
    系统提示时,键入管理员密码。
    要使用名为 companydomain\domainadmin 的域管理员帐户启动“计算机管理”管理单元实例,请键入:
    runas /user:companydomain\domainadmin "mmc %windir%\system32\compmgmt.msc"
    当提示时,键入帐户密码。
    要使用名为 domain.microsoft.com 的域中的域管理员帐户 user 启动“记事本”实例,请键入:
    runas /user:[email protected] "notepad my_file.txt"
    当提示时,键入帐户密码。
    要启动命令提示符行窗口、保存的 MMC 控制台、控制面板项或管理其他地点服务器的程序的一个实例,请键入:
    runas /netonly /user:Domain\UserName "Command"
    Domain\UserName 必须是拥有足够管理服务器的权限的用户。当提示时,键入帐户密码。
    格式化图例
    格式
    含义
    斜体 用户必须提供的信息
    粗体 用户必须准确键入的要显示的元素
    省略号 (...) 在命令行中可多次重复的参数
    中括号 ([]) 可选项
    大括号 ({});选项用竖线 (|) 分隔。例如:{even|odd} 用户必须从选项集合中选择一个
    Courier 字体 代码或程序输出
      

  2.   

    直接shell runas 程序  就可以了