GNU/Linux >> Tutoriales Linux >  >> Linux

Determine la versión del sistema operativo, Linux y Windows de Powershell

Dado que las versiones 6.1 de PowerShell en Windows/Linux/OSX pasaron a GA, puede usar las nuevas propiedades de $PSVersionTable , OS , Platform y GitCommitId

Actualizar En v6.0.0-beta.3 hay algunos breaking changes :

  • Cambiar el parámetro posicional para powershell.exe de -Command a -File

$PSVersionTable en :

Plataforma Win32NT Sistema operativo 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

Plataforma Unix SO 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

Plataforma Unix SO 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 realidad, debería haber variables globales agregadas por la propia consola de PowerShell; sin embargo, no se consideran variables de entorno, por lo que no se mostrarían al usar dir env: para obtener una lista. Los específicos del sistema operativo que veo ahora son $IsLinux , IsMacOS y $IsWindows . Esta es de al menos PowerShell versión 6.0.0-rc y superior para Mac/Linux.

Puede ver una lista de lo que está disponible usando solo Get-Variable (en una sesión nueva sin cargar su perfil, si solo desea lo que viene integrado de forma predeterminada).


Para PowerShell Core (Powershell versión 6.0+), puede usar Variables automáticas:$IsLinux , $IsMacOS y $IsWindows .

Por ejemplo,

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

¿No hay variables de entorno que pueda ver en las otras plataformas para el sistema operativo?

Get-ChildItem -Path Env:

En particular, al menos en Windows, hay una variable de entorno del sistema operativo, por lo que debería ser capaz de lograr esto usando $Env:OS .

Ya que ha pasado algún tiempo y el PowerShell Core (v6) el producto es GA ahora (el Core la marca se eliminó a partir de v7), puede determinar con mayor precisión su plataforma en función de las siguientes variables booleanas automáticas:

$IsMacOS
$IsLinux
$IsWindows

Linux
  1. Cómo verificar la versión del sistema operativo y Linux

  2. Ver la etiqueta de servicio DELL y el código de servicio rápido desde Linux y Windows

  3. ¿Cuáles son las llamadas al sistema operativo/sistema nativo de Windows y Linux realizadas desde malloc()?

  4. Determine el nombre de la red inalámbrica desde la línea de comandos en Linux

  5. ¿Hay alguna manera de obtener la versión del BIOS desde el interior de Linux?

Encuentre el entorno de escritorio actual y su versión en Linux Mint 20

¿Cómo me conecto a Linux VPS a través de SSH desde Linux y Windows OS?

Un tipo de Windows en un mundo Linux:YaST y el escritorio

El año de Linux en el escritorio (Windows) - Consejos y trucos de WSL

Ubuntu ahora en la tienda de Windows:actualizaciones de Linux en Windows 10 y consejos importantes

Escritura y depuración de aplicaciones C++ de Linux desde Visual Studio mediante el subsistema de Windows para Linux