Skip to main content

Writing Event Log Entries with PowerShell

PowerShell contains a cmdlet, Write-EventLog that will allow you to place custom events generated by your scripts into the clients event logs.  One problem that I have had with this approach is that the source that is generating the event log entry needs to be registered with the log you are writing to.  In other words, an extra procedure on each client/server that needs to be completed before the script can be used.  Another option is to use the Windows PowerShell event log itself.  Take a look at this code:

Write-EventLog -Source PowerShell -LogName "Windows PowerShell" -EventId 10000 -EntryType Information -Message "This is a test"

 

Here you can see that we are using the Source of PowerShell with the event log of Windows PowerShell.  The key to using the Windows PowerShell event log for your own purposes is to make sure that you are using event IDs that are unique. Using this code, I was able to get an idea for the Event IDs being used by the Windows PowerShell event log.

 

Get-WinEvent -LogName "Windows PowerShell" |

 Select-Object -Property ID -Unique

It appeared that anything over 10000 was available.  When developing code that you want to make entries in the Windows PowerShell event log, make an Excel spread sheet of your scripts and the event ID numbers it will use.  Allow for some room for growth so separate blocks by sizes of 25 or 50.  That way as you add new code to the script in the future, your event IDs for that script will be sequential.  Having this list will also help you understand which IDs that you need to look up.  When you need to recover all the events from a particular script, you simply provide the Event ID range for that script.

$LogHash = @{LogName = "Windows PowerShell"; ID = 10000..10024}

Get-WinEvent -FilterHashtable $LogHash

A parameter that may help you clarify what you are writing in the event log is –EntryType.  EntryType has the following values:

  • Error
  • Warning
  • Information
  • SuccessAudit
  • FailureAudit

Using this parameter will help you to further filter your search results. It will also allow you to reuse event IDs because they will have different EventTypes.

For those of you who wish to create a custom event log for your scripts, take a look at the help file for New-EventLog.

Comments

Popular posts from this blog

How to list all the AD LDS instances on a server

AD LDS allows you to provide directory services to applications that are free of the confines of Active Directory.  To list all the AD LDS instances on a server, follow this procedure: Log into the server in question Open a command prompt. Type dsdbutil and press Enter Type List Instances and press Enter . You will receive a list of the instance name, both the LDAP and SSL port numbers, the location of the database, and its status.

How to run GPResult on a remote client with PowerShell

In the past, to run the GPResult command, you would need to either physically visit this client, have the user do it, or use and RDP connection.  In all cases, this will disrupt the user.  First, you need PowerShell remoting enabled on the target machine.  You can do this via Group Policy . Open PowerShell and type this command. Invoke-Command –ScriptBlock {GPResult /r} –ComputerName <ComputerName> Replace <ComputerName> with the name of the target.  Remember, the target needs to be online and accessible to you.

Error icon when creating a GPO Preference drive map

You may not have an error at all.  Take a look at the drive mapping below. The red triangle is what threw us off.  It is not an error.  It is simply a color representation of the Replace option of the Action field in the properties of the drive mappings. Create action This give you a green triangle. The Create action creates a new mapped drive for users. Replace Action The Replace action gives you a red triangle.  This action will delete and recreate mapped drives for users. The net result of the Replace action is to overwrite all existing settings associated with the mapped drive. If the drive mapping does not exist, then the Replace action creates a new drive mapping. Update Action The Update action will have a yellow triangle. Update will modify settings of an existing mapped drive for users. This action differs from Replace in that it only updates settings defined within the preference item. All other settings remain as configured on the mapped drive. If the