PowerShell でローカルホスト名を取得する

Marion Paul Kenneth Mendoza 2023年1月30日
  1. PowerShell のレガシーコマンドを使用してローカルホスト名を取得する
  2. PowerShell の環境変数を使用してローカルホスト名を取得する
  3. PowerShell の.NETFramework ライブラリを使用してローカルホスト名を取得する
  4. PowerShell で Windows Management Instrumentation を使用してローカルホスト名を取得する
PowerShell でローカルホスト名を取得する

Localhost は、アクセスに使用される現在のデバイスを参照するホスト名を定義するために通常使用する技術用語です。したがって、ローカルマシンの現在の名前を照会する必要がある場合があります。

この記事では、Windows PowerShell を使用してコンピューターのローカルホスト名を取得するいくつかの方法について説明します。

PowerShell のレガシーコマンドを使用してローカルホスト名を取得する

多くの従来のコマンドプロンプト(CMD)コマンドは、Windows PowerShell スクリプト環境で機能します。PowerShell 環境は、エイリアスを使用してこれらのコマンドをレガシー環境から転送します。

この一例は、コマンド hostname です。コマンド hostname は、コマンドプロンプトを実行するときにローカルコンピュータの名前を返します。

サンプルコード:

hostname

出力:

WINDOWS-PC01

PowerShell の環境変数を使用してローカルホスト名を取得する

ローカルマシンのローカルホスト名を取得する別の方法は、PowerShell で環境変数の 1つを呼び出すことです。Windows PowerShell の Env:で示される環境変数は、オペレーティングシステムの環境とプログラムを格納します。

この情報の詳細には、アクティブなシステムパス、Windows インストールディレクトリの場所、オペレーティングシステムによって使用されるプロセスの数などが含まれます。

この特定の状況では、環境変数 Env:COMPUTERNAME を使用して、マシンのローカルホスト名を呼び出すことができます。

Get-Content Env:COMPUTERNAME

上記の例では、Get-Content コマンドレットを使用して環境変数の値を取得しました。環境変数を Windows PowerShell 変数に変換することで、これを単純化できます。

$Env:COMPUTERNAME

上記の両方のコードセットは同じ出力を生成するはずです。これは、現在使用しているマシンのローカルホスト名になります。

PowerShell の.NETFramework ライブラリを使用してローカルホスト名を取得する

Windows PowerShell では、.NET Framework には、スクリプトで呼び出すことができる独自のコマンドセットを含むライブラリがあります。さらに、.NET Framework のいくつかのコマンドは、コンピューターのローカルホスト名を出力するという同じ目標を達成します。

[System.Net.Dns]::GetHostName()
[Environment]::MachineName

Windows PowerShell で使用可能なネイティブコマンドがある場合、通常、.NET Framework ライブラリの使用は本番環境での使用をお勧めしませんが、この特定の使用例には例外を設けることができます。

ドメインに参加している場合、DNS 名は、ローカルワークグループにのみ参加しているローカルホストマシン名よりもはるかに長くなります。

したがって、DNS 名が 15 文字より長い場合、出力値が切り捨てられない [System.Net.Dns]::GetHostName() は、出力をトリミングする $env:COMPUTERNAME よりも優れています。

PowerShell で Windows Management Instrumentation を使用してローカルホスト名を取得する

Windows Management Instrumentation(WMI)は、Windows ベースのオペレーティングシステムでの管理データと操作のためのインフラストラクチャです。

WMI は、Windows ベースのアプリケーションで最も一般的に使用され、ローカルマシンのローカルホスト名の値の出力などの重要な機能を含む管理スクリプトで最も役立ちます。

Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty Name

Get-WMIObject コマンドレットは、コンピューターの製造元、ドメイン、モデルなどの複数のローカルマシン情報を保持します。さらに、Name プロパティをエクスポートするためだけにパイプすると、ローカルマシンのローカルホスト名の値が返されます。

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn