PowerShellでFQDNを取得する方法色々

PowerShellで自コンピュータのFQDNを取得する方法を色々と。

単純に環境変数を組み合わせる

これが一番シンプルですが全部大文字になってしまいます。

"$env:COMPUTERNAME.$env:USERDNSDOMAIN"

 
 

WMIを利用する

$info = Get-WmiObject Win32_ComputerSystem
"{0},{1}" -F $info.Name,$info.Domain

ワンライナーで書くとすると、、、

(@(Get-WmiObject Win32_ComputerSystem).foreach({"{0},{1}" -F $_.Name,$_.Domain}))[0]

パイプラインの方が若干わかりやすいですね。真ん中のSelect文は省略しても基本は問題無いと思います。

Get-WmiObject Win32_ComputerSystem | Select -First 1 | foreach({"{0},{1}" -F $_.Name,$_.Domain})

 

.Netライブラリを利用①(System.Net.Dns)

大文字小文字区別でき文字列としては一番短い。

[System.Net.Dns]::GetHostEntry($env:COMPUTERNAME).Hostname

 
 

.Netライブラリを利用②(System.Net.NetworkInformation.IPGlobalProperties)

(@([System.Net.NetworkInformation.IPGlobalProperties]::GetIPGlobalProperties()).foreach({"{0},{1}" -F $_.HostName,$_.DomainName}))

 

パイプライン方式で書くと、、、

[System.Net.NetworkInformation.IPGlobalProperties]::GetIPGlobalProperties() | Select -First 1  | foreach { "{0}.{1}" -F $_.HostName,$_.DomainName }