Ich schreibe ein C# -Programm, das eine Batch-Datei aufruft, die das Remote-System auf eine andere Partition bootet. Gibt es eine Möglichkeit zu wissen, wann das System neu gestartet wird? Ich würde gerne wissen, wann ich nach dem Neustart auf das Remote-System zugreifen kann.Ermitteln, wann ein Remote-System neu gestartet wird
Antwort
Ich würde es pingen, um festzustellen, wann es wieder online ist. Es gibt eine Ping direkt in .net.
Ich habe mir das angeschaut und ich denke es wird funktionieren. –
Allerdings würde ich hier eine Auszeit setzen. Sagen Sie nach zwei Minuten Pingen, dass Sie aufgeben und einen Alarm auslösen oder einen Fehler melden. Es könnte gefährlich sein, für immer zu pingen. – uriDium
Wenn System A System B zum Neustart anweist, könnte es möglicherweise seine IP-Adresse (oder andere Kontaktinformationen) angeben, und dann im System B-Startprozess könnte es die Datei mit den Kontaktinformationen lesen und an System A zurückrufen.
Sie haben ein paar Optionen ...
Sie können versuchen, auf einem Netzwerkdienst auf dem anderen System, das heißt die Verbindung: verwenden Sie Ping als suggested by Jon B.
Wenn jedoch das System unter Ihrer Kontrolle steht, haben Sie andere Möglichkeiten. Sie können eine geplante Aufgabe einrichten (oder einen Dienst installieren), um beim Systemstart zu starten, und das andere System benachrichtigt Sie, wenn es online ist. Dies würde verhindern, dass Sie wiederholt pingen müssen.
Ich versuche, eine Testumgebung mit einem neuen Image einzurichten. Sobald das System eingerichtet ist, werde ich versuchen, automatisierte Tests auszuführen. Daher kann ich das Remote-System möglicherweise nicht steuern, während ich es aufstelle. Die Ping-Option sollte funktionieren. –
@Chris: Ja, wenn es ein neues Bild wird, ist Ping wahrscheinlich die beste Option. –
Ich wünschte, ich hätte diese Seite benutzt, bevor ich den ganzen Tag am Samstag damit verbracht habe, das herauszufinden. Danke für die Hilfe!! Unten ist, was ich getan habe. Dieser Code wird einen Computer anpingen und feststellen, wann er wieder online ist. Der nächste Schritt wird sein, zu bestimmen, ob ich eine Netzwerkverbindung zu dem Remote-Desktop-Port öffnen kann, wie zuvor vorgeschlagen. Fühlen Sie sich frei, irgendwelche Kommentare zum Code zu machen.
Hinweis: Hier sind die addierten mit Aussagen:
System.Net verwendet wird; // hinzugefügt using System.Net.NetworkInformation; // hinzugefügt using System.ComponentModel; // hinzugefügt mit System.Threading; // hinzugefügt
static void Main(string[] args)
{
string systemName = "172.30.11.148"; // Name of system beign pinged. System name used instead of ip due to DHCP
Ping pingSender = new Ping(); // Creates new ping object.
string data = "datadatadatadatadatadatadatadata"; // buffer of 32 bytes of data to transmit.
byte[] buffer = Encoding.ASCII.GetBytes(data); // buffer containing data.
int pingTimeout = 120; // Timeout in ms sent into pingSender.
int maxWaitTimeout = 60; // Maximum time to wait for system to reboot.
int counter = 1; // Used in while statement
bool connectStatus = false; // State of system connection.
Console.WriteLine("Wait for reboot to start before trying to establish connection.");
//Thread.Sleep(30000); // Waits 30 seconds at start of reboot to allow network to close.
Thread.Sleep(1000);
try
{
// Performs a ping on the system. If the system is available, while loop is exited and program
// continues. If the system is not available, program waits approximately 1 second and then
// pings the system again.
while (counter < maxWaitTimeout)
{
// Pings the system with 32 byts of data and waits for timeout
Console.WriteLine("Connection attempt #: " + counter + " of " + maxWaitTimeout);
PingReply reply = pingSender.Send(systemName, pingTimeout, buffer);
Console.WriteLine("Status of ping to: {0} - {1}", systemName, reply.Status);
if (reply.Status.ToString() == "Success")
{
connectStatus = true;
Console.WriteLine("\nRoundTrip time: {0}", reply.RoundtripTime);
Console.WriteLine("Time to live: {0}", reply.Options.Ttl);
Console.WriteLine("Buffer size: {0}", reply.Buffer.Length);
break;
}
Thread.Sleep(880);
counter += 1;
} // end while loop
if (connectStatus == true)
{
Console.WriteLine("\nAble to establish connection to: {0}", systemName);
}
else
{
Console.WriteLine("\nUnable to establish network connection using ping to: {0}", systemName);
}
} // end try
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
Console.ReadLine(); // Pause console
} // end main
Ich möchte auch erwähnen, dass, wenn ich mit „ping“ recherchierte ich diesen Link gefunden: http://msdn.microsoft.com/en-us/library/system.net.networkinformation.ping.aspx
- 1. Ermitteln, wann eine Windows 8-App von Notification gestartet wird
- 2. Ermitteln, ob der Prozess neu gestartet wurde
- 3. Wie wird ein Knotenserver automatisch neu gestartet?
- 4. Ermitteln, wann ein ScheduledExecutorService ausgelöst wird
- 5. Ermitteln, welcher Benutzer einen Windows-Server neu gestartet hat
- 6. Wie wird ein getöteter Dienst automatisch neu gestartet?
- 7. Wie finde ich heraus, wann Apache zuletzt neu gestartet wurde?
- 8. Phoenix-Server wird nicht neu gestartet
- 9. Ermitteln, wann Postback auftritt, weil ein Textfeld geändert wird
- 10. Ermitteln, wann UITextField die Zeichenfolge eingefügt wird
- 11. Android, App neu gestartet, nachdem Sperrbildschirm gestartet
- 12. Wie kann man wissen, ob ein MapReduce-Job neu gestartet wurde oder neu gestartet wurde?
- 13. Warum der App-Dienst neu gestartet und nicht neu gestartet werden kann?
- 14. Android-Dienst wird neu gestartet, wenn die Anwendung beendet wird
- 15. Ermitteln, wann ein Webdienst verfügbar ist
- 16. Warum wird die Anwendung manchmal bei killProcess neu gestartet?
- 17. Wann wird ein ContentProvider wirklich erstellt?
- 18. Wann neu starten und Nginx nicht neu laden?
- 19. Ermitteln Sie, wann ein Anwendungspool zuletzt rezykliert wurde
- 20. Wann wurde meine Anwendung gestartet?
- 21. Ermitteln von genauen Bemaßungen für ein neu erstelltes DOM-Objekt
- 22. SQL Server-Abonnementinitialisierung wird endlos neu gestartet, endet nie
- 23. Wird ein ActorRef aktualisiert, wenn der zugehörige Actor vom Supervisor neu gestartet wird?
- 24. Sollte Hadoop neu gestartet werden, wenn core-site.xml aktualisiert wird
- 25. iOS: Erzwungene geschlossene App wird im Hintergrund neu gestartet
- 26. Tomcat wird nicht aktualisiert, bis ich Eclipse neu gestartet
- 27. Ermitteln, wann stringByEvaluatingJavaScriptFromString beendet ist
- 28. Wie lange Job in Julia automatisch neu gestartet wird
- 29. Ermitteln, wann Relay Abfragedaten abruft
- 30. Wie wird ein benutzerdefiniertes Skript ausgelöst, das ausgeführt wird, wenn ein bestimmter Systemd-Dienst neu gestartet wird?
Wie geht es weiter auszuführen planen, wenn der Neustart durchgeführt wird? – Sake
Sobald der Neustart abgeschlossen ist, werde ich "Image für Windows" verwenden, um ein Basis-Image zu installieren, und dann werde ich wieder auf die Partition neu starten, die ich gestartet habe. –