GNU/Linux >> Tutoriels Linux >  >> Linux

Déterminer la version du système d'exploitation, Linux et Windows à partir de Powershell

Depuis que les versions 6.1 de PowerShell sur Windows/Linux/OSX sont passées en GA, vous pouvez utiliser les nouvelles propriétés de $PSVersionTable , OS , Platform et GitCommitId

Mettre à jour Dans la v6.0.0-beta.3, il y a quelques breaking changes :

  • Modifier le paramètre positionnel pour powershell.exe de -Command à -File

$PSVersionTable sur :

Plate-forme Win32NT SE Microsoft Windows 10.0.15063

PS C:\Users\LotPings> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      6.1.0
PSEdition                      Core
GitCommitId                    6.1.0
OS                             Microsoft Windows 10.0.17134
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Plate-forme Unix Système d'exploitation Linux (ubuntu)

PS /home/LotPings> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      6.1.0
PSEdition                      Core
GitCommitId                    6.1.0
OS                             Linux 4.15.0-34-generic #37-Ubuntu SMP Mon Aug 27 15:21:48 UTC 2018
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Plate-forme Unix OS Darwin

PS /Users/LotPings> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      6.1.0
PSEdition                      Core
GitCommitId                    6.1.0
OS                             Darwin 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RE...
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

En fait, il devrait y avoir des variables globales ajoutées par la console PowerShell elle-même - elles ne sont cependant pas considérées comme des variables d'environnement, c'est pourquoi elles ne s'afficheraient pas lors de l'utilisation de dir env: pour obtenir une liste. Ceux spécifiques au système d'exploitation que je vois pour l'instant sont $IsLinux , IsMacOS et $IsWindows . Il s'agit d'au moins PowerShell version 6.0.0-rc et supérieure pour Mac/Linux.

Vous pouvez voir une liste de ce qui est disponible en utilisant simplement Get-Variable (dans une nouvelle session sans charger votre profil, si vous voulez juste ce qui est intégré par défaut).


Pour PowerShell Core (Powershell Version 6.0+), vous pouvez utiliser les variables automatiques :$IsLinux , $IsMacOS et $IsWindows .

Par exemple,

if ($IsLinux) {
    Write-Host "Linux"
}
elseif ($IsMacOS) {
    Write-Host "macOS"
}
elseif ($IsWindows) {
    Write-Host "Windows"
}

N'y a-t-il pas de variables d'environnement que vous pouvez afficher sur les autres plates-formes pour le système d'exploitation ?

Get-ChildItem -Path Env:

En particulier, sous Windows au moins, il existe une variable d'environnement du système d'exploitation, vous devriez donc être capable d'accomplir cela en utilisant $Env:OS .

Depuis un certain temps a passé et le PowerShell Core (v6) le produit est maintenant GA (le Core la marque a été supprimée à partir de la v7), vous pouvez déterminer plus précisément votre plate-forme en fonction des variables booléennes automatiques suivantes :

$IsMacOS
$IsLinux
$IsWindows

Linux
  1. Comment vérifier la version du système d'exploitation et de Linux

  2. Afficher le numéro de service DELL et le code de service express sous Linux et Windows

  3. Quels sont les appels OS/système natifs Windows et Linux effectués à partir de malloc() ?

  4. Déterminez le nom du réseau sans fil à partir de la ligne de commande sous Linux

  5. Existe-t-il un moyen d'obtenir la version du BIOS depuis Linux ?

Trouver l'environnement de bureau actuel et sa version sur Linux Mint 20

Comment me connecter à Linux VPS via SSH depuis Linux et Windows OS ?

Un gars Windows dans un monde Linux :YaST et le bureau

L'année de Linux sur le bureau (Windows) - Trucs et astuces WSL

Ubuntu maintenant dans le Windows Store :mises à jour de Linux sur Windows 10 et conseils importants

Écriture et débogage d'applications Linux C++ à partir de Visual Studio à l'aide du sous-système Windows pour Linux