根據登入的使用者啟用或停用 Windows 服務

根據登入的使用者啟用或停用 Windows 服務

因此,我想根據哪個用戶登入來停用或啟用一項服務,因為它是一項只需要對特定用戶啟動的服務,否則會佔用不必要的系統資源。

最簡單的方法是為每個使用者建立一個批次檔(它是本機系統,因此使用者數量不是太多),並在使用者使用 net stop/start 或 sc config 登入時執行該批次檔。這種方法的問題在於這些命令需要提升的權限,而其中一個使用者沒有提升的權限。

是否有其他方法可以執行此操作,或者是否有解決方法可以臨時授予批次檔提升的權限?

謝謝。

答案1

您可以使用排程任務來解決特權提升問題。

對於每個最終用戶:

  1. 啟動任務計劃程式並建立新任務(選擇右側「建立任務」)
  2. 在「常規」標籤上,將任務設定為在您自己的(管理員)帳戶中運行,無論是否登錄,並且具有最高權限
  3. 在「觸發器」標籤上,新增「登入時」觸發器並配置最終使用者帳戶
  4. 在「操作」標籤上,新增「啟動程式」操作並提供要執行的命令列(「NET STOP 服務名稱」或「NET START 服務名稱」)。
  5. 儲存您的新計劃任務。

當您的最終使用者之一登入時,任務排程器將在您的管理員帳戶中執行 NET START/STOP,啟動或停止服務,而無需在登入時提升權限。

有一些問題要問您:如果兩個最終用戶都登入會發生什麼?在所有登入順序下(即使用者 A 然後 B,使用者 B 然後 A),您是否得到正確的結果?不要忘記也考慮註銷序列...

答案2

服務在所有使用者帳戶中的行為都是相同的......因此透過使用批次檔停用,這將影響其他使用者(例如管理員)......帳戶......所以使另一個帳戶毫無價值:(.. .嘗試只製作2個批次檔。一個用於停止,一個用於啟動...我很驚訝Windows不能為不同的用戶和需求提供不同的服務使用. ..我很失望...

相關內容