我正在尝试编写一个 Windows 批处理脚本来检测它是否在系统用户下运行以启动其他应用程序。该应用程序需要作为系统运行。但是启动它的批处理文件将由管理员用户调用。
这是我现在拥有的:
IF "%USERPROFILE:~-13%" == "systemprofile" (
PUSHD "%~dp0\.."
CALL "init some variables"
CALL "my command" %*
POPD
) ELSE (
FOR %%X IN (psexec.exe) DO (SET FOUND=%%~$PATH:X)
IF DEFINED FOUND (
CALL psexec -s %0 %*
) ELSE (
ECHO Must be run as user SYSTEM
ECHO If psexec is in PATH, it will be automatically used.
)
)
现在我检查%USERPROFILE%但我想这是一个不好的方法。
当使用psexec -s启动我的脚本时,echo %USERNAME%给出了服务器的名称,并以 $ 结尾。
知道批处理脚本是否在系统用户上运行的最佳方法是什么?也许有更好的选择来实现这一目标?
谢谢