Я редактирую функцию, которая будет вызывать команду непосредственно на виртуальной машине. Проблема, с которой я постоянно сталкиваюсь, заключается в том, что если кто-то передает объявление функции как блок сценария, я получаю сообщение об ошибке при вызове create, потому что params()
не находится в верхней части блока сценария.
Пытаюсь понять, как я могу сначала set-fulllanguage
выполнить функцию с параметрами.
function Invoke-DirectOnVM
{
[CmdletBinding()]
Param (
[Parameter(Mandatory = $true)]
[CloudEngine.Configurations.EceInterfaceParameters]
$Parameters,
[Parameter(Mandatory = $true)]
[String[]]$VMNames,
[Parameter(Mandatory = $true)]
[Object]$VMCredential,
[Parameter(Mandatory = $true)]
[ScriptBlock]$ScriptBlock,
[Object[]]$ArgumentList = $null
)
{
Invoke-Command -VMName $localVMs -Credential $using:VMCredential -ScriptBlock ([ScriptBlock]::Create($("Import-Module OpenUpSession; Set-FullLanguage; `r`n" + $using:ScriptBlock)))
}
-ScriptBlock {Import-Module OpenUpSession; Set-FullLanguage; $using:ScriptBlock.Invoke($using:ArgumentList)}
- person TheMadTechnician   schedule 26.04.2018} -Argum
в вашей ошибке, но этого нет ни в вашем коде, ни в моем коде. Пожалуйста, сделайте код, который вы публикуете, точным представлением кода, с которым вы работаете. - person TheMadTechnician   schedule 26.04.2018-ScriptBlock {Param($ScriptBlock,$ArgumentList);Import-Module OpenUpSession; Set-FullLanguage; $ScriptBlock.Invoke($ArgumentList)} -ArgumentList $ScriptBlock, $ArgumentList
- person TheMadTechnician   schedule 26.04.2018