it-swarm-vi.com

Phát lại Windows Server Server Server Tin 32/64-bit trong CLI

Cách tốt nhất và nhanh nhất để phát hiện xem bạn đang chạy phiên bản Windows Server 32 hoặc 64 bit từ dòng lệnh?

(Cygwin đã được cài đặt)

16
romant

Một cách nhanh hơn một chút sẽ là kiểm tra sự tồn tại của thư mục% ProgramFiles (x86)%. Nếu nó tồn tại thì bạn đang chạy 64 bit, nếu nó không tồn tại thì bạn đang chạy 32 bit.

Nhanh một lớp lót:

if exist "%ProgramFiles(x86)%" echo 64-bit

Điều đó sẽ xuất ra 64-bit nếu thư mục tồn tại. Tuy nhiên, điều đó sẽ thất bại nếu nó không tồn tại dưới dạng biến nhưng nó đã tồn tại dưới dạng thư mục (dưới dạng% ProgramFiles (x86)%).

Bạn cũng có thể sử dụng công cụ tìm kiếm để có cách xác định bitness chính xác hơn.

set | find "ProgramFiles(x86)"

hoặc sử dụng lệnh systeminfo trước đây

systeminfo | find /I "System type"

(bao gồm /I để hoạt động trên XP/2003/2008/etc)

12
Joshua

Làm thế nào về:

echo %PROCESSOR_ARCHITECTURE%

Điều này sẽ trả về x86 trên hệ thống 32 bit và AMD64 (hoặc IA64) trên hệ thống 64 bit.

21
Gaff
systeminfo 

Nó sẽ liệt kê khá nhiều, khoảng 10 trường dưới đó có một trường gọi là Kiểu hệ thống. Điều này sẽ cho bạn biết nếu đó là x86 hoặc x64

9
MDMarra
systeminfo | find /I "System type"

Đây là phụ thuộc miền địa phương và chậm.

echo %PROCESSOR_ARCHITECTURE%

Lưu ý rằng đó là x86 trong 32-bit cmd.exe.

Cách chính xác:

set Arch=x64
if "%PROCESSOR_ARCHITECTURE%" == "x86" ( 
    if not defined PROCESSOR_ARCHITEW6432 set Arch=x86
) 
8
airmax

Một cách khác để kiểm tra với truy vấn WMI:

PowerShell:

(gwmi win32_computersystem).SystemType

CMD:

wmic OS get OSArchitecture 

Trích xuất từ ​​đây: http://www.sysadmit.com/2015/10/windows-como-saber-si-es-de-32-o-64-bits.html

6
Juli

Có nhiều cách để kiểm tra kiến ​​trúc bộ xử lý trong Windows:

  • Cách nhanh nhất, dễ nhất và tương thích nhất để kiểm tra kiến ​​trúc bộ xử lý trong ít nhất là Windows 20 trở lên là kiểm tra PROCESSOR_ARCHITECTUREbiến môi trường :

    echo %PROCESSOR_ARCHITECTURE%

  • Tuy nhiên, điều này có thể cho các kết quả khác nhau, tùy thuộc vào cách mở lệnh-Prompt. Để tránh bị Kết quả không mong đợi, do WoW64 , bạn có thể đọc trực tiếp từ sổ đăng ký (Microsoft đã thực hiện không dưới hai lỗi chính tả trong khóa ):

    reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE

  • Microsoft cũng đề nghị đọc kho thông tin phần cứng từ sổ đăng ký:

    reg query "HKLM\Hardware\Description\System\CentralProcessor\0" /v Identifier

  • Bạn cũng có thể kiểm tra sự tồn tại của phiên bản x86 của thư mục Program Files (hoặc biến môi trường trỏ đến nó) vì nó chỉ tồn tại trên hệ thống 64 bit. Không giống như biến PROCESSOR_ARCHITECTURE, điều này không phụ thuộc vào cách mà lệnh Prompt được chạy kể từ khi thư mục tồn tại (hoặc không) bất kể cách mở Prompt:

    • ::via env-var
      [.__.] if not defined ProgramFiles(x86) echo 32-bit

    • ::via file-system
      [.__.] if not exist "%systemdrive%\Program Files (x86)" echo 32-bit

Các phương thức này có thể được kết hợp trong một tệp bó (ví dụ: cpuinfo.bat) và cung cấp một cách nhanh chóng, nhanh chóng để kiểm tra hệ thống từ một lệnh Windows NT - Nhắc mà không cần phải chạy các chương trình hoặc khung khác.

Điều này đã được thử nghiệm trên các hệ thống 32 bit và Intel 64 bit (vui lòng thử nghiệm trên AMD64), cho kết quả chính xác trong <1 giây:

@echo off

echo PROCESSOR_ARCHITECTURE var:
echo %PROCESSOR_ARCHITECTURE% | find /i "x86" > nul
if %errorlevel%==0 (
    echo   32-bit
) else (
    echo   64-bit
)
echo.

echo PROCESSOR_ARCHITECTURE reg:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE | find /i "x86" > nul
if %errorlevel%==0 (
    echo   32-bit
) else (
    echo   64-bit
)
echo.

echo CentralProcessor reg:
reg query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul
if %errorlevel%==0 (
    echo   32-bit
) else (
    echo   64-bit
)
echo.

echo ProgramFiles(x86) var:
if not defined ProgramFiles(x86) (
    echo   32-bit
) else (
    echo   64-bit
)
echo.

echo ProgramFiles(x86) dir:
if not exist "%systemdrive%\Program Files (x86)" (
    echo   32-bit
) else (
    echo   64-bit
)
echo.
5
Synetech

Mặc dù đây không phải là câu trả lời lý tưởng và systeminfo.exe nên là phương pháp xác định loại hệ thống ưa thích của bạn, tức là 32 bit hoặc 64 bit, giải pháp này chạy nhanh hơn một chút nếu bạn không muốn đợi systeminfo.exe hoàn thành công việc.

Lệnh:

reg.exe query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | find "BuildLabEx"

Với các thay đổi chính xác cho truy vấn đăng ký và chuỗi tìm kiếm, bạn cũng có thể kiểm tra các phiên bản hệ điều hành từ Windows 95. systeminfo.exe chính xác hơn và cách truy vấn chính xác, reg.exe query tương thích nhanh hơn và ngược hơn.

3
Justin

GIẢI PHÁP CHUNG

Tôi thực sự phải tìm hiểu sâu về vấn đề này và có cái nhìn thực tế về WMI.

Theo tôi, tùy chọn tốt nhất là chỉ cần sử dụng chuỗi PowerShell này

(Get-WmiObject win32_ComputerSystem -ComputerName $ComputerName).SystemType

Điều này thậm chí hoạt động với Windows 2003 và XP cũ

Câu trả lời sẽ là một trong

  • PC dựa trên X86
  • pC dựa trên x64

pC dựa trên x64

Hoặc nếu quay lại một số công cụ cmd lỗi thời

wmic computersystem get systemtype
2
Dennis

Giải pháp tốt hơn:

Cách 1:
[.__.] (Xác thực hai bước với PROCESSOR_ARCHITECTUREPROCESSOR_ARCHITEW6432)

set Arch=x64
if "%PROCESSOR_ARCHITECTURE%" == "x86" ( 
    if not defined PROCESSOR_ARCHITEW6432 set Arch=x86
) 


if %Arch% == "x64"  (
    msg * "yessss"
) else  (
    msg * "noooo"
)

Cách 2:

reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x32" > NUL && set OS=32BIT || set OS=64BIT

if %OS%==32BIT echo "YESSS"
if %OS%==64BIT echo "NOOO"

nguồn: https://superuser.com/a/293143/249349

0
T.Todua