Cách tìm phiên bản Windows từ dòng lệnh PowerShell


133

Làm cách nào để tìm phiên bản Windows nào tôi đang sử dụng?

Tôi đang sử dụng PowerShell 2.0 và đã thử:

PS C:\> ver
The term 'ver' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify tha
t the path is correct and try again.
At line:1 char:4
+ ver <<<< 
    + CategoryInfo          : ObjectNotFound: (ver:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Làm thế nào để tôi làm điều này?


4
Nếu bạn đang xem này trong 2019+, bỏ qua những câu trả lời đó là đánh dấu là đúng và đi thẳng đến một trong đó đúng . Không có gì.
BrainSlugs83

Câu trả lời:


186

Vì bạn có quyền truy cập vào thư viện .NET, bạn có thể truy cập thuộc OSVersiontính của System.Environmentlớp để lấy thông tin này. Đối với số phiên bản, có Versiontài sản.

Ví dụ,

PS C:\> [System.Environment]::OSVersion.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
6      1      7601   65536

Chi tiết về các phiên bản Windows có thể được tìm thấy ở đây .


4
Lưu ý rằng [Environment]::OSVersionhoạt động trong windows-10 , OSVersion.Version.Majortrả về 10.
yzorg

4
Khi tôi chạy, winvernó hiển thị cho tôi phiên bản 1607. Nhưng lệnh powershell ở trên không đưa ra 1607. Tôi lấy số "1607" này ở đâu trong Powershell?
CMCDragonkai

6
@CMCDragonkai(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ReleaseId).ReleaseId
Anton Krouglov

3
Phương pháp này không được chấp nhận kể từ Windows 8.1. Xem liên kết này để biết chi tiết.
Slogmeister Extraordinaire

1
@SlogmeisterExtraordinaire Lệnh [System.Environment]::OSVersionkhông được dùng nữa, phương thức mà nó sử dụng trong nền đã bị phản đối. Các phiên bản PS mới đang thay đổi hành vi phụ trợ: github.com/PowerShell/PowerShell/issues/iêu
Randy

109
  1. Để lấy số phiên bản Windows, như Jeff ghi chú trong câu trả lời của mình , hãy sử dụng:

    [Environment]::OSVersion

    Điều đáng chú ý là kết quả thuộc loại [System.Version], vì vậy có thể kiểm tra, giả sử, Windows 7 / Windows Server 2008 R2 trở lên với

    [Environment]::OSVersion.Version -ge (new-object 'Version' 6,1)

    Tuy nhiên, điều này sẽ không cho bạn biết nếu đó là máy khách hay máy chủ Windows, cũng không phải tên của phiên bản.

  2. Sử dụng Win32_OperatingSystemlớp của WMI (luôn luôn là một ví dụ), ví dụ:

    (Get-WmiObject -class Win32_OperatingSystem).Caption

    sẽ trả lại một cái gì đó như

    Tiêu chuẩn Microsoft® Windows Server® 2008


61

Thật không may, hầu hết các câu trả lời khác không cung cấp thông tin cụ thể cho Windows 10.

Windows 10 có các phiên bản của riêng mình: 1507, 1511, 1607, 1703, vv . Đây là những gì winvercho thấy.

Powershell:
(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId

Command prompt (CMD.EXE):
Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ReleaseId

Xem thêm câu hỏi liên quan về superuser .

Đối với các phiên bản Windows khác sử dụng systeminfo. Bao bọc Powershell:

PS C:\> systeminfo /fo csv | ConvertFrom-Csv | select OS*, System*, Hotfix* | Format-List


OS Name             : Microsoft Windows 7 Enterprise
OS Version          : 6.1.7601 Service Pack 1 Build 7601
OS Manufacturer     : Microsoft Corporation
OS Configuration    : Standalone Workstation
OS Build Type       : Multiprocessor Free
System Type         : x64-based PC
System Locale       : ru;Russian
Hotfix(s)           : 274 Hotfix(s) Installed.,[01]: KB2849697,[02]: KB2849697,[03]:...

Đầu ra Windows 10 cho cùng một lệnh:

OS Name             : Microsoft Windows 10 Enterprise N 2016 LTSB
OS Version          : 10.0.14393 N/A Build 14393
OS Manufacturer     : Microsoft Corporation
OS Configuration    : Standalone Workstation
OS Build Type       : Multiprocessor Free
System Type         : x64-based PC
System Directory    : C:\Windows\system32
System Locale       : en-us;English (United States)
Hotfix(s)           : N/A

3
Điều này rất dễ nhớ winvertrên máy tính để bàn và systeminfo trên máy chủ. Nó đã gây trở ngại cho tôi trong nhiều năm rằng không có cách thống nhất để có được thông tin này.
MortenB

2
Liên kết tuyệt vời đến thông tin MS thực sự hữu ích. Cần lưu ý rằng đối với Win8.1 (và bên dưới?), Thông tin hiển thị là : OS Version : 6.3.9600 N/A Build 9600. Vì vậy, trong các phiên bản dưới W81, có thể có nhiều thông tin hơn để xem xét các phiên bản LTSB (luôn bị bỏ qua). Xem đầu ra từ: (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").BuildLabExcó thể trông như : 9600.19179.amd64fre.winblue_ltsb_escrow.181015-1847. Tôi đoán181015một phần là ngày xây dựng, trong khi đó 1847là phiên bản xây dựng hoặc phát hành. Bạn cũng có thể cần so sánh điều này với kernel, hal .
not2qubit

26
Get-WmiObject -Class Win32_OperatingSystem | ForEach-Object -MemberName Caption

Hoặc chơi gôn

gwmi win32_operatingsystem | % caption

Kết quả

Microsoft Windows 7 Ultimate

4
Bạn nên sử dụng Get-CimInstance thay vì Get-WmiObject trong mã mới.
Der_Meister

2
@Der_Meister Điều đó chỉ đúng với PSv3 +
Maximilian Burszley

20

Điều này sẽ cung cấp cho bạn phiên bản đầy đủ của Windows (bao gồm số Revision / Build) không giống như tất cả các giải pháp ở trên:

(Get-ItemProperty -Path c:\windows\system32\hal.dll).VersionInfo.FileVersion

Kết quả:

10.0.10240.16392 (th1_st1.150716-1608)

5
Đây là giải pháp tốt nhất theo như tôi quan tâm vì nó đang báo cáo chính xác số sửa đổi. Không ai trong số những người khác (ít nhất là như tôi đã thử nghiệm chúng).
BStateham

6
Đây là giải pháp duy nhất cho đến nay đã cho phép tôi có được số bản dựng đầy đủ. Tuy nhiên , không phải tất cả các tệp trong system32 đều được cập nhật với mỗi bản cập nhật - ví dụ: hal.dll của tôi vẫn hiển thị 10.0.10586.0 (th2_release.151029-1700), trong khi winload.exe thì có 10.0.10586.63 (th2_release.160104-1513).
melak47

2
Đây là một đoạn script nhỏ lấy phiên bản từ dll / exe với ngày xây dựng cao nhất: gist
melak47

6
Điều này phụ thuộc vào một chi tiết triển khai về phía Microsoft mà không có gì đảm bảo họ sẽ tiếp tục làm. Nó hoạt động ngay bây giờ nhưng bạn nên tránh dựa vào điều này nếu bạn muốn tập lệnh của mình hoạt động lâu dài.
Nick

1
@Jaykul Vâng, tôi không đồng ý, vì 2 lý do. (1) vì những số giống như "1803" đó không phải lúc nào cũng có sẵn (ví dụ trên Win8), vậy nên sử dụng cái gì ở đó? (2) Không có lý do kỹ thuật tại sao chỉ nên có một chính xác version. HĐH được xây dựng (và cập nhật) bởi các bộ phận, ví dụ như Kernel, HAL, UBR và các tính năng, v.v. Vì vậy, sau đó chúng ta nên thực sự hiển thị tất cả chúng. Về mặt đó tôi nghĩ BuildLabEx, KernelHAL(theo thứ tự đó) sẽ là cách thích hợp nhất để đưa ra một phiên bản phù hợp hơn . Nhưng vì bạn dường như biết điều gì là sai , bạn nên đăng những gì đúng .
not2qubit

18
Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer

trả lại

WindowsProductName    WindowsVersion OsHardwareAbstractionLayer
------------------    -------------- --------------------------
Windows 10 Enterprise 1709           10.0.16299.371 

@ not2qubit Thật sao? Khoảng 1 giây trên Surface Book của tôi 2.
Eric Herlitz

14

Kể từ PowerShell 5:

Get-ComputerInfo
Get-ComputerInfo -Property Windows*

Tôi nghĩ rằng lệnh này đã thử khá nhiều 1001 cách khác nhau được phát hiện để thu thập thông tin hệ thống ...


Một phần của phản hồi tôi nhận được từ điều này thật kỳ lạ ... Tôi đang dùng Windows 10 1909, nhưng "WindowsCienVersion" là 6.3. Tôi nghĩ rằng đó sẽ là 10, vì 6.3 là Windows 8.1. Mặt khác, tôi thích thông tin được cung cấp bởi lệnh này
Randy

8

Nếu bạn muốn phân biệt giữa Windows 8.1 (6.3.9600) và Windows 8 (6.2.9200), hãy sử dụng

(Get-CimInstance Win32_OperatingSystem).Version 

để có được phiên bản phù hợp. [Environment]::OSVersionkhông hoạt động đúng trong Windows 8.1 (nó trả về phiên bản Windows 8).


Lưu ý rằng [Environment]::OSVersionhoạt động trong windows-10 , OSVersion.Version.Majortrả về 10.
yzorg

1
Cả hai (Get-CimInstance Win32_OperatingSystem).Version[Environment]::OSVersionhoạt động cho tôi và trả về cùng một kết quả: 6.3.9600.0
VirtualVDX

Thật không may, 6.3.9600 không chỉ là Win 8.1, máy chủ 2012 R2 cũng trả về số bản dựng tương tự.
bytejunkie

8

Tôi đang tinh chỉnh một trong những câu trả lời

Tôi đã đạt được câu hỏi này trong khi cố gắng khớp với đầu ra từ winver.exe:

Version 1607 (OS Build 14393.351)

Tôi đã có thể trích xuất chuỗi xây dựng với:

,((Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name BuildLabEx).BuildLabEx -split '\.') | % {  $_[0..1] -join '.' }  

Kết quả: 14393.351

Cập nhật : Đây là một kịch bản đơn giản hóa một chút bằng cách sử dụng regex

(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").BuildLabEx -match '^[0-9]+\.[0-9]+' |  % { $matches.Values }

5

Tôi lấy các kịch bản ở trên và tinh chỉnh chúng một chút để đưa ra điều này:

$name=(Get-WmiObject Win32_OperatingSystem).caption
$bit=(Get-WmiObject Win32_OperatingSystem).OSArchitecture

$vert = " Version:"
$ver=(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId

$buildt = " Build:"
$build= (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").BuildLabEx -match '^[0-9]+\.[0-9]+' |  % { $matches.Values }

$installd = Get-ComputerInfo -Property WindowsInstallDateFromRegistry

Write-host $installd
Write-Host $name, $bit, $vert, $ver, `enter code here`$buildt, $build, $installd

Để có được kết quả như thế này:

Microsoft Windows 10 Home Phiên bản 64 bit: 1709 Bản dựng: 16299.431 @ {WindowsInstallDateFromRegistry = 18-01-01 2:29:11 AM}

Gợi ý: Tôi đánh giá cao một bàn tay tước văn bản tiền tố từ ngày cài đặt để tôi có thể thay thế nó bằng một tiêu đề dễ đọc hơn.


Lệnh ngày cài đặt mất một lúc để chạy, vì vậy tôi tìm thấy một lệnh nhanh hơn: [timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970')).AddSeconds($(get-itemproperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion").InstallDate) Nó phức tạp hơn một chút, nhưng nó chạy nhanh hơn rất nhiều. Bạn thậm chí có thể rời khỏi phần múi giờ:([datetime]'1/1/1970').AddSeconds($(get-itemproperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion").InstallDate)
Randy

4

Như MoonStom nói, [Environment]::OSVersionkhông hoạt động đúng trên một Windows nâng cấp 8.1 (nó trả về một phiên bản Windows 8): liên kết .

Nếu bạn muốn phân biệt giữa Windows 8.1 (6.3.9600) và Windows 8 (6.2.9200), bạn có thể sử dụng (Get-CimInstance Win32_OperatingSystem).Versionđể có phiên bản phù hợp. Tuy nhiên, điều này không hoạt động trong PowerShell 2. Vì vậy, hãy sử dụng điều này:

$version = $null
try {
    $version = (Get-CimInstance Win32_OperatingSystem).Version
}
catch {
    $version = [System.Environment]::OSVersion.Version | % {"{0}.{1}.{2}" -f $_.Major,$_.Minor,$_.Build}
}

4

Sử dụng:

Get-WmiObject -class win32_operatingsystem -computer computername | Select-Object Caption

Cũng có thể lấy số phiên bản bằng cách này: Get-WmiObject-class win32_operatingsystem | chọn Phiên bản
KERR

Bạn có thể cải thiện câu trả lời này bằng cách hiển thị đầu ra.
james.garriss

4

Nếu bạn đang cố giải mã thông tin, MS sẽ đặt trang web vá lỗi của họ, chẳng hạn như https://technet.microsoft.com/en-us/l Library / security / ms17-010.aspx

bạn sẽ cần một kết hợp như:

$name=(Get-WmiObject Win32_OperatingSystem).caption $bit=(Get-WmiObject Win32_OperatingSystem).OSArchitecture $ver=(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId Write-Host $name, $bit, $ver

Microsoft Windows 10 Home 64-bit 1703


2

Windows PowerShell 2.0:

$windows = New-Object -Type PSObject |
           Add-Member -MemberType NoteProperty -Name Caption -Value (Get-WmiObject -Class Win32_OperatingSystem).Caption -PassThru |
           Add-Member -MemberType NoteProperty -Name Version -Value [Environment]::OSVersion.Version                     -PassThru

Windows PowerShell 3.0:

$windows = [PSCustomObject]@{
    Caption = (Get-WmiObject -Class Win32_OperatingSystem).Caption
    Version = [Environment]::OSVersion.Version
}

Để hiển thị (cả hai phiên bản):

"{0}  ({1})" -f $windows.Caption, $windows.Version 

2

Để tạo đầu ra giống hệt với winver.exe trong PowerShell v5 trên Windows 10 1809:

$Version = Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\'
"Version $($Version.ReleaseId) (OS Build $($Version.CurrentBuildNumber).$($Version.UBR))"

Ngoài ra, nó phù hợp với phiên bản trong "Cài đặt> Hệ thống> Giới thiệu" trong Windows 10. Và được cập nhật Bản dựng bản sửa đổi, điều mà nhiều giải pháp không có trên máy của tôi
Vimes

1
(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name BuildLabEx).BuildLabEx

1

Đây thực sự là một chủ đề dài, và có lẽ bởi vì các câu trả lời mặc dù không chính xác không giải quyết được câu hỏi cơ bản. Tôi đã xem qua trang web này: Số phiên bản & bản dựng cung cấp một cái nhìn tổng quan rõ ràng về những gì trong thế giới Microsoft Windows.

Vì sở thích của tôi là muốn biết chính xác hệ điều hành windows nào mà tôi đang xử lý, tôi đã bỏ qua toàn bộ phiên bản cầu vồng và thay vào đó tập trung vào BuildNumber. Số bản dựng có thể đạt được bằng cách:

([Environment]::OSVersion.Version).Build

hoặc bằng cách:

(Get-CimInstance Win32_OperatingSystem).buildNumber

sự lựa chọn là của bạn mà bạn thích nó Vì vậy, từ đó tôi có thể làm một cái gì đó dọc theo dòng:

    switch ((Get-CimInstance Win32_OperatingSystem).BuildNumber) 
{
    6001 {$OS = "W2K8"}
    7600 {$OS = "W2K8R2"}
    7601 {$OS = "W2K8R2SP1"}    
    9200 {$OS = "W2K12"}
    9600 {$OS = "W2K12R2"}
    14393 {$OS = "W2K16v1607"}
    16229 {$OS = "W2K16v1709"}
    default { $OS = "Not Listed"}

}
Write-Host "Server system: $OS" -foregroundcolor Green

Lưu ý: Như bạn có thể thấy tôi đã sử dụng ở trên chỉ cho các hệ thống máy chủ, tuy nhiên nó có thể dễ dàng được áp dụng cho các máy trạm hoặc thậm chí được mở rộng một cách khéo léo để hỗ trợ cả hai ... nhưng tôi sẽ để lại cho bạn.

Tận hưởng, và vui chơi!


0

Điều này sẽ cung cấp cho bạn phiên bản đầy đủ và ĐÚNG (cùng số phiên bản mà bạn tìm thấy khi chạy winver.exe) phiên bản Windows (bao gồm số sửa đổi / bản dựng) NHỚ không giống như tất cả các giải pháp khác (đã thử nghiệm trên Windows 10):

Function Get-OSVersion {
Param($ComputerName)
    Invoke-Command -ComputerName $ComputerName -ScriptBlock {
        $all = @()
        (Get-Childitem c:\windows\system32) | ? Length | Foreach {

            $all += (Get-ItemProperty -Path $_.FullName).VersionInfo.Productversion
        }
        $version = [System.Environment]::OSVersion.Version
        $osversion = "$($version.major).0.$($version.build)"
        $minor = @()
        $all | ? {$_ -like "$osversion*"} | Foreach {
            $minor += [int]($_ -replace".*\.")
        }
        $minor = $minor | sort | Select -Last 1

        return "$osversion.$minor"
    }
}

Tôi gặp lỗi khi chạy cái này với 'localhost' và sử dụng tên máy tính thực tế (như được trả về bởi 'hostname') trên localhost của tôi - có thể điều chỉnh giải pháp này để cho phép nó lấy thông tin từ máy cục bộ mà không cần bật dịch vụ không?
monojohnny

[xxxxxx] Không thể kết nối với máy chủ từ xa xxxxxx với thông báo lỗi sau: Máy khách không thể kết nối với đích được chỉ định trong yêu cầu. Xác minh rằng dịch vụ trên đích đang chạy và đang chấp nhận yêu cầu. Tham khảo nhật ký và tài liệu cho dịch vụ WS-Management chạy trên đích, phổ biến nhất là IIS hoặc WinRM. Nếu đích là dịch vụ WinRM, hãy chạy lệnh sau trên đích để phân tích và định cấu hình dịch vụ WinRM: "winrm quickconfig". Để biết thêm thông tin, [...]
monojohnny

Đã làm cho tôi. Nâng cao. Đó sẽ là một kịch bản hoàn hảo nếu nó bao gồm id phát hành windows 10 - 1507, 1511, 1607, v.v.
Anton Krouglov

0

Tôi đã tìm kiếm rất nhiều để tìm ra phiên bản chính xác, bởi vì máy chủ WSUS hiển thị phiên bản sai. Cách tốt nhất là lấy bản sửa đổi từ UBR registry KEY.

    $WinVer = New-Object TypeName PSObject
$WinVer | Add-Member MemberType NoteProperty Name Major Value $(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' CurrentMajorVersionNumber).CurrentMajorVersionNumber
$WinVer | Add-Member MemberType NoteProperty Name Minor Value $(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' CurrentMinorVersionNumber).CurrentMinorVersionNumber
$WinVer | Add-Member MemberType NoteProperty Name Build Value $(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' CurrentBuild).CurrentBuild
$WinVer | Add-Member MemberType NoteProperty Name Revision Value $(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' UBR).UBR
$WinVer

0

Sử dụng Windows Powershell, có thể lấy dữ liệu bạn cần theo cách sau

Chú thích:

(Get-WmiObject -class Win32_OperatingSystem).Caption

Phát hành:

(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ReleaseId).ReleaseId

phiên bản:

(Get-CimInstance Win32_OperatingSystem).version

0

[đã giải quyết]

#copy all the code below:
#save file as .ps1 run and see the magic

 Get-WmiObject -Class Win32_OperatingSystem | ForEach-Object -MemberName Caption
 (Get-CimInstance Win32_OperatingSystem).version


#-------------comment-------------#
#-----finding windows version-----#

$version= (Get-CimInstance Win32_OperatingSystem).version
$length= $version.Length
$index= $version.IndexOf(".")
[int]$windows= $version.Remove($index,$length-2)  
$windows
#-----------end------------------#
#-----------comment-----------------#

Chào mừng đến với SO! Khi bạn trả lời một câu hỏi, xin vui lòng cố gắng giải thích một chút. Trong trường hợp này, có thêm 20 câu trả lời vì vậy hãy cân nhắc để phơi bày Ưu điểm của bạn.
David García Bodego

0

Bạn cũng có thể sử dụng một cái gì đó như thế này, bằng cách kiểm tra OSVersion.Version.Major:

IF ([System.Environment]::OSVersion.Version.Major -ge 10) {Write-Host "Windows 10 or above"}
IF ([System.Environment]::OSVersion.Version.Major -lt 10) {Write-Host "Windows 8.1 or below"}

-2

Bạn có thể sử dụng python, để đơn giản hóa mọi thứ (hoạt động trên tất cả các phiên bản Windows và tất cả các nền tảng khác):

import platform

print(platform.system()) # returns 'Windows', 'Linux' etc.
print(platform.release()) # returns for Windows 10 or Server 2019 '10'

if platform.system() = 'Windows':
    print(platform.win32_ver()) # returns (10, 10.0.17744, SP0, Multiprocessor Free) on windows server 2019

Câu hỏi là "Cách tìm phiên bản Windows từ dòng lệnh PowerShell ". Đây không thực sự là một câu trả lời cho câu hỏi đó và bạn nên xem xét xóa nó.
Alain O'Dea

-3
$OSVersion = [Version](Get-ItemProperty -Path "$($Env:Windir)\System32\hal.dll" -ErrorAction SilentlyContinue).VersionInfo.FileVersion.Split()[0]

Trên Windows 10 trả về: 10.0.10586.420

Sau đó, bạn có thể sử dụng biến để truy cập các thuộc tính để so sánh chi tiết

$OSVersion.Major equals 10
$OSVersion.Minor equals 0
$OSVersion.Build equals 10586
$OSVersion.Revision equals 420

Ngoài ra, bạn có thể so sánh các phiên bản hệ điều hành bằng cách sử dụng như sau

If ([Version]$OSVersion -ge [Version]"6.1")
   {
       #Do Something
   }
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.