Cách tắt tiến trình Windows trên hệ thống từ xa
Có lẽ bạn đang làm việc vui vẻ trên một máy chủ Windows từ xa, sau đó nhận thấy một quy trình chạy không ổn định khi sử dụng hết chu kỳ CPU có giá trị. Bạn làm nghề gì? Giết nó!
Trong hướng dẫn này, bạn sẽ tìm hiểu cách tắt một tiến trình Windows bằng các tiện ích gốc, tiện ích của bên thứ ba và PowerShell. Trước tiên, bạn sẽ tìm hiểu cách kiểm tra các tiến trình đang chạy trong Windows và sau đó loại bỏ các tiến trình đang chạy.
Điều kiện tiên quyết
Nếu bạn muốn làm theo các bước trong hướng dẫn này, hãy đảm bảo bạn chuẩn bị trước những điều sau:
- PC Windows - Tất cả các bản demo trong hướng dẫn này sẽ sử dụng Windows 10, nhưng Windows 7+ cũng sẽ hoạt động.
- Máy chủ Windows hoặc máy tính để bàn Windows khác được sử dụng làm mục tiêu để loại bỏ các tác vụ từ xa. Hướng dẫn này sử dụng Windows Server 2016 độc lập làm máy chủ từ xa.
- Bộ Sysinternals của Microsoft.
- Windows PowerShell 5 trở lên. Hướng dẫn này sử dụng PowerShell v7.1.3
Truy vấn quy trình Windows từ xa bằng danh sách tác vụ
Kể từ Windows XP, đã có một công cụ hữu ích được gọi là danh sách tác vụ. Danh sách tác vụ là một công cụ tiện dụng để truy vấn các quy trình trên máy tính từ xa. Trước khi bạn có thể giết một tiến trình, trước tiên bạn phải khám phá chúng!
Mở phiên PowerShell hoặc dấu nhắc lệnh trên màn hình của bạn và nhập lệnh sau để hiển thị tất cả các quy trình đang chạy trên máy tính từ xa của bạn.
Lệnh bên dưới truy vấn một máy tính từ xa (/S) xác thực kết nối bằng tên người dùng quản trị viên (/U) và mật khẩu (/P).
tasklist /S WIN-BANGJIEFNOC.local.net /U administrator /P passwordBạn sẽ nhận thấy bên dưới rằng Tên phiên không xuất hiện. Vì bạn đang chạy danh sách tác vụ trên máy tính từ xa nên danh sách tác vụ không cung cấp Tên phiên.
Có lẽ bạn chỉ muốn liệt kê một quy trình duy nhất. Không thành vấn đề. Để làm điều đó, hãy chỉ định tham số /FI. Tham số /FI chấp nhận một truy vấn được chuyển đến danh sách tác vụ để lọc ra các quy trình cụ thể.
tasklist /S WIN-BANGJIEFNOC.local.net /fi "imagename eq notepad.exe" /U administrator /P 'password'Truy vấn quy trình Windows từ xa bằng PSList
Một công cụ khác để xem các tiến trình đang chạy là PSList và tiện ích này là một phần của Sysinternals Suite. Bộ công cụ này đã tồn tại trong nhiều năm và được tạo ra bởi Mark Russinovich, CTO của Azure!
Hãy bắt đầu về cách bạn có thể xem các tiến trình đang chạy trên máy tính từ xa.
1. Mở phiên PowerShell hoặc dấu nhắc lệnh trên màn hình của bạn và thay đổi thư mục tới nơi bạn đã trích xuất Sysinternal Suite.
2. Trong phiên PowerShell của bạn, hãy chạy lệnh sau để hiển thị các tiến trình đang chạy trên máy tính từ xa và mức sử dụng CPU liên quan trong thời gian thực.
Lệnh bên dưới chạy pslist để truy vấn tất cả các quy trình Windows từ xa trên máy tính WIN-BANGJIEFNOC xác thực tên người dùng Quản trị viên (-u) và mật khẩu (-p).
Lệnh sử dụng khóa chuyển -s biến pslist thành “chế độ trình quản lý tác vụ” liên tục cập nhật danh sách.
Nếu đây là lần đầu tiên bạn sử dụng công cụ Sysinternals, một biểu ngữ có thể xuất hiện yêu cầu bạn chấp nhận EULA; nhấp vào OK.
.\pslist \\WIN-BANGJIEFNOC.local.net -u Administrator -p 'password' -sBây giờ bạn thấy kết quả sau khi chạy lệnh đó; đối với bài viết này, bạn quan tâm đến 3 trong số các giá trị này. Như hình dưới đây.
- Tên: Tên của quy trình.
- Pid: Mã định danh quy trình, một giá trị quan trọng được sử dụng trong hướng dẫn này, số PID có thể được sử dụng để loại bỏ một quy trình từ xa. Đó là id số được gán cho một quy trình.
- CPU: Điều này cho thấy mức độ sử dụng tổng thể CPU hiện có của bạn gần như theo thời gian thực.
Các giá trị khác liên quan đến bộ nhớ và nằm ngoài phạm vi của bài viết này.
3. Vì bước hai đã sử dụng khóa chuyển -s nên hãy nhấn Ctrl-C để thoát pslist để quay lại bảng điều khiển.
Thu hẹp danh sách các quy trình được trả về bằng cách sử dụng khóa chuyển
-etheo sau là tên quy trình, ví dụ:-e Winlogon.
Tiêu diệt tiến trình theo tên tiến trình bằng PSKill
Khi bạn biết cách tìm các tiến trình từ xa, bây giờ hãy đi sâu vào cách tiêu diệt chúng. Để bắt đầu, hãy giới thiệu tiện ích pskill. Đầu tiên, hãy tìm hiểu cách tắt các tiến trình theo tên tiến trình.
1. Đảm bảo bạn có một quy trình có thể tắt trên máy chủ từ xa của mình. Hướng dẫn này sẽ sử dụng quy trình notepad.
2. Mở phiên PowerShell hoặc dấu nhắc lệnh trên màn hình cục bộ của bạn và thay đổi thư mục tới nơi bạn đã giải nén Sysinternal Suite rồi chạy lệnh sau. Bạn có thể thấy cú pháp của pskill tương tự như pslist.
.\pskill.Exe \\WIN-BANGJIEFNOC.local.net -u administrator -p 'password' -e notepad.exe
3. Bây giờ, hãy chạy pslist, như đã giải thích ở phần trước, để xác nhận quá trình thực sự đã dừng.
.\pslist \\WIN-BANGJIEFNOC.local.net -u Administrator -p 'password' -e notepad.exeGiết tiến trình bằng ID tiến trình bằng PSKill
Việc hủy tiến trình theo tên có thể đủ tốt cho nhu cầu của bạn nếu chỉ có một phiên bản duy nhất của tiến trình đó đang chạy hoặc bạn muốn hủy tất cả các tiến trình có tên đó. Điều gì sẽ xảy ra nếu bạn định giết một phiên bản cụ thể của một tiến trình đang chạy? Các bước sau đây sẽ chứng minh điều này.
1. Trên máy chủ từ xa của bạn, hãy mở Notepad hai lần; bạn sẽ loại bỏ một trong những quy trình này trong phần trình diễn này; tất nhiên bạn có thể thay thế các quy trình khác.
2. Chạy lệnh sau để ghi chú một trong các Pid như hiển thị bên dưới; bạn cần điều đó cho bước tiếp theo.
.\pslist \\WIN-BANGJIEFNOC.local.net -u Administrator -p password -e notepad3. Sử dụng PID, bây giờ hãy chạy pskill, cung cấp PID làm đối số cuối cùng.
.\pskill.Exe \\WIN-BANGJIEFNOC.local.net -u administrator -p password 19844. Cuối cùng, hãy kiểm tra xem bạn vẫn còn một phiên bản Notepad đang chạy bằng cách chạy lại pslist hay không. Bây giờ bạn sẽ chỉ thấy một phiên bản Notepad đang chạy.
Giết các tiến trình Windows từ xa bằng TaskKill theo tên
Tiện ích taskkill có nguồn gốc từ Windows và bao gồm các tùy chọn dòng lệnh khác để khởi động lại quy trình theo tên người dùng và tên ứng dụng. Hãy bắt đầu và tiêu diệt Notepad một lần nữa!
Tiêu diệt tiến trình theo tên
1. Trên máy chủ từ xa của bạn, hãy mở Notepad; Notepad là tiến trình bạn sẽ sử dụng trong phần trình diễn này; tất nhiên bạn có thể thay thế một quy trình khác.
2. Mở phiên PowerShell hoặc dấu nhắc lệnh trên màn hình của bạn. Gõ lệnh sau sẽ giết notepad.exe
taskkill /S WIN-BANGJIEFNOC.local.net /you administrator /p password /IM notepad.exeĐầu ra được hiển thị dưới đây:
/IM là tham số cho Hình ảnh; trong trường hợp này là notepad.exe
3. Để xác nhận quá trình đã dừng, hãy chạy danh sách tác vụ. Bây giờ bạn sẽ thấy không có tác vụ nào phù hợp với bộ lọc đó.
tasklist /S WIN-BANGJIEFNOC.local.net /fi "imagename eq notepad.exe" /U administrator /P 'password'Giết các tiến trình Windows từ xa bằng TaskKill bằng PID
Việc hủy bỏ một quy trình bằng taskkill bằng cách sử dụng PID không khác nhiều so với việc sử dụng tên quy trình. Tuy nhiên, vì bạn không thể sử dụng tên nên trước tiên bạn cần tìm PID rồi chuyển nó cho taskkill.
Giả sử Notepad của bạn đang chạy trên máy chủ Windows từ xa:
1. Chạy danh sách tác vụ như hiển thị bên dưới để tìm PID của quy trình Notepad. Hãy lưu ý một trong các PID như hiển thị bên dưới; bạn cần điều đó cho bước tiếp theo.
tasklist /S WIN-BANGJIEFNOC.local.net /fi "imagename eq notepad.exe" /U administrator /P 'password'2. Bây giờ, hãy chạy taskkill cung cấp PID làm đối số cuối cùng.
taskkill /S WIN-BANGJIEFNOC.local.net /u administrator /p 'password' /PID 37763. Cuối cùng, chạy danh sách tác vụ để xác nhận quá trình đã dừng.
Giết tiến trình Windows từ xa bằng PowerShell
PowerShell cung cấp cho bạn một số tùy chọn để tắt các tiến trình từ xa; lệnh ghép ngắn đầu tiên Stop-Process về cơ bản không thể hủy bỏ một tiến trình từ xa vì nó không có tùy chọn chỉ định tên máy tính. Tuy nhiên, bạn có thể khắc phục sự cố này bằng cách chạy Stop-Process từ xa thông qua PowerShell Remoting.
1. Nếu máy chủ và máy chủ từ xa của bạn không nằm trong miền Active Directory, trước tiên hãy cung cấp tên người dùng và mật khẩu, tạo đối tượng PSCredential.
$credentials = Get-Credential2. Tiếp theo, vì hướng dẫn sẽ sử dụng SSL để kết nối với máy tính từ xa và sử dụng chứng chỉ tự ký, hãy tạo PSSessionOption để bỏ qua việc kiểm tra chứng chỉ đối với tổ chức phát hành chứng chỉ đáng tin cậy.
$PSSessionOption = New-PSSessionOption -SkipCACheck3. Bây giờ, hãy kết nối với máy chủ bằng lệnh Enter-PSSession để thiết lập phiên tương tác với máy chủ từ xa.
Lệnh bên dưới đang kết nối với máy tính WIN-BANGJIEFNOC.local.net bằng tên người dùng và mật khẩu được cung cấp ở trên (Thông tin xác thực), bỏ qua kiểm tra cơ quan cấp chứng chỉ (SessionOption ) và kết nối qua SSL (UseSSL).
Enter-PSSession -ComputerName WIN-BANGJIEFNOC.local.net -Credential $credentials -SessionOption $PSSessionOption -UseSSL4. Sau khi bạn kết nối với máy chủ từ xa, hãy kiểm tra quy trình bạn muốn loại bỏ bằng cách chạy Get-Process. Trong trường hợp này, bạn sẽ thấy quy trình notepad.
Get-Process -ProcessName Notepad5. Để kết thúc quá trình này, hãy chạy Stop-Process, như hiển thị bên dưới.
Stop-Process -ProcessName Notepad6. Cuối cùng, hãy xác nhận rằng bạn đã hủy tiến trình bằng cách chạy lại Get-Process và bạn sẽ nhận được thông báo lỗi.
Nếu bạn muốn dừng một tiến trình Windows từ xa không tương tác, hãy sử dụng lệnh
Invoke-Commandbằng cách sử dụng các tham số sau:Invoke-Command -ComputerName WIN-BANGJIEFNOC.local. net -Thông tin xác thực $thông tin xác thực -ScriptBlock {Stop-Process -ProcessName notepad} -UseSSL. Việc đóng gói lệnhStop-Procestrong tham sốScriptBlocksẽ gửi lệnh đến máy chủ từ xa.
Phần kết luận
Bạn đã tìm hiểu về các phương pháp khác nhau để tắt các tiến trình từ xa và cách khắc phục các tình huống trong đó các quy tắc tường lửa mạng có thể ngăn các tiện ích hoạt động bình thường; hướng dẫn này cũng có thể đã giúp bạn khắc phục Windows.
Những tiện ích bạn đã học là những công cụ mạnh mẽ; sử dụng cẩn thận!
















