gpt4 book ai didi

Azure 自动化无法将参数传递给 VM 内的 powershell 脚本

转载 作者:行者123 更新时间:2023-12-03 02:30:55 26 4
gpt4 key购买 nike

我可以使用azure自动化runbook(powershell)来运行驻留在虚拟机中的Powershell。只要 VM Powershell 不需要任何参数,它就可以正常工作。如果我们将参数从 Runbook 发送到 VM powershell,则它不起作用。 VM powershell 接收的参数为空。 Runbook 没有其他问题。这就是参数的传递方式。

$runcmdparameters=
@{"name" = "EXE"}

Out-File -InputObject $ScriptToRun -FilePath ScriptToRun.ps1

Invoke-AzVMRunCommand -AsJob -ResourceGroupName $RG-Name -Name $myName-CommandId 'RunPowerShellScript' -ScriptPath ScriptToRun.ps1 -Parameter $runcmdparameters -Verbose

这是 VM-powershell-script 中接收参数的方式

[CmdletBinding()]
param (
[Parameter(Position=0)]
[string]$name
)

最佳答案

经过我的验证,你只需要传入一个Hashtable变量到运行命令参数-Parameter即可,引用here .

这是一个工作示例供您引用:

function Install-Postgres {

[CmdletBinding()]
param (
[Parameter(Position=0)]
[string]$name
)

Write-Host "This is a sample script with parameters $name"

}

$ScriptToRun = Get-Content Function:\Install-Postgres

Out-File -InputObject $ScriptToRun -FilePath ScriptToRun.ps1

$params = @{"name"="EXE" }

$ss=Invoke-AzVMRunCommand -ResourceGroupName $rgName -VMName $VMVame -ScriptPath "ScriptToRun.ps1" -CommandId 'RunPowerShellScript' -Parameter $params
Write-output $ss.Value[0].Message

enter image description here

关于Azure 自动化无法将参数传递给 VM 内的 powershell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65234057/

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