GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bestimmen Sie die Betriebssystemversion, Linux und Windows aus Powershell

Seit die PowerShell-Versionen 6.1 unter Windows/Linux/OSX auf GA umgestellt wurden, können Sie die neuen Eigenschaften von $PSVersionTable verwenden , OS , Platform und GitCommitId

Aktualisieren In v6.0.0-beta.3 gibt es einige breaking changes :

  • Positionsparameter für powershell.exe von -Command zu -File ändern

$PSVersionTable auf :

Plattform Win32NT Betriebssystem 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

Plattform Unix Betriebssystem 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

Plattform Unix Betriebssystem 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

Eigentlich sollten globale Variablen von der PowerShell-Konsole selbst hinzugefügt werden – sie gelten jedoch nicht als Umgebungsvariablen, weshalb sie bei Verwendung von dir env: nicht angezeigt würden um eine Liste zu erhalten. Die betriebssystemspezifischen, die ich im Moment sehe, sind $IsLinux , IsMacOS und $IsWindows . Dies ist mindestens PowerShell-Version 6.0.0-rc und höher für Mac/Linux.

Sie können eine Liste der verfügbaren Produkte anzeigen, indem Sie einfach Get-Variable verwenden (in einer neuen Sitzung ohne Laden Ihres Profils, wenn Sie nur das wollen, was standardmäßig eingebaut ist).


Für PowerShell Core (Powershell-Version 6.0+) können Sie automatische Variablen verwenden:$IsLinux , $IsMacOS und $IsWindows .

Zum Beispiel

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

Gibt es keine Umgebungsvariablen, die Sie auf den anderen Plattformen für das Betriebssystem anzeigen können?

Get-ChildItem -Path Env:

Zumindest unter Windows gibt es eine Betriebssystem-Umgebungsvariable, also sollten Sie Dies können Sie mit $Env:OS erreichen .

Da ist einige Zeit vergangen und der PowerShell Core (v6) Produkt ist jetzt GA (der Kern Branding wurde ab v7 entfernt), können Sie Ihre Plattform anhand der folgenden automatischen booleschen Variablen genauer bestimmen:

$IsMacOS
$IsLinux
$IsWindows

Linux
  1. So überprüfen Sie die Betriebssystem- und Linux-Version

  2. Zeigen Sie die DELL-Service-Tag-Nummer und den Express-Servicecode unter Linux und Windows an

  3. Was sind die nativen Betriebssystem-/Systemaufrufe von Windows und Linux, die von malloc() ausgeführt werden?

  4. Ermitteln Sie den Namen des drahtlosen Netzwerks über die Befehlszeile in Linux

  5. Gibt es eine Möglichkeit, die BIOS-Version von Linux abzurufen?

Finden Sie die aktuelle Desktop-Umgebung und ihre Version unter Linux Mint 20

Wie verbinde ich mich mit Linux VPS über SSH von Linux und Windows OS?

Ein Windows-Typ in einer Linux-Welt:YaST und der Desktop

Das Jahr von Linux auf dem (Windows-)Desktop - WSL-Tipps und Tricks

Ubuntu jetzt im Windows Store:Updates für Linux unter Windows 10 und wichtige Tipps

Schreiben und Debuggen von Linux-C++-Anwendungen aus Visual Studio mit dem Windows-Subsystem für Linux