gpt4 book ai didi

powershell - 将变量传递给 PoSh 远程文件以执行

转载 作者:行者123 更新时间:2023-12-04 09:03:04 25 4
gpt4 key购买 nike

我正在尝试从机器 A 运行 PS Remote session 以访问机器 B。两者都在同一个域中并且 Kerberos 身份验证正在工作,我可以建立一个 PS Remote session 。

我正在尝试从机器 B 上的机器 A 运行脚本,将参数传递给该脚本,如下所示:

$build_script_dir = Resolve-Path .
$file_to_execute = "$build_script_dir\file_to_execute.ps1"

invoke-command -ComputerName MachineB -FilePath $file_to_execute -argumentlist $Arg1,$Arg2,$Arg3,$Arg4

这似乎没有调用脚本。我什至尝试将脚本带到远程机器,然后按如下方式执行它:
$remote_file = "c:\path-to-file\remote_file.ps1"

invoke-command -ComputerName MachineB -ScriptBlock {$remote_file} -argumentlist $Arg1,$Arg2,$Arg3,$Arg4

我错过了什么阻止脚本运行?我有大约 10 个参数要传递给脚本,脚本将操作 IIS。

保罗

最佳答案

如果脚本仅存在于远程机器上:

Invoke-Command -ComputerName Server01 -scriptBlock { C:\scripts\Test.PS1 "Arguments here"}
-FilePath在本地机器上查找脚本。

当您在 -ScriptBlock 中指定文件路径时,您可以调用驻留在远程系统上的脚本。

此外,如果您需要将任何变量从本地机器传递到远程脚本,请使用 -Argumentlist。但是, -ScriptBlock需要一个参数()。例如,
Invoke-Command -ComputerName Server01 -scriptBlock { param($name, $age) C:\scripts\Test.PS1 -Name $name -Age $age} -ArgumentList $name,$age

在上面的命令中,$name 和 $age 是局部变量。

关于powershell - 将变量传递给 PoSh 远程文件以执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11239545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com