0

私はすべてのインターネットと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エージェントから実行されたときには機能しません

+0

同じ問題を助け

希望....ワイルドカードが所定の位置にあったため、プロキシが2つのサーバー間で背中や砦にジャンプし、正常にファイルを転送することができたので。これは一般的な質問ではないようです。 :| – Ben

答えて

0

Windows Serverのユーザーからの少し助けを借りて、これを最終的に把握することができました... 質問への回答に戻る。プロキシエージェントを作成したとき、現在のドメインアカウントに関連付けられた資格情報、つまりDomain \ Administratorを使用しました。

プロキシがリモートサーバーに接続するには、そのドメインの資格情報が必要です。 私は、同じ名前とパスワードを使ってターゲットとソースサーバーに別のドメインアカウントを作成し、必要なフォルダにアクセス許可を与えました。

そのアカウントはプロキシで使用されています。 \アカウント名を、これはここに

関連する問題