Lệnh WMIC trong CMD: Hướng dẫn chi tiết từ A-Z cho quản trị hệ thống

lệnh wmic trong cmd

Lệnh wmic trong cmd (Windows Management Instrumentation Command-line) là một trong những công cụ dòng lệnh mạnh mẽ nhất trên Windows, cho phép quản trị viên truy vấn và điều khiển hầu hết các thành phần hệ thống như phần cứng, hệ điều hành, tiến trình, dịch vụ và phần mềm. Ra mắt từ thời Windows XP, wmic nhanh chóng trở thành người bạn đồng hành của dân IT nhờ khả năng lấy thông tin chi tiết chỉ với vài ký tự gõ. Dù Microsoft đã thông báo loại bỏ wmic trong các phiên bản Windows mới (thay thế bằng PowerShell CIM), nhưng kiến thức về lệnh wmic trong cmd vẫn cực kỳ hữu ích khi làm việc trên các hệ thống cũ hoặc trong các tình huống cần script đơn giản, không phụ thuộc quá nhiều vào modules.

Lệnh WMIC trong CMD là gì? Giới thiệu về Windows Management Instrumentation Command-line

lệnh wmic trong cmd - Hình 4

WMIC là viết tắt của Windows Management Instrumentation Command-line, một giao diện dòng lệnh cho phép tương tác với WMI (Windows Management Instrumentation) – kiến trúc quản lý hệ điều hành của Microsoft. WMI cung cấp một tập hợp các lớp (classes) mô tả tài nguyên hệ thống, và wmic là công cụ truy cập các lớp đó trực tiếp từ cmd. Với lệnh wmic trong cmd, rồi gõ wmic alias.

Các tham số hữu ích: /output, /format, /node, /user

WMIC hỗ trợ các tham số dùng chung:

    • /output: Đặt tên file đầu ra, ví dụ: wmic os get /output:os.txt.
    • /format: Định dạng xuất dữ liệu: htable (HTML), csv, text, xml. Ví dụ: wmic os get /format:htable > os.html.
    • /node: Chỉ định máy tính từ xa (cần quyền WMI). Ví dụ: wmic /node:192.168.1.10 os get.
    • /user và /password: Thông tin đăng nhập máy từ xa.

    Kết hợp các tham số này giúp bạn tự động hóa thu thập thông tin trên nhiều máy chủ.

    Danh sách lệnh WMIC phổ biến và ví dụ cụ thể

    Lấy thông tin hệ điều hành (wmic os)

    wmic os get hoặc chọn thuộc tính cụ thể: wmic os get caption,version,osarchitecture. Kết quả trả về tên Windows, phiên bản và kiến trúc (32/64-bit). Để biết thời gian hoạt động: wmic os get lastbootuptime hoặc dùng wmic os get SystemUpTime (giá trị tính bằng giây).

    Thông tin CPU (wmic cpu)

    wmic cpu get name,numberofcores,numberoflogicalprocessors,maxclockspeed cung cấp tên CPU, số nhân, số luồng và tốc độ tối đa. Muốn biết mức sử dụng hiện tại: wmic cpu get loadpercentage (trên Windows Server hoặc các phiên bản hỗ trợ). Đối với CPU đa ổ, thêm tham số /format:list để xem từng ổ.

    Thông tin ổ đĩa (wmic logicaldisk)

    wmic logicaldisk get deviceid,volumename,size,freespace hiển thị tất cả ổ đĩa logic kèm dung lượng và không gian trống (đơn vị byte). Để đổi thành GB: dùng /format:csv rồi tính toán thủ công, hoặc sử dụng scripting. Trên Windows 10, wmic logicaldisk where "DriveType=3" get deviceid,size,freespace lọc chỉ ổ cứng cục bộ.

    Quản lý tiến trình (wmic process)

    wmic process get name,processid,executablepath,workingsetsize liệt kê tất cả tiến trình với PID, đường dẫn và bộ nhớ đang dùng. Có thể kết thúc tiến trình: wmic process where "name='notepad.exe'" delete. Lưu ý: cần quyền Administrator.

    Quản lý dịch vụ (wmic service)

    wmic service get name,state,startmode,pathname hiển thị trạng thái dịch vụ (Running/Stopped) và kiểu khởi động (Auto, Manual, Disabled). Để dừng một dịch vụ: wmic service where "name='Spooler'" call stopservice. Tương tự cho startservicerestartservice.

    Thông tin BIOS và bo mạch chủ

    wmic bios get manufacturer,serialnumber,smbiosbiosversion lấy hãng sản xuất, serial và phiên bản BIOS. Bo mạch chủ: wmic baseboard get product,manufacturer,version. Rất hữu ích khi audit phần cứng doanh nghiệp.

    Danh sách phần mềm đã cài (wmic product)

    wmic product get name,version,vendor liệt kê tất cả phần mềm được cài qua Windows Installer. Lệnh này chạy khá chậm vì phải đọc từng gói. Có thể gỡ cài đặt: wmic product where "name='Tên phần mềm'" call uninstall.

    Các truy vấn nâng cao với WHERE và SELECT

    WHERE hỗ trợ các toán tử: =, <>, <, >, LIKE. Ví dụ: wmic os where "version like '10.%' and osarchitecture='64-bit'" get caption. Ngoài ra, wmic còn hỗ trợ ASSOC để truy xuất các lớp liên quan, và GET với đường dẫn phức tạp. Ví dụ: wmic nic where "NetEnabled=TRUE" get MACAddress,ProductName lấy địa chỉ MAC của card mạng đang hoạt động.

    Xuất kết quả ra file (CSV, HTML, text)

    Kết hợp /output và /format: wmic /output:report.html os get /format:htable. Để xuất CSV: wmic /output:report.csv os get /format:csv. Trên cmd, bạn cũng có thể redirect bằng dấu > nhưng mất định dạng bảng. File HTML có thể xem trực tiếp trên trình duyệt – tiện cho báo cáo nhanh.

    Lợi ích và hạn chế của việc sử dụng lệnh wmic trong cmd

    lệnh wmic trong cmd - Hình 3

    Lợi ích

    • Nhanh và nhẹ: Không cần cài thêm module, thực thi trong tích tắc.
    • Tương thích rộng: Hoạt động trên mọi Windows có wmic.exe (kể cả PE, WinRE).
    • Dễ học: Sử dụng alias thân thiện, cú pháp ngắn gọn.
    • Remote management: Tham số /node giúp quản lý nhiều máy từ xa mà không cần RDP.
    • Script friendly: Kết hợp trong batch file hoặc PowerShell cũ để tự động hóa.

    Hạn chế và cảnh báo deprecation

    • Deprecated: Microsoft chính thức tuyên bố wmic đã lỗi thời từ Windows 10 1803. Trên Windows 11, wmic không được cài mặc định và có thể bị gỡ bỏ hoàn toàn trong tương lai.
    • Hiệu suất: Một số truy vấn (như product) rất chậm so với PowerShell.
    • Không hỗ trợ Unicode đầy đủ: Dễ gây lỗi font khi hiển thị tiếng Việt.
    • Giới hạn logic: WHERE chỉ hỗ trợ một số toán tử, không thể kết hợp phức tạp như PowerShell.
    • Bảo mật: /node yêu cầu mở firewall và quyền WMI từ xa, tiềm ẩn rủi ro nếu cấu hình sai.

    So sánh WMIC với PowerShell trong quản trị Windows

    Tiêu chí WMIC PowerShell (Get-WmiObject / Get-CimInstance)
    Cú pháp Ngắn, alias dễ nhớ Dài hơn nhưng linh hoạt hơn
    Tốc độ Nhanh trên các truy vấn đơn giản Chậm hơn do khởi tạo môi trường PowerShell
    Remote /node đơn giản -ComputerName, yêu cầu PSRemoting hoặc DCOM
    Định dạng đầu ra Text, CSV, HTML cơ bản Object-oriented, dễ xử lý với pipeline
    Bảo dưỡng Không cập nhật, sắp bị xóa Được phát triển, hỗ trợ CIM chuẩn mới
    Khả năng mở rộng Hạn chế Có thể viết function, module, kết hợp với.NET

    Dù PowerShell mạnh mẽ hơn, lệnh wmic trong cmd vẫn có chỗ đứng trong các môi trường cần truy vấn nhanh, không được phép cài thêm phần mềm, hoặc trên các hệ thống Windows cũ (Server 2008, Windows 7).

    Ứng dụng thực tế: Scripting và tự động hóa với WMIC

    lệnh wmic trong cmd - Hình 2

    Trong môi trường doanh nghiệp, lệnh wmic trong cmd thường được dùng trong các batch script để kiểm tra sức khỏe hệ thống. Ví dụ: for /f "skip=1" %a in ('wmic os get lastbootuptime') do @echo %a lấy thời điểm boot cuối. Hoặc viết script inventory thu thập thông tin từ nhiều máy: dùng vòng lặp FOR với /node. Cũng có thể kết hợp task scheduler để chạy script định kỳ xuất báo cáo ra file CSV. Tuy nhiên, nếu bạn cần xử lý dữ liệu phức tạp (phân tích, so sánh), hãy dùng PowerShell hoặc chuyển qua dùng wmic chỉ để export rồi xử lý bằng Excel.

    Sai lầm thường gặp khi dùng lệnh WMIC và cách khắc phục

    • Không chạy với quyền Administrator: Nhiều truy vấn (process, service, product) trả về lỗi “Access denied”. Khắc phục: nhấp phải cmd và chọn “Run as administrator”.
    • Sai cú pháp WHERE: Quên dấu ngoặc kép hoặc dùng sai toán tử. Ví dụ: where name=notepad (thiếu dấu nháy) sẽ báo lỗi. Sửa: where "name='notepad.exe'".
    • Đầu ra không có thông tin: Nếu kết quả trả về rỗng, nguyên nhân có thể do alias không đúng hoặc thuộc tính không tồn tại trên phiên bản Windows đó. Dùng wmic alias get để kiểm tra.
    • Hiểu nhầm đơn vị: Dung lượng ổ đĩa hiển thị bằng byte (không phải MB/GB). Cần chia toán học trong script hoặc dùng powershell để định dạng.
    • Chạy wmic trên Windows 11 và gặp lỗi “wmic is not recognized”: Do tính năng bị tắt. Bật tại “Turn Windows features on or off” hoặc cài lại wmic.exe (không khuyến khích). Tốt nhất chuyển sang PowerShell.
Xem thêm:  Cách cấu hình audio settings chuyên nghiệp từ A đến Z cho người mới bắt đầu

Lưu ý quan trọng khi sử dụng lệnh WMIC trên Windows 10/11

lệnh wmic trong cmd - Hình 1

Trên Windows 10 phiên bản 20H2 trở lên và Windows 11, Microsoft đã vô hiệu hóa wmic theo mặc định (có thể kích hoạt lại tạm thời). Trong các bản build Insider, wmic đã bị xóa hẳn. Nếu bạn cần duy trì khả năng tương thích, hãy thay thế bằng lệnh tương đương trong PowerShell. Ví dụ: Get-CimInstance Win32_OperatingSystem thay cho wmic os. Ngoài ra, lệnh wmic trong cmd có thể bị chặn bởi chính sách group (AppLocker, Software Restriction). Kiểm tra trước khi triển khai script trên diện rộng.

Câu hỏi thường gặp về lệnh wmic trong cmd (FAQ)

WMIC có còn hoạt động trên Windows 11 không?

Có, nhưng không được cài mặc định.

Sử dụng các alias như cpu, baseboard, memorychip, diskdrive. Ví dụ: wmic memorychip get banklabel,capacity,speed cung cấp dung lượng và tốc độ RAM. Kết hợp /format:list để xem chi tiết từng module.

Tại sao lệnh wmic không được nhận diện?

Lỗi “‘wmic’ is not recognized as an internal or external command” xảy ra khi file wmic.exe không tồn tại trong PATH. Trong trường hợp đó, cài đặt hoặc kích hoạt lại WMIC qua “Windows Features”. Nếu không, hãy sử dụng PowerShell với Get-WmiObject để thay thế.

WMIC khác gì so với WMI trong PowerShell?

WMIC (lệnh trong cmd) là giao diện dòng lệnh cũ dùng alias. PowerShell (Get-WmiObject / Get-CimInstance) là cmdlet (command-let) hiện đại, hỗ trợ pipeline, object-oriented và tương thích với.NET. CIM (Common Information Model) là chuẩn mới, an toàn hơn cho remote. Về bản chất, cả hai đều truy cập cùng một lớp WMI.

Xem thêm:  Hướng dẫn chi tiết cách nhập file reg vào Windows an toàn và hiệu quả

Có nên tiếp tục sử dụng WMIC trong môi trường sản xuất?

Không nên cho các hệ thống Windows 10 mới và Windows 11. Trên các máy chủ cũ (Windows Server 2012 R2 trở xuống) wmic vẫn hoạt động ổn định, nhưng kế hoạch chuyển đổi sang PowerShell nên được ưu tiên. Nếu bạn viết script cho nhiều phiên bản Windows, hãy dùng lệnh kiểm tra sự tồn tại của wmic.exe rồi fallback sang PowerShell tự động.

Kết luận

Lệnh wmic trong cmd là công cụ truyền thống nhưng vẫn cực kỳ giá trị trong kho vũ khí của quản trị viên Windows. Từ việc lấy thông tin hệ thống nhanh đến quản lý dịch vụ từ xa, wmic giúp tiết kiệm thời gian và đơn giản hóa công việc. Tuy nhiên, trước sự lỗi thời từ phía Microsoft, bạn nên bắt đầu học và chuyển sang PowerShell để đảm bảo tương lai. Hãy tận dụng wmic cho những tác vụ cần tốc độ và đơn giản, nhưng luôn sẵn sàng di cư khi hệ thống yêu cầu. Với hướng dẫn chi tiết và các ví dụ thực tế trong bài, bạn đã có đủ kiến thức để sử dụng wmic một cách hiệu quả và tránh được những sai lầm phổ biến.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *