Mail di Server 2008 sulle variables degli events

Una delle nuove funzionalità di Server 2008 è la possibilità di colbind un'attività a un evento specifico nei registri events. Una delle azioni disponibili è submit un'email tramite un server SMTP.

Questo funziona ottimamente, tuttavia sarebbe ideale se nel corpo del messaggio i contenuti dell'evento potessero essere posti. Ho provato a usare $ eventdescription e% eventdescription%, ma sono solo scatti al buio. Qualsiasi quantità di googling non produce risultati.

  • Come triggersre un'attività a qualsiasi modifica di una cartella con Windows Task Scheduler di Windows?
  • Imansible utilizzare la politica di gruppo in Windows Server 2008
  • Assicurarsi che l'esecutivo sia sempre in esecuzione?
  • cambiare il logo SharePoint?
  • Errore durante il trasferimento di TFS2010 a un nuovo server
  • Ci sono registri di attività RDP? - Windows Server 2008 R2
  • Qualcuno sa se questo è ansible?

    Aggiornamento : Il suggerimento di Sparks qui sotto è un passo nella giusta direzione che credo, tuttavia questo metodo non sembra funzionare per tutti i valori. Ad esempio, posso tirare il RecordID, la Severità e il Canale come mostrato, ma non posso utilizzare lo stesso metodo per recuperare il EventID o, soprattutto, la descrizione.

    Ecco l'XML raw da un evento:

    [Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"] [System] [Provider Name="DFSR" /] [EventID Qualifiers="16384"]4412[/EventID] [Level]4[/Level] [Task]0[/Task] [Keywords]0x80000000000000[/Keywords] [TimeCreated SystemTime="2009-05-14T18:18:09.000Z" /] [EventRecordID]45692[/EventRecordID] [Channel]DFS Replication[/Channel] [Computer]servername.domain.com[/Computer] [Security /] [/System] [EventData] [Data]9046C3F4-843E-4A53-B941-4B20764072E5[/Data] [Data]D:\departments\Geomatics\Plan Quality\Data Processing\CG3533017 2009-05-13 KT FIXED[/Data] [Data]D:\departments[/Data] [Data]{26D5F604-E603-4F87-8EC3-DE9A945DA8FD}-v927199[/Data] [Data]Departments[/Data] [Data]domain.ca\files\departments[/Data] [Data]B8242CE2-F5EB-47DA-BA5B-1DD2F7EE3AB9[/Data] [Data]DFAA7A54-66CB-4C31-81A0-0F861382C32C[/Data] [Data]CG3533017 2009-05-13-{26D5F604-E603-4F87-8EC3-DE9A945DA8FD}-v927199[/Data] [/EventData] [/Event] 

    Ho provato a utilizzare un ValueQuery per EventData, ma non restituisce alcun dato.

  • Parse wevtutil XML in un database?
  • ID evento 12240 in Windows Server 2012
  • ID evento: 8003 Errore del browser principale
  • Correggere la scheda Generale nel Visualizzatore events
  • I messaggi di pipeline passa i messaggi a Write-EventLog
  • Eventi in avanti di Windows Mancano i dati e la descrizione dei dati dell'utente
  • 6 Solutions collect form web for “Mail di Server 2008 sulle variables degli events”

    Sono andato in questo modo un po 'diverso, ma questo approccio genera messaggi di posta elettronica su nuovi events che corrispondono a un filter personalizzato, con tutti i dettagli dell'evento inclusi nel corpo email.

    1) Creare una 'visualizzazione personalizzata' nel Visualizzatore events con il filter desiderato.

    2) Una volta che hai la vista, dovresti vedere un collegamento a 'Attacca l'attività a questa visualizzazione personalizzata …'.

    Ho scelto di utilizzare sendMail.exe da qui ( http://caspian.dotconf.net/menu/Software/SendEmail/ ) che ho estratto a C: \ sendmail. Il motivo è che l'azione "Invia un'e-mail" di Microsoft ha problemi con l'authentication SMTP e anche apparentemente non è presente neppure in Server 2012.

    Quindi, nel mio caso, ho selezionato 'Avviare un programma' mentre ho associato l'attività alla visualizzazione personalizzata. Ma la modificheremo come XML, quindi non ti preoccupare di riempirlo tramite la GUI.

    3) Esegui la nuova attività in XML, la modificheremo più tardi.

    4) Creare un file "mail-event.bat" nella cartella C: \ sendmail con le seguenti 3 righe:

     C:\Windows\system32\wevtutil.exe qe Application /f:text /q:"<QueryList><Query Id='0' Path='Application'><Select Path='Application'>*[System[(EventRecordID=%1)]]</Select></Query></QueryList>" > C:\sendmail\%1.log C:\sendmail\sendEmail.exe -s <smtp_server> -f <from> -xu <user> -xp <pass> -t <to> -u "<subject>" -o message-file=c:\sendmail\%1.log del C:\sendmail\%1.log 

    Ovviamente, sostituire 'smtp_server', 'da', 'user', 'pass', 'to', 'subject' con i valori desiderati.

    In questo modo verrà creato un file'log 'di $ (EventRecordID) in C: \ sendmail con tutti i dettagli di tale evento, inviarlo e quindi eliminarlo.

    È ansible verificare se il file batch funziona entrando in Visualizzatore events, aprendo un evento nel registro applicazioni, passando alla scheda Dettagli, selezionando "Visualizzazione XML" e cercare EventRecordID. Copiare quel numero integer e quindi eseguire dalla row di command:

    C: \ sendmail> log-event.bat 53522

    Naturalmente, sostituire 53522 con il valore dal nodo EventRecordID. Se ricevi l'email, vai al tuo posto felice.

    NOTA BENE: Avresti notato che la string 'Applicazione' mostra un paio di volte nella row di command per wevtutil.exe – perchè non riuscivo a sembrarle funzionare puntandola direttamente alla vista personalizzata e il mio La visualizzazione personalizzata è stata un sottoinsieme di events che si trovano tutti all'interno del registro applicazioni. Potresti wherer aggiustarla per far funzionare nel tuo caso se cerchi di submit events di posta dal registro di sistema, ad esempio.

    5) Modificare l'XML esportto, faremo due modifiche:

    Innanzitutto, aggiungere il seguente nodo "ValueQueries" nell'XML nel nodo 'EventTrigger':

     <EventTrigger> <Enabled>true</Enabled> <Subscription>...snip...</Subscription> <ValueQueries> <Value name="EventRecordID">Event/System/EventRecordID</Value> </ValueQueries> </EventTrigger> 

    NOTA: Nel precedente, ho tagliato le informazioni di 'Abbonamento' che saranno state compilate in base alla visualizzazione personalizzata creata. Non copiare il mio 'Abbonamento' nel tuo XML!

    In secondo luogo, sostituire il nodo azioni con il seguente:

     <Actions Context="Author"> <Exec> <Command>C:\sendmail\mail_event.bat</Command> <Arguments>$(EventRecordID)</Arguments> </Exec> </Actions> 

    Ora, visualizza un nuovo evento nella tua visualizzazione personalizzata e devi ricevere automaticamente la notifica via email! Woohoo!

    Non ho accesso a una macchina Server 2008 o Vista per provare me stesso e get la variabile per te, ma questo articolo dovrebbe essere utile.

    Se si crea un'attività di base e visualizza l'XML dell'attività, è necessario visualizzare tutti i valori disponibili.

    http://blogs.technet.com/otto/archive/2007/11/09/find-the-event-that-triggered-your-task.aspx

    Utilizzando la documentazione nel collegamento fornito da Sparks, aggiungere questa row aggiuntiva all'esportzione XML da Task Scheduler per get il text dell'evento:

     <Value name="eventData">Event/EventData/Data</Value> 

    Anche interessante (e, spero, esplicativa):

     <Value name="eventTimeCreated">Event/System/TimeCreated/@SystemTime</Value> 

    Ho trovato questo evento "Evento / Sistema / EventRecordID" di Googling

    È quindi ansible fare riferimento alle variables $ (eventData) e $ (eventTimeCreated) nell'attività.

    Sembra che i valori siano specificati passando attraverso la gerarchia XML. Mi aspetto che tu sia in grado di specificare la maggior parte di qualsiasi parte dell'evento scomposendo il dump XML crudo per creare un'espressione delimitata da slash.

    Sembra che '/ @' sia abbreviato per un carattere spaziale in questa syntax.

    Siete dopo i dati dell'evento?

    Il mio requisito era quello di submit un'email each volta che un pool di applicazioni IIS si arrestò a causa del tempo di inattività. Volevo che il nome del pool di applicazioni che si stava chiudendo per apparire nel messaggio di posta elettronica.

    Questo ha funzionato per me:

    <Nome valore = "appPoolId"> Evento / EventData / Dati [@ Nome = 'AppPoolID'] </ Value>

    Non ho mai finito per get questo per funzionare, e sembra per Server 2012 questa funzionalità di posta elettronica è stata rimossa completamente. Sfortunatamente un vicolo cieco.

    Immagino che ho finito di sviluppare le tue idee

     <?xml version="1.0" encoding="UTF-16"?> <Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> <RegistrationInfo> <Date>2013-02-07T17:30:20.8644895</Date> <Author>QA\TimT</Author> </RegistrationInfo> <Triggers> <EventTrigger> <Enabled>true</Enabled> <Subscription>&lt;QueryList&gt;&lt;Query Id="0" Path="ForwardedEvents"&gt;&lt;Select Path="ForwardedEvents"&gt;*&lt;/Select&gt;&lt;/Query&gt;&lt;/QueryList&gt;</Subscription> <ValueQueries> <Value name="EventChannel">Event/System/Channel</Value> <Value name="EventComputer">Event/System/Computer</Value> <Value name="EventData">Event/EventData/Data</Value> <Value name="EventID">Event/System/EventID</Value> <Value name="EventRecordID">Event/System/EventRecordID</Value> <Value name="EventSeverity">Event/System/Level</Value> <Value name="Message">Event/RenderingInfo/Message</Value> </ValueQueries> </EventTrigger> </Triggers> <Principals> <Principal id="Author"> <UserId>QA\Administrator</UserId> <LogonType>Password</LogonType> <RunLevel>LeastPrivilege</RunLevel> </Principal> </Principals> <Settings> <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries> <AllowHardTerminate>true</AllowHardTerminate> <StartWhenAvailable>false</StartWhenAvailable> <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> <IdleSettings> <StopOnIdleEnd>true</StopOnIdleEnd> <RestartOnIdle>false</RestartOnIdle> </IdleSettings> <AllowStartOnDemand>true</AllowStartOnDemand> <Enabled>true</Enabled> <Hidden>false</Hidden> <RunOnlyIfIdle>false</RunOnlyIfIdle> <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession> <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine> <WakeToRun>false</WakeToRun> <ExecutionTimeLimit>P3D</ExecutionTimeLimit> <Priority>7</Priority> </Settings> <Actions Context="Author"> <SendEmail> <Server>mail.nowhere.com</Server> <Subject>$(EventComputer) reports event $(EventID) in $(EventChannel), record $(EventRecordID), severety $(EventSeverity)</Subject> <To>admin@nowhere.com</To> <From>reporter@nowhere.com</From> <Body>$(EventData) $(Message)</Body> <HeaderFields /> <Attachments /> </SendEmail> </Actions> </Task> 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.