$Params = @{
"LogName"=$LogName;
};
if ($After) {
$Params.Add("After", [DateTime]::Parse($After));
}
if ($Before) {
$Params.Add("Before", [DateTime]::Parse($Before));
}
if ($Top) {
$Params.Add("Newest", $Top);
}
if ($EntryType) {
$Params.Add("EntryType", $EntryType);
}
$EventLogs = Get-EventLog @Params
# Get properties of object to be displayed in output (Get-Memeber does not honor order of properties in object)
[System.Collections.ArrayList]$OutPutOrdering = $EventLogs | Get-Member -MemberType AliasProperty,Property | Select-Object -ExpandProperty Name
# Add proprty being sorted, so it will be the first property to be displayed in output(will generate duplicate entry)
$OutPutOrdering.Insert(0,"TimeGenerated")
# Remove the duplicate from the list of properties (will preserve the first one in the list)
$OutPutOrdering = $OutPutOrdering | Select-Object -Unique
# Done. (do not remove blank line following this comment as it can cause problems when script is sent to SCOM agent!) </Script></ScriptBody>
<Parameters>
<Parameter>
<Name>LogName</Name>
<Value>$Config/LogName$</Value>
</Parameter>
<Parameter>
<Name>After</Name>
<Value>$Config/After$</Value>
</Parameter>
<Parameter>
<Name>Before</Name>
<Value>$Config/Before$</Value>
</Parameter>
<Parameter>
<Name>Top</Name>
<Value>$Config/Top$</Value>
</Parameter>
<Parameter>
<Name>EntryType</Name>
<Value>$Config/EntryType$</Value>
</Parameter>
<Parameter>
<Name>Format</Name>
<Value>$Config/Format$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
</WriteAction>
</MemberModules>
<Composition>
<Node ID="WA"/>
</Composition>
</Composite>
</ModuleImplementation>
<InputType>System!System.BaseData</InputType>
</WriteActionModuleType>