场景概览
在搭建了 Active Directory 域控*的企业日常运维管理中,非特殊的用户账户,非人工干预下系统默认将其加入到 Users
标准用户组(系统默认,如果手动加入可选标准用户或管理员组),一般可以满足对使用者的权限管控和软件正常运行。但是在某些场景下可能会有难题:财务或物流部门的某些软件启动运行时弹窗提示需要管理员账户登录。
所以此时,我们需要 runas
命令来帮助我们做到有效的管控,给某个软件或允许特定程序以管理员权限启动运行,即无需赋予当前用户管理员所有权,也无需在场景软件中每次启动输入管理员密码,
解决方案
使用该命令后,首次成功启动之后,后续启动该命令即可省略原需要提供管理员账户的过程。
*该方法在非 Active Directory 环境也可使用。
命令语法
使用命令行终端 runas /?
runas /?
RUNAS 用法:
RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ]
/user:<UserName> program
RUNAS [ [/noprofile | /profile] [/env] [/savecred] ]
/smartcard [/user:<UserName>] program
RUNAS /trustlevel:<TrustLevel> program
/noprofile 指定不应该加载用户的配置文件。
这会加速应用程序加载,但
可能会造成一些应用程序运行不正常。
/profile 指定应该加载用户的配置文件。
这是默认值。
/env 要使用当前环境,而不是用户的环境。
/netonly 只在指定的凭据限于远程访问的情况下才使用。
/savecred 用用户以前保存的凭据。
/smartcard 如果凭据是智能卡提供的,则使用这个选项。
/user <UserName> 应使用 USER@DOMAIN 或 DOMAIN\USER 形式
/showtrustlevels 显示可以用作 /trustlevel 的参数的
信任级别。
/trustlevel <Level> 应该是在 /showtrustlevels 中枚举
的一个级别。
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\""
注意: 只在得到提示时才输入用户的密码。
注意: /profile 跟 /netonly 不兼容。
注意: /savecred 跟 /smartcard 不兼容。
完整命令
将以下命令代码保存为 commandline.cmd
runas /savecred /user:administrator "cmd /c start C:\Progra~1\Easydatalink\YHG\USBMonitor.exe"
参数解析
/savecred
保存首次成功登录的账户信息;
该信息以加密方式保存在系统的凭据管理器;
/user:administrator
/user
执行方法;administrator
授权本次执行的管理员账户,也可以是其他已经加入到管理员组的账户;
标准完整语法:/user:mymachine\administrator
"cmd /c start D:\Progra~1\Easydatalink\YHG\USBMonitor.exe"
cmd /c
以 cmd 方式运行后续的命令并终止,否则某些软件报错:740 当前的操作需要提升
start
结合上下文,在 cmd 中打开后续命令C:\Progra~1\Easydatalink\YHG\USBMonitor.exe
执行程序绝对路径,Progra~1
为 Program Files
的缩写,因为中间有空格。
路径缩写
C:\Progra~1\
== C:\Program Files
C:\Progra~2\
== C:\Program Files (x86)
PS C:\Users\hexingxing> cd C:\Progra~1
PS C:\Program Files>
PS C:\Users\hexingxing> cd C:\Progra~2
PS C:\Program Files (x86)>
加密程序
该命令下虽然没有什么隐私或明文密码,但是对于一些稍微懂计算机逻辑的用户,就会随意将命令的运行程序换成其他,为了避免该隐患问题,有必要将该 .bat
批处理文件转换成 .exe
可执行应用程序,以保证不被篡改。
1. 裁剪应用程序的图标为圆角矩形;
选一张 32px
~128px
像素的图片,裁剪为圆角形状,若图标是不带背景的实体图案则忽略;
推荐 128px
,否则在高分辨率下显示模糊
2. 制作用于应用程序的图标;
将已经裁剪为圆角矩形的图片或实体图案图片转为用于程序的 .icon
图标;
3. 转换成为可执行的应用程序文件;
推荐以下两款软件用以将 .bat
程序转为 .exe
可执行程序。
2 条评论
zhangsir · 2023年11月22日 17:21
楼主你好,我是域控管理员,最近我发现一个比较严重的问题。启用软件安装限制后,用户没办法更新软件了,我现在暂时用笨办法,每半个月更新发布软件。让用户自己通过 “获得软件” 以重装的方式来达到更新的目的。如果是批量化的,如何做到呢,我试了注册表和路径,始终不行。一个个用工具来也是无法实现,用户数量 400 台。。。。。
何星星 · 2023年11月27日 17:20
仅赋予用户 users 组权限,限制用户安装与更改后可以使用域推送来更新或安装软件,请参考此文:https://hexingxing.cn/ad-domain-deployment-distribution-and-installation-software/