2012-06-13 59 views
3

假設我有一個腳本需要從普通用戶不允許讀取的地方(例如其他用戶的文件夾)讀取信息。如何使用UAC提升Perl進程

目前我所能做的只是抱怨沒有作爲「超級用戶」運行而退出,但我寧願讓腳本自己去尋求提升。

+0

最簡單的解決方案可能是爲您的腳本創建一個快捷方式,並設置以管理員身份運行該進程的快捷方式。 – ikegami

+0

@ikegami我相信這相當於右鍵單擊並選擇「以管理員身份運行」。不幸的是,Perl腳本缺少這個菜單選項,以及它們的快捷方式,其中顯然涉及的相關複選框是* disabled *。 –

+0

這只是指定'perl.exe'作爲程序運行的問題。將腳本作爲參數傳遞。 (測試過) – ikegami

回答

2

如果你確定通過快捷方式啓動,可以使用以下命令:

  1. 創建一個快捷方式perl.exe所在
  2. 編輯的快捷方式。

    1. 在快捷方式選項卡,將 「目標」,以

      「C:\ BIN \ perl.exe所在」 「C:\ script.pl」

    2. [可選]在快捷方式選項卡上,將「開始」更改爲腳本所在目錄的路徑。

    3. 在快捷方式選項卡上,單擊「高級」,然後選中「以管理員身份運行」。

有一個名爲「runas」的工具,但我似乎無法得到它不向您的管理員密碼工作。

1

我在自己的作品中對這個問題沒有很好的回答,所以我寫了Win32::RunAsAdmin。它所做的就是調用通過OLE Windows外殼程序與「運行方式」爲動詞,但其打包方便,所有您需要做的就是堅持在你的代碼的開頭如下:

use Win32::RunAsAdmin qw(force); 

在導入一步,它將檢查提升的特權,並且如果你已經在提升模式下運行,則默默地返回。否則,它將使用UAC彈出菜單以提升模式重新啓動腳本。

相關問題