簡體   English   中英

Powershell遠程簽名策略不適用於SQL Agent Job,但在“手動”運行時有效

[英]Powershell remotesigned policy not working with SQL agent Job, but working if run “manually”

我有一個使用Powershell腳本進行數據庫備份的SQL 2008作業。 SQL作業中的每個步驟都是“操作系統(CmdExec)”類型。 每個步驟都將啟動執行SQL備份和其他操作的Powershell腳本。 該腳本位於遠程服務器上,因此,如果我們需要進行更改,則只需進行一次更改。

如果我將Powershell執行策略設置為“繞過”,則SQL作業將起作用。 但是,如果我將其設置為“遠程簽名”,則無法說執行策略未正確設置。 但是,如果我從CMD窗口啟動腳本,則腳本將正確運行。 服務器是64位的,因此我確保32位和64位Shell的執行策略都設置為“遠程簽名”。 並且,我將遠程服務器UNC路徑設置為IE中的受信任Intranet站點(發現Powershell會將本地UNC路徑視為http路徑,除非在IE中設置了該路徑)。

就像我說的那樣,如果從CMD窗口中將執行策略設置為遠程簽名,則手動啟動它可以正常運行;如果將執行策略設置為繞過,則在關閉該SQL作業時可以正常運行。 僅當它從SQL啟動並且執行策略設置為remotesigned時,它才會失敗。

它已經運行了一年,並且Powershell執行策略沒有設置為繞過任何問題,但是有人告訴我現在將執行策略設置為remotesigned。 使其不再處於旁路狀態。

有什么想法嗎?

聽起來運行作業所使用的憑據與您的登錄憑據不同。

您可能必須更改代理作業用戶的權限,以允許Powershell腳本按預期運行。

為了使某些舊版應用程序能夠與Powershell一起使用,我發現自己正在編寫小的.bat“引導”腳本,其中僅包含powershell.exe C:\\Scripts\\MyScript.ps1

無論如何,這都不是一種創造性,優雅的解決方案,也不是“解決問題”的解決方案,但是,如果該解決方案在CMD上有效,則可以嘗試這樣做,以使其盡快運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM