2012-06-14 133 views
2

當我試圖通過計劃任務調用PowerShell中gpg2.exe 2.0GPG輸出缺相運行無人值守

腳本/任務對文件進行加密運行正常,當我登錄,或者通過ISE或在Windows任務計劃程序中運行任務。我在Windows Server 2008上,正在使用的服務帳戶不是管理員,但可以訪問所有源和目標文件夾。

當任務運行無人值守時,gpg的輸出不會顯示在目標目錄中,並且不會返回任何錯誤。我已經將用戶添加到安全策略中,以允許它作爲批處理進行登錄。它能夠將目前存在的文件(源文件)寫入目標文件夾,而不是GPG的輸出。

奇怪的是,如果我以該系統帳戶登錄和註銷,行爲會不一致,有時作業將無人值守成功運行,直到計劃過期,然後在下一個計劃中啓動錯誤。

我相當肯定這是一個圍繞會話的設置,因爲它一直在我登錄時工作,只有在某些情況下不工作時。任何幫助,將不勝感激。

請參閱如何我在PowerShell中(是的,我是一個noob :))調用GPG下面的例子

$ GPG_Prog = 'C:\ Program Files文件\ GNU \的GnuPG \ gpg2.exe'

$ GPG_Encrypt = ' - E'

$ GPG_Encrypt_to = ' - R XXXXXXXX'

& 「$ GPG_Prog」 -o C:\位置\ $ File.gpg --batch --quiet - 是「$ GPG_Encrypt」「$ GPG_Encrypt_to」\ source location \ $文件

布展項目\ $ File.gpg \網絡輸出位置

感謝

回答

1

好了,而我在等待響應,我一直在刻苦攻讀的問題。根據發佈的其他問題的一些推論,並研究從GPG返回的完全無用的錯誤代碼,我認爲這可能是Windows中的DEP導致的問題。

爲了測試它,我將gpg可執行文件添加到DEP(不是推薦的MS解決方案)的例外列表中,然後將所有加密任務安排爲無人值守運行。他們在一個多小時的測試時間內繼續開始並完美地運行。

根據我已閱讀和經驗,看起來,因爲GPG作爲無人值守運行,它不會獲得分配的內存,如果它作爲登錄的實際用戶配置文件運行,它將會分配。一旦它開始加密任何合理大小的文件並嘗試訪問超出標記爲可供Windows執行的設置限制的內存時,DEP會立即崩潰GPG實例,導致應用程序日誌中出現的錯誤信息並不真正有用。

無論如何,希望這可以幫助那裏的人!

歡呼

3

我們有一個類似的問題與解密,發現,真正的問題是,是,關鍵是每個存儲在用戶的漫遊配置文件默認。 因此,在我們的情況下,它與DEP無關,並且與權限不足無關,因爲用戶已具有「批量執行」權限。

所以我們不得不將密鑰文件從漫遊配置文件移動到本地目錄。

Basicly這些步驟是必要的: 1)找出你的關鍵目錄實際上是(--list命令)從漫遊目錄添加到路徑 2)複製/粘貼文件(FI C:\ winutil \庫) 3)刪除GPG網站或這裏的「老」鍵 4)創建--homeDir選擇新的密鑰

請找到指令: http://www.glump.net/howto/cryptography/practical-introduction-to-gnu-privacy-guard-in-windows#6.1_Preparing_a_Minimal_Copy_of_GPG

啓動PowerShell腳本無人值守和驗證:-)。 HTH, Robert