2017-10-11 11 views
0

解決できない問題が発生しています。私はサーバー上でローカルにスクリプトを実行しようとしていますが、スクリプトはリモートサーバー上に存在します。それは、安全な文字列とキーファイルを持つファイルから一連のドメイン資格情報を作成するために作成したスクリプトです。リモートロケーションからPowerShellスクリプトをローカルで実行する

ps1ファイル自体が私が実行しているシステム上にある場合、このスクリプトはローカルで正常に動作します。 ps1ファイルが他のマシンにある場合は、スクリプトをローカルで実行できません。ここで

私は、次のコマンドを使用してサーバー2からそれを実行しようとしています

$creds = Import-Csv "\\server1\D$\Credentials\creds.csv" 
$key = Get-Content "\\server1\D$\Resources\AES.key" 
foreach ($cred in $creds) { 
    $user = $cred.User 
    $password = $cred.Hash | ConvertTo-SecureString -Key $key 
    #$password = "" | ConvertTo-SecureString -AsPlainText -Force 
    $i = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$password 
New-Variable -Name ($cred.Domain + "_Cred") -Value $i -Force -Verbose 
} 

(このPS1ファイルは、「サーバー1」である)...私が実行しようとしていますスクリプトです...

& '\\server1\D$\Credentials\BuildCreds.ps1' 

これは範囲の問題か、UNCでファイルをロードしているという事実ですか?私は考えることができるすべてを試しました。

+0

エラーメッセージが便利です。 – Robin

+0

uncパス( '\\ server1:\ Credentials')の前に': 'を見たことがありません。これはエラーのようです。常に '\\ server \ share \ folder \ file.txt' –

+0

あなたは[Kerberos Double Hopの問題]を起こしそうです(https://blogs.technet.microsoft.com/ashleymcglone/2016/08/ 30/powershell-remoting-kerberos-double-hop-solved-securely) "私はServerCに接続する必要があるServerBに接続してServerAに接続していますが、私はServerCへのアクセス許可を持っていますが、まだアクセス拒否を受けます。 ServerBがServerCに資格情報を渡すことはありません。 –

答えて

0

この問題はPowerShell ISEにのみ存在するようです。私はPowerShellでコードを実行し、すべて正常に動作しました。

なぜそれがそういうのかわかりません。

関連する問題