2017-10-11 116 views
0

我遇到了無法解決的問題。我試圖在服務器上本地運行腳本,該腳本存在於遠程服務器上。它是我創建的一個腳本,它使用安全字符串和密鑰文件從文件中創建一系列域憑證。如果PS1文件本身就是我運行在系統上從遠程位置本地運行PowerShell腳本

腳本本地工作的罰款。如果ps1文件在另一臺機器上,我無法在本地運行腳本。

這裏是我試圖運行腳本...(這PS1文件是「服務器1」)

$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 
} 

我嘗試使用以下命令從服務器2運行...

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

有什麼想法?這是範圍問題,還是我正在使用UNC加載文件?我試過了我能想到的一切。

+0

錯誤消息將會有用。 – Robin

+0

從未在('\\ server1:\ Credentials')之前的unc路徑中看到':',看起來像是一個錯誤。一直是'\\ server \ share \ folder \ file.txt' –

+0

你也可能會遇到[Kerberos Double Hop問題](https://blogs.technet.microsoft.com/ashleymcglone/2016/08/ 30/powershell-remoting-kerberos-double-hop-resolved-safely /)「我在ServerA上,連接到ServerB,我需要到達ServerC,我有權訪問ServerC,但我仍然訪問拒絕。 ServerB將證書傳遞給ServerC「。 –

回答

0

好像這個問題只在PowerShell ISE中存在。我在PowerShell中運行代碼,一切正常。

我不明白爲什麼它就是這樣。