PowerShell远程执行脚本是如何引用外部参数

本文详细介绍了如何在Jenkins job中使用PowerShell远程执行脚本并利用外部变量的方法,通过创建远程会话和使用Invoke-Command命令引用参数,成功解决了在脚本中使用外部变量的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在写Jenkins job,其中我想用PowerShell远程执行一段脚本,并且在这段脚本中使用外部变量,是了很多方法都不行,后来参考一下两篇文章终于解决了:

http://ss64.com/ps/invoke-command.html

http://blog.youkuaiyun.com/itanders/article/details/9073351


下面来讲讲我的方法:

首先有一个外部变量,该变量是在执行远程脚本之前初始化的:

$variables = Get-Content -Path Bundles.txt
$variables

然后启动一个远程会话:

$user = $env:USER_NAME
$password = $env:PASSWORD

Enable-PSRemoting -Force
$secPassword = ConvertTo-SecureString $password -AsPlainText –Force
$mycreds = New-Object system.Management.Automation.PSCredential($user, $secPassword)
$s = New-PSSession -computerName $DestinationServer -credential $mycreds

最后在远程机器上执行代码:

Invoke-Command -Session $s -ArgumentList $variables -Scriptblock {

    param($variables)
$DeployedBundles = ""
    if($variables -ne $null -and $variables.Length -gt 0){
        $DeployedBundles = $variables.Split("=")[1].Split(",")
    }
   #Other codes...
}


看到了吗? 关键点在于Invoke-Command命令引用了一个参数 -ArgumentList,同时在ScriptBlock里面使用param调用该参数?


哈哈,就这么简单问题解决了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值