簡體   English   中英

Windows:批處理文件:僅以管理員身份運行

[英]Windows: Batch File: Only Run as Administrator

我有一個批處理文件來啟動應用程序作為Windows服務。 它叫做start.bat

@ECHO off
START c:\Ruby193\bin\ruby c:\Ruby193\bin\thin start -R c:\coolapp\config.ru -p 4321 -a localhost -e production

我的挑戰是該程序只有在具有管理員權限的“以管理員身份運行”時才能正常運行。 所以,我想添加一行來檢查這個腳本是否實際上是以管理員權限運行的,只有在以管理員身份運行時才會執行。

如何在腳本中執行此操作?

這樣的事情可能就是你所需要的:

set isadmin=0
whoami /all | findstr /c:" S-1-16-12288 ">nul && set isadmin=1

這應該導致%isadmin%變量為10具體取決於shell是否以管理員身份運行。

這假定了在舊版本的Windows上不一定可用的whoami實用程序的存在 - 我相信它從Windows Vista開始包含在內。

兩種選擇:

  1. 從WSH腳本中提取高程,如在Vista上的Scripting Elevation博客文章中記錄的那樣。

  2. 使用引發UAC提示的外部可執行文件,例如Elevate32.exe / Elevate64.exe

對於您的方案,#2可能更好,因為您可以檢測是否取消了提升提示(退出代碼1223),並且您還可以在繼續(-w參數)之前等待已啟動的可執行文件完成。

法案

將腳本轉換為VBScript可能更容易,然后您可以更輕松地檢查管理員權限,甚至將腳本提升為Admin。

請參閱此處了解如何在VBScript中進行檢查: VBScript:檢查腳本是否具有管理權限

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM