Como obtenho o nome do host local no PowerShell?


181

Como obtenho o nome do host local (máquina) no PowerShell? Estou usando o PowerShell 1.0.

Respostas:


260

Você pode apenas usar o método .NET Framework:

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

Além disso

$env:COMPUTERNAME


5
Nota: se o seu nome DNS é mais de 15 caracteres, [System.Net.Dns]::GetHostName()(não truncar) é melhor do que $env:COMPUTERNAME(trunca)
sonjz

No Windows 10 Enterprise, env: COMPUTERNAME produziu o seguinte erro: env: COMPUTERNAME: O termo 'env: COMPUTERNAME' não é reconhecido como o nome de um cmdlet, função, arquivo de script ou programa operável. Verifique a ortografia do nome ou, se um caminho foi incluído, verifique se o caminho está correto e tente novamente. Na linha: 1 char: 1 + env: COMPUTERNAME + ~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (env: COMPUTERNAME: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
mathisfun

2
@mathisfun $env:COMPUTERNAMEfunciona bem no Windows 10 (por favor entre nota do dólar no início)
Oleksa

$env:COMPUTERNAMEnão funcionará no Linux e no macOS. No entanto, [Environment]::MachineNamefaz.
Felixfbecker 30/05/19

62

Não esqueça que todos os seus utilitários antigos de console funcionam perfeitamente no PowerShell:

PS> hostname
KEITH1

Essa é uma boa resposta, no entanto, se você deseja salvar o valor em uma variável, use a resposta aceita.
Yawar Murtaza

37

Forma longa:

get-content env:computername

Forma curta:

gc env:computername

17
supershort: $ env: COMPUTERNAME
Ross Presser

Isso funcionará bem, até que você tenha um servidor com um nome com mais de 15 caracteres.
Gary Pendlebury

@GaryPendlebury o que vai acontecer então?
Sajuuk 31/05/19

@Sajuuk computernameé o nome NetBIOS, limitado a 15 caracteres.
Gary Pendlebury

14

Todas as perguntas acima estão corretas, mas se você quiser o nome do host e o domínio, tente o seguinte:

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

4

Um pequeno ajuste na resposta do @ CPU-100, para o FQDN local:

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


4

No PowerShell Core v6 (funciona no macOS, Linux e Windows):

[Environment]::MachineName

0

Um análogo do código do arquivo bat no Powershell

Cmd

wmic path Win32_ComputerSystem get Name

Powershell

Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty name

e ...

hostname.exe
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.