0

似乎每个回答这个问题的人都通过举 A. 不相关的例子来回避这个问题;或者,B. 使用-scriptBlock版本。

这就是我想要的:我想在远程机器上从本地机器上运行 PowerShell 脚本。我需要传入一个参数或参数。

这是我正在做的事情:

$responseObject = Invoke-Command -ComputerName MININT-OU9K10R -FilePath C:\Users\Documents\RemoteProofOfConcept\validatePath.ps1 -ArgumentList $filename  -AsJob

我想传入$filename脚本validatePath.ps1,但我不知道该怎么做。

有人可以告诉我如何做到这一点,或者告诉我我做错了什么吗?

这些链接都没有帮助:

使用 Invoke-Command 调用脚本时在 PowerShell 中获取脚本目录

Powershell Invoke-Command with-FilePath 给出 ItemNotFoundException

如何使用 Invoke-Command 传递命名参数?

4

1 回答 1

1

这适用于 PowerShell v3。你是v2吗?

9# gc .\foo.ps1
param($myarg)

hostname
"parameter value of myarg is $myarg"
10# $filename = "c:\foo.txt"
11# Invoke-Command Beagle2 -FilePath .\foo.ps1 -ArgumentList $filename
BEAGLE2
parameter value of myarg is c:\foo.txt

顺便说一句,远程计算机上不存在 foo.ps1。它由 PowerShell 传输到远程计算机以供执行。现在,如果$filename包含本地计算机路径,我不确定它如何在远程计算机上工作,除非它指向两台计算机共有的文件。

于 2013-07-11T21:31:30.473 回答