0
我正在嘗試編寫一個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 ,呼應%USERNAME%給出了在最後一個$的服務器的名稱。
知道批處理腳本是否在系統用戶上運行的最佳方法是什麼? 也許有更好的選擇來實現呢?
謝謝
'正在運行sy幹用戶'你的意思是在高架的命令行嗎? – Endoro 2013-05-07 15:28:51
當'psexec -s'已經作爲系統帳戶運行時,爲什麼你會經歷所有這些麻煩?似乎對我來說是多餘的。 – 2013-05-07 15:42:03
我不想強制用戶在批處理文件調用前鍵入psexec -s。用戶將以管理員身份運行該批處理文件。我只需要知道如何檢查批處理文件是否作爲系統運行。 – 2013-05-07 15:49:44