允許特定 Windows 應用程式從沒有本機管理員權限的使用者帳戶進行更新

允許特定 Windows 應用程式從沒有本機管理員權限的使用者帳戶進行更新

我正在管理一個由大約 15 台 Windows 8.1 電腦/使用者組成的小型網路。這些使用者都沒有本地管理員權限(因為我不想每天 24 小時從電腦中刪除病毒和惡意軟體)

我們使用 8x8 公司的軟體電話進行通訊。該軟體很棒,不需要管理員權限即可運行,但是,他們大約每月一次發布新版本。發生這種情況時,為了將軟體升級到最新版本,我必須親自前往電腦並使用本地管理員密碼來允許升級。

我希望有一種方法可以本質上“信任”或“白名單”特定正在運行的程序,以允許該程序直接從本地用戶帳戶(沒有管理員訪問權限)升級

就其價值而言,這個特定的軟體確實會檢查更新並從(在我看來)程式內部啟動更新。這意味著,我不必訪問網站,下載 .exe 檔案並運行它。如果是這種情況,我可以看到哪裡可能會更困難,因為我懷疑是否有辦法按名稱或類似內容將某個 .exe 檔案列入白名單。

有任何想法嗎?

答案1

您可以使用應用程式相容性工具包將應用程式列入白名單,以便它有時不需要管理權限即可運行。這個過程非常簡單,但根據應用程式處理事物的方式,它並不總是有效。以下是過程的粗略演練:

  1. 在電腦上安裝要列入白名單的軟體。
  2. 在同一台電腦上下載並安裝適當的應用程式相容性工具包(對您來說,這就是 Windows 8.1 ACT)。
  3. 啟動適當的相容性工具包 - 如果需要將 32 位元應用程式列入白名單,則啟動 x86 工具包;如果需要將 64 位元應用程式列入白名單,則啟動 x64 工具包。
  4. 建立一個資料庫並向其中添加新的“應用程式修復”。
  5. 按照“應用程式修復”提示選擇應用程式並填寫適當的詳細資訊。重要的是將“相容模式”設定為“runAsInvoker”。這通常會有效地將應用程式列入白名單。
  6. 在創建“應用程式修復”的最後一步,它將顯示有關應用程式的大量信息,它將用於“匹配”規則。如果您希望它繼續在定期更新的程式上運行,則需要刪除引用版本號的任何欄位(畢竟,版本將/應該在更新後更改)。
  7. 完成後,將資料庫儲存為“SDB”檔案。
  8. 使用以下命令在每台電腦上安裝“SDB”檔案:sdbinst {Local path to sdb file}
  9. 我建議使用群組原則在本機上建立一個資料夾,將 SDB 檔案和腳本複製到其中,然後在電腦啟動時執行該腳本。在這種情況下,您的腳本將需要使用「n」標誌卸載現有的 SDB 文件,並使用「q」標誌靜默安裝。執行此操作的命令是:

    1. sdbinst -n "database-name"
    2. sdbinst -q {Local path to SDB file}

也就是說,當應用程式下載檔案、解壓縮它們,然後嘗試啟動解壓縮檔案中包含的另一個應用程式時,此過程將不起作用(畢竟,就電腦而言,這是一個不同的應用程式)。您可以透過取得更新檔案、將它們部署到本機電腦上的特定資料夾(網路資料夾不起作用,因為應用程式在啟動之前將複製到本機電腦上的臨時資料夾)並更新您的更新文件來解決此問題。

這對於某些應用程式也不起作用。根據應用程式設定的好壞,您可能別無選擇,只能為所需的使用者提供執行這些檔案的電腦的本機管理員存取權限。我遇到了一些可怕的製造軟體(從 IT 管理角度來看)的問題,我們別無選擇,只能使用。

我已成功將此流程用於 UPS World Ship 等定期推送需要管理員權限的更新的應用程式。此過程不適用於諸如 Sage 50 Accounting 之類的軟體,該軟體打包了單獨的更新文件,這些文件只是其他更新文件的包裝,所有這些文件都嘗試從臨時資料夾位置運行...

因此,底線是,儘管這可能是一種將非管理員用戶的應用程式列入白名單的修復方法,但您的里程會因應用程式而異。除此之外,您正在尋找一些應用程式管理軟體,該軟體也可以處理推播更新......這對於小型企業來說可能太昂貴(或純粹是過度殺傷力)。

參考:使用相容性工具包刪除 UAC 提示

相關內容