GNU/Linux >> Belajar Linux >  >> Linux

Tentukan versi OS, Linux dan Windows dari Powershell

Karena PowerShell versi 6.1 di Windows/Linux/OSX beralih ke GA, Anda dapat menggunakan properti baru $PSVersionTable , OS , Platform dan GitCommitId

Perbarui Di v6.0.0-beta.3 ada beberapa breaking changes :

  • Ubah parameter posisi untuk powershell.exe dari -Command ke -File

$PSVersionTable pada :

Platform Win32NT OS 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

Platform Unix OS 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

Platform 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

Sebenarnya, harus ada variabel global yang ditambahkan oleh konsol PowerShell itu sendiri--mereka tidak dianggap sebagai variabel lingkungan, itulah sebabnya mereka tidak muncul saat menggunakan dir env: untuk mendapatkan daftar. OS khusus yang saya lihat untuk saat ini adalah $IsLinux , IsMacOS dan $IsWindows . Ini setidaknya PowerShell versi 6.0.0-rc dan yang lebih baru untuk Mac/Linux.

Anda dapat melihat daftar yang tersedia hanya dengan menggunakan Get-Variable (dalam sesi baru tanpa memuat profil Anda, jika Anda hanya menginginkan apa yang disertakan secara default).


Untuk PowerShell Core (Powershell Versi 6.0+), Anda dapat menggunakan Variabel Otomatis:$IsLinux , $IsMacOS dan $IsWindows .

Misalnya,

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

Apakah tidak ada variabel lingkungan yang dapat Anda lihat di platform lain untuk OS?

Get-ChildItem -Path Env:

Khususnya, setidaknya di Windows, ada variabel lingkungan OS, jadi Anda harus dapat melakukannya dengan menggunakan $Env:OS .

Sejak beberapa waktu telah berlalu dan PowerShell Core (v6) produk sekarang adalah GA (Inti branding telah dihapus mulai v7), Anda dapat menentukan platform dengan lebih akurat berdasarkan variabel boolean otomatis berikut:

$IsMacOS
$IsLinux
$IsWindows

Linux
  1. Lihat Tag Servis DELL dan Kode Servis Ekspres Dari Linux dan Windows

  2. Tentukan nama jaringan nirkabel dari baris perintah di Linux

  3. Apakah ada cara untuk mendapatkan versi BIOS dari dalam Linux?

  1. Cara dual-boot Linux dan Windows

  2. Cara memeriksa Versi OS dan Linux

  3. Apa panggilan OS / sistem asli Windows dan Linux yang dibuat dari malloc ()?

  1. Linux di mainframe:Dulu dan sekarang

  2. Cara Menghapus (Flush) Cache DNS di Windows, MacOS, dan Linux

  3. Cara Memeriksa Versi Kernel di Linux