Передача параметра в скрипт из Invoke-AzVMRunCommand - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь выполнить Invoke-AzVMRunCommand для выполнения функции PS, которая принимает параметры.Приведенный ниже код показывает вызов Invoke-AzVMRunCommand

$runcmdparameters=@{
        "VolumeLable"="sdsd";
        "azurelun"="1,3,4"
                    }

Invoke-AzVMRunCommand -ResourceGroupName $ServerResourceGroupName -VMName $VMVame -ScriptPath "c:\Configurestorage.ps1" -CommandId 'RunPowerShellScript' -Parameter $runcmdparameters -Verbose

. Сценарий PS, который мне нужно выполнить на сервере:

function Configure-Storage
     {
          Param(
          [parameter(Mandatory=$true)][String]$VolumeLable,
          [parameter(Mandatory=$true)][String[]]$azurelun
          )

#create a storage pool for user databases.
 Out-File "C:\Temp\log.txt" -InputObject $VolumeLable -Append

}

Configure-Storage -VolumeLable $VolumeLable -azurelun $azurelun

Сбой сценария с аргументом Cannot bindк параметру VolumeLable, потому что это пустая строка.

Документация Microsoft по Invoke-AzVMRunCommand не очень полезна.

Как передать параметр в скрипт?

1 Ответ

0 голосов
/ 01 февраля 2019

Я думаю, вам нужно сделать это:

Param(
   [parameter(Mandatory=$true)][String]$VolumeLable,
   [parameter(Mandatory=$true)][String[]]$azurelun
)

#create a storage pool for user databases.
Out-File "C:\Temp\log.txt" -InputObject $VolumeLable -Append

Потому что то, что происходит сейчас: ваш скрипт действительно не принимает параметры, вы - функция, но вы вызываете скрипт, а не функцию.а затем вы вызываете функцию внутри скрипта.Еще один способ исправить это - добавить параметры в сам скрипт

...