সিএলআই-তে উইন্ডোজ সার্ভার সংস্করণ 32/64-বিট সনাক্ত করুন


17

আপনি কমান্ড লাইন থেকে উইন্ডোজ সার্ভারের 32 বা 64-বিট সংস্করণটি চালাচ্ছেন কিনা তা সনাক্ত করার সর্বোত্তম এবং দ্রুত উপায় কী?

(সাইগউইন ইনস্টল করা আছে)

উত্তর:


12

কিছুটা দ্রুত উপায় হ'ল% প্রোগ্রাম ফাইল (x86)% ডিরেক্টরিটির অস্তিত্ব পরীক্ষা করা। যদি এটি বিদ্যমান থাকে তবে আপনি 64৪-বিট চালাচ্ছেন, যদি এটি উপস্থিত না থাকে তবে আপনি 32-বিট চালাচ্ছেন।

দ্রুত ওয়ান-লাইনার:

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

64-bitডিরেক্টরি উপস্থিত থাকলে তা আউটপুট দেয়। এটি ব্যর্থ হবে, যদিও এটি ভেরিয়েবল হিসাবে উপস্থিত না থাকলেও এটি ডিরেক্টরি হিসাবে উপস্থিত ছিল (% প্রোগ্রামফায়ার্স (x86)%)।

আপনি সাক্ষ্য নির্ধারণের আরও সঠিক উপায় পেতে অনুসন্ধান সরঞ্জামটিও ব্যবহার করতে পারেন।

set | find "ProgramFiles(x86)"

বা systeminfoপূর্বে কমান্ড ব্যবহার করে

systeminfo | find /I "System type"

(অন্তর্ভুক্ত /I এক্সপি / 2003/2008 / ইত্যাদি জুড়ে কাজ করার )


এটি হওয়া উচিত systeminfo | find "System type" ক্যাপিটল টি কিছু না ফেরায়।
নাথান ডিউইট

হ্যাঁ, এটি পুরোপুরি মিস হয়েছে। ধন্যবাদ নাথান! অবশ্যই, আপনি / আই স্যুইচটিকে এটিকে কেস সংবেদনশীলও করতে ব্যবহার করতে পারেন।
জোশুয়া

সার্ভার ২০০৮, এটি আসলে একটি মূলধন 'টি'। যেভাবেই হোক। উত্তরের জন্য ধন্যবাদ - নিখুঁত।
রোমান্ট

ফাইন! আমি এগিয়ে গেলাম এবং / আমি সিস্টেমেভিনফোতে স্যুইচ করেছি যাতে এটি এটির মূলধন কিনা তা খুঁজে পেতে পারে! :)
জোশুয়া

22

কেমন:

echo %PROCESSOR_ARCHITECTURE%

এটি 32-বিট সিস্টেমে x86 এবং D৪- বিট সিস্টেমে এএমডি A৪ (বা আইএ 64৪ ) ফিরে আসবে ।


2
এই 0 টি ভোট কিভাবে আসে? ওও (+1)
অ্যাপাচি

1
এটি আরও ভাল সমাধান তারপর Program Files (x86)ডিরেক্টরিটির অস্তিত্ব পরীক্ষা করে অন্য কেউ যেমন পোস্ট করেছেন for আপনি পরিবেশের পরিবর্তনশীলটির অস্তিত্বও পরীক্ষা করতে পারেন%PROGRAMFILES(X86)% (যদি এটি উপস্থিত না থাকে তবে আপনি x86 মেশিনে রয়েছেন )।
ব্রেকথ্রু

3
> এই 0 টি ভোট কিভাবে আসে? কারণ এটি নির্ভরযোগ্য নয়
সিনিটেক

2
এই উত্তর সমস্যা আছে !! - stackoverflow.com/questions/1738985/...
T.Todua

9
systeminfo 

এটি বেশ কিছুটা তালিকাবদ্ধ করবে, প্রায় 10 টি ক্ষেত্রের নীচে রয়েছে সিস্টেম টাইপ নামে একটি। এটি আপনাকে বলবে এটি x86 বা x64 হয়


8
systeminfo | find /I "System type"

এটি স্থানীয়ভাবে নির্ভরশীল এবং ধীর

echo %PROCESSOR_ARCHITECTURE%

লক্ষ্য করুন, এটি x86 32-বিটের মধ্যেcmd.exe

সঠিক পথ:

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

'সিস্টেমেণ্টফো' ব্যবহার সম্পর্কে আপনার মতামতগুলিতে সম্পূর্ণ সম্মত হন। আপনার পরামর্শের জন্য ধন্যবাদ, আমি এটি আমার স্ক্রিপ্টগুলির একটিতে ব্যবহার করেছি
অ্যাবস্ট্রাস্ক

সেরা উত্তর! অতিরিক্ত বৈধকরণকারী সহPROCESSOR_ARCHITEW6432
টি.ডিডুয়া


5

উইন্ডোজের অধীনে প্রসেসরের আর্কিটেকচারটি পরীক্ষা করার বিভিন্ন উপায় রয়েছে:

  • কমপক্ষে উইন্ডোজ 2000 এবং তারপরে প্রসেসরের আর্কিটেকচারটি চেক করার দ্রুততম, সহজতম এবং সর্বাধিক সামঞ্জস্যপূর্ণ উপায় হ'ল PROCESSOR_ARCHITECTURE পরিবেশের পরিবর্তনশীল পরীক্ষা করা :

    echo %PROCESSOR_ARCHITECTURE%

  • তবে কমান্ড-প্রম্পটটি যেভাবে খোলা হয়েছে তার উপর নির্ভর করে এটি বিভিন্ন ফলাফল দিতে পারে। WW64 এর কারণে "অপ্রত্যাশিত ফলাফল" পেতে এড়াতে , আপনি সরাসরি রেজিস্ট্রি থেকে এটি পড়তে পারেন (মাইক্রোসফ্ট কী-তে দুটি টাইপের চেয়ে কম তৈরি করেছিল ):

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

  • মাইক্রোসফ্ট রেজিস্ট্রি থেকে হার্ডওয়্যার তথ্য স্টোর পড়ার পরামর্শ দেয়:

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

  • আপনি Program Filesডিরেক্টরিটির x86 সংস্করণের অস্তিত্বও পরীক্ষা করতে পারেন (বা পরিবেশের ভেরিয়েবল যা এটি দেখায়) কারণ এটি কেবলমাত্র 64৪-বিট সিস্টেমে উপস্থিত থাকে। PROCESSOR_ARCHITECTUREভেরিয়েবলের বিপরীতে , কমান্ড প্রম্পটটি যেভাবে চালানো হয় তার উপর নির্ভর করে না যেহেতু ডিরেক্টরিটি উপস্থিত হয় (বা না হয়) প্রম্পটটি কীভাবে খোলা থাকে তা নির্বিশেষে:

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

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

এই পদ্ধতিগুলি একক ব্যাচ-ফাইলে (উদাহরণস্বরূপ cpuinfo.bat) একত্রিত হতে পারে এবং অন্যান্য প্রোগ্রাম বা ফ্রেমওয়ার্কগুলি চালনার কোন প্রয়োজন ছাড়াই একটি স্ট্যান্ডার্ড উইন্ডোজ এনটি কমান্ড-প্রম্পট থেকে সিস্টেমটি পরীক্ষা করার জন্য একটি দুর্দান্ত, বিদ্যুতের দ্রুত উপায় সরবরাহ করে।

এটি 32-বিট এবং ইনটেল 64-বিট সিস্টেমে পরীক্ষা করা হয়েছিল (দয়া করে এএমডি 64 তে পরীক্ষা করুন), <1 সেকেন্ডে সঠিক ফলাফল দেয়:

@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.

3

জেনারিক সলিউশন

আমাকে সত্যই এটি খনন করতে হয়েছিল এবং ডাব্লুএমআইতে সত্যই দেখতে হয়েছিল।

আমার মতে সেরা বিকল্পটি হ'ল কেবল এই পাওয়ারশেল স্ট্রিংটি ব্যবহার করা

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

এটি এমনকি পুরানো উইন্ডোজ 2003 এবং এক্সপি সহ কাজ করে

উত্তর একটি হবে

  • এক্স 86-ভিত্তিক পিসি
  • x64- ভিত্তিক পিসি

x64- ভিত্তিক পিসি

বা যদি কিছু পুরানো ফ্যাশনযুক্ত সিএমডি সরঞ্জামগুলিতে ফিরে আসে

wmic computersystem get systemtype

2

যদিও এটি আদর্শ উত্তর নয়, এবং systeminfo.exeসিস্টেমের ধরণ নির্ধারণ করার জন্য আপনার পছন্দসই পদ্ধতি হওয়া উচিত, যেমন 32-বিট বা 64৪-বিট, আপনি অপেক্ষা করতে না চাইলে এই সমাধানটি খানিকটা দ্রুত চলেsysteminfo.exe কাজটি শেষ ।

আদেশ:

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

রেজিস্ট্রি ক্যোয়ারী এবং অনুসন্ধান স্ট্রিংয়ের সঠিক পরিবর্তনের সাহায্যে আপনি উইন্ডোজ 95 এর মতো অপারেটিং সিস্টেমের সংস্করণগুলিও পরীক্ষা করতে পারবেন systeminfo.exemore আরও সঠিক এবং অনুসন্ধানের সঠিক উপায়টি reg.exe queryদ্রুত এবং আরও পিছনের দিকে সামঞ্জস্যপূর্ণ।


সম্পাদনাগুলির জন্য ধন্যবাদ টম, আপনি উত্তরের গুরুত্বপূর্ণ তথ্য সরিয়ে দিয়েছিলেন এবং তারপরে একটি বাগ প্রবর্তন করার জন্য এগিয়ে গিয়েছিলেন।
জাস্টিন

1
মাইক্রোসফ্টের বগি "ফাইন্ড" কমান্ডের মাধ্যমে আউটপুটটি পাইপ করার পরিবর্তে আপনি আরইজি.এক্সই / ভি স্যুইচ দিয়ে সঠিক মানটি টানতে পারেন: reg query "HKLM\[..as before..]\Version" /v BuildLabEx
ত্রি স্ট্রাগা

0

ভাল সমাধান:

পদ্ধতি 1:
(সাথে দুটি পদক্ষেপের বৈধতা PROCESSOR_ARCHITECTUREএবং PROCESSOR_ARCHITEW6432)

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


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

পদ্ধতি 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"

উত্স: /superuser//a/293143/249349


-1

কমান্ড প্রম্পটের অধীনে ডাব্লুএমআই ইন্টারফেস ব্যবহার করে। কমান্ড প্রম্পট প্রশাসক হিসাবে খুলুন, এবং টাইপ করুন wmic OS get OSArchitectureএবং টিপুনEnter

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.