次の方法で共有


Invoke-AzVMRunCommand

VM でコマンドを実行します。

構文

Invoke-AzVMRunCommand
      [-ResourceGroupName] <String>
      [-VMName] <String>
      -CommandId <String>
      [-ScriptPath <String>]
      [-ScriptString <String>]
      [-Parameter <Hashtable>]
      [-AsJob]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-AzVMRunCommand
      -CommandId <String>
      [-ScriptPath <String>]
      [-ScriptString <String>]
      [-Parameter <Hashtable>]
      [-ResourceId] <String>
      [-AsJob]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-AzVMRunCommand
      -CommandId <String>
      [-ScriptPath <String>]
      [-ScriptString <String>]
      [-Parameter <Hashtable>]
      [-VM] <PSVirtualMachine>
      [-AsJob]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

説明

VM で実行コマンドを呼び出します。

例 1: Windows でコマンドを呼び出す - スクリプトがリモート Windows VM に存在する場合に ScriptPath パラメーターを使用する

Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RunPowerShellScript' -ScriptPath 'sample.ps1' -Parameter @{param1 = "var1"; param2 = "var2"}

リソース グループ 'rgname' の 'vmname' という名前の Windows VM でスクリプト 'sample.ps1' をオーバーライドして、実行コマンド 'RunPowerShellScript' を呼び出します。 Var1 と var2 は sample.ps1 のパラメーターとして定義されます。 パラメーター値には文字列型のみを指定でき、スクリプトは必要に応じて他の型に変換します。

例 2: Windows でコマンドを呼び出す - ScriptString パラメーターを使用して Windows VM でコマンドレットを実行する

Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RunPowerShellScript' -ScriptString "Set-TimeZone -Name 'Coordinated Universal Time' -PassThru"

このコマンドは、Set-TimeZone コマンドレットを関連付けられたパラメーターと共に実行する実行コマンド 'RunShellScript' を呼び出します。 この例は、Windows VM で短いコマンドを実行する場合に便利です。

例 3: Windows でコマンドを呼び出す - ScriptString パラメーターを使用して Windows VM でスクリプト ブロックを実行する

$ScriptBlock = {
    param(
        [string] $NewTimeZone,
        [string] $NewDate
        )
    Set-TimeZone -Id $NewTimeZone
    Set-Date -Date [DateTime]$NewDate
}

$Script = [scriptblock]::create($ScriptBlock)

Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RunPowerShellScript' -ScriptString $Script -Parameter @{'NewTimeZone' = "UTC"; 'NewDate' = "Dec-8"}

このコマンドは、"vmname" という名前のリモート Windows VM でスクリプト ブロックを実行する実行コマンド 'RunShellScript' を呼び出します。 スクリプト ブロックの方法を使用すると、1 回の呼び出しでパラメーターを使用して複数のコマンドレットを実行できます。また、異なるコマンドレットに対して複数の実行コマンドを呼び出す時間も節約できます。 パラメーター値には文字列型のみを指定できます。

例 4: Linux でコマンドを呼び出す

export param1=var1 param2=var2
set -- var1 var2 var3

Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -Name 'vmname' -CommandId 'RunShellScript' -ScriptPath 'sample.bash' -Parameter @{"param1" = "var1";"param2" = "var2"}
echo This is a sample bash script
echo Usage 1: Ordered parameters: $0 $1
echo Usage 2: Named exports: $var1 $var2

このコマンドは、実行コマンド 'RunShellScript' を呼び出し、'vmname' という名前の Linux VM でスクリプト 'sample.bash' をオーバーライドします。 Var1 と var2 は、sample.bash のパラメーターとして定義されます。

パラメーター

-AsJob

バックグラウンドでコマンドレットを実行し、進行状況を追跡するジョブ オブジェクトを返します。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CommandId

実行コマンド ID。

型:String
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

型:SwitchParameter
Aliases:cf
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DefaultProfile

Azure との通信のために使用される資格情報、アカウント、テナント、サブスクリプションです。

型:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Parameter

run コマンド のパラメーター。 スクリプトの実行時に渡されるキーと値のペアとしてパラメーターを指定します。

型:Hashtable
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ResourceGroupName

リソース グループの名前。

型:String
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-ResourceId

VM のリソース ID。

型:String
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-ScriptPath

実行するスクリプトのパス。 この値を指定すると、指定されたスクリプトによってコマンドの既定のスクリプトがオーバーライドされます。 パスは、ローカル ファイル システムのファイルを指す必要があります。 コマンドによって読み込み、実行用に送信されます。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ScriptString

文字列として実行されるスクリプト。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-VM

PS 仮想マシン オブジェクト。

型:PSVirtualMachine
Aliases:VMProfile
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-VMName

仮想マシンの名前。

型:String
Aliases:Name
配置:1
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

型:SwitchParameter
Aliases:wi
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

String

PSVirtualMachine

出力

PSRunCommandResult