¿Cómo obtengo el nombre localhost en PowerShell?

181

¿Cómo obtengo el nombre localhost (máquina) en PowerShell? Estoy usando PowerShell 1.0.

George2
fuente

Respuestas:

260

Simplemente puede usar el método .NET Framework:

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

además

$env:COMPUTERNAME

Strelok
fuente
55
Nota: si su nombre DNS tiene más de 15 caracteres, [System.Net.Dns]::GetHostName()(no se trunca) es mejor que $env:COMPUTERNAME(trunca)
sonjz
En Windows 10 Enterprise, env: COMPUTERNAME produjo el siguiente error: env: COMPUTERNAME: El término 'env: COMPUTERNAME' no se reconoce como el nombre de un cmdlet, función, archivo de script o programa operativo. Verifique la ortografía del nombre, o si se incluyó una ruta, verifique que la ruta sea correcta e intente nuevamente. En la línea: 1 char: 1 + env: COMPUTERNAME + ~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (env: COMPUTERNAME: String) [], CommandNotFoundException + FullyQualifiedErrorId:
CommandNotFoundException
2
@mathisfun $env:COMPUTERNAMEfunciona bien en Windows 10 (tenga en cuenta el signo de dólar al principio)
oleksa
$env:COMPUTERNAMEno funcionará en Linux y macOS. Sin embargo, lo [Environment]::MachineNamehace.
felixfbecker
62

No olvides que todas tus viejas utilidades de consola funcionan bien en PowerShell:

PS> hostname
KEITH1
jpaugh
fuente
Sin embargo, esta es una buena respuesta, si desea guardar el valor en una variable, utilice la respuesta aceptada.
Yawar Murtaza
37

Forma larga:

get-content env:computername

Forma corta:

gc env:computername
RaYell
fuente
17
supershort: $ env: COMPUTERNAME
Ross Presser
Esto funcionará bien, hasta que tenga un servidor con un nombre de más de 15 caracteres.
Gary Pendlebury
@GaryPendlebury, ¿qué pasará entonces?
Sajuuk
@Sajuuk computernamees el nombre de NetBIOS, que está limitado a 15 caracteres.
Gary Pendlebury
14

Todas las preguntas anteriores son correctas, pero si desea el nombre de host y el nombre de dominio intente esto:

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

Un pequeño ajuste en la respuesta de @ CPU-100, para el FQDN local:

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

Gary Pendlebury
fuente
4

En PowerShell Core v6 (funciona en macOS, Linux y Windows):

[Environment]::MachineName
felixfbecker
fuente
0

Un análogo del código del archivo bat en Powershell

Cmd

wmic path Win32_ComputerSystem get Name

Potencia Shell

Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty name

y ...

hostname.exe
Gosha
fuente