phát hiện nếu lệnh tắt Windows đã được ban hành


8

Có thể phát hiện nếu lệnh tắt đã được ban hành (thông qua menu bắt đầu của người dùng hoặc bất kỳ chương trình nào khác đang chạy trên máy tính hoặc có quyền truy cập từ xa vào máy tính), sau đó hủy bỏ nó?
Ngoài ra, có thể điều chỉnh sổ đăng ký để buộc Windows hiển thị đồng hồ tắt máy bất cứ khi nào lệnh tắt máy được phát ra, để chúng tôi nhận được một số để tắt nó?

Câu trả lời:


5

Có và (hầu hết) không.

Bạn có thể phát hiện một sự kiện tắt máy. Khi Windows sắp tắt, nó sẽ gửi một WM_QueryEndSessionứng dụng đang mở. Để phát hiện điều này, bạn sẽ phải có một tập lệnh hoặc chương trình đang chạy trong nền để phát hiện và xử lý sự kiện. Tuy nhiên, dường như không có cách nào để hủy bỏ việc tắt máy, trừ khi việc tắt máy được bắt đầu từ máy người dùng cục bộ .

Tập lệnh / ứng dụng sau đó có thể tắt máy ngay cả và hỏi bạn nếu bạn muốn thoát tập lệnh / ứng dụng, sau đó bạn có thể hủy. Điều này sẽ ngăn máy ngừng hoạt động, nhưng nó sẽ không ngăn các ứng dụng khác và có thể các dịch vụ bị chấm dứt.

Bạn thậm chí không cần một kịch bản cho việc này, bạn có thể chỉ cần mở notepad và nhập một số văn bản. Vì bạn có dữ liệu chưa được lưu trong Notepad, Windows sẽ đợi và hỏi bạn có muốn tiếp tục tắt máy không, cho bạn cơ hội để hủy. Một lần nữa, điều này sẽ chỉ hoạt động nếu bạn bắt đầu tắt máy cục bộ.

Có một Win32_ComputerShutdownEventsự kiện WMI , xảy ra khi máy tính bị tắt thông qua lệnh từ xa . Tuy nhiên, nó chỉ có thể nhận được sự kiện này. Khi sự kiện được nhận, máy tính cục bộ sẽ chấm dứt tập lệnh khi sự kiện được gửi.


để bắt đầu gửi các sự kiện, HĐH có thể cần phải yêu cầu tắt máy trước, vì vậy không thể buộc các cửa sổ hiển thị đồng hồ hẹn giờ bất cứ khi nào yêu cầu đó được phát hiện? Trong khi bộ đếm thời gian này đang đếm, người dùng có thể tắt máy / a. Người dùng cũng có quyền quản trị viên vì vậy đây không phải là vấn đề
user13267

Tôi hiểu rằng điều này cũng sẽ hiển thị đồng hồ bấm giờ khi tôi tắt từ menu bắt đầu, nhưng không sao
user13267

Bạn đang thực sự nắm bắt được ống hút ở đây. Khi tắt máy được bắt đầu - và KHÔNG phải do bạn, việc tắt máy sẽ xảy ra. Nó sẽ chấm dứt bất kỳ ứng dụng và tập lệnh.
Keltari

Kịch bản có thể thực thi shutdown -avà hủy bỏ việc tắt máy không?
Vinayak

1

Đây là dành cho Windows 7 (trong môi trường doanh nghiệp): Nếu quản trị viên kích hoạt tắt máy từ xa (shutdown / m PCName), cửa sổ 7 sẽ hiển thị thông báo cho biết PC đang nhận hướng dẫn tắt / khởi động lại và cho bạn đếm ngược.

Người dùng đang ngồi trên PC CÓ THỂ hủy nó, giả sử rằng người dùng cũng có quyền quản trị ngay trên máy bằng cách chạy:

shutdown /a

để hủy bỏ bất kỳ tắt máy hiện có trong tiến trình.

Nhưng tất nhiên điểm này là moot nếu quản trị viên đặt hẹn giờ trong 1 giây hoặc tắt máy ngay lập tức.

Windows 8 - Bạn nhận được thông báo tại Khay hệ thống (khi tắt máy) rằng các cửa sổ sắp tắt trong xxx phút và tắt máy sẽ xảy ra vào thời gian / ngày xxx. Và tôi tin rằng sau 1 phút để tắt máy, Windows 8 sẽ hiển thị thông báo toàn màn hình rằng bạn sẽ tắt máy sau 60 giây và bạn thực sự phải bấm vào đóng để xác nhận thông báo.

Windows XP - Tôi tin rằng nó cũng sẽ hiển thị bộ hẹn giờ, nhưng tôi không thể xác nhận vì tôi không có máy WinXP để kiểm tra.

Một lần nữa, bạn có thể hủy tất cả 'tắt máy' theo lịch trình bằng lệnh trên, nhưng nếu bạn hết thời gian, bạn không thể làm được gì nhiều.


1
Điều này sẽ không dừng lại một tắt máy. Điều này sẽ chỉ dừng bộ hẹn giờ để tắt máy. Khi bộ hẹn giờ kết thúc và tắt máy đã được bắt đầu từ xa, không có cách nào để dừng nó. Bạn cũng giả sử lệnh tắt máy có bộ đếm thời gian để bắt đầu. Hầu hết các lệnh tắt máy từ xa là ngay lập tức.
Keltari

technet.microsoft.com/en-us/l Library / cc725878.aspx điều này nói rằng nó hủy bỏ việc tắt máy, ít nhất là cho Windows 7; hoặc có điều gì đó tôi không hiểu
user13267

Đọc lại nó. "Gõ tắt / a trong khoảng thời gian chờ." Khoảng thời gian chờ là bộ đếm thời gian (/ t xxx trong đó xxx là số giây). Tắt máy / a sẽ dừng bộ hẹn giờ và ngăn máy tắt. Nếu bộ hẹn giờ được đặt thành 0 thì sao? Việc tắt máy ngay lập tức được bắt đầu. Khi việc tắt máy được bắt đầu, bạn không thể dừng nó.
Keltari

Hiểu biết ban đầu của tôi cho câu hỏi là nếu ai đó bắt đầu tắt máy từ xa thì có cách nào để hủy nó, câu trả lời là có NẾU nó nằm trong khoảng thời gian. Và như Keltari đã chỉ ra, thường thì tắt máy từ xa là tức thì (/ t 0) Tôi xấu rồi. Tôi đoán tôi đã hiểu sai câu hỏi. Nếu quá trình tắt máy đã bắt đầu (như Keltari đã chỉ ra) thì không, tôi không biết liệu có thể dừng nó không ... trừ khi bằng cách nào đó bạn có thể "treo" quy trình bằng cách .. nói rằng có một phần mềm bật lên cửa sổ yêu cầu trả lời (tài liệu từ chưa được lưu ngăn bạn đăng xuất khỏi bất kỳ ai?)
Darius

0

Tôi hy vọng sẽ tìm ra cách để làm điều này, để đảm bảo postgreQuery có đủ thời gian để tắt máy đúng cách trước khi nó chấm dứt, nhưng hiện tại không có vẻ gì là hy vọng.

Điều này về cơ bản chỉ là khôi phục câu trả lời của người khác, nhưng tôi đã thử hai lệnh này từ lời nhắc của quản trị viên trên Windows 7:

  1. shutdown /s & shutdown /a
  2. shutdown /s /t 0 & shutdown /a

Lệnh đầu tiên đã hủy thành công việc tắt máy như mong đợi, trong khi lệnh thứ hai thì không. Điều này chứng tỏ tuyên bố của Keltari về việc tắt máy ngay lập tức không thể bị hủy bỏ shutdown /a.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.