2009-04-21 12 views
6

Tôi đang sử dụng API cập nhật Windows để cập nhật một loạt các máy ảo. Với Windows Update, khởi động lại không thể tránh khỏi. Bất cứ ai có thể nghĩ ra một cách mà tôi có thể nói từ một máy chủ từ xa nếu các cửa sổ hộp đã thực sự hoàn thành khởi động lại của nó? Tất cả các ý tưởng hoặc suy nghĩ sẽ đánh giá cao.Làm thế nào để bạn xác định khi Windows được thực hiện khởi động lại?

EDIT: Vì máy ảo trong Lab Manager và sử dụng cấu hình rào chắn, WMI sẽ không hoạt động và mặc dù tôi đã nghĩ đến việc sử dụng VM để gửi tín hiệu khi sao lưu. Sẽ không có cách nào để biết chắc chắn ai sẽ thông báo khi ứng dụng chờ máy có thể ở trên bất kỳ số máy nào, vì vậy nó không có vẻ hợp lý. Tuy nhiên thời gian là không cần thiết (và mặc dù tôi biết điều này sẽ cắn tôi đôi khi một Service Pack đi xuống) Tôi đã có thành công tốt với PING và sau đó chờ đợi 5 phút cho đến nay, vì vậy tôi sẽ sử dụng nó cho bây giờ. Nếu tôi chạy vào các trường hợp ngoại lệ, tôi sẽ cố gắng triển khai VM không làm thế giới khi nó trở lại. Cảm ơn tất cả.

+1

http://stackoverflow.com/questions/56644/how-do-i-detect-if-a-windows-server-is-available-after-a-reboot – dotjoe

+0

Nhận xét Offtopic - Tôi đã đăng câu trả lời cho phản hồi nhận xét của bạn cho câu hỏi này - http://stackoverflow.com/questions/1108359/how-to-choose-net-version-to-compile-project/1108380#1108380! Kiểm tra nó ra. – Kirtan

Trả lời

5

Chỉ cần chờ đợi cho nó để đối phó với một ping.

Trong ánh sáng của bình luận của bạn:

1 - Use this script

2 - Nếu bạn nhận được bất kỳ lỗi với kịch bản đó, follow these instructions.

+1

Máy sẽ bắt đầu pingable khoảng 5 phút trước khi bạn thực sự có thể đăng nhập hoặc các dịch vụ đang chạy lại. Nhưng tôi đã thử nó;) – Alex

+0

5 * phút *? Điều đó có vẻ cực đoan. Bạn có chắc chắn rằng bạn không bắt được vài phản hồi ping cuối cùng trước khi máy chủ không hoạt động? – JosephStyons

+0

Vâng, bạn phải nhớ đây là những cửa sổ cập nhật, và tôi đang cố gắng nó trong trường hợp xấu nhất. Có nghĩa là vista và dang dang của nó 3 giai đoạn cập nhật. Tôi sẽ thử kịch bản và xem có gì. – Alex

1

Thực tế là bạn không thể biết khi nào nó được khởi động xong. Quá trình khởi động là khá không đồng bộ và vì vậy bất kỳ tiêu chí nào bạn sử dụng để xác định rằng nó được thực hiện "khởi động" có thể xảy ra trước khi một cái gì đó khác hoàn thành.

Điều tôi khuyên bạn nên xác định những gì bạn thực sự muốn biết. Điều gì đặc biệt là nó bạn đang chờ đợi? Tìm một cách để xác định xem điều này đã diễn ra và quên lo lắng về việc "khởi động".

Nếu bạn chỉ cần biết rằng máy đang sao lưu nhưng có thể chưa hoàn thành tất cả tải sau khởi động, hãy đặt thứ gì đó trong chuỗi khởi động hoặc dịch vụ báo hiệu mã của bạn. Khi tín hiệu này xảy ra, hãy thực hiện bất kỳ hành động nào bạn cần.

+0

Tôi cần phải về cơ bản nhận lại màn hình đăng nhập. Sau khi cập nhật xong cấu hình. – Alex

1

Bạn có thể cài đặt chương trình hoặc dịch vụ khởi động trên máy để gửi email hoặc một số loại mạng dựa trên việc đăng mọi lúc khởi động lại.

+0

Tôi nghĩ rằng tôi sẽ thử điều này tiếp theo .. – Alex

2

Kiểm tra cho sự kiện này trong bản ghi sự kiện:

Event Type: Information 
Event Source: EventLog 
Event Category: None 
Event ID: 6005 
Date:  7/27/2007 
Time:  12:56:24 PM 
User:  N/A 
Computer: IWSDEV 
Description: 
The Event log service was started. 
+0

Kiểm tra nhật ký sự kiện từ xa không thể xảy ra mà không có dịch vụ RPC. Tốt hơn là chỉ cần kiểm tra trạng thái dịch vụ từ xa của dịch vụ "RpcSs". Điều này cũng sẽ loại bỏ khả năng mỏng của lỗi nhật ký sự kiện, như nhật ký bị hỏng. – spoulson

+0

@spoulson - ý tưởng hay, cảm ơn –

0

Windows được thực hiện khởi động lại chỉ hơi trước khi nó sẽ cần phải khởi động lại một lần nữa :-)

Nếu bạn đang tìm cách cụ thể để truy vấn tình trạng của máy ảo thì bạn nên kiểm tra các liên kết mà đối phó với các API cho Virtual server 2005:

Giao diện IVMVirtualMachine ...

http://msdn.microsoft.com/en-us/library/aa368465(VS.85).aspx

... có thuộc tính được gọi là Nhà nước ...

IVMVirtualMachine :: tài sản nhà nước

http://msdn.microsoft.com/en-us/library/aa368637(VS.85).aspx

... mà sẽ trả về một giá trị từ VMVMState Enumeration ...

http://msdn.microsoft.com/en-us/library/aa368922(VS.85).aspx

Ở mức độ tổng quát hơn, bạn nên có thể xác định số lượng Windows bạn muốn và chạy. Bạn có xem xét ngăn xếp mạng sẵn sàng để được "khởi động lại" hoặc bạn cần IIS/SQL hoặc một số dịch vụ cấp ứng dụng khác không?

Tôi có thể viết một ứng dụng kiểm tra "nhịp tim" của các máy chủ của bạn - ứng dụng đó cũng có thể giống như ứng dụng đang gọi nội dung cập nhật Windows. Sau đó bạn sẽ có được cho mình một "giao diện điều khiển" tốt cho bạn thấy trạng thái của các máy chủ của bạn. Ứng dụng nhịp tim có thể ping máy chủ, nhấn một trang html tĩnh, nhấn nhật ký sự kiện từ xa, sử dụng WMI hoặc bất cứ điều gì bạn xác định là đủ để xem xét máy chủ của bạn khởi động lại.

+0

Tôi đang sử dụng VMWare không phải VirtualServer và trong thời gian khởi động lại máy tính thực sự tắt rất nhỏ. Hầu như không có cơ hội phát hiện ra nó, vì vậy nó luôn đáp ứng thông qua API của vmware – Alex