我有一个驻留在ServerA上的powershell脚本(test.ps1)。应该做的所有脚本都是检查服务器上是否存在文件夹。我正在从客户端(在同一网络内)执行脚本
test.ps1
test-path E:\automation
# returns whether this folder exists on ServerA
我从ComputerB的powershell调用该脚本。
PS > pushd \\serverA\scripts
PS > .\test.ps1
输出:
False
预期产出:
True
问题:
The script is trying to locate the folder on the "local system" (ComputerB) rather than ServerA
答案 0 :(得分:1)
您是否尝试过powershell远程处理:
输入-PSSession -ComputerName ServerA
这将允许PowerShell命令在ServerA上运行
答案 1 :(得分:0)
这应该有效:
invoke-command \\serverA\scripts\test.ps1 -computername serverB
答案 2 :(得分:0)
您可以使用PSSession执行此操作。我的工作代码:
$ip = "<server ip / dns name>"
$user = "<your user name>"
$s = New-PSSession -ComputerName $ip -Credential $user
$serverTestFolder = "c:\"
if (Invoke-Command -Session $s -ScriptBlock {Test-Path -path $args[0]} -ArgumentList $serverTestFolder) {
# here you are when folder exist on remote server
}
重要的是你需要通过$serverTestFolder
将变量ArgumentList
作为参数传递,然后通过$args
使用它([0]是ArgumentList中参数的位置)。
答案 3 :(得分:-2)
Test-Path "filesystem::\\\Srv\share"