我遇到了一个无法解决的问题。我试图在服务器上本地运行脚本,该脚本存在于远程服务器上。这是我创建的一个脚本,它使用安全字符串和密钥文件从文件中生成一系列域凭据。
如果ps1文件本身位于我运行它的系统上,那么脚本在本地运行正常。如果ps1文件在另一台机器上,我无法在本地运行该脚本。
以下是我尝试运行的脚本...(此ps1文件位于" server1")
$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
}
我正在尝试使用以下命令从server2运行它...
& '\\server1\D$\Credentials\BuildCreds.ps1'
有什么想法?这是范围问题,还是我用UNC加载文件的事实?我已经尝试了所有我能想到的东西。
答案 0 :(得分:0)
似乎此问题仅存在于PowerShell ISE中。我在PowerShell中运行了代码,一切正常。
我不太清楚为什么会这样。