# Quản lý dịch vụ Windows bằng: net start và sc

### 1. Giới thiệu

Trong hệ điều hành **Windows**, các **dịch vụ (services)** đóng vai trò quan trọng trong việc duy trì hoạt động ổn định của hệ thống – từ in ấn, mạng, bảo mật cho đến phần mềm chạy nền.

Để quản lý các dịch vụ này, Windows cung cấp hai công cụ dòng lệnh mạnh mẽ:

* **`net start` / `net stop`** – dùng để **bật hoặc tắt dịch vụ** nhanh chóng.
* **`sc` (Service Control)** – cho phép **tạo, xóa, cấu hình và kiểm tra chi tiết dịch vụ**.

Bài viết này sẽ hướng dẫn bạn **từng bước từ cơ bản đến nâng cao**, giúp bạn nắm rõ cách dùng, điểm khác biệt và ứng dụng thực tế của hai công cụ này.

***

### 2. Lệnh `net start` – Quản lý dịch vụ cơ bản

#### ✅ Cú pháp:

```
net start [tên_dịch_vụ]
```

#### 🔹 Một số ví dụ phổ biến:

1. **Xem danh sách các dịch vụ đang chạy:**

   ```
   net start
   ```
2. **Khởi động một dịch vụ cụ thể (ví dụ Print Spooler):**

   ```
   net start "Print Spooler"
   ```
3. **Dừng dịch vụ:**

   ```
   net stop "Print Spooler"
   ```

🟢 **Ưu điểm:**

* Dễ dùng, nhanh chóng.
* Phù hợp khi bạn chỉ cần bật/tắt dịch vụ.

🔴 **Hạn chế:**

* Không thể tạo, cấu hình hoặc xóa dịch vụ.
* Không hiển thị chi tiết trạng thái.

***

### 3. Lệnh `sc` – Công cụ điều khiển dịch vụ nâng cao

`sc` (Service Control) là công cụ dòng lệnh mạnh mẽ giúp bạn tương tác sâu hơn với hệ thống dịch vụ Windows.

#### ✅ Cú pháp chung:

```
sc [lệnh] [tên_dịch_vụ] [các_tham_số_khác]
```

#### 📋 Các lệnh thông dụng nhất:

| Lệnh        | Chức năng                   |
| ----------- | --------------------------- |
| `sc start`  | Khởi động dịch vụ           |
| `sc stop`   | Dừng dịch vụ                |
| `sc delete` | Xóa dịch vụ                 |
| `sc query`  | Kiểm tra trạng thái dịch vụ |
| `sc create` | Tạo dịch vụ mới             |
| `sc config` | Cấu hình thông số dịch vụ   |

***

### 4. Tạo dịch vụ tùy chỉnh bằng `sc create`

Khi bạn cần chạy một ứng dụng hoặc tiến trình nền như một dịch vụ Windows, hãy dùng `sc create`.

#### 🧾 Cú pháp:

```
sc create [Tên_dịch_vụ] binPath= "[Đường_dẫn_đến_file_thực_thi]" start= [kiểu_khởi_động]
```

#### 📘 Ví dụ:

Tạo dịch vụ tên **MyService** chạy tự động khi khởi động máy:

```
sc create MyService binPath= "C:\Tools\MyApp.exe" start= auto
```

> ⚠️ **Lưu ý:** Sau dấu `=` cần có khoảng trắng (`start= auto`), và file `.exe` phải hỗ trợ chạy dạng dịch vụ.

***

### 5. Kiểm tra và cấu hình dịch vụ bằng `sc`

#### 🔹 Kiểm tra trạng thái dịch vụ:

```
sc query MyService
```

Kết quả hiển thị:

```
SERVICE_NAME: MyService
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
```

* `STATE: 4 RUNNING` → dịch vụ đang chạy
* `STATE: 1 STOPPED` → dịch vụ đã dừng

#### 🔹 Cấu hình kiểu khởi động:

```
sc config MyService start= auto
```

| Giá trị    | Ý nghĩa                        |
| ---------- | ------------------------------ |
| `auto`     | Tự động khởi động cùng Windows |
| `demand`   | Khởi động thủ công             |
| `disabled` | Vô hiệu hóa dịch vụ            |

***

### 6. So sánh nhanh `net start` và `sc`

| Tiêu chí                     | `net start` / `net stop` | `sc`                         |
| ---------------------------- | ------------------------ | ---------------------------- |
| Mức độ phức tạp              | Dễ dùng                  | Nâng cao                     |
| Chức năng chính              | Bật/tắt dịch vụ          | Quản lý toàn diện            |
| Tạo/xóa dịch vụ              | ❌ Không                  | ✅ Có                         |
| Hiển thị trạng thái chi tiết | ❌ Không                  | ✅ Có (`sc query`)            |
| Đối tượng phù hợp            | Người dùng phổ thông     | Quản trị viên, kỹ thuật viên |

***

### 7. Tự động hóa quản lý dịch vụ bằng file Batch (.bat)

Khi bạn cần thao tác thường xuyên, việc dùng **file `.bat`** sẽ giúp tiết kiệm thời gian và tự động hóa quá trình.

***

#### 🧩 Ví dụ 1 – Trình quản lý dịch vụ mini

**📄 File: `service-control.bat`**

```bat
@echo off
title Trinh quan ly dich vu Windows
echo =========================================
echo      CONG CU QUAN LY DICH VU WINDOWS
echo =========================================
echo.
echo 1. Kiem tra trang thai dich vu
echo 2. Khoi dong dich vu
echo 3. Dung dich vu
echo 4. Xoa dich vu
echo 5. Thoat
echo.

set /p choice=Nhap lua chon (1-5): 
set /p service=Nhap ten dich vu: 

if "%choice%"=="1" (
    sc query "%service%"
) else if "%choice%"=="2" (
    net start "%service%"
) else if "%choice%"=="3" (
    net stop "%service%"
) else if "%choice%"=="4" (
    sc stop "%service%"
    sc delete "%service%"
    echo Da xoa dich vu "%service%"
) else (
    echo Tam biet!
)
pause
```

💡 *Cách dùng:*

* Lưu file `.bat` → chạy với quyền **Administrator**
* Nhập số tương ứng với thao tác bạn muốn thực hiện.

***

#### 🧩 Ví dụ 2 – Tự động kiểm tra và khởi động lại dịch vụ bị dừng

**📄 File: `auto-restart-service.bat`**

```bat
@echo off
set servicename=MyService

:loop
sc query "%servicename%" | find "RUNNING" >nul
if errorlevel 1 (
    echo [%date% %time%] Dich vu %servicename% khong chay. Dang khoi dong lai...
    net start "%servicename%"
) else (
    echo [%date% %time%] Dich vu %servicename% van dang hoat dong.
)
timeout /t 60 >nul
goto loop
```

✅ **Tác dụng:**

* Kiểm tra dịch vụ mỗi 60 giây.
* Nếu phát hiện dừng → tự động khởi động lại.
* Có thể chạy ẩn bằng **Task Scheduler** khi khởi động Windows.

***

### 8. Mẹo và thủ thuật hữu ích

| Nhiệm vụ                           | Lệnh tương ứng                                 |
| ---------------------------------- | ---------------------------------------------- |
| Xem toàn bộ dịch vụ (kể cả dừng)   | `sc query type= service state= all`            |
| Ghi log trạng thái dịch vụ ra file | `sc query MyService >> C:\Logs\service.log`    |
| Dừng rồi khởi động lại dịch vụ     | `net stop MyService && net start MyService`    |
| Tự động chạy script khi bật máy    | Dùng **Task Scheduler** → Trigger “At startup” |

***

### 9. Kết luận – Làm chủ dòng lệnh, tối ưu hệ thống

Khi nắm vững `net start` và `sc`, bạn có thể:

* **Kiểm soát toàn bộ dịch vụ Windows** bằng vài dòng lệnh.
* **Tự động hóa** việc khởi động, dừng, khởi tạo hoặc khắc phục lỗi dịch vụ.
* **Tiết kiệm thời gian** và giảm rủi ro thao tác sai trong môi trường thực tế.

{% hint style="info" %}
💬 **Gợi ý cho người dùng nâng cao:**\
Bạn có thể kết hợp thêm **PowerShell** để tạo log chi tiết, gửi thông báo, hoặc tự động khởi động lại dịch vụ khi phát hiện sự cố – giúp quản lý hệ thống chuyên nghiệp hơn nữa.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blogs.nhquydev.net/windows/quan-ly-dich-vu-windows-bang-net-start-va-sc.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
