我有一个需要通过 GPO 运行的 .exe。我尝试通过批处理脚本来执行此操作,但是它需要在用户计算机上运行,而这需要提升权限,因为它们不是本地管理员。与其接触每台计算机来设置本地管理员并让 GPO 从那里运行,不如设置 powershell 脚本来启动提升权限的会话,无论是 PS 还是 CMD 都没关系。
最大的阻碍是检测每台机器的主机名,这样我可以使用:
New-PSSession hostname -Auth CredSSP -cred domain\adminuser
我曾考虑过让它检测 IP 地址,然后为用户进行 DNS 查找,但除了这个问题之外,我认为这会比必要的工作量大得多。我尝试在这里研究类似的问题,但我找不到上述拦截器存在类似情况。
批处理文件:
@echo off
if exist "C:\Program Files\directorypath\service.*" goto END
if exist "C:\Program Files (x86)\directorypath\service.*" goto END
"\\SERVER\FOLDER\installer.exe" --mode unattended
:END
对于这个问题,使用 runas 似乎并不完全合适。我宁愿避免将我的密码或通用管理员密码放在纯文本文件中。
答案1
您可以使用启动脚本将您的管理员用户添加到本地管理员net localgroup administrators domain\adminuser /add
。
不过,我认为这没有必要。我认为您的批处理脚本可以作为计算机的启动脚本运行。它将作为计算机帐户运行,因此计算机帐户需要访问共享。