(ESXi)リモートでESXiをシャットダウンさせる

何をするか

ESXiホストをネットワーク経由でシャットダウンさせます。

手順(パターン1)

SSHで接続

ESXiのデフォルトではSSH経由での接続ができないので、SSHサービスを立ち上げてTeraTermを使ってシャットダウンさせます。

vSphere clientでESXiホストにログインします。
「構成」タブより左のメニューから「セキュリティプロファイル」をクリック。
「SSH」を選択して「オプション」を押下する。
次回から自動起動させる為に「ホストに連動して開始および停止」を選択。
「開始」を押下して「OK」「OK」を押下する。

TeraTermを起動してESXiホストにSSH接続をする。
「ユーザー名」を入力して、「キーボードインタラクティブ認証を使う」を選択。

パスワードを入力する。

シャットダウンコマンドを入力

poweroff

手順(パターン2)

PowerCLIで接続

PowerCLIをインストール → PowerCLI 6.5

PowerCLIを起動して下記2行を実行。

Connect-VIServer –Server ESXiホスト –User ユーザ –Password パスワード -Force
Stop-VMHost ESXiホスト -Force:$true  -Confirm:$false

※この方法だと仮想マシンのシャットダウンはできないので、ttlなどで仮想マシンのシャットダウンをしてから「Stop-VMHost」コマンドを実行する

感想

パターン1,2ともにマクロ化(スクリプト化)すればvSphere clientからやるよりは簡単かな。

powershellでping疎通確認

どんな処理か

テキストに記載されているIPアドレスに対して
上から順番にpingを実行して結果を出力する。

事前準備

user1のデスクトップに「ping_target.txt」が存在すること

コード

#ping対象ホスト読み込み(txtのパスは適宜修正する)
$target = (Get-Content C:\Users\user1\Desktop\ping_target.txt) -as [string[]]

$i=1
foreach ($l in $target) {
    #CountでPingRequestを投げる回数を記載
    $pingAlive = @(Test-Connection -ComputerName $l -Quiet -Count 3)

    #結果出力
    if ($pingAlive -eq $True) {
        Write-Host ('→' + $l + ' = 届きます')
    } else {
        Write-Host ('→' + $l + ' = 届きません')}
    $i++
}
$input = Read-Host "Enterを押して画面を閉じて下さい"

テキストファイル(ping_target.txt)

192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4

実行結果

PS C:\Users\security\Desktop> C:\Users\security\Desktop\ping.ps1
→192.168.1.1 = 届きます
→192.168.1.2 = 届きません
→192.168.1.3 = 届きます
→192.168.1.4 = 届きます
Enterを押して画面を閉じて下さい: