2017-10-11 108 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中运行代码,一切正常。

我不明白为什么它就是这样。