Wie erhalte ich den lokalen Hostnamen in PowerShell?


180

Wie erhalte ich den Namen des lokalen Hosts (Computers) in PowerShell? Ich verwende PowerShell 1.0.

Antworten:


259

Sie können einfach die .NET Framework-Methode verwenden:

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

ebenfalls

$env:COMPUTERNAME


5
Hinweis: Wenn Ihr DNS-Name länger als 15 Zeichen ist, ist [System.Net.Dns]::GetHostName()(nicht abgeschnitten) besser als $env:COMPUTERNAME(abgeschnitten)
sonjz

Unter Windows 10 Enterprise hat env: COMPUTERNAME den folgenden Fehler ausgegeben: env: COMPUTERNAME: Der Begriff 'env: COMPUTERNAME' wird nicht als Name eines Cmdlets, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens. Wenn ein Pfad enthalten war, überprüfen Sie, ob der Pfad korrekt ist, und versuchen Sie es erneut. In Zeile: 1 Zeichen: 1 + env: COMPUTERNAME + ~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (env: COMPUTERNAME: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
mathisfun

2
@mathisfun $env:COMPUTERNAMEfunktioniert gut unter Windows 10 (bitte Dollarzeichen am Anfang beachten)
oleksa

$env:COMPUTERNAMEfunktioniert nicht unter Linux und MacOS. Tut es [Environment]::MachineNamejedoch.
Felixfbecker

62

Vergessen Sie nicht, dass alle Ihre alten Konsolendienstprogramme in PowerShell einwandfrei funktionieren:

PS> hostname
KEITH1

Dies ist jedoch eine gute Antwort. Wenn Sie den Wert in einer Variablen speichern möchten, verwenden Sie die akzeptierte Antwort.
Yawar Murtaza

37

Lange Form:

get-content env:computername

Kurzform:

gc env:computername

17
supershort: $ env: COMPUTERNAME
Ross Presser

Dies funktioniert einwandfrei, bis Sie einen Server mit einem Namen haben, der länger als 15 Zeichen ist.
Gary Pendlebury

@ GaryPendlebury was wird dann passieren?
Sajuuk

@Sajuuk computernameist der NetBIOS-Name, der auf 15 Zeichen begrenzt ist.
Gary Pendlebury

14

Alle oben genannten Fragen sind korrekt, aber wenn Sie den Hostnamen und den Domainnamen möchten, versuchen Sie Folgendes:

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

4

Eine kleine Änderung an der Antwort von @ CPU-100 für den lokalen FQDN:

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


4

In PowerShell Core v6 (funktioniert unter MacOS, Linux und Windows):

[Environment]::MachineName

0

Ein Analogon zum Bat-Dateicode in Powershell

Cmd

wmic path Win32_ComputerSystem get Name

Power Shell

Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty name

und ...

hostname.exe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.