Một cách tốt để khởi động lại tất cả các máy tính trên miền Windows mỗi đêm


9

Một cách tốt để khởi động lại một danh sách các máy tính windows trên một miền windows là gì? Giả sử bộ điều khiển miền windows không có dịch vụ để thực hiện việc này, vui lòng thực hiện các đề xuất cho tập lệnh.

Tôi có thể liệt kê tên máy chủ và lặp lại mặc dù tên máy chủ để gửi lệnh khởi động lại cho mỗi tên không? Tôi có thể lấy danh sách tên máy chủ từ máy chủ DHCP đang chạy trong hộp Windows 2008 trong thời gian chạy của tập lệnh không?

Các ngôn ngữ kịch bản ưa thích của tôi từ hầu hết đến ít mong muốn nhất là: PHP, javascript, Bash, Python (biết rất ít), VB (biết nó nhưng không thích nó)


8
lật cầu dao. Tôi nhóc.
gravyface

Điều đó sẽ gây ra tắt máy, tôi cần khởi động lại.
năm11

@JM - không phải nếu chúng được đặt thành "Tiếp tục trạng thái năng lượng trước đó" trong BIOS.
Tên giả

Tên @Fake - rằng âm thanh như rất nhiều công việc
steampowered

Câu trả lời:


15

Nếu GPO không phải là vấn đề của bạn và bạn muốn đi với tùy chọn thứ hai ( shutdown /mtheo đợt) của Mark Henderson, bạn có thể làm cho công việc của mình dễ dàng hơn bằng cách thực hiện công việc tắt máy để nó thực hiện song song thay vì nối tiếp. Nó yêu cầu PowerShell trên một phần của trạm quản trị, nhưng nó rất tiện lợi .

foreach ($ComputerName in $ComputerList) {
    invoke-command -AsJob -ScriptBlock {
        params($ComputerName)
        shutdown /m $ComputerName /r /f /t 0
    } -ArgumentList $ComputerName
}

Những gì đoạn này làm là sinh ra nhiều công việc nền thực thi song song như có các máy trong $ ComputerList. Điều này có thể làm cho việc tắt All The Things xuống nhanh hơn rất nhiều.


2
Đây là một giải pháp thú vị - nếu bạn có rất nhiều máy tính để khởi động lại, tôi rất muốn giới thiệu giải pháp này vì nó sẽ chạy các lệnh tắt máy song song.
Richard West

2
Đây -AsJoblà bit ma thuật ở đây.
jscott

Tôi tò mò tại sao bạn lại sử dụng lệnh "shutdown" chứ không phải là lệnh ghép ngắn Restart-Computer.
Charles Burge

@CharlesBurge Điều này đã được trả lời 5 năm trước và PS3 không được triển khai rộng rãi. Ngoài ra, điều này thể hiện kỹ thuật chạy các lệnh trên các hệ thống khác. Trong năm 2017, chúng tôi chỉ thực hiện tất cả trong PowerShell và không bận tâm đến các lệnh. Thời thế thay đổi.
sysadmin1138

7

Bạn có thể thực hiện việc này với Tùy chọn chính sách nhóm bằng cách thực hiện một tác vụ theo lịch trình mới sẽ chạy mỗi đêm vào một thời điểm nhất định. Lệnh cho nhiệm vụ đó phải là shutdown /r /t 0. Sau đó, bạn có thể liên kết GPO đó với OU hoặc OU có máy tính của bạn trong đó.

Bạn có thể sẽ muốn sử dụng tùy chọn "Chạy chương trình này trong một khoảng thời gian ngẫu nhiên" được đặt ở đâu đó trong khoảng từ 10-15 phút. Có mỗi máy tính bật nguồn cùng một lúc có thể không tốt cho máy cắt của bạn nếu bạn không cẩn thận. Bạn cũng có thể muốn kiểm tra tùy chọn chỉ chạy tác vụ nếu máy tính không hoạt động trong x giờ, trong trường hợp ai đó đang kéo tất cả sáng hơn. Bạn không muốn giết chết công việc cả đêm bằng cách khởi động lại một ai đó đang cố gắng thực hiện một thời hạn.


Tôi không quen với việc thiết lập các tác vụ được lên lịch với GPO, vì vậy tôi tự hỏi: nếu một máy được chuyển từ OU này sang OU khác mà không có nhiệm vụ được xác định, thì Nhiệm vụ Shed sẽ biến mất sau khi nó được áp dụng lần đầu tiên?
MaCuban

6

Hai lựa chọn:

  1. Tạo một tác vụ theo lịch trình thông qua GPO chạy shutdown /r /f /t 0hoặc shutdown /g /f /t 0trên mỗi máy bạn muốn khởi động lại. (kiểm tra shutdown /?để biết thêm chi tiết.

  2. Tạo một lô chạy shutdown /m [computer name] /r /f /t 0từ một máy tính trung tâm (có lẽ là bộ điều khiển miền?). Lặp lại nó cho mỗi máy tính bạn muốn khởi động lại (thay đổi [computer name]). Điều này có nghĩa là máy tính sẽ không được khởi động lại nếu không thể truy cập được vì bất kỳ lý do gì và cần được chạy từ tài khoản có quyền khởi động lại máy tính.

Bạn sẽ có thể viết một tệp bó lặp qua danh sách các máy tính được lấy từ thư mục hoạt động và chạy lệnh, tuy nhiên tôi không có thời gian để viết một tệp ngày hôm nay (và tôi không sẵn sàng kiểm tra ngay cả khi Tôi đã viết nó, nếu không tôi sẽ bị nướng vì khởi động lại máy tính của mọi người vào giữa ngày).


Ngoài ra, còn có một lệnh psshutdown có thể chạy qua một tệp bó, một phần của bộ sysiternals ...
Bart Silverstrim

Tôi đã sử dụng cả 1 và 2. Bây giờ vui chơi với Powershell. Nếu sử dụng # 2, hãy xem xét tập lệnh chính sinh ra quy trình riêng cho từng máy tính (ví dụ start cmd /c shutdown /m computer /r /f /t 0) hoặc sử dụng một số logic để kiểm tra nếu trực tuyến, nếu không thì độ trễ cho máy tính ngoại tuyến có thể là đáng kể.
jscott

4

Cách tốt nhất để làm điều đó là sa thải người có ý tưởng rằng điều này là cần thiết và làm những gì tất cả những người khác làm - không làm điều đó.


Chuyển hướng thư mục dường như đang buộc tài nguyên khi mọi người ở lại đăng nhập qua đêm. Tôi cho rằng tôi có thể cố gắng thiết lập đăng xuất hàng loạt thay vì khởi động lại hàng loạt, nhưng khởi động lại dường như làm sáng tỏ rất nhiều vấn đề. Mọi người đi hàng tuần hoặc hàng tháng mà không khởi động lại. Tôi thường không đầu tư nhiều thời gian để học cách chạy hệ thống windows đúng cách vì đó không phải là công việc chính của tôi. Bạn đề xuất món gì?
năm11

1
À - không. Hàng tấn công ty không yêu cầu người của họ phải khởi động lại - bạn nghĩ họ đã sử dụng chuyển hướng thư mục? Tôi đề nghị khắc phục vấn đề trong tầm tay. Cá nhân tôi sẽ tức giận nếu tôi bị đăng xuất khỏi máy trạm mỗi ngày - tôi thường để công việc chạy qua đêm. Sự lười biếng của bạn có thể khiến nhiều người gặp khó khăn - thực hiện công việc của bạn đúng cách hoặc thuê một người nào đó làm việc đó.
TomTom

Vâng, làm công việc của tôi đúng cách có nghĩa là không dành quá nhiều thời gian chăm sóc hệ thống cửa sổ nhỏ của chúng tôi.
năm11

Không biết bạn làm gì? ;) Tôi sa thải mọi người nói rằng họ không đủ năng lực làm việc, bất kể hiệu suất của họ thế nào.
TomTom

Sysadmin là một công việc phụ tôi làm cho gia đình để giúp đỡ họ. Nếu tôi có thời gian vô hạn chắc chắn, tôi sẽ đọc thêm sách trên cửa sổ và các tiếp tuyến khác. Nhưng cách tốt nhất để kiếm tiền của tôi là bám vào phần mềm web. Tôi nghĩ rằng bạn trả lời hoàn toàn không phải trên tinh thần đưa ra một giải pháp kỹ thuật cho câu hỏi tôi đã hỏi.
năm11
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.