Come posso ottenere il nome localhost in PowerShell?


181

Come posso ottenere il nome localhost (macchina) in PowerShell? Sto usando PowerShell 1.0.

Risposte:


260

Puoi semplicemente usare il metodo .NET Framework:

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

anche

$env:COMPUTERNAME


5
Nota: se il tuo nome DNS è più lungo di 15 caratteri, [System.Net.Dns]::GetHostName()(non tronca) è meglio di $env:COMPUTERNAME(tronca)
sonjz

Su Windows 10 Enterprise, env: COMPUTERNAME ha prodotto il seguente errore: env: COMPUTERNAME: il termine 'env: COMPUTERNAME' non è riconosciuto come nome di un cmdlet, funzione, file di script o programma eseguibile. Controlla l'ortografia del nome o se è stato incluso un percorso, verifica che il percorso sia corretto e riprova. Alla riga: 1 carattere: 1 + env: COMPUTERNAME + ~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (env: COMPUTERNAME: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
mathisfun

2
@mathisfun $env:COMPUTERNAMEfunziona bene su Windows 10 (notare il segno di dollaro all'inizio)
oleksa

$env:COMPUTERNAMEnon funzionerà su Linux e macOS. Tuttavia, lo [Environment]::MachineNamefa.
felixfbecker,

62

Non dimenticare che tutte le vecchie utility della console funzionano perfettamente in PowerShell:

PS> hostname
KEITH1

Questa è una buona risposta, tuttavia, se si desidera salvare il valore in una variabile, utilizzare la risposta accettata.
Yawar Murtaza,

37

Forma lunga:

get-content env:computername

Forma breve:

gc env:computername

17
supershort: $ env: COMPUTERNAME
Ross Presser

Funzionerà bene fino a quando non avrai un server con un nome più lungo di 15 caratteri.
Gary Pendlebury,

@GaryPendlebury cosa succederà allora?
Sajuuk,

@Sajuuk computernameè il nome NetBIOS, che è limitato a 15 caratteri.
Gary Pendlebury,

14

Tutte le domande di cui sopra sono corrette ma se si desidera il nome host e il nome di dominio provare questo:

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

4

Una leggera modifica alla risposta di @ CPU-100, per l'FQDN locale:

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


4

In PowerShell Core v6 (funziona su macOS, Linux e Windows):

[Environment]::MachineName

0

Un analogo del codice del file bat in Powershell

cmd

wmic path Win32_ComputerSystem get Name

PowerShell

Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty name

e ...

hostname.exe
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.