PowerShellでlocalhost名を取得するにはどうすればよいですか?


181

PowerShellでlocalhost(マシン)名を取得するにはどうすればよいですか?PowerShell 1.0を使用しています。

回答:


260

.NET Frameworkメソッドを使用するだけです。

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

また

$env:COMPUTERNAME


5
注:DNS名が15文字より長い場合、[System.Net.Dns]::GetHostName()(切り捨てない)は$env:COMPUTERNAME(切り捨て)より優れています
sonjz

Windows 10 Enterpriseでは、env:COMPUTERNAMEが次のエラーを生成しました:env:COMPUTERNAME:「env:COMPUTERNAME」という用語は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認するか、パスが含まれていた場合は、パスが正しいことを確認して、再試行してください。行:1 char:1 + env:COMPUTERNAME + ~~~~~~~~~~~~~~~~ + CategoryInfo:ObjectNotFound:(env:COMPUTERNAME:String)[]、CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException
mathisfun

2
@mathisfun $env:COMPUTERNAMEはWindows 10で正常に動作します(最初のドル記号に注意してください)
oleksa

$env:COMPUTERNAMELinuxとmacOSでは動作しません。ただし、[Environment]::MachineNameそうです。
felixfbecker

62

PowerShellで古いコンソールユーティリティがすべて正常に機能することを忘れないでください。

PS> hostname
KEITH1

これは良い答えですが、変数に値を保存したい場合は、受け入れられた答えを使用してください。
Yawar Murtaza、

37

長い形式:

get-content env:computername

ショートフォーム:

gc env:computername

17
supershort:$ env:COMPUTERNAME
ロスプレッサー

15文字を超える名前のサーバーができるまで、これは問題なく機能します。
ゲイリーペンドルバリー2018年

@GaryPendleburyそれでは何が起こりますか?
Sajuuk

@Sajuuk computernameはNetBIOS名で、15文字に制限されています。
ゲイリーペンドルベリー

14

上記の質問はすべて正しいですが、ホスト名とドメイン名が必要な場合は、これを試してください。

 [System.Net.DNS]::GetHostByName('').HostName



0

Powershellのbatファイルコードの類似物

Cmd

wmic path Win32_ComputerSystem get Name

パワーシェル

Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty name

そして...

hostname.exe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.