mcseboarduser23 0 Geschrieben 23. Februar 2016 Melden Teilen Geschrieben 23. Februar 2016 (bearbeitet) Liebe Community, ich möchte eine Powershell abfrage erstellen, die eine Mail versendet, wenn ein Ablaufdatum kleiner 30 Tage erreicht ist in Bezug auf Server Scripte Get-ExchangeCertificate -Server abc | fl NotAfter : 3/18/2016 5:57:02 PM wie könnte ich eine Abfrage erstellen, die mir mitteilt, das das Ablaufdatum kleiner 30 Tage ist?den automatisierten Mailversand … bekomme ich selbst hin wie setzte ich in der Shell den Wert/Abfrage NotAfter kleiner 30 days? Danke für Eure Anregungen. oder als Plan B erstellte ich eine txt datei mit dem Ablaufdatum und das Script vergleicht den wert in der TXT? bearbeitet 23. Februar 2016 von mcseboarduser23 Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 23. Februar 2016 Melden Teilen Geschrieben 23. Februar 2016 (bearbeitet) Hi, mit (Get-ExchangeCertificate -Server abc).notafter.AddDays(-30) bekommst du das Ablaufdatum -30 Tage heraus. Das kannst du dann schön in einem Script abfragen. bearbeitet 23. Februar 2016 von mamamia Zitieren Link zu diesem Kommentar
mcseboarduser23 0 Geschrieben 23. Februar 2016 Autor Melden Teilen Geschrieben 23. Februar 2016 @mamaMia ich habe dir eine pn geschrieben als Output erhalte ich folgende Meldung: you cant call a method on a NULL-Valued expression wenn ich get-exCert | get-member mache: NotAfter Property System.DateTime NotAfter {get;}NotBefore Property System.DateTime NotBefore {get;} Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 23. Februar 2016 Melden Teilen Geschrieben 23. Februar 2016 Vermutlich hast du mehrere Zertifikate auf dem Exchange. Get-ExchangeCertificate -Server abc | Select notafter was kommt da raus? Zitieren Link zu diesem Kommentar
mcseboarduser23 0 Geschrieben 23. Februar 2016 Autor Melden Teilen Geschrieben 23. Februar 2016 Get-ExchangeCertificate -Server abc | Select notafter = zeigt den richtigen Output an nur die count funktion scheint nicht zu greifen. Kann .AddDays (-30) überhaupt mit dem Wert/Output 21.03.2016 13:56:18 etwas anfangen, denke da liegt die Krux Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 23. Februar 2016 Melden Teilen Geschrieben 23. Februar 2016 Das sollte gehen. [PS] C:\Windows\system32>Get-ExchangeCertificate | Select notafter NotAfter -------- 18.05.2016 16:36:05 [PS] C:\Windows\system32>Get-ExchangeCertificate | Select notafter | Get-Member TypeName: Selected.Microsoft.Exchange.Management.SystemConfigurationTasks.ExchangeCertificate Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() NotAfter NoteProperty System.DateTime NotAfter=18.05.2016 16:36:05 NotAfter ist vom Typ System.DateTime, somit kann es mit der Funktion .AddDays(-30) umgehen Probiere mal: $var = Get-ExchangeCertificate | Select notafter $var.AddDays(-30) Zitieren Link zu diesem Kommentar
mcseboarduser23 0 Geschrieben 23. Februar 2016 Autor Melden Teilen Geschrieben 23. Februar 2016 (bearbeitet) .addDays scheint keine funktion zu sein, sondern eine ethode lt shell ausgabe Method invocation failed because [selected.Microsoft.Exchange.Management.SystemConfigurationTasks.ExchangeCertificate]doesn't contain a method named 'AddDays'.At line:1 char:13+ $var.AddDays <<<< (-30) + CategoryInfo : InvalidOperation: (AddDays:String) [], RuntimeException + FullyQualifiedErrorId : MethodNotFound bearbeitet 23. Februar 2016 von mcseboarduser23 Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 23. Februar 2016 Melden Teilen Geschrieben 23. Februar 2016 Stimmt, habe ich verwechselt. Ändert ja aber nichts an der Tatsache. .addDays scheint keine funktion zu sein, sondern eine ethode lt shell ausgabe Method invocation failed because [selected.Microsoft.Exchange.Management.SystemConfigurationTasks.ExchangeCertificate]doesn't contain a method named 'AddDays'.At line:1 char:13+ $var.AddDays <<<< (-30) + CategoryInfo : InvalidOperation: (AddDays:String) [], RuntimeException + FullyQualifiedErrorId : MethodNotFound Mit welcher Powershellversion gegen welche Exchangeversion arbeitest du? Ich hab hier PS 4 mit Exchange 2013. Zitieren Link zu diesem Kommentar
mcseboarduser23 0 Geschrieben 23. Februar 2016 Autor Melden Teilen Geschrieben 23. Februar 2016 (bearbeitet) leider x2010 Name : Windows PowerShell ISE HostVersion : 2.0 komme an der stelle mit der Abfrage nicht weiter ...kann ich nicht eine TXT. datei ablegen mit Infos zum Ablaufdatum und diese Datei iwie einlesen und abgleichen? bearbeitet 23. Februar 2016 von mcseboarduser23 Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 23. Februar 2016 Melden Teilen Geschrieben 23. Februar 2016 Kannst du schon, aber was genau soll das bringen? Was willst du eigentlich machen, was ist die Problemstellung? Zitieren Link zu diesem Kommentar
mcseboarduser23 0 Geschrieben 23. Februar 2016 Autor Melden Teilen Geschrieben 23. Februar 2016 Hi, ich möchte unsere Zertifikate/ Mailserver via Shell überwachen NotAfter -------- 18.03.2016 16:36:05 dieses "Ablaufdatum" überwachen und wenn eine Zeit kleiner zb 30 Tage ist, eine Aktion passiert. Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 23. Februar 2016 Melden Teilen Geschrieben 23. Februar 2016 Wäre es organisatorisch nicht einfacher, dir das in deinen Kalender einzutragen? Die Standarddauer von Zertifikaten liegt in dem Bereich ja bei 2 Jahren glaube ich, dafür ein Script zu schreiben, für einen Task den man einmal alle 2 Jahre durchführt halte ich für ein bisschen umständlich. Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 23. Februar 2016 Melden Teilen Geschrieben 23. Februar 2016 Grundlagen Powershell: (Get-ExchangeCertificate).notafter.adddays(-30) "Select notafter" zeigt nur dieses Attribut an, aber genutzt wird das übergeordnete Zertifikat. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.