精华内容
下载资源
问答
  • AutoIt以其他用户身份运行程序

    千次阅读 2018-12-16 11:42:55
    准备工作 lsrunas.exe autoit v3 install.bat(模拟右键管理员身份运行) ... 修改为要提升权限运行程序 $exe = "install.bat" DirCreate($dir) ; 修改为要提升权限运行程序 Fi...

    准备工作

    • lsrunas.exe
    • autoit v3
    • install.bat(模拟右键以管理员身份运行)

    具体文件如下图
    在这里插入图片描述

    程序代码

    提权.au3

    #include <Misc.au3>
    
    $dir = "c:\_autoit_tmp\"
    ; 修改为要提升权限运行的程序
    $exe = "install.bat"
    
    DirCreate($dir)
    ; 修改为要提升权限运行的程序
    FileInstall("install.bat", $dir & $exe, 1)
    FileInstall("lsrunas.exe", $dir & "lsrunas.exe", 1)
    
    If _Singleton(@ScriptName, 1) = 0 Then
       MsgBox(0, "警告", "当前已有该程序在运行,请耐心等候,勿重复点击!")
       Exit
    EndIf
    
    
    $u = ""
    $p = ""
    $bSuccess = False
    
    DetectAdministrator()
    
    
    If $bSuccess Then
       ;以administrator身份调用$exe
       ;如果普通用户直接运行lsrunas.exe调用带有盾牌图标的程序会运行失败
       ;所以第一步先用lsrunas.exe以管理员身份启动一个cmd,并传入要调用的程序作为参数
       ;由该cmd再调用带盾牌的程序
       $cmd = """" & @ComSpec & " /C " & $dir & $exe & """"
       RunWait($dir & "lsrunas.exe /user:" & $u & " /password:" & $p & " /domain:. /command:" & $cmd & " /runpath:" & $dir, $dir, @SW_HIDE)
    Else
       MsgBox(0, "错误", "提升权限失败,可能原因:用户名密码不对/用户锁定/无法登陆/...!")
       Exit
    EndIf
    
    
    Func DetectAdministrator()
    	; 如果要添加账号密码, 对应好账号密码位置,并修改数组数量
       local Const $arrUsers[2] = ["Administrator", "Admin"]
       local Const $arrPwds[2] = ["administratorpassword", "adminpassword"]
       	; 修改为 0 To 数组长度
       For $i = 0 To 2
    	  RunWait("cmd /c" & """lsrunas /user:" & $arrUsers[$i] & " /password:" & $arrPwds[$i] &" /domain:. /command:""cmd /C"" /runpath:.""" & " > log.txt", $dir, @SW_HIDE)
    	  $ret = FileRead($dir & "log.txt")
    	  If StringIsSpace($ret) <> 1 Then
    		 ContinueLoop
    	  Else
    		 $u = $arrUsers[$i]
    		 $p = $arrPwds[$i]
    		 $bSuccess = True
    		 ExitLoop
    	  EndIf
       Next
    EndFunc
    

    install.bat

    @echo off
    color 2
    cd %~dp0
    
    REM 提升权限,模拟右键以管理员身份运行
    REM 主要针对Win8, 10系统, win7关闭UAC不受影响
    
    %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
    cd /d "%~dp0"
    REM 此处开始填写你的代码
    

    说明

    如下图:

    Win10下普通用户使用lsrunas模拟以Administrator身份运行WeChatSetup.exe会失败
    需使用lsrunas模拟以Administrator身份运行cmd, 由cmd调用WeChatSetup.exe

    盾牌

    展开全文
  • 本文综合分析了Linux系统下,如何使用runuser命令、su命令和sudo命令以其他用户身份运行程序,以及这三个命令的运行效率比较。 一、su 命令临时切换用户身份 SU:( Switch user切换用户),可让一个普通用户...

     

    本文综合分析了Linux系统下,如何使用runuser命令、su命令和sudo命令以其他用户身份来运行程序,以及这三个命令的运行效率比较。

     

    一、su 命令临时切换用户身份

    SU:( Switch user切换用户),可让一个普通用户切换为超级用户或其他用户,并可临时拥有所切换用户的权限,切换时需输入欲切换用户的密码;也可以让超级用户切换为普通用户,临时以低权限身份处理事务,切换时无需输入欲切换用户的密码。

    zai Linux 系统中,有时候普通用户有些事情是不能做的,除非是 root 用户才能做到。这时就需要用 su 命令临时切换到 root 身份来做事了。

    1、su 的语法

    su [OPTION选项参数] [用户]

    -, -l, –login

    切换用户时,使环境变量(home,shell,user,logname,path等)和欲切换的用户相同、不使用则取得用户的临时权限,不加载环境变量。用su命令切换用户后,可以用 exit 命令或快捷键[Ctrl+D]可返回原登录用户;

    -c, –command=COMMAND

    使用 -c 传递单个命令到 shell 中,执行命令后,就恢复原来的用户身份,退出所切换到的用户环境;

    –session-command=COMMAND

    使用 -c 传递单个命令到 shell 中,并且不创建新的会话;

    -f, –fast

    通过 -f 参数到 shell (针对 csh 或 tcsh);

    -m, –preserve-environment

    不重置环境变量;

    -s, –shell=SHELL

    指定执行命令的shell;

    –help 

    显示帮助信息;

    –version

    显示版本信息;

    2、su 的范例:

    1

    2

    3

    4

    5

    su -

    su - root

    su - root -c "ls -l /root"

    su - oracle -c "ulimit -aHS"

    su -s /bin/sh -c "/usr/local/nginx/sbin/nginx"

    3、su 的优缺点
    su 的确为管理带来方便,通过切换到 root 下,能完成所有系统管理工具,只要把 root 的密码交给任何一个普通用户,他都能切换到 root 来完成所有的系统管理工作。但通过 su 切换到 root 后,也有不安全因素;比如系统有10个用户,而且都参与管理。如果这10个用户都涉及到超级权限的运用,做为管理员如果想让其它用户通过 su 来切换到超级权限的 root,必须把 root 权限密码都告诉这10个用户。如果这10个用户都有 root 权限,通过 root 权限可、以做任何事,这在一定程度上就对系统的安全造成了威协,想想 Windows 吧,简直就是恶梦。

    “没有不安全的系统,只有不安全的人”,我们绝对不能保证这10个用户都能按正常操作流程来管理系统,其中任何一人对系统操作的重大失误,都可能导致系统崩溃或数据损失,所以 su 工具在多人参与的系统管理中,并不是最好的选择,su 只适用于一两个人参与管理的系统,毕竟 su 并不能让普通用户受限的使用;超级用户 root 密码应该掌握在少数用户手中,这绝对是真理!所以集权而治的存在还是有一定道理的。

    二、sudo 命令
    1、sudo 的适用条件
    由于su 对切换到超级权限用户 root 后,权限的无限制性,所以 su 并不能担任多个管理员所管理的系统。如果用 su 来切换到超级用户来管理系统,也不能明确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参与管理时,最好是针对每个管理员的技术特长和管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到 sudo。通过 sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道 root 密码,所以 sudo 相对于权限无限制性的 su 来说,还是比较安全的,所以 sudo 也能被称为受限制的 su。另外 sudo 是需要授权许可的,所以也被称为授权许可的 su。
    sudo 执行命令的流程是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户,而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权。默认只有 root 用户能使用 sudo 命令,普通用户想要使用 sudo,是需要 root 预先设定的,默认 root 能够 sudo 是因为这个文件中有一行”root ALL=(ALL) ALL”。

    2、sudo 配置文件

    我们可以用他的专用编辑工具 visodu ,此工具的好处是在添加规则不太准确时,保存退出时会提示给我们错误信息;配置好后,可以用切换到您授权的用户下,通过sudo -l 来查看哪些命令是可以执行或禁止的。

    /etc/sudoers 文件中每行算一个规则,前面带有 # 号可以当作是说明的内容,并不执行;如果规则很长,一行列不下时,可以用 \ 号来续行,这样看来一个规则也可以拥有多个行。

    /etc/sudoers 的规则可分为两类:一类是别名定义,另一类是授权规则;别名定义并不是必须的,但授权规则是必须的。

    sudo授权规则(sudoers配置):

    1

    授权用户 主机=命令动作

    这三个要素缺一不可,但在动作之前也可以指定切换到特定用户下,在这里指定切换的用户要用( )号括起来,如果不需要密码直接运行命令的,应该加 NOPASSWD: 参数,但这些可以省略。举例说明:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    ## The COMMANDS section may have other options added to it.

    ##

    ## Allow root to run any commands anywhere

    root    ALL=(ALL)       ALL

     

    ## Allows members of the 'sys' group to run networking, software,

    ## service management apps and more.

    # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

     

    ## Allows people in group wheel to run all commands

    # %wheel        ALL=(ALL)       ALL

     

    ## Same thing without a password

    # %wheel        ALL=(ALL)       NOPASSWD: ALL

     

    ## Allows members of the users group to mount and unmount the

    ## cdrom as root

    # %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

     

    ## Allows members of the users group to shutdown this system

    # %users  localhost=/sbin/shutdown -h now

     

    ## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)

    #includedir /etc/sudoers.d

    执行visudo之后,可以看见缺省只有一条配置:

    root    ALL=(ALL) ALL

    那么你就在下边再加一条配置:
    admin ALL=(ALL) ALL

    这样,普通用户 admin 就能够执行 root 权限的所有命令

    让普通用户support只能在某几台服务器上,执行root能执行的某些命令,首先需要配置一些Alias,这样在下面配置权限时,会方便一些,不用写大段大段的配置。Alias主要分成4种:
    Host_Alias

    Cmnd_Alias

    User_Alias

    Runas_Alias

    配置Host_Alias:就是主机的列表

    Host_Alias      HOST_FLAG = hostname1, hostname2, hostname3

    配置Cmnd_Alias:就是允许执行的命令的列表,命令前加上 ! 表示不能执行此命令。命令一定要使用绝对路径,避免其他目录的同名命令被执行,造成安全隐患 ,因此使用的时候也是使用绝对路径!

    Cmnd_Alias      COMMAND_FLAG = command1, command2, command3 ,!command4

    配置User_Alias:就是具有sudo权限的用户的列表

    User_Alias USER_FLAG = user1, user2, user3

    配置Runas_Alias:就是用户以什么身份执行(例如root,或者oracle)的列表

    Runas_Alias RUNAS_FLAG = operator1, operator2, operator3

    配置权限的格式如下: 

    USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG

    如果不需要密码验证的话,则按照这样的格式来配置

    USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    ## Host Aliases

    ## Groups of machines. You may prefer to use hostnames (perhaps using

    ## wildcards for entire domains) or IP addresses instead.

    Host_Alias      EPG = 192.168.1.1, 192.168.1.2

    ## User Aliases

    ## These aren't often necessary, as you can use regular groups

    ## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname

    ## rather than USERALIAS

    # User_Alias ADMINS = jsmith, mikem

    ## Command Aliases

    ## These are groups of related commands...

    Cmnd_Alias      SQUID = /opt/vtbin/squid_refresh, !/sbin/service/bin/rm  

    Cmnd_Alias      ADMPW = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd, !/usr/bin/passwd root

    ## Allow root to run any commands anywhere

    root    ALL=(ALL)       ALL

    admin EPG=(ALL) NOPASSWD: SQUID

    admin EPG=(ALL) NOPASSWD: ADMPW

    ## Allows people in group wheel to run all commands

    # %wheel        ALL=(ALL)       ALL

     

    ## Same thing without a password

    # %wheel        ALL=(ALL)       NOPASSWD: ALL

     

    ## Allows members of the users group to mount and unmount the

    ## cdrom as root

    # %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

     

    ## Allows members of the users group to shutdown this system

    # %users  localhost=/sbin/shutdown -h now

    当然新用户的配置也可以放到,/etc/sudoers.d/ 下的文件里,也会生效,修改也方便。

    3、sudo 语法

    sudo [ -Vhl LvkKsHPSb ] │ [ -p prompt ] [ -c class│- ] [ -a auth_type ] [-u username│#uid ] command

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    -V       显示版本编号

    -h       会显示版本编号及指令的使用方式说明

    -l       显示出自己(执行 sudo 的使用者)的权限

    -v       因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码

    -k       将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)

    -b       将要执行的指令放在背景执行

    -p       prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称

    -u       username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)

    -s       执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell

    -H       将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )

    command  要以系统管理者身份(或以 -u 更改为其他人)执行的指令

    三、runuser 命令

    runuser命令使用一个替代的用户或者组ID运行一个Shell。这个命令仅在root用户时有用。
    仅以会话PAM钩子运行,并且没有密码提示。如果用一个非root用户,并且该用户没有权限设置user ID,这个命令将会因为程序没有setuid而失败。因runuser不会运行认证和账户PAM钩子,它比su更底层。

    1、runuser 语法

    语法与 su 命令基本一样:

    -, -l, –login

    让shell成为登录shell,用 runuser -l PAM 文件替代默认的;

    -g –group=group

    指定主要的组;

    -G –supp-group=group

    指定追加组

    -c, –command=COMMAND

    使用 -c 传递单个命令到 shell 中,执行命令后,就退出到 root;

    –session-command=COMMAND

    通过一个单一的命令用 -c 参数到 shell ,不创建一个新的会话;

    -f, –fast

    通过 -f 参数到 shell (针对 csh 或 tcsh);

    -m, –preserve-environment

    不重置环境变量;

    -p     same as -m

    -s, –shell=SHELL

    指定执行命令的shell;

    2、runuser 样例

    1

    2

    3

    runuser -l userNameHere -c '/path/to/command arg1 arg2'

    runuser -l oracle -c 'ulimit -SHa'

    runuser -s /bin/sh -c "/usr/local/nginx/sbin/nginx"

    有时,root用户由于权限(安全)问题不能浏览NFS挂载的共享:

    1

    ls -l /nfs/wwwroot/http

    1

    cd /nfs/wwwroot/http

    可能的输出:

    1

    -bashcd/nfs/wwwroot/http/: Permission denied

    尽管如此,apache用户被允许浏览或访问挂载在/nfs/wwwroot/http/下基于nfs的系统:

    1

    runuser -l apache -c 'ls -l /nfs/wwwroot/http/'

    1

    runuser -l apache -c 'cd /nfs/wwwroot/http/; vi index.php'

    使用runuser命令,无需使用密码,并且,只能在root用户下使用。

    四、总结:su VS su VS dorunuser

    命令 root 
    到 用户
    用户
    到 root
    任意用户 到 
    任意用户
    认证方式 日志文件 备注
    runuser Y N N 因 runuser 不会运行认证和账户 PAM 钩子,它比 su 更底层。
    su Y Y Y 目标用户的密码

    /var/log/auth.log 或

    /var/log/secure

    你必须与其它用户分享你的密码或 root 密码。
    sudo Y Y Y 认证用户使用他们自己的密码,而不是目标用户。

    /var/log/auth.log 或

    /var/log/secure

    允许系统管理员委托授权给一个特定的用户(或用户组),让其在提供审计跟踪命令后可以以 root 或其它用户运行某些(或全部)命令。

    su 与 runuser 都可以用来写系统自启动脚本,如 Tomcat 服务使用系统用户启动的自启动脚本。什么时候使用哪种命令,根据使用场景自己来决定吧。

    展开全文
  • Windows下以其他用户身份运行程序

    万次阅读 2012-08-07 10:58:30
    runas /savecred /usr:administrator "C:\Program Files\SogouExplorer\sogouexplorer.exe" ... 从 Windows 2000 开始,微软的视窗操作系统开始提供给当前登录用户不同的用户身份

    runas /savecred /usr:administrator "C:\Program Files\SogouExplorer\sogouexplorer.exe"


    http://blog.sina.com.cn/s/blog_107000590100mwml.html


    从 Windows 2000 开始,微软的视窗操作系统开始提供给当前登录用户以不同的用户身份来运行程序的功能。前提是系统的 RunAs 服务(Windows 2000 下) / Secondary Logon 服务(Windows XP 下)没有被禁用并处于已启动状态。

      在必需的 RunAs / Secondary Logon 服务已经启动之后,就可以为程序设定用户身份。对于一般的可执行程序来说,只需要创建指向该可执行文件的快捷方式,然后在按住 Shift 键的同时鼠标右键单击快捷方式,然后单击“运行方式 ...”,在弹出的对话框中设置指定的用户及密码信息即可。这里是微软官方的 HOW TO 指南。

      但对于某些特殊类型的快捷方式来说,用 Shift + 鼠标右键唤出的菜单中并没有“运行方式 ...”的设置选项,比如说一些批处理文件(.bat)等有缺省文件类型打开方式的快捷连接。对于这种文件如果需要使用到 RunAs 的功能,可以新建一个空的快捷方式,在快捷方式向导对话框中键入项目的位置为 runas /savecred /usr:administrator "command line to the real application" 即可。其中 /usr: 后面的administrator 表示以 administrator 用户身份运行程序;command line to the real application填写实际程序的执行命令; /savecred 参数将自动保存输入的密码,这样在下一次运行快捷方式的时候就不需要再输入密码(该参数在 XP Home Edition 版本中无效),如果不希望系统保存密码去掉该参数即可。

    RUNAS 用法:

    RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
             /user: program

    RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
             /smartcard [/user:] program

       /noprofile         指定不应该加载用户的配置文件。
                         这会加速应用程序加载,但
                         可能会造成一些应用程序运行不正常。
       /profile           指定应该加载用户的配置文件。
                         这是默认值。
       /env               要使用当前环境,而不是用户的环境。
       /netonly           只在指定的凭据限于远程访问的情况下才使用。

       /savecred         用用户以前保存的凭据。
                         Windows XP Home Edition 上没有这个选项。
                         该选项会被忽略。
       /smartcard         如果凭据是智能卡提供的,则使用这个选项。

       /user             应使用 USER@DOMAIN 或 DOMAIN\USER 形式
       program         EXE. 的命令行。请参阅下面的例子

    例如:
    > runas /noprofile /user:mymachine\administrator cmd
    > runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc"
    > runas /env /user:user@domain.microsoft.com "notepad "my file.txt""

    注意: 只在得到提示时才输入用户的密码。
    注意: USER@DOMAIN 跟 /netonly 不兼容。
    注意: /profile 跟 /netonly 不兼容。
    其中mymachine可以通过我的电脑--属性--好像是第二个选项卡上面查到

    刚启动电脑后直接进入受限帐户,使用runas命令时会出现"拒绝访问". 
    用户名,密码等都输入正确,但进一遍管理员用户后再回来则一切正常,请教下原因...
    试试这个:runas /savecred /user:mymachine\administrator cmd

    Runas 
    允许用户用其他权限运行指定的工具和程序,而不是用户当前登录提供的权限。 

    语法 
    runas [{/profile /noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program 

    参数 
    /profile 
    加载用户的配置文件。/profile 是默认值。 
    /no profile 
    /noprofile 指定不加载用户的配置文件。这使应用程序载入的更加快速,但是在一些应用程序中也会引起错误。 
    /env 
    指定当前使用的网络环境,而不是用户的本地环境。 
    /netonly 
    指明指定的用户信息只用于远程访问。 
    /smartcard 
    /smartcard 表示凭据是否是由智能卡提供的。 
    /showtrustlevels 
    列出 /trustlevel 开关项。 
    /trustlevel 
    指定应用程序运行所在的授权级别。使用 /showtrustlevels 查看可用的信任级别。 
    /user:UserAccountName 
    指定在其下运行程序的用户帐户的名称。用户帐户的格式应是 user@domain 或 domain\user。 
    程序 
    指定要用在 /user 中指定的帐户运行的程序或命令。 
    /? 
    在命令提示符显示帮助。 
    注释 
    管理员可以使用一个权限受限制的帐户执行日常、非管理性的任务,只有在执行特定管理任务时,才使用一个权限更大的帐户。要不经过注销再重新登录就完成这样的任务,可以用一般帐户登录,然后使用 runas 命令来运行需要更大权限的工具。 
    有关 runas 命令的使用范例,请参阅“相关主题”。 
    尽管 runas 通常由 Administrator 帐户使用,但并非仅限于 Administrator 帐户。任何拥有多个帐户的用户均可以利用备用凭据,使用 runas 运行程序、MMC 控制台或“控制面板”项。 
    如果要在计算机上使用 Administrator 帐户,对于 /user:,键入下列参数之一: 
    /user:AdministratorAccountName@ComputerName 

    /user:ComputerName\AdministratorAccountName 

    如果想以域管理员身份使用这个命令,键入下列参数之一: 
    /user:AdministratorAccountName@DomainName 

    /useromainName\AdministratorAccountName 

    runas 命令允许您运行程序 (*.exe)、保存的 MMC 控制台 (*.msc)、程序和保存的 MMC 控制台的快捷方式及“控制面板”项。作为另一组(例如“Users”或“Power Users”组)的成员登录到计算机时,可以以管理员的身份运行。 
    可以使用 runas 命令来启动任何程序、MMC 控制器或“控制面板”项。只要提供适当的用户帐户和密码信息,用户帐户就具有登录到计算机的能力,并且程序、MMC 控制台、“控制面板”项在系统中及对该用户帐户均可用. 
    runas 命令允许您管理其他域的服务器(运行工具的计算机和要管理的服务器在不同的域中)。 
    如果尝试使用 runas 从网络位置启动程序、MMC 控制台或“控制面板”项,可能会因为用来连接网络共享的凭据与用来启动程序的凭据不同而失败。后者的凭据可能无法访问同一网络共享。 
    有些项,例如“打印机”文件夹和桌面项,间接由 Windows 2000 打开,而不能使用 runas 命令启动。 
    如果 runas 命令失败,则可能是没有运行 RunAs 服务或使用的用户帐户无效。要检查 RunAs 服务的状态,请在“计算机管理”中单击“服务和应用程序”,然后单击“服务”。要测试用户帐户,请尝试使用该帐户登录合适的域。 
    范例 
    要在本地计算机上以管理员身份启动 Windows 2000 命令提示行实例,请键入: 

    runas /user:localmachinename\administrator cmd 
    系统提示时,键入管理员密码。 

    要使用名为 companydomain\domainadmin 的域管理员帐户启动“计算机管理”管理单元实例,请键入: 

    runas /user:companydomain\domainadmin "mmc %windir%\system32\compmgmt.msc" 
    当提示时,键入帐户密码。 

    要使用名为 domain.microsoft.com 的域中的域管理员帐户 user 启动“记事本”实例,请键入: 

    runas /user:user@domain.microsoft.com "notepad my_file.txt" 
    当提示时,键入帐户密码。 

    要启动命令提示符行窗口、保存的 MMC 控制台、控制面板项或管理其他地点服务器的程序的一个实例,请键入: 

    runas /netonly /user:domain\username "command" 
    domain\username 必须是有足够权限管理服务器的用户。当提示时,键入帐户密码。


    在win2k中,开始→程序→附件 ,找到计算器,按住shift键,点右键,选择“运行方式 ...”,这时候,会弹出对话框,询问你要使用哪个用户身份来运行该程序 。 
    不知道大家是否使用过win2k的这个功能,如果大家是使用win2k的英文版本的话,在按住shift后选择的就不是“运行方式 ...”而是“runas...”,也就是今天要讲的这个命令。 
    在cmd中输入runas,会得到帮助,今天,我们只将它最简单的用法,就是怎么样使用这个命令来以另外一个用户身份运行一个程序。 

    其实,命令非常简单: 
    runas /user:user_name program.exe 
    user_name是要使用哪个用户运行该程序就写上哪个用户名,program.exe是程序名,如果program.exe不在system32目录下的话,需要指明具体路径。 
    为了证明这个过程,做一个实验,那就是使用guest帐号来运行at命令,查看当前的计划任务清单,大家都知道,guest默认情况下是没有此权限的,因此,只要这个命令真的起作用的话,会出现“拒绝访问”的字样,在这里,我们使用这个命令: 
    runas /user:guest "cmd.exe cmd/k at.exe" 
    cmd.exe 是调用cmd这个程序,而cmd/k则是指cmd命令后跟/k参数,目的是为了是当前的执行结果的屏幕保留。 

    (注意:这里由于命令过长,而且中间有空格,所以用引号引起来,如果只有一个命令,例如at.exe的话,那么就不需要有引号了) 
    由于运行的程序是在一个新窗口中打开,而不是在原来的cmd窗口中打开,所以,如果我不使用cmd.exe cmd/k这个参数的话,窗口会一闪而过,看不到效果。 

    运行完这个命令后,会要求guest的密码,填上,回车,等一会,一会就会出现一个cmd窗口,里面写着“拒绝访问”,而且,在cmd窗口上沿还有“(运行为guest)”的字样。 
    这个工具还可以在域中使用,而且还可以加上个人配置文件,实在是很爽 ~~~ 
    ------- 
    RUNAS 用法: 

    RUNAS [/profile] [/env] [/netonly] /user: program 

    /profile 如果需要加载用户的配置文件 
    /env 要使用当前环境,而不是用户的环境。 
    /netonly 只在指定的凭据限于远程访问的情况下才使用 
    /user 应使用 USER@DOMAIN 或 DOMAIN\USER 形式 
    program EXE. 的命令行。参阅下面的例子 

    例如: 
    > runas /profile /user:mymachine\administrator cmd 
    > runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc" 
    > runas /env /user:user@domain.microsoft.com "notepad "my file.txt"" 

    注意: 只有在被提示时才输入用户的密码。 
    注意: USER@DOMAIN 与 /netonly 不兼容。 
    这应该是英语吧!!!!!!!


    展开全文
  • 在windows2003下,有时候我们需要以其他用户身份运行运行一些程序操作方法参考如下附图:选中"运行方式",打开以其他用户身份运行对话框窗口如下: 本文转自 cuiyingfeng 51CTO博客,原文链接:...
    在windows2003下,有时候我们需要以其他用户身份运行运行一些程序


    操作方法参考如下附图:



    选中"运行方式",打开以其他用户身份运行对话框窗口如下:





      本文转自 cuiyingfeng 51CTO博客,原文链接:http://blog.51cto.com/cuiyingfeng/221445,如需转载请自行联系原作者


    展开全文
  • localsystem指定用户身份运行程序

    万次阅读 2011-04-18 15:54:00
    做了个服务system账号运行的,...system运行的服务直接截图那么用的就是system的handle,所以是个黑屏或者根本没法截,这时就需要程序用户账号下运行,可以在服务里嵌入一个exe,然后在账户身份运行这个exe截图并返
  • 管理员登录系统下不用注消用户就可以其它身份运行程序
  • C#默认管理员身份运行程序

    万次阅读 2013-08-11 19:13:30
    一、通过配置文件实现管理员身份运行程序 Vista 和 Windows 7 操作系统为了加强安全,增加了 UAC(用户账户控制) 的机制,如果 UAC 被打开,用户即使是管理员权限登录,其应用程序默认情况下也无法对系统目录,...
  • 程序如何管理员身份运行程序   最近在项目运行过程中遇到了一个问题,就是打开程序的过程中,软件会出现打开数据库是一个只读数据库,我们需要将客户端设置为管理员身份运行才能解决这种问题。这样虽然可以...
  • 如果为了某些软件而放开管理员权限似乎又不太符合安全规定,此时,我们可以使用runas命名让用户可以管理员权限运行指定程序。 runas命令的用法如下: 例如我们想让用户以管理员身份运行CMD,可以保存如下代码成...
  • 开发中有时会遇到这样的问题,当服务程序需要使用某些功能时,由于用户的关系而受到限制, 比如访问注册表的HKEY_...新创建的进程和服务程序依然是相同的用户身份,还是无法达到目的,只有使用CreateProcessAsUse
  • 在SYSTEM权限登陆用户运行程序

    千次阅读 2017-01-06 09:47:24
    在SYSTEM权限登陆用户运行程序的主要代码 免费完整源码:http://download.csdn.net/detail/lai444132348/9730248 using System; using System.Runtime.InteropServices; namespace test.ProcessExtensions {...
  • ubuntu 普通用户以root权限运行程序

    千次阅读 2018-11-14 17:14:47
    sudo chown root app sudo chmod u+s app 为了使用qtcreator root权限调试: sudo chown root /usr/bin/gdb sudo chmod u+s /usr/bin/gdb
  • 假设用户名为username,需要运行command程序,命令如下: su username -l -c "comman" 其中“-l”表示登录方式执行,这就意味着username的环境变量会被初始化,这在很多情况下是必须的。
  • Windows程序以特定用户身份运行

    千次阅读 2017-11-06 13:45:00
    如果一个程序需要访问文件服务器的共享目录,却不能让执行这个程序用户访问这个共享目录,怎么办? 解决方法:使用runas命令。 具体做法是,在本地先创建一个文件服务器授权了的用户abc,然后在控制台执行下面...
  • 有这个一个需求: 1、不允许当前用户访问某个文件夹 2、但是程序可以访问(新增、编辑、删除等操作) 结论是这样:创建一个管理员...步骤二:将之前的用户授权允许访问指定文件夹,其他用户拒绝(需要用到icac...
  • system身份运行程序

    千次阅读 2017-07-13 00:58:52
    Local System是Windows...Local System拥有比Administrator更高的权限,是会话管理器(Smss.exe)、Windows子系统系统(Csrss.exe)以及本地安全授权子系统(Lsass.exe)等的运行账户。 Local System账户加载默认用...
  • C#如何管理员身份运行程序

    千次阅读 2014-08-15 14:45:31
    C#如何管理员身份运行程序  在使用winform程序获取调用cmd命令提示符时,如果是win7以上的操作系统,会需要必须管理员身份运行才会执行成功,否则无效果或提示错误。  比如在通过winform程序执行cmd...
  • pkexec 以其他用户身份执行的命令 pkexec [--user username] PROGRAM [ARGUMENTS...] pkexec允许授权用户以其他用户身份执行PROGRAM。如果用户名不是指定,则程序将以管理超级用户 root身份执行。 成功完
  • Win10始终管理员身份运行程序

    万次阅读 2019-04-19 17:48:00
    首先,进入用户帐户,操作顺序为:控制面板->用户帐户,如图1,点击更改帐户类型,如图2,选择管理员->...将“用户帐户控制:管理员批准模式运行所有管理员”和“用户帐户控制:用户内置...
  • 在 Win7 或者 Win7 以上版本的系统,我们想管理员身份运行一个程序的时候,只需要选中这个程序文件,鼠标右击,选择“管理员身份启动”就可以了。但是,在实际的编程中,我们要管理员身份创建一个进程该怎么...
  • 近期的工作,总是会碰到一些比较奇特的需求,比如说:在一个管理员权限运行程序里面,启动/运行一个非管理员/当前用户权限的程序或者服务之类。 常规来说,管理员权限下运行的程序,即便创建新进程或者启动别的...
  • 绕过UAC提示管理员身份运行程序

    千次阅读 2016-08-16 14:26:20
    在windows 7下,我们可能经常需要管理员权限运行某个程序,但每次运行一个程序都得:先找到那个程序,右键鼠标,在弹出菜单中选择管理员身份运行,而且还会弹出以下窗口,让你点击确认才行。   有些人可能...
  • 在 Windows 系统中,管理员权限和非管理员权限运行程序之间不能使用 Windows 提供的通信机制进行通信。对于部分文件夹(ProgramData),管理员权限创建的文件是不能非管理员权限修改和删除的。 然而,一个进程...
  • [Winform]默认管理员身份运行程序

    千次阅读 2017-08-11 13:28:11
    在使用setupfactory打包之后,想让程序默认管理员身份运行,因为涉及到创建文件删除文件的操作,如果权限比较低的话,会出现没有权限操作的bug。 解决办法 在项目中找到app.manifest清单文件 修改...
  • 比如:某些特定的部门(如财务,物流)没有管理员权限,但工作又需要使用特定的插件或程序,且该程序或插件又必须管理员身份运行,在这种情况下,我们如果将用户权限提升为管理员,那样会增加安全风险而且可能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 681,352
精华内容 272,540
关键字:

以其他用户身份运行程序