Bagaimana cara mendapatkan nama host lokal di PowerShell?


181

Bagaimana cara saya mendapatkan nama localhost (mesin) di PowerShell? Saya menggunakan PowerShell 1.0.

Jawaban:


260

Anda bisa menggunakan metode .NET Framework:

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

juga

$env:COMPUTERNAME


5
Catatan: jika nama DNS Anda lebih panjang dari 15 karakter, [System.Net.Dns]::GetHostName()(tidak terpotong) lebih baik dari $env:COMPUTERNAME(terpotong)
sonjz

Pada Windows 10 Enterprise, env: COMPUTERNAME menghasilkan kesalahan berikut: env: COMPUTERNAME: Istilah 'env: COMPUTERNAME' tidak diakui sebagai nama cmdlet, fungsi, file skrip, atau program yang dapat dioperasikan. Periksa ejaan nama, atau jika jalur disertakan, verifikasi jalur itu benar dan coba lagi. Pada baris: 1 karakter: 1 + env: COMPUTERNAME + ~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (env: COMPUTERNAME: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
mathisfun

2
@mathisfun $env:COMPUTERNAMEberfungsi dengan baik di Windows 10 (harap perhatikan tanda dolar di awal)
oleksa

$env:COMPUTERNAMEtidak akan bekerja di Linux dan macOS. Namun [Environment]::MachineNamedemikian.
felixfbecker

62

Jangan lupa bahwa semua utilitas konsol lama Anda berfungsi dengan baik di PowerShell:

PS> hostname
KEITH1

Namun, ini adalah jawaban yang baik, jika Anda ingin menyimpan nilai dalam variabel kemudian gunakan jawaban yang diterima.
Yawar Murtaza

37

Bentuk panjang:

get-content env:computername

Bentuk pendek:

gc env:computername

17
supershort: $ env: COMPUTERNAME
Ross Presser

Ini akan berfungsi dengan baik, sampai Anda memiliki server dengan nama lebih dari 15 karakter.
Gary Pendlebury

@GaryPendlebury, apa yang akan terjadi selanjutnya?
Sajuuk

@Sajuuk computernameadalah nama NetBIOS, yang dibatasi hingga 15 karakter.
Gary Pendlebury

14

Semua pertanyaan di atas benar tetapi jika Anda ingin nama host dan nama domain coba ini:

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

4

Tweak sedikit pada jawaban @ CPU-100, untuk FQDN lokal:

[System.Net.DNS]::GetHostByName($Null).HostName


4

Di PowerShell Core v6 (berfungsi di macOS, Linux dan Windows):

[Environment]::MachineName

0

Sebuah analog dari kode file bat di Powershell

Cmd

wmic path Win32_ComputerSystem get Name

Powershell

Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty name

dan ...

hostname.exe
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.