How to disable/enable network card on windows for specific time?

How to disable/enable network card on windows for specific time?

 Hôm nay có một vị phụ huynh than phiền rằng con anh ấy thức khuya quá.

Anh ấy nhờ giúp khóa mạng trên máy tính Windows cho laptop của con anh ấy theo giờ từ 00:00 đến 06:00 sáng.

Với yêu cầu : khóa mạng internet theo khung giờ, chúng ta có thể thực hiện dễ dàng mà không cần cài phần mềm gì cả.

TẠO CÁC ĐOẠN SCRIPTS CẦN THIẾT

1/ Mở Notepad

2/ Dán đoạn code PowerShell Script vào:


# Define the time range
$disableStartTime = [datetime]::Today.AddHours(0)  # 00:00
$disableEndTime = [datetime]::Today.AddHours(22)    # 06:00

# Get the current time
$currentTime = [datetime]::Now

# Get all network adapters
$adapters = Get-NetAdapter

foreach ($adapter in $adapters) {
    if ($currentTime -ge $disableStartTime -and $currentTime -lt $disableEndTime) {
        # Disable adapters if within the time range
        if ($adapter.Status -eq 'Up') {
            Disable-NetAdapter -Name $adapter.Name -Confirm:$false
        }
    } else {
        # Enable adapters if outside the time range
        if ($adapter.Status -eq 'Disabled') {
            Enable-NetAdapter -Name $adapter.Name -Confirm:$false
        }
    }
}

3/ Lưu lại với tên là "ManageNetwork.ps1"

4/ Mở Notepad mới, dán đoạn code VBScript này vào:


Set objShell = CreateObject("WScript.Shell")
objShell.Run "powershell.exe -ExecutionPolicy Bypass -File ""C:\Path\To\Your\Script\ManageNetwork.ps1""", 0, False

Nhớ thay thế cái đoạn C:\Path\To\Your\Script\ManageNetwork.ps1 cho đúng với nơi lưu ManageNetwork.ps1

5/ Lưu đoạn VBScript trên lại với tên là "RunManageNetwork.vbs"

TẠO SCHEDULED TASK ĐỂ CHẠY VBScript

Mở Task Scheduler --> create Task

  • General tab(*): 
    • Name: Manage Network Adapters
    • Chọn Run with highest privileges.
  • Triggers tab --> New
    • Daily
    • Repeat task every: 5 minutes
  • Actions tab: --> New
    • Set the action to "Start a program".
    • Program/script: wscript.exe
    • Add arguments (optional): C:\Path\To\Your\Script\RunManageNetwork.vbs
  • Conditions tab: bỏ hết tất cả dấu check (nêu có)
  • Settings tab:
    • Check "Allow task to be run on demand".

Click "OK" để tạo Task.

Click chuột phải bào tên task vừa tạo, chọn Run để nó chạy là xong!

Tại sao phải cần thêm đoạn code VBScript? 

Thật ra chỉ cần tạo Task Scheduler trực tiếp cho "ManageNetwork.ps1" là đủ rồi. Tuy nhiên, khi PowerShell chạy nó sẽ nhảy ra cửa sổ nên chúng ta dùng VBscript để chạy ẩn. 





Viết nhận xét

Các bạn có thể viết lời nhận xét cho bài viết, nhưng cần tuân thủ một số quy tắc sau:

» Các nhận xét/bình luận phải nghiêm túc, không dung tục, không spam.
» Nội dung phải liên quan tới chủ đề bài viết.
» Viết bằng tiếng việt có dấu hoặc tiếng Anh. Nội dung viết không dấu sẽ bị xóa.
» Hãy để lại tên của bạn khi nhận xét/bình luận, để tôi có thể dễ dàng trả lời bạn khi cần.