在 Windows 10 上使用管理員權限執行我的遊戲 -- 任務排程器問題

在 Windows 10 上使用管理員權限執行我的遊戲 -- 任務排程器問題

我和妻子有一個老遊戲喜歡玩;我已將它安裝在一台全新的 Windows 10 電腦上,並且它可以從命令列以及雙擊檔案總管中的可執行檔運行良好。

但是,以這種方式運行時,它總是顯示 UAC“您希望該程式進行更改嗎”提示,而我嘗試在沒有該提示的情況下運行遊戲。

各種指令將我指向任務調度程序:創建一個任務,賦予它“最高權限”,允許它按需運行,然後創建一個快捷方式來運行該任務。

因此,我在任務計劃程序中創建了任務,並且說明合理地建議測試它以從那裡運行,這就是我現在陷入困境的地方。我似乎無法透過讓任務計劃程式運行我創建的任務來運行遊戲。

在「常規」下(在此任務的任務計劃程序屬性中),我有「僅在使用者登入時運行」、「以最高權限運行」和「為 Windows 10 配置」。觸發器為空。操作具有“啟動程式”和完整路徑名,包括可執行檔名稱和“.exe”。在某些情況下,我取消選取“僅當電腦使用交流電源時才啟動任務”,並且沒有選取任何其他方塊。

如果我右鍵單擊該任務並選擇“運行”,則會將任務狀態變更為“正在運行”,但不會發生其他任何情況。如果我進入特權命令提示字元並嘗試使用“schtasks /run /tn taskName”,我會收到一條訊息,表明它已成功啟動任務,並且沒有其他情況發生。

我想我應該要提到這個遊戲是一個「全螢幕」遊戲;所有正常的 Windows 視窗都會消失,這是螢幕上唯一的東西。當然,我不知道這是否有什麼區別。

另一個奇怪的地方 - 我認為更改“僅當電腦使用交流電源時才啟動任務”的預設選項可能會出現問題,因此我返回任務屬性並嘗試更改它。當我這樣做時,我得到類似「任務 xml 包含格式不正確或超出範圍的值」之類的資訊。在這種情況下,我預計在嘗試運行該任務時會出現錯誤,但我想我會提到這一點,因為它是值得的。

這款遊戲是“凱撒 III”,以防萬一這對任何人都很重要。我如何讓它在沒有 UAC 提示的情況下運行,無論是透過任務規劃程式還是其他方式?

答案1

任務計劃程序是錯誤的地方。這是一個解決方法,但你正在反對UAC(使用者帳戶控制)。 預設設定要求任何請求管理存取權限的應用程式都必須得到使用者的同意,從而出現提示。

在執行以下操作之前,請檢查捷徑屬性並確保應用程式未設定為以管理員身份執行。如果是,請取消選取該框,問題就會消失。 如果沒有,請繼續。

UAC 並不是一件壞事(就像以前一樣)。它是從 Linux 權限概念中引入的,可以保護您免受惡意軟體應用程式的侵害,並嘗試透過管理權限劫持您的電腦。它積極地控制您可能安裝遊戲的 Program Files 和 Program Files(x86) 資料夾,以防止用戶安裝看似無辜但實際上並非如此的東西(即信用監控應用程序,實際上只是為了安裝鍵盤記錄器、 20 個工具欄,並竊取您的身分)。為此,我建議容忍彈出窗口,除非您真的知道自己在做什麼以及如何保護電腦的安全

如果您像專業人士一樣精通保護電腦的安全,或者只是決定不採納我的建議,那麼以下是如何擾亂您的 UAC 設定的方法:

  1. 打開控制面板
  2. 選擇使用者帳戶和家庭安全
  3. 選擇用戶帳戶
  4. 變更使用者帳戶控制設定
  5. 將滑桿調整到較低的設置,或一直向下調整以停用 UAC。

請注意,大多數現代應用程式都沒有被 UAC 標記。較舊的遊戲(包括您的遊戲)經常請求管理權限或嘗試寫入受保護的資料夾,並且只被允許這樣做。在您的情況下,快捷方式是路由到受保護的資料夾,而 UAC 不喜歡它的做法,這可能是您的根本原因。

答案2

我發現這是一個有用的警告,表明某些事情正在應用程式的正常範圍之外進行。但我不需要關於這個(可能還有其他幾個)特定程序的警告。

UAC 的工作原理如下:

由於預設情況下,Windows Vista 程式沒有取得管理權限。即使您的帳戶是管理員,也不允許程式執行管理操作,除非它們以提升的權限啟動。如果程式嘗試在沒有提升權限的情況下執行受限操作,它將失敗。

UAC 不僅僅是一個可以忽略的警告。它告訴你,如果你讓這個程式運行,它將可以做任何它想做的事情,包括:

  • 以提升的權限運行其他程序
  • 更改其他程式的文件
  • 更改安全設定
  • 損壞窗戶

您可以選擇信任程式不會執行任何破壞性操作並運行它,也可以選擇阻止它運行。

如果程式在沒有提升權限的情況下運行,則不會出現 UAC 彈出窗口,但一旦它嘗試執行普通用戶禁止的操作,它也會失敗。這很可能會導致崩潰。

沒有中間立場:您要么每次都必須明確提升權限,要么在沒有提升權限的情況下運行程式。這是一個合理的安全模型:您不必每天執行管理任務。在正常的工作流程中,您不應該看到 UAC 過度運作。除非您使用的程式不關心安全性。

由於該程式是在UAC之前編寫的,所以我相當懷疑它是在「請求權限」。

實際情況比這要複雜一些。

基本上任何進程都可以要求啟動另一個具有提升權限的進程。以提升的權限啟動程式最常見的原因是:

  1. UAC清單。開發人員可以在可執行檔中嵌入清單,強制以提升的權限來執行它們。啟動可執行檔時,Windows 將檢查此清單,如果存在,則程式將始終以管理員身分執行。

  2. UAC屬性在可執行檔(或快捷方式)的屬性中,相容性標籤。如果存在,Windows 將提升該程式。

  3. 屬性中的相容性設定。再次,一些設置相容性標籤進入特性可以強制提升權限。例如,啟用與 Vista 之前的系統的相容性即可實現此目的。

  4. 其他相容性設定相容性工具包是一個附加元件,允許對某些相容性功能進行細微控制。同樣,其中一些可能會強制執行特權提升。

  5. 也許是預設的兼容性策略?我對此不確定,但我懷疑 Windows 有一些啟發式方法來決定哪些應用程式應該以提升的權限運行,即使它們沒有明確啟用。 Vista 有一些功能是為了簡化向 UAC 的過渡而建造的,例如 VirtualStore。可能還有更多。

遊戲很可能會請求管理權限,因為它使用管理功能。那時候沒人關心這些東西。程式將文件放在各處:程式檔案,視窗目錄,你命名它。這些是受保護的地點。

還有一些相容性功能只需要UAC即可正常運作。據我記得一些舊的圖形設定只能以管理員身份使用。

長話短說:

如果遊戲要求提升權限,那麼您可以放心地假設它必須這樣做。

這不僅僅是一個警告。它是安全模型的重要組成部分。

順便說一句,如果您在GOG.com 上購買了該遊戲,那麼您很可能沒有獲得1999 年發布的原始可執行檔。運行。如果他們認為有必要,他們可能會將 UAC 清單添加到 EXE 中。

答案3

嘗試右鍵單擊應用程式.exe 檔案以管理員身份執行它。

您也可以右鍵單擊應用程式捷徑或應用程式 .exe 檔案 -> 屬性 -> 相容性標籤 -> 「以管理員身分執行此程式」方塊 -> 確定。

相關內容