我有一个 Windows 批处理脚本,该脚本会在所有标准用户以特定管理员用户(不是登录的同一用户)登录时自动运行。
在同一个脚本中,我需要检查他们的组成员身份(通过调用以特定组作为参数的 exe 文件)对于当前登录的用户,即登录到脚本的 shell 显示并从/运行的窗口的用户。
然后根据上述检查的结果,使用初始管理员用户的权限继续处理相同的脚本,即安装软件。
有什么办法吗无需索要凭证,纯粹通过命令行或者甚至 powershell(从脚本内部调用)?
我正在寻找一种完全非交互式的用户体验,因为这将应用于最多大约 9000 名用户。
任何帮助都将不胜感激。谢谢。
答案1
Runas
命令有键/savedсred
,但在每个新用户下您仍然需要输入密码(一次)。
powershell中有方法:
$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 参数使用已知密钥加密)事实上,您必须将凭证放在脚本主体中。