Windows-Server-2012

系統找不到指定的文件 - 任務計劃程序。贏伺服器 2012

  • August 28, 2020

我有批處理腳本文件,它應該用 pgp 加密文件。我已經在任務計劃程序中定義了一個任務來執行此操作,但我一直收到錯誤“系統找不到指定的文件”。

有趣的是,當我在我的 powershell 中執行同一行腳本時,成功生成了加密文件。

我想知道是否有人知道這裡可能出了什麼問題?

我試圖在我的批處理腳本中給出完整路徑,並在定義操作時部分添加了 start 中的傳遞。

批處理腳本程式碼在這裡::

rem @echo off 
@set path=c:\test;%path%

@set d=%date:~-4,4%%date:~4,2%%date:~-7,2% 
@set d=%d: =_% 
@set t=%time:~0,2%%time:~3,2%%time:~6,2% @set t=%t: =0%

Rem  Generate PGP encrypted file 
@echo Starting PGP... >> c:\apps\ftpLogs\test.log 
gpg2 --batch --yes -r testkey --output c:\test\foo\test_20150505.pgp --encrypt c:\test\foo\test_20150505.txt >> c:\apps\ftpLogs\test.log

我在powershell中執行的執行良好的腳本是這一行:

gpg2 --batch --yes -r testkey --output c:\test\foo\test_20150505.pgp --encrypt c:\test\foo\test_20150505.txt >> c:\apps\ftpLogs\test.log

最後我能夠解決這個問題。問題出在使用者權限上。假設批處理腳本加密文件,然後將加密文件 ftp 到供應商的 ftp 伺服器。

顯然,在 Windows Server 2012 中,管理員有權創建文件(此處為加密文件),而該使用者無權發送文件。SYSTEM使用者有發送權限,但無創建權限。(他們都在 Win Server 2008 中擁有此權限)。

因此我最後做的是製作兩個不同的批處理腳本任務,並以 10 分鐘的時間距離安排它們。第一個是使用管理員權限執行上述程式碼,第二個是使用 SYSTEMS 將其發送出去。

引用自:https://serverfault.com/questions/689873