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.

George2
quelle

Antworten:

259

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

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

ebenfalls

$env:COMPUTERNAME

Strelok
quelle
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
jpaugh
quelle
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
RaYell
quelle
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
grepit
quelle
4

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

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

Gary Pendlebury
quelle
4

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

[Environment]::MachineName
felixfbecker
quelle
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
Gosha
quelle