Skip to main content

04 — Hệ điều hành Windows & Active Directory

Mục tiêu bài này: Làm chủ Windows ở góc độ người hỗ trợ (không phải người dùng cuối): quản lý dịch vụ, đọc log lỗi, quản lý tài khoản, và hiểu Active Directory (AD) — "bộ não quản lý danh tính" của mọi doanh nghiệp lớn, bao gồm sân bay. Đối tượng: Người có nền code. Bạn sẽ thấy PowerShell quen thuộc — đây là vũ khí mạnh nhất của bạn. Cách đọc: Mỗi mục có phần "🔧 Thực hành" — làm ngay trên máy thật/VM.


Mục lục

  1. Bức tranh: Windows trong doanh nghiệp khác máy cá nhân thế nào
  2. Kiến trúc Windows mà helpdesk cần biết
  3. Các công cụ quản trị "phải thuộc"
  4. Quản lý tài khoản cục bộ (Local) vs Domain
  5. Active Directory — trái tim quản lý danh tính
  6. Group Policy (GPO) — áp đặt cấu hình hàng loạt
  7. PowerShell cho helpdesk (vũ khí của dân code)
  8. Event Viewer — đọc "nhật ký" để chẩn đoán
  9. Các sự cố Windows thường gặp & cách xử lý
  10. Bối cảnh sân bay
  11. Thực hành tổng hợp
  12. Những điều cần lưu ý
  13. Thuật ngữ

1. Windows doanh nghiệp vs cá nhân

Máy ở nhà bạn tự quản. Máy trong doanh nghiệp/sân bay được quản lý tập trung.

Workgroup (cá nhân)Domain (doanh nghiệp)
Quản lý tài khoảnTừng máy riêngTập trung tại AD
Đăng nhậpTài khoản cục bộTài khoản domain (vd airport\nva.nguyen)
Chính sáchTự đặtIT áp qua GPO
Quy môVài máyHàng trăm–nghìn máy

🧠 Khái niệm cốt lõi: Trong doanh nghiệp, bạn đăng nhập vào máy bằng tài khoản nằm trên server (Domain Controller), không phải trên máy đó. Đây là lý do một nhân viên hãng bay đăng nhập được ở bất kỳ quầy nào — vì tài khoản nằm tập trung.


2. Kiến trúc Windows

Vài khái niệm Windows mà helpdesk cần "thấy xuyên qua":

Khái niệmLà gìLiên quan helpdesk
Services (Dịch vụ)Chương trình chạy nền, không có cửa sổ (vd: Print Spooler, DHCP Client)Nhiều sự cố = dịch vụ dừng → restart là xong
RegistryCSDL phân cấp lưu mọi cấu hình WindowsMột số fix nâng cao chỉnh registry (cẩn thận!)
DriversPhần mềm cho HĐH "nói chuyện" với phần cứngThiết bị lỗi thường do driver
ProcessesChương trình đang chạyTreo máy → kill process trong Task Manager
Environment VariablesBiến môi trường (PATH...)Dân code đã quen

💡 Liên hệ dân code: Service giống một daemon/background process (như systemd service ở Linux). Registry giống một cây config khổng lồ (kiểu JSON/YAML lồng nhau) cho cả hệ thống.


3. Các công cụ quản trị

Học cách mở nhanh bằng cách gõ vào hộp Run (Win + R) hoặc Start. Thuộc bảng này = làm việc nhanh gấp đôi.

Lệnh (gõ vào Run)Công cụDùng để
taskmgrTask ManagerXem/kill tiến trình, hiệu năng
devmgmt.mscDevice ManagerQuản lý phần cứng/driver
services.mscServicesStart/stop dịch vụ
eventvwr.mscEvent ViewerĐọc log lỗi
compmgmt.mscComputer ManagementTổng hợp nhiều công cụ
diskmgmt.mscDisk ManagementQuản lý phân vùng ổ
msconfigSystem ConfigurationQuản lý khởi động
regeditRegistry EditorSửa registry (cẩn thận!)
gpedit.mscLocal Group PolicyChính sách cục bộ
dsa.mscAD Users & ComputersQuản lý AD (trên server/máy có RSAT)
control printersPrintersQuản lý máy in
ncpa.cplNetwork ConnectionsCard mạng
appwiz.cplPrograms & FeaturesGỡ phần mềm

🔧 Thực hành 3: Mở Win+R, gõ lần lượt 5 lệnh đầu bảng, quan sát mỗi công cụ. Ghi chú "công cụ này dùng khi nào".


4. Tài khoản Local vs Domain

Quyền hạn (permissions):

  • Standard User: dùng bình thường, không cài được phần mềm hệ thống. (Đa số nhân viên.)
  • Administrator: toàn quyền trên máy. (IT/helpdesk dùng có kiểm soát.)

⚠️ Nguyên tắc Least Privilege (đặc quyền tối thiểu): Chỉ cấp quyền đủ dùng, không hơn. Nhân viên check-in không cần quyền admin. Đây là nguyên tắc bảo mật nền tảng — đặc biệt nghiêm ngặt ở sân bay.

🔧 Thực hành 4: Mở lusrmgr.msc (Local Users and Groups) hoặc compmgmt.msc → xem tài khoản cục bộ & nhóm trên máy bạn. Tài khoản của bạn thuộc nhóm nào (Users hay Administrators)?


5. Active Directory

AD là phần quan trọng nhất bài này. Nó là "danh bạ + bộ não phân quyền" của doanh nghiệp.

5.1. AD là gì?

Active Directory là dịch vụ thư mục (directory service) của Microsoft, chạy trên Domain Controller (DC). Nó lưu trữ và quản lý:

  • 👤 Users (tài khoản người dùng)
  • 💻 Computers (máy tính trong domain)
  • 👥 Groups (nhóm để gom quyền)
  • 🖨️ Resources (máy in, thư mục chia sẻ...)

5.2. Cấu trúc phân cấp AD

Khái niệmLà gìVí von
ForestRanh giới bảo mật cao nhất, chứa nhiều domainCả tập đoàn
DomainĐơn vị quản lý (vd airport.local)Một công ty con
OU (Organizational Unit)Thư mục để tổ chức users/computers + áp GPOPhòng ban
UserTài khoản người dùngNhân viên
GroupTập hợp user để gán quyền hàng loạtVai trò/chức danh
ComputerMáy đã join domainThiết bị

🧠 Vì sao dùng Group? Thay vì cấp quyền cho từng user một (mệt + dễ sai), bạn cấp quyền cho group rồi cho user vào group. Nhân viên mới → bỏ vào group "Checkin-Counter-Users" → tự có mọi quyền cần thiết. Đây là tư duy RBAC (Role-Based Access Control) — dân code rất quen.

5.3. Tác vụ AD helpdesk làm hằng ngày

Tác vụTần suấtCông cụ
Reset password⭐⭐⭐ Rất thườngADUC (dsa.msc) hoặc PowerShell
Unlock account (bị khoá do nhập sai nhiều lần)⭐⭐⭐ADUC / PowerShell
Tạo user mới⭐⭐ADUC / PowerShell
Thêm/bớt user khỏi group⭐⭐ADUC / PowerShell
Disable account (nhân viên nghỉ)ADUC / PowerShell
Tìm user/máy⭐⭐ADUC / PowerShell

🔧 Thực hành 5 (cần lab có Domain Controller — xem file 15): Trên DC, mở ADUC (dsa.msc):

  1. Tạo 1 OU tên "CheckinStaff".
  2. Tạo 2 user trong đó.
  3. Tạo group "Checkin-Users", thêm 2 user vào.
  4. Reset password 1 user. Khoá rồi unlock 1 user.

6. Group Policy (GPO)

GPO = cách IT áp đặt cấu hình/chính sách lên hàng loạt máy & user tự động.

GPO làm được gì? Gần như mọi thứ:

  • 🔐 Bảo mật: độ phức tạp mật khẩu, khoá USB, tường lửa.
  • 🖥️ Giao diện: hình nền, menu Start, khoá Control Panel.
  • 🌐 Mạng: ổ đĩa mạng (mapped drive), máy in mặc định.
  • 📦 Phần mềm: triển khai/cấm phần mềm.

Ví dụ sân bay: GPO gắn vào OU "CheckinStaff" có thể:

  • Tự map máy in của khu vực quầy.
  • Khoá màn hình sau X phút không dùng (bảo mật).
  • Cấm cắm USB lạ (chống mã độc).
  • Đặt trang chủ trình duyệt = hệ thống nội bộ.

🔧 Lệnh helpdesk hay dùng: gpupdate /force — ép máy cập nhật GPO ngay (không chờ chu kỳ tự động). gpresult /r — xem máy/user đang nhận những GPO nào (chẩn đoán "vì sao chính sách không áp").

⚠️ Lưu ý: GPO áp theo thứ tự L-S-D-OU (Local → Site → Domain → OU), cái sau ghi đè cái trước. Khi "chính sách không như mong đợi", dùng gpresult để xem GPO nào thắng.


7. PowerShell cho helpdesk

🚀 Đây là sân chơi của bạn — dân code. Trong khi đồng nghiệp click chuột mỏi tay, bạn viết 1 dòng script xử lý 100 máy.

7.1. Lệnh nền tảng (làm việc với hệ thống)

# Xem dịch vụ
Get-Service                          # liệt kê tất cả dịch vụ
Get-Service -Name Spooler            # xem 1 dịch vụ
Restart-Service Spooler              # restart Print Spooler (fix kẹt in)

# Xem tiến trình
Get-Process                          # tiến trình đang chạy
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5  # top 5 ngốn CPU
Stop-Process -Name notepad           # kill tiến trình

# Thông tin hệ thống
Get-ComputerInfo                     # thông tin máy
Get-CimInstance Win32_LogicalDisk    # dung lượng ổ đĩa

7.2. Lệnh mạng (chẩn đoán kết nối)

Test-Connection google.com           # giống ping
Test-NetConnection -Port 443 server  # kiểm tra cổng có mở không
Get-NetIPConfiguration               # cấu hình IP (giống ipconfig)
Resolve-DnsName airport.local        # phân giải DNS (giống nslookup)

7.3. Lệnh Active Directory (cần module RSAT/ActiveDirectory)

# Tìm & xem user
Get-ADUser -Identity nva.nguyen
Get-ADUser -Filter * -SearchBase "OU=CheckinStaff,DC=airport,DC=local"

# Reset password
Set-ADAccountPassword -Identity nva.nguyen -Reset -NewPassword (Read-Host -AsSecureString)

# Unlock account
Unlock-ADAccount -Identity nva.nguyen

# Disable / Enable
Disable-ADAccount -Identity nva.nguyen
Enable-ADAccount -Identity nva.nguyen

# Quản lý group
Add-ADGroupMember -Identity "Checkin-Users" -Members nva.nguyen
Get-ADGroupMember -Identity "Checkin-Users"

7.4. Sức mạnh thật — tự động hoá hàng loạt

# Tạo 20 user mô phỏng nhân viên hãng bay từ vòng lặp
1..20 | ForEach-Object {
    $name = "staff$_"
    New-ADUser -Name $name -SamAccountName $name `
        -AccountPassword (ConvertTo-SecureString "P@ssw0rd123" -AsPlainText -Force) `
        -Path "OU=CheckinStaff,DC=airport,DC=local" -Enabled $true
    Write-Host "Đã tạo $name"
}

💡 Đây chính là lợi thế cạnh tranh của bạn. Người không biết code phải tạo tay 20 lần. Bạn chạy 1 script. Khi phỏng vấn, kể được việc này = điểm cộng lớn.

🔧 Thực hành 7: Mở PowerShell, chạy thử các lệnh ở 7.1 và 7.2 (an toàn, chỉ đọc). Quan sát output. Thử Get-Process | Sort-Object CPU -Descending | Select-Object -First 5.


8. Event Viewer

Event Viewer = "hộp đen" của Windows. Mọi sự kiện (lỗi, cảnh báo, thông tin) đều ghi vào đây. Đọc được nó = chẩn đoán như thám tử.

Các mức sự kiện:

MứcÝ nghĩa
🔴 ErrorLỗi nghiêm trọng (dịch vụ chết, app crash)
🟡 WarningCảnh báo (sắp có vấn đề)
🔵 InformationSự kiện bình thường
🔴 CriticalLỗi rất nặng (mất dữ liệu, tự tắt)

Mỗi event có:

  • Event ID (số định danh — Google "Event ID 41" sẽ ra ngay vấn đề).
  • Source (nguồn gây sự kiện).
  • Time (thời điểm — đối chiếu với lúc sự cố xảy ra).

🔧 Thực hành 8: Mở eventvwr.msc → Windows Logs → System. Tìm các dòng Error (màu đỏ). Click vào 1 cái, đọc mô tả + ghi lại Event ID. Thử Google Event ID đó để hiểu cách tra cứu.

🧠 Mẹo thám tử: Khi máy gặp sự cố, hỏi "nó xảy ra lúc mấy giờ?" rồi vào Event Viewer lọc theo thời điểm đó → tìm Error trùng giờ. Rất hay tìm ra thủ phạm.


9. Các sự cố Windows thường gặp

Sự cốNguyên nhân thường gặpCách xử lý L1
Không đăng nhập đượcSai pass / account bị khoá / mất kết nối DCReset/unlock; kiểm tra mạng tới DC
"Account locked out"Nhập sai mật khẩu nhiều lần (hoặc app cũ lưu pass cũ)Unlock-ADAccount; tìm thiết bị giữ pass cũ
Máy chậmĐầy ổ, nhiều app khởi động, thiếu RAM, malwareTask Manager xem ngốn gì; dọn startup (msconfig)
Không in đượcPrint Spooler kẹtRestart-Service Spooler
Không vào mạngCáp/IP/DNS/DHCPChẩn đoán theo lớp (file 05)
Mất profile / desktop trốngLỗi user profileĐăng nhập lại; kiểm tra profile lỗi
App treoTiến trình treoKill trong Task Manager, mở lại
Cập nhật Windows lỗiUpdate hỏngChạy Windows Update Troubleshooter
Màn hình xanh (BSOD)Driver/RAM/phần cứngGhi mã lỗi, xem Event Viewer, kiểm RAM

🔧 Quy trình chuẩn cho mọi sự cố Windows:

  1. Hỏi: triệu chứng chính xác? bắt đầu khi nào? vừa thay đổi gì?
  2. Tái hiện: xem tận mắt nếu được.
  3. Khoanh vùng: 1 máy hay nhiều máy? 1 user hay mọi user?
  4. Kiểm tra log: Event Viewer quanh thời điểm lỗi.
  5. Thử fix đơn giản: restart dịch vụ/máy, đăng nhập lại.
  6. Escalate nếu vượt L1, kèm đầy đủ thông tin.

10. Bối cảnh sân bay

Windows & AD ở sân bay có vài đặc thù:

  • Đa tổ chức: nhiều hãng bay, đơn vị mặt đất, an ninh — phân quyền (OU/Group/GPO) rất chặt để cách ly.
  • Common use + roaming: nhân viên đăng nhập ở nhiều quầy khác nhau → tài khoản domain + profile quản lý tập trung là điều kiện bắt buộc.
  • Bảo mật nghiêm: GPO khoá USB, ép khoá màn hình, kiểm soát phần mềm — vì liên quan dữ liệu hành khách (PII) và an ninh hàng không.
  • Tài khoản dịch vụ (service accounts): các hệ thống chuyên ngành (DCS, FIDS) chạy bằng tài khoản dịch vụ riêng — đừng nhầm với tài khoản người dùng.
  • Tính sẵn sàng: DC thường có dự phòng (nhiều DC) vì nếu AD chết → không ai đăng nhập được ở bất kỳ quầy nào = thảm hoạ.

⚠️ Hệ quả phải nhớ: AD/DC là điểm chết người (single point of failure) nếu không dự phòng. Sự cố AD ở sân bay = sự cố diện rộng (Major Incident), escalate ngay.


11. Thực hành tổng hợp

Bài 1 — Làm chủ công cụ Run

Mở 8 công cụ ở mục 3 bằng Win+R. Với mỗi cái, viết 1 câu "dùng khi nào".

Bài 2 — Thám tử Event Viewer

Vào eventvwr.msc → System → tìm 3 Error gần nhất. Ghi Event ID + Source + đoán nguyên nhân. Google 1 Event ID.

Bài 3 — PowerShell cơ bản

Chạy và quan sát:

Get-Service | Where-Object {$_.Status -eq "Running"} | Measure-Object   # đếm dịch vụ đang chạy
Get-Process | Sort-Object WS -Descending | Select-Object -First 5       # top 5 ngốn RAM
Get-CimInstance Win32_LogicalDisk | Select-Object DeviceID, @{N="FreeGB";E={[math]::Round($_.FreeSpace/1GB,1)}}

Bài 4 — Lab AD (sau khi dựng DC ở file 15)

Tạo OU → 3 user → 1 group → reset pass → unlock → thêm user vào group. Làm 2 lần: 1 lần bằng ADUC (chuột), 1 lần bằng PowerShell. So sánh tốc độ.

Bài 5 — Mô phỏng sự cố

Tự khoá tài khoản test (nhập sai pass nhiều lần ở VM) → quan sát thông báo → unlock bằng Unlock-ADAccount. Ghi lại quy trình thành 1 KB article.


12. Những điều cần lưu ý

  1. 🔑 Reset password & unlock account là việc bạn làm NHIỀU NHẤT. Thành thạo cả 2 cách (chuột + PowerShell).
  2. 🎯 Least Privilege luôn đúng. Không cấp quyền admin "cho tiện". Đặc biệt ở sân bay.
  3. 🗄️ AD chết = cả mạng tê liệt. Hiểu vai trò sống còn của Domain Controller; sự cố AD là Major Incident.
  4. 📓 Event Viewer là bạn thân. Bí sự cố → vào đây xem Error quanh thời điểm lỗi trước khi đoán mò.
  5. ⚙️ Nhiều sự cố chỉ là một dịch vụ bị dừng. Học phản xạ kiểm tra & restart dịch vụ (services.msc / Restart-Service).
  6. 🚀 PowerShell là siêu năng lực của bạn. Mọi việc lặp lại → script hoá. Đây là khác biệt giữa bạn và helpdesk không biết code.
  7. 📋 GPO áp đặt mọi thứ — khi cấu hình "lạ", nghĩ tới GPO. Dùng gpresult /r để xem chính sách đang áp.
  8. ⚠️ Registry & GPO sửa sai có thể hỏng cả hệ thống. Cẩn trọng, backup trước, hiểu rồi mới sửa.
  9. 🧪 Luôn thử trên VM trước. Đừng học AD/GPO trên máy thật của công ty — dựng lab (file 15).

13. Thuật ngữ

Thuật ngữGiải thích
AD (Active Directory)Dịch vụ thư mục quản lý danh tính của Microsoft
DC (Domain Controller)Máy chủ chạy AD, xác thực đăng nhập
DomainĐơn vị quản lý mạng (vd airport.local)
ForestRanh giới bảo mật cao nhất, chứa nhiều domain
OU (Organizational Unit)Thư mục tổ chức users/computers, điểm gắn GPO
GPO (Group Policy Object)Đối tượng chính sách áp cấu hình hàng loạt
RBACRole-Based Access Control — phân quyền theo vai trò/nhóm
Least PrivilegeNguyên tắc cấp quyền tối thiểu đủ dùng
WorkgroupMô hình mạng không tập trung (máy tự quản)
Service / DaemonChương trình chạy nền
RegistryCSDL cấu hình của Windows
GPO precedence (L-S-D-OU)Thứ tự áp GPO: Local→Site→Domain→OU
RSATRemote Server Admin Tools — bộ công cụ quản trị AD từ máy client
Service AccountTài khoản dùng cho hệ thống/dịch vụ chạy, không phải người