• Thứ Hai, 26/06/2006 10:02 (GMT+7)

    Dùng VBScript để tắt máy từ xa

    Sau khi viết bài "Tắt máy từ xa với shutdown.exe của Windows server 2003" (TGVT A 12/2004), nhiều bạn đọc đã gửi email hỏi tôi giải pháp dùng Windows Script. Nay tôi xin phép giới thiệu giải pháp này.

    Windows Script

    Windows Script là gì? Để trả lời cho câu hỏi này các bạn nên tham khảo trang http://msdn.microsoft.com/scripting.

    Ở đây, tôi xin đi thẳng vào cách phối hợp VBScript và chương trình shutdown.exe để tắt máy từ xa.

    Trong bài trước, để tắt máy từ xa, chúng ta dùng lệnh For để thực hiện lệnh "shutdown" cho 30 máy (MT1, MT2,... MT30). Nhược điểm của cách này là phải thực hiện đủ 30 lệnh "shutdown", cho dù máy đó tắt hay mở. Vấn đề đặt ra là "chỉ gởi lệnh shutdown đối với các máy đang mở", như vậy có vấn đề cần giải quyết là phát hiện "máy tính đang mở".

    Chúng ta sẽ dùng đoạn mã sau:

    Dim ObjDomain, ObjComputer, WshShell

    Dim domainName, str, i

    Dim txtCmd, txtCmd_H, txtCmd_F

    On Error Resume Next

    Set objNetwork = WScript.CreateObject("WScript.Network")

    domainName = objNetwork.UserDomain Lay domain mac dinh

    domainName = inputBox("Workgroup or DomainName?","Domain Name", domainName)

    if len(domainName)>0 then

    Set ObjDomain = GetObject("WinNT://" & domainName)

    ObjDomain.filter = array("Computer")

    Set WshShell = WScript.CreateObject("WScript.Shell")

    txtCmd_H = "shutdown /s /m \\"

    tstCmd_F = " /t 120 /c ""Da het gio thuc hanh"" /f"

    For Each ObjComputer In ObjDomain

    txtCmd = txtCmd_H & ObjComputer.name & txtCmd_F

    WshShell.Run txtCmd, 0

    Next

    Set ObjComputer = nothing

    Set ObjDomain = nothing

    end if

    Set WshShell = nothing

    Nếu chưa từng lập trình, các câu lệnh này có thể khó hiểu với bạn... nhưng không sao! Bạn chỉ việc dùng notepad tạo một tập tin có tên ShutdownAll.vbs và gõ đoạn mã trên vào. Tôi giả định là bạn lưu tập tin này vào thư mục C:\WINDOWS\SYSTEM32.

    Sử dụng

    • Cách 1: Chạy trong môi trường Windows

    - Nhấn đúp vào tập tin ShutdownAll.vbs

    - Hoặc bạn có thể tạo một shortcut với nội dung:

    "Wscript.exe C:\WINDOWS\SYSTEM32\ShutdownAll.vbs"

    • Cách 2: Chạy trong môi trường cửa sổ lệnh (Command Prompt). Bạn chỉ cần gõ lệnh:

    Cscript.exe C:\WINDOWS\SYSTEM32\ShutdownAll.vbs

    Lưu ý: Những máy tính có dùng tường lửa (firewall) của Windows thì đoạn mã trên không thể tác động đến được.

    Lê Quốc Cường
    Trung Tâm Tin Học – Đại Học An Giang
    lqc_agu@yahoo.com

    ID: A0606_130