hyper-v-direct-ssh Hyper-V仮想マシン(VM)を管理し、それらへの直接SSH接続を確立するように設計されたPowerShellモジュールです。このモジュールは、VMSを起動および停止し、VM情報の取得、および管理者の特権でスクリプトが実行されるようにするための関数を提供します。
システムに管理特権があることを確認してください。スクリプトでは、Hyper-Vを管理して特定のコマンドを実行するために、権限の上昇が必要です。
システムでHyper-Vが有効になっていることを確認してください。次の手順を使用してHyper-Vを有効にすることができます。
Enable-WindowsOptionalFeature - Online - FeatureName Microsoft - Hyper - V - Allスクリプトには、PowerShellバージョン7以下が必要です。これらの手順に従って、PowerShellをインストールまたは更新します。
SSHクライアントがシステムにインストールされていることを確認してください。これらの手順に従って、OpenSSHクライアントをインストールできます。
Add-WindowsCapability - Online - Name OpenSSH.Client * ssh -Vbrew install opensshターミナルを開く。
次のコマンドを実行します。
sudo apt-get install openssh-clientまたはRPMベースの分布の場合:
sudo yum install openssh-clientsVMがIPアドレスを取得するように構成され、SSHを介してアクセスできることを確認してください。スクリプトを実行する前に、ネットワーク設定と接続を確認します。
スクリプトをローカルマシンにVMManagement.ps1として保存します。ファイルパスがアクセス可能であることを確認し、スクリプトを実行するためのパスをメモしてください。
VMManagement.ps1スクリプトが保存されているディレクトリに移動します。.VMManagement.ps1モジュールを使用するには、スクリプトをVMManagement.ps1として保存し、PowerShellを使用して実行します。必要な管理特権があり、システムでHyper-Vが有効になっていることを確認してください。
.VMManagement.ps1Get-Run-AsAdministrator管理者の特権でスクリプトが実行されるようにします。
パラメーター:
ScriptPath :管理者として実行する必要があるスクリプトへのパス。例:
Get-Run - AsAdministrator - ScriptPath " C:PathToScript.ps1 " Enable-HyperVシステムでHyper-Vが有効になっているかどうかを確認し、そうでない場合は有効にします。
例:
Enable-HyperV Test-PwshVersion現在のPowerShellバージョンが7つ以上かどうかを確認します。
例:
Test-PwshVersion Get-VMListVM名のリストを取得します。
例:
$vms = Get-VMList Get-VMNameユーザーにリストからVMを選択するように求めます。
例:
$vmName = Get-VMName Get-UserNameユーザーにSSHのユーザー名を入力するように求められます。
例:
$username = Get-UserName Start-VMInstance指定されたVMを起動します。
パラメーター:
vmName :開始するVMの名前。例:
$vm = Start-VMInstance - vmName " MyVM " Add-Dash2文字ごとにダッシュを文字列に追加します。
パラメーター:
str :ダッシュが追加される文字列。例:
$dashedString = Add-Dash - str " A1B2C3D4 " Get-VMIP指定されたVMのIPアドレスを取得します。
パラメーター:
vmObject :IPアドレスを取得するVMオブジェクト。例:
$ipAddress = Get-VMIP - vmObject $vm Stop-VMInstance指定されたVMを停止します。
パラメーター:
vmName :停止するVMの名前。例:
Stop-VMInstance - vmName " MyVM " Invoke-SSHConnection指定されたVMへのSSH接続を開始します。
パラメーター:
user :SSH接続のユーザー名。vmIP :VMのIPアドレス。例:
Invoke-SSHConnection - user " username " - vmIP " 192.168.1.100 " Get-VMHeartbeat指定されたVMのハートビートステータスをチェックします。
パラメーター:
vmObject :ハートビートステータスがチェックされるVMオブジェクト。例:
$heartbeat = Get-VMHeartbeat - vmObject $vm