pixel0815
Goto Top

Frage zu Skript - Wie funktioniert?

Hallo Leute,

kann mir jemand sagen wie das Script funktioniert?
Ansich ist das ja ganz nützlich aber ich bekomme es nicht zum laufen.

if (((Get-ChildItem "\\server\path").count) -gt 1) {  
	if (Test-Path "c:\temp\process-chk.log") {  
		$previous_value = Get-Content "c:\temp\process-chk.log"  
	}
	$new_value = Get-WmiObject Win32_Process -ComputerName "." | `  
	where {$_.Name -eq 'Programm.exe'} | `  
	foreach {"$($_.WriteTransferCount)"}  
 
	if ($new_value -ne $previous_value) {
		Write-Host "Process OK"  
	}
	else {
		$message_success = "The process on the server is frozen."  
 
		$emailFrom = "support@mail.domain.local"  
		$emailTo = "'support@mail.domain.local','johndoe@mail.domain.local'"  
		$subject = "PROBLEM : SERVER PROCESS NAME FROZEN"  
		$smtpServer = "smtp_default"  
		$smtp = new-object Net.Mail.SmtpClient($smtpServer)
		$smtp.Send($emailFrom, $emailTo, $subject, $message_success)
	}
	$new_value    | Out-File "c:\temp\process-chk.log" -Force  
}

Gruß
Heiko

Content-Key: 269907

Url: https://administrator.de/contentid/269907

Printed on: April 20, 2024 at 00:04 o'clock

Mitglied: 114757
114757 Apr 22, 2015 updated at 12:22:04 (UTC)
Goto Top
Moin,
kann mir jemand sagen wie das Script funktioniert?
Also ausgeschrieben etwa so:

Wenn es mehr als 1 Datei im Verzeichnis \\Server\path gibt dann:

  • Wenn die Datei c:\temp\process-chk.log existiert, lese den Wert in die Variable $previous_value
  • Speichere den Wert der Eigenschaft WriteTransferCount des Prozesses Programm.exe vom lokalen Computer in der Variablen $new_value
  • Wenn der Wert von $new_value nicht gleich dem vorherigen Wert in $previous_value ist dann ist das Programm in Ordnung, ansonsten schicke eine Mail das der Prozess nicht mehr reagiert.
Schreibe den aktuellen Wert wieder in die Datei "c:\temp\process-chk.log"

Gruß jodel32
Member: pixel0815
pixel0815 Apr 22, 2015 at 12:22:50 (UTC)
Goto Top
Verrückt. Ich dachte das wäre ein Skript um per Powershell auf einem Remotehost einen Prozess zu überwachen ob dieser Hängt oder nicht face-sad
Mitglied: 114757
114757 Apr 22, 2015 updated at 14:43:04 (UTC)
Goto Top
Zitat von @pixel0815:

Verrückt. Ich dachte das wäre ein Skript um per Powershell auf einem Remotehost einen Prozess zu überwachen ob
dieser Hängt oder nicht face-sad
Das geht damit ja auch, indem du anstatt dem Punkt bei -Computername "." den Computernamen oder die IP des Remote-Hosts einträgst.
Vorausgesetzt die Remoteverwaltung des Remotehosts ist erlaubt.

Das Script ist aber speziell auf die eine Eigenschaft ausgelegt, also wieviel Daten sie bewegt..