Làm cách nào để tắt máy, khởi động lại hoặc đăng xuất Windows thông qua tệp bat?


660

Tôi đã sử dụng Remote Desktop Connection để vào máy trạm. Nhưng trong môi trường này, tôi không thể sử dụng các tùy chọn nguồn trong Menu bắt đầu. Tôi cần một cách khác để tắt máy hoặc khởi động lại.

Làm cách nào để kiểm soát trạng thái năng lượng của máy tính thông qua dòng lệnh?

Câu trả lời:


1164

Các cách phổ biến nhất để sử dụng shutdownlệnh là:

  • shutdown -s - Tắt.
  • shutdown -r - Khởi động lại.
  • shutdown -l - Đăng xuất.
  • shutdown -h - Ngủ đông.

    Lưu ý: Có một cạm bẫy phổ biến trong đó người dùng nghĩ -hcó nghĩa là "trợ giúp" (điều này đúng với mọi chương trình dòng lệnh khác ... ngoại trừ shutdown.exe, trong đó có nghĩa là "ngủ đông"). Sau đó, họ chạy shutdown -hvà vô tình tắt máy tính của họ. Coi chừng đó

  • shutdown -i- "Chế độ tương tác". Thay vì thực hiện một hành động, nó sẽ hiển thị một hộp thoại GUI.

  • shutdown -a - Hủy bỏ lệnh tắt trước đó.

Các lệnh trên có thể được kết hợp với các tùy chọn bổ sung sau:

  • -f- Buộc các chương trình thoát ra. Ngăn chặn quá trình tắt máy khỏi bị mắc kẹt.
  • -t <seconds>- Đặt thời gian cho đến khi tắt máy. Sử dụng -t 0để tắt máy ngay lập tức.
  • -c <message>- Thêm một tin nhắn tắt máy. Thông báo sẽ kết thúc trong Nhật ký sự kiện.
  • -y - Buộc trả lời "có" cho tất cả các truy vấn tắt máy.

    Lưu ý: Tùy chọn này không được ghi lại trong bất kỳ tài liệu chính thức nào. Nó được phát hiện bởi những người dùng StackOverflow này .


Tôi muốn chắc chắn rằng một số câu trả lời thực sự tốt khác cũng được đề cập cùng với câu trả lời này. Ở đây họ không theo thứ tự đặc biệt.


188
Đừng đọc về việc sử dụng -f (cho lực lượng) trong câu trả lời tiếp theo. Nói rằng anh chàng đã không và bây giờ có một máy tính bị kẹt khi tắt máy ở phía bên kia hành tinh vào cuối tuần (:
pasx

11
+1 chỉ là tôi đã sử dụng /<switch>thay vì -<switch>. Phần trợ giúp cũng sử dụng /.
huyền thoại2k

Kinh nghiệm của tôi: Sử dụng tùy chọn -s (tắt máy) trong Remote Desktop (như OP đề cập) chỉ chấm dứt máy tính từ xa nhưng không để máy từ xa bị ảnh hưởng.
Heri

3
Tôi sử dụng "-r" cho Máy từ xa. Vì vậy, nó sẽ khởi động lại và không cần can thiệp thủ công.
granadaCoder

6
Nếu bạn đang ở trên một máy từ xa, bạn cũng có thể muốn thêm -ftùy chọn để buộc khởi động lại. Nếu không, phiên của bạn có thể đóng và một ứng dụng cứng đầu có thể treo hệ thống. Để buộc khởi động lại ngay lập tức : shutdown -t 0 -r -f. Để có tùy chọn "cho họ chút thời gian" thân thiện hơn, bạn có thể sử dụng tùy chọn này : shutdown -t 30 -r. Điều -fnày được ngụ ý bởi thời gian chờ. (từ bản chỉnh sửa được đề xuất bởi Mateusz Konieczny )
Ole VV

375

Nếu bạn đang ở trên một máy từ xa, bạn cũng có thể muốn thêm tùy chọn -f để buộc khởi động lại. Nếu không, phiên của bạn có thể đóng và một ứng dụng cứng đầu có thể treo hệ thống.

Tôi sử dụng điều này bất cứ khi nào tôi muốn buộc khởi động lại ngay lập tức:

shutdown -t 0 -r -f

Để có tùy chọn "cho họ chút thời gian" thân thiện hơn, bạn có thể sử dụng tùy chọn này:

shutdown -t 30 -r

Như bạn có thể thấy trong các bình luận, -f được ngụ ý bởi thời gian chờ.

Brutus 2006 là một tiện ích cung cấp GUI cho các tùy chọn này.


15
Đọc trợ giúp để tắt máy trên Windows 8.1, tôi thấy: "Nếu khoảng thời gian chờ lớn hơn 0, thì tham số / f được ngụ ý." Và vì thời gian chờ mặc định là 30 giây, tôi nghĩ nên dành thời gian cho việc tắt sạch và sau đó tắt máy bắt buộc xảy ra sau khi hết thời gian.
Zitrax

2
Đó là một điểm hay. Tôi tin rằng khi tôi viết bài này, HĐH tôi đang sử dụng là Windows XP. Tôi thấy rằng nhận xét "/ f được ngụ ý" cũng có trong Windows 7. Tôi đã sửa đổi ví dụ cho phù hợp.
JosephStyons

2
Theo mặc định họ có 30 giây. Tôi sử dụng ngay lập tức: shutdown / r / t 0 và cho thân thiện: shutdown / r
dzampino

81

Không ai đề cập đến -mtùy chọn tắt máy từ xa:

shutdown -r -f -m \\machinename

Cũng thế:

  • Các -rthông số gây ra một khởi động lại (mà thường là những gì bạn muốn trên máy tính từ xa, vì thể chất bắt đầu có thể khó khăn).
  • Các -ftham số tùy chọn bắt buộc khi khởi động lại.
  • Bạn phải có đặc quyền thích hợp để tắt máy từ xa, tất nhiên.

2
tên máy có thể là một địa chỉ IP không? Tức là bạn có thể làm điều này qua internet?
mcmillab

Nếu bạn có thể truy cập máy qua \\IP.AD.DR.ESS(tức là các cổng cần thiết đang mở và bạn có quyền yêu cầu), thì có, điều này sẽ hoạt động qua internet.
Timothy Zorn

Lần đầu tiên tôi thử chỉ với -r và nó không hoạt động vì tôi muốn tắt máy từ xa. Nó hoạt động với tắt máy -r -m. -f không cần thiết.
Dchris

38

Câu trả lời gốc: Tháng Mười 2008

Bạn cũng có tất cả " rundll32.exe shell32.dll" serie:

(xem cập nhật bên dưới)

  • rundll32.exe user.exe,**ExitWindows** [Tắt nhanh Windows]
  • rundll32.exe user.exe,**ExitWindowsExec** [Khởi động lại Windows]

    rundll32.exe shell32.dll,SHExitWindowsEx n
    

nơi nlà viết tắt của:

  • 0 - LOGOFF
  • 1 - SHUTDOWN
  • 2 - REBOOT
  • 4 - FORCE
  • số 8 - POWEROFF

(có thể kết hợp -> 6 = 2 + 4 FORCE REBOOT)


Cập nhật tháng 4 năm 2015 (hơn 6 năm sau):

1800 THÔNG TIN vui lòng chỉ ra trong các ý kiến :

Đừng sử dụng rundll32.execho mục đích này. Nó hy vọng rằng hàm bạn đã truyền trên dòng lệnh có chữ ký phương thức rất cụ thể - nó không khớp với chữ ký của phương thức ExitWindows.

Raymond CHEN đã viết:

Chữ ký hàm cần thiết cho các hàm được gọi bởi rundll32.exe:

void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
       LPSTR pszCmdLine, int nCmdShow);

Điều đó đã không ngăn mọi người sử dụng rundll32để gọi các hàm ngẫu nhiên không được thiết kế để được gọi bởi rundll32, như user32 LockWorkStationhoặc user32 ExitWindowsEx.

(Giáo sư)

Chữ ký hàm thực tế cho ExitWindowsEx là:

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

Và để làm cho nó rõ ràng:

Rundll32 là một phần còn lại từ Windows 95 và nó đã bị từ chối vì ít nhất là Windows Vista vì nó vi phạm rất nhiều hướng dẫn kỹ thuật hiện đại.


3
sự khác biệt giữa tắt máy và tắt nguồn là gì?
Asdfg

17
@Asdfg hôm nay? không ai. Đối với NT4 trở về trước, bo mạch chủ không phải lúc nào cũng hỗ trợ tắt nguồn, chỉ tắt máy (cửa sổ đã đóng hoàn toàn, nhưng PC vẫn ở dưới nguồn điện). Chỉ poweroff (nếu phần cứng hỗ trợ nó tại thời điểm đó) đóng cửa sổ cắt nguồn điện. Hôm nay, cả tắt máy và poweroff làm điều đó.
VonC

2
Đừng sử dụng rundll32.exe cho mục đích này. Nó hy vọng rằng hàm bạn đã truyền trên dòng lệnh có chữ ký phương thức rất cụ thể - nó không khớp với chữ ký phương thức của ExitWindows.
1800 THÔNG TIN

2
@ 1800INFORMATION điểm rất tốt. Tôi đã viết lại câu trả lời để làm rõ rằng đây không phải là một lựa chọn hợp lệ.
VonC

3
Mặc dù vậy, công bằng mà nói, thực sự không có vấn đề gì về loại rò rỉ bộ nhớ hoặc ngăn xếp tham nhũng mà bạn đang gây ra nếu bạn tắt PC ngay lập tức.
PRman

10

Một mẹo nhỏ khác: khi đi theo lộ trình tập tin hàng loạt, tôi muốn có thể hủy bỏ nó trong trường hợp tôi vô tình chạy nó. Vì vậy, tệp bó gọi tắt máy nhưng để lại cho bạn dấu nhắc lệnh sau đó.

@echo off
echo Shutting down in 10 seconds. Please type "shutdown /a" to abort.
cmd.exe /K shutdown /f /t 10 /r

Ngoài ra, vì là trên đồng hồ bấm giờ, bạn sẽ có được cảm giác hồi hộp giống như khi đi săn ở Đường mòn Oregon .


1
bạn có thể đặt tạm dừng trong tệp tắm, sau đó hủy bỏ lệnh, như vậy trình tự hủy bỏ sẽ là bất kỳ khóa nào
rsk82

@ rsk82, việc có thể thoát khỏi việc gõ bất cứ thứ gì cũng là một hạn chế đáng tiếc của bản sao TRS-80 của Đường mòn Oregon của tôi, nhưng thật lòng tôi luôn coi đó là gian lận và anh tôi sẽ nổi giận mỗi khi tôi làm điều đó. Chỉ cần nói: tại sao bạn muốn chọc giận anh tôi?
Gavin

7

Khi được điều khiển từ xa vào máy (dù sao thì mục tiêu là Windows XP; tôi không chắc chắn về Windows Vista đích), mặc dù Tắt máy trên menu bắt đầu được thay thế bằng Ngắt kết nối Phiên hoặc một cái gì đó tương tự, nên có một thứ gọi là 'Bảo mật Windows'. điều tương tự như Ctrl+ Alt+ Endnhư được chỉ ra bởi Owen.


Tôi đã từng sử dụng phương pháp đó nhưng nó không hoạt động nữa, dòng lệnh là vậy.
dùng742864

Tôi cũng có một tiện ích có các nút để tắt, khởi động lại, ngủ đông, khóa hoạt động trong RDP.
dùng742864

7

Bạn có thể nhận thức được điều này, nhưng chỉ trong trường hợp: việc nhập shutdown -r(hoặc bất kỳ lệnh nào bạn thích) vào hộp "Chạy" sẽ dễ dàng hơn nhiều và nhấn enter.

Lưu để lại các tập tin hàng loạt nằm khắp nơi.


vâng ... Tôi chỉ muốn nhấp đúp vào đó ... đó là những gì tập tin bat -r dành cho quá; o)
Keng

17
cẩn thận không đưa nó vào các chương trình-> khởi động :)
Dean Thay

aw .. và hành vi tò mò sẽ thu được nếu mã được đặt trong tệp shutdown.bat. Thử nó! :) ....
Brethlosze

6

Tôi sẽ viết điều này trong Notepad hoặc DirectXad cho một lệnh đăng xuất cơ bản:

@echo off
shutdown -l

Điều này về cơ bản giống như nhấp vào bắt đầu và đăng xuất thủ công, nhưng nó chỉ nhanh hơn một chút nếu bạn có sẵn tệp bó.


5

Tôi đến bữa tiệc muộn, nhưng chưa thấy câu trả lời này. Khi bạn không muốn sử dụng tệp bó hoặc gõ lệnh. Bạn chỉ có thể đặt tiêu điểm cho máy tính để bàn và sau đó sử dụng Alt+ F4.

Windows sẽ hỏi bạn muốn làm gì, chọn tắt máy hoặc khởi động lại.

Để xem ảnh chụp màn hình và thậm chí là video, hãy xem: https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp


3
@Keng, đọc vấn đề thực tế "Tôi không thể sử dụng chức năng tắt / khởi động lại trong menu Bắt đầu" với tôi rằng bạn muốn biết làm thế nào để làm điều đó. Dòng lệnh là một giải pháp, bàn phím là một giải pháp khác. Nó có thể giúp những người dùng khác vấp phải câu hỏi này và chỉ muốn một giải pháp dễ dàng để tắt hoặc khởi động lại.
msoft
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.