Làm cách nào để có được tên localhost trong PowerShell?


181

Làm cách nào để có được tên localhost (máy) trong PowerShell? Tôi đang sử dụng PowerShell 1.0.

Câu trả lời:


260

Bạn chỉ có thể sử dụng phương thức .NET Framework:

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

cũng thế

$env:COMPUTERNAME


5
Lưu ý: nếu tên DNS của bạn dài hơn 15 ký tự, [System.Net.Dns]::GetHostName()(không cắt ngắn) sẽ tốt hơn $env:COMPUTERNAME(cắt ngắn)
sonjz

Trên Windows 10 Enterprise, env: COMPUTERNAME đã tạo ra lỗi sau: env: COMPUTERNAME: Thuật ngữ 'env: COMPUTERNAME' không được nhận dạng là tên của lệnh ghép ngắn, hàm, tệp tập lệnh hoặc chương trình có thể hoạt động. Kiểm tra chính tả của tên hoặc nếu một đường dẫn được bao gồm, xác minh rằng đường dẫn đó là chính xác và thử lại. Tại dòng: 1 char: 1 + env: COMPUTERNAME + ~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (env: computername: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
mathisfun

2
@mathisfun $env:COMPUTERNAMEhoạt động tốt trên Windows 10 (vui lòng lưu ý ký hiệu đô la ngay từ đầu)
oleksa

$env:COMPUTERNAMEsẽ không hoạt động trên Linux và macOS. Tuy nhiên, [Environment]::MachineNamekhông.
felixfbecker

62

Đừng quên rằng tất cả các tiện ích bảng điều khiển cũ của bạn chỉ hoạt động tốt trong PowerShell:

PS> hostname
KEITH1

Đây là một câu trả lời tốt, tuy nhiên, nếu bạn muốn lưu giá trị trong một biến thì hãy sử dụng câu trả lời được chấp nhận.
Yawar Murtaza

37

Hình thức dài:

get-content env:computername

Hình thức ngắn:

gc env:computername

17
supershort: $ env: COMPUTERNAME
Ross Presser

Điều này sẽ hoạt động tốt, cho đến khi bạn có một máy chủ có tên dài hơn 15 ký tự.
Gary Pendlebury

@GaryPendlebury chuyện gì sẽ xảy ra sau đó?
Sajuuk

@Sajuuk computernamelà tên NetBIOS, được giới hạn trong 15 ký tự.
Gary Pendlebury

14

Tất cả các câu hỏi trên đều đúng nhưng nếu bạn muốn tên máy chủ và tên miền hãy thử điều này:

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

4

Một điều chỉnh nhỏ về câu trả lời của @ CPU-100, cho FQDN cục bộ:

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


4

Trong PowerShell Core v6 (hoạt động trên macOS, Linux và Windows):

[Environment]::MachineName

0

Một sự tương tự của mã tập tin bat trong Powershell

Cmd

wmic path Win32_ComputerSystem get Name

Quyền hạn

Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty name

và ...

hostname.exe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.