【问题标题】:Pass Argument to -FilePath in Powershell将参数传递给 Powershell 中的 -FilePath
【发布时间】:2013-07-11 20:36:21
【问题描述】:

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

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

这是我正在做的事情:

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

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

谁能告诉我如何做到这一点,或者告诉我我做错了什么?

这些链接都没有帮助:

Get script directory in PowerShell when script is invoked with Invoke-Command

Powershell Invoke-Command with-FilePath Gives ItemNotFoundException

How do I pass named parameters with Invoke-Command?

【问题讨论】:

  • 不,这就是重点。该文件在我的本地机器上。如果它在远程机器上,我意识到我可以使用-scriptblock,但事实并非如此。我想在远程机器上运行本地脚本,并且能够将参数传递给这些脚本。

标签: .net windows powershell


【解决方案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 包含本地计算机路径,我不确定它在远程计算机上如何工作,除非它指向两台计算机共有的文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 2019-02-09
    • 2022-01-05
    • 1970-01-01
    • 2023-03-26
    • 2019-12-13
    相关资源
    最近更新 更多