私はすべてのインターネットとstackOFを検索してこの問題を解決しています。 SQL Serverエージェントを使用してデータベースの復元を自動化しようとしています。 SQL Serverエージェント・ジョブは、4つのステップから構成され、そのうちの3つはtsqlであり、もう1つは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を使ってそのフォルダにcdすることができます。しかし、これはSQL Serverエージェントから実行されたときには機能しません
同じ問題を助け
希望....ワイルドカードが所定の位置にあったため、プロキシが2つのサーバー間で背中や砦にジャンプし、正常にファイルを転送することができたので。これは一般的な質問ではないようです。 :| – Ben