在同一脚本中以另一个用户身份启动命令/批处理脚本后,Windows 命令行是否以当前登录用户的身份运行?

在同一脚本中以另一个用户身份启动命令/批处理脚本后,Windows 命令行是否以当前登录用户的身份运行?

我有一个 Windows 批处理脚本,该脚本会在所有标准用户以特定管理员用户(不是登录的同一用户)登录时自动运行。

在同一个脚本中,我需要检查他们的组成员身份(通过调用以特定组作为参数的 exe 文件)对于当前登录的用户,即登录到脚本的 shell 显示并从/运行的窗口的用户

然后根据上述检查的结果,使用初始管理员用户的权限继续处理相同的脚本,即安装软件。

有什么办法吗无需索要凭证,纯粹通过命令行或者甚至 powershell(从脚本内部调用)

我正在寻找一种完全非交互式的用户体验,因为这将应用于最多大约 9000 名用户。

任何帮助都将不胜感激。谢谢。

答案1

Runas命令有键/savedсred在每个新用户下您仍然需要输入密码(一次)。

powershell中有方法:

  1. 使用转换为安全字符串g 加密密码
  2. 创造证书目的
  3. 使用以下方式运行应用程序开始进程

$secstring = ConvertTo-SecureString -String $password -AsPlainText -Force

$credentials = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,$secstring)

Start-Process <filefullpath> -WorkingDirectory <work dir> -Credential ($credentials)

在一台计算机上加密的安全字符串无法在另一台计算机上解密(如果你没有使用 -Key 参数使用已知密钥加密)事实上,您必须将凭证放在脚本主体中。

相关内容