Comment obtenir le nom de l'hôte local dans PowerShell?


181

Comment obtenir le nom de l'hôte local (machine) dans PowerShell? J'utilise PowerShell 1.0.

Réponses:


260

Vous pouvez simplement utiliser la méthode .NET Framework:

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

aussi

$env:COMPUTERNAME


5
Remarque: si votre nom DNS [System.Net.Dns]::GetHostName()contient plus de 15 caractères, (ne tronque pas) est meilleur que $env:COMPUTERNAME(tronque)
sonjz

Sous Windows 10 Entreprise, env: COMPUTERNAME a généré l'erreur suivante: env: COMPUTERNAME: le terme «env: COMPUTERNAME» n'est pas reconnu comme le nom d'une applet de commande, d'une fonction, d'un fichier de script ou d'un programme utilisable. Vérifiez l'orthographe du nom ou, si un chemin était inclus, vérifiez que le chemin est correct et réessayez. À la ligne: 1 car: 1 + env: COMPUTERNAME + ~~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (env: COMPUTERNAME: String) [], CommandNotFoundException + FullyQualifiedErrorId:
CommandNotFoundException

2
@mathisfun $env:COMPUTERNAMEfonctionne bien sur Windows 10 (veuillez noter le signe dollar au début)
oleksa

$env:COMPUTERNAMEne fonctionnera pas sous Linux et macOS. Cependant, [Environment]::MachineNamefait.
felixfbecker

62

N'oubliez pas que tous vos anciens utilitaires de console fonctionnent très bien dans PowerShell:

PS> hostname
KEITH1

C'est une bonne réponse, cependant, si vous souhaitez enregistrer la valeur dans une variable, utilisez la réponse acceptée.
Yawar Murtaza

37

Forme longue:

get-content env:computername

Forme courte:

gc env:computername

17
supershort: $ env: COMPUTERNAME
Ross Presser

Cela fonctionnera bien, jusqu'à ce que vous ayez un serveur avec un nom de plus de 15 caractères.
Gary Pendlebury

@GaryPendlebury que va-t-il se passer alors?
Sajuuk

@Sajuuk computernameest le nom NetBIOS, limité à 15 caractères.
Gary Pendlebury

14

Toutes les questions ci-dessus sont correctes, mais si vous voulez le nom d'hôte et le nom de domaine, essayez ceci:

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

4

Un léger ajustement sur la réponse de @ CPU-100, pour le FQDN local:

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


4

Dans PowerShell Core v6 (fonctionne sur macOS, Linux et Windows):

[Environment]::MachineName

0

Un analogue du code de fichier chauve-souris dans Powershell

Cmd

wmic path Win32_ComputerSystem get Name

Powershell

Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty name

et ...

hostname.exe
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.