ฉันจะรับชื่อ localhost ใน PowerShell ได้อย่างไร


คำตอบ:


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' ไม่ได้รับการยอมรับว่าเป็นชื่อของ cmdlet, ฟังก์ชั่น, ไฟล์สคริปต์หรือโปรแกรมที่ทำงานได้ ตรวจสอบการสะกดชื่อหรือถ้ารวมพา ธ ตรวจสอบว่าพา ธ นั้นถูกต้องแล้วลองอีกครั้ง ที่บรรทัด: 1 ถ่าน: 1 + env: computername + + ~~~~~~~~~~~~~~~~ CategoryInfo: ObjectNotFound: (env: computername: String) [] CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
mathisfun

2
@mathisfun $env:COMPUTERNAMEปรับการทำงานบน Windows 10 (โปรดเครื่องหมายดอลลาร์ทราบที่จุดเริ่มต้น)
Oleksa

$env:COMPUTERNAMEจะไม่ทำงานบน Linux และ macOS อย่างไรก็ตาม[Environment]::MachineNameไม่
felixfbecker

62

อย่าลืมว่ายูทิลิตี้คอนโซลเก่าของคุณใช้งานได้ดีใน PowerShell:

PS> hostname
KEITH1

นี่เป็นคำตอบที่ดีอย่างไรก็ตามหากคุณต้องการบันทึกค่าในตัวแปรให้ใช้คำตอบที่ยอมรับได้
Yawar Murtaza

37

แบบยาว:

get-content env:computername

แบบสั้น:

gc env:computername

17
supershort: $ env: COMPUTERNAME
Ross Presser

สิ่งนี้จะทำงานได้ดีจนกว่าคุณจะมีเซิร์ฟเวอร์ที่มีชื่อยาวเกิน 15 ตัว
Gary Pendlebury

@GaryPendlebury จะเกิดอะไรขึ้น?
Sajuuk

@Sajuuk computernameเป็นชื่อ NetBIOS ซึ่ง จำกัด ที่ 15 ตัวอักษร
Gary Pendlebury

14

คำถามข้างต้นทั้งหมดถูกต้อง แต่ถ้าคุณต้องการชื่อโฮสต์และชื่อโดเมนลองนี้:

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



0

อะนาล็อกของรหัสไฟล์ค้างคาวใน Powershell

cmd

wmic path Win32_ComputerSystem get Name

Powershell

Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty name

และ ...

hostname.exe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.