0

我一直在搜索所有的internet和stackOF來解決這個問題。 我正在嘗試使用SQL Server代理程序自動執行數據庫還原。 sql server代理作業包含四個步驟,其中3個是tsql,另一個是powershell腳本。在SQL Server代理上找不到路徑Powershell腳本

我使用管理員憑據創建了一個代理,以便腳本可以以管理員身份運行。

cd c:; 
$backuppath="Microsoft.PowerShell.Core\FileSystem::\\sharedcomputer\backup"; 
$destpath="c:\tmp\"; 
get-childitem -path $backuppath | where-object { -not $_.PSIsContainer } | 

    sort-object -Property $_.CreationTime | 

    select-object -last 1 | copy-item -Destination (join-path $destpath "byte.BAK"); 

它從源共享文件夾複製.bak文件並將其放置到目標上的tmp文件夾中。 每當我通過常規的Powershell運行它,它工作正常。 每當我嘗試從SQL服務器代理運行時,我收到一個錯誤,指出它找不到路徑。

我試圖甚至使用net use來傳遞共享文件夾的憑據。我認爲這與文件夾具有證書要求的事實有關。

我已經轉向密碼文件共享以及源服務器上,但由於某種原因,當我使用Windows資源管理器來查找共享文件時,它仍然要求提供憑據。一旦它保存並緩存,我就可以使用powershell來進入該文件夾。但是當它從sql server代理執行時,這些都不起作用

+0

同樣的問題。這似乎不是一個受歡迎的問題。 :| – Ben

回答

0

我終於可以通過Windows Server傢伙的一點幫助來解決這個問題...... 回到回答這個問題。當我創建代理代理時,我使用了與當前域帳戶相關聯的憑證,例如Domain \ Administrator。

爲了使代理連接到遠程服務器,它需要在該域上擁有憑據。 所以我做的是在我的目標和源服務器上使用相同的名稱和密碼創建另一個域帳戶,併爲其授予我需要的文件夾的權限

該帳戶已在代理中使用,憑據已設置爲。 \帳戶,所以這是由於通配符來代替代理能在兩個服務器之間跳回和堡壘,成功地傳輸文件....

希望這有助於在這裏

相關問題