<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.rabbibob.com/index.php?action=history&amp;feed=atom&amp;title=Powershell%3A_Syslog_Module</id>
	<title>Powershell: Syslog Module - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.rabbibob.com/index.php?action=history&amp;feed=atom&amp;title=Powershell%3A_Syslog_Module"/>
	<link rel="alternate" type="text/html" href="https://www.rabbibob.com/index.php?title=Powershell:_Syslog_Module&amp;action=history"/>
	<updated>2026-04-29T00:09:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://www.rabbibob.com/index.php?title=Powershell:_Syslog_Module&amp;diff=1319&amp;oldid=prev</id>
		<title>Rabbi Bob at 20:32, 29 April 2019</title>
		<link rel="alternate" type="text/html" href="https://www.rabbibob.com/index.php?title=Powershell:_Syslog_Module&amp;diff=1319&amp;oldid=prev"/>
		<updated>2019-04-29T20:32:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:32, 29 April 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l12&quot;&gt;Line 12:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 12:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#We&amp;#039;d want to pass syslog($Message,$Severity,$Facility) for processing&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#We&amp;#039;d want to pass syslog($Message,$Severity,$Facility) for processing&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Reference: https://thwack.solarwinds.com/docs/DOC-194243&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Reference: https://thwack.solarwinds.com/docs/DOC-194243&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hu_syslog &lt;/del&gt;($Message,$Severity,$Facility){&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;syslog &lt;/ins&gt;($Message,$Severity,$Facility){&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     Write-Host $Message &amp;quot;-&amp;quot; $Severity &amp;quot;-&amp;quot; $Facility&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     Write-Host $Message &amp;quot;-&amp;quot; $Severity &amp;quot;-&amp;quot; $Facility&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     If (!$Facility) {$Facility=22}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     If (!$Facility) {$Facility=22}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mw_RabbiBob_139-wiki_:diff::1.12:old-1318:rev-1319 --&gt;
&lt;/table&gt;</summary>
		<author><name>Rabbi Bob</name></author>
	</entry>
	<entry>
		<id>https://www.rabbibob.com/index.php?title=Powershell:_Syslog_Module&amp;diff=1318&amp;oldid=prev</id>
		<title>Rabbi Bob: Created page with &quot;==Purpose== Scratching a syslog itch with this one.  It heavily uses the entry [https://thwack.solarwinds.com/docs/DOC-194243 here] and then builds in some specific things tha...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.rabbibob.com/index.php?title=Powershell:_Syslog_Module&amp;diff=1318&amp;oldid=prev"/>
		<updated>2019-04-29T20:32:32Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==Purpose== Scratching a syslog itch with this one.  It heavily uses the entry [https://thwack.solarwinds.com/docs/DOC-194243 here] and then builds in some specific things tha...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Purpose==&lt;br /&gt;
Scratching a syslog itch with this one.  It heavily uses the entry [https://thwack.solarwinds.com/docs/DOC-194243 here] and then builds in some specific things that I&amp;#039;m looking for.&lt;br /&gt;
&lt;br /&gt;
* Default severity and facility if not given&lt;br /&gt;
* This one is for script driven items where outcomes should go out to syslog (audit trail) and will include $User and $Hostname&lt;br /&gt;
* Intended for re-use among many scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; Example has copious write-hosts, remove as needed.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#We&amp;#039;d want to pass syslog($Message,$Severity,$Facility) for processing&lt;br /&gt;
# Reference: https://thwack.solarwinds.com/docs/DOC-194243&lt;br /&gt;
function hu_syslog ($Message,$Severity,$Facility){&lt;br /&gt;
    Write-Host $Message &amp;quot;-&amp;quot; $Severity &amp;quot;-&amp;quot; $Facility&lt;br /&gt;
    If (!$Facility) {$Facility=22}&lt;br /&gt;
    #(16-23)=LOCAL0-LOCAL7&lt;br /&gt;
    If (!$Severity) {$Severity=6}&lt;br /&gt;
    #0=EMERG 1=Alert 2=CRIT 3=ERR 4=WARNING 5=NOTICE  6=INFO  7=DEBUG&lt;br /&gt;
&lt;br /&gt;
    $Server = &amp;#039;syslog&amp;#039;&lt;br /&gt;
    $User=$env:USERNAME&lt;br /&gt;
    &lt;br /&gt;
    $Hostname= $env:COMPUTERNAME&lt;br /&gt;
    # Create a UDP Client Object&lt;br /&gt;
    $UDPCLient = New-Object System.Net.Sockets.UdpClient&lt;br /&gt;
    $UDPCLient.Connect($Server, 514)&lt;br /&gt;
    # Calculate the priority&lt;br /&gt;
    $Priority = ([int]$Facility * 8) + [int]$Severity&lt;br /&gt;
    #Time format the SW syslog understands&lt;br /&gt;
    $Timestamp = Get-Date -Format &amp;quot;MMM dd HH:mm:ss&amp;quot;&lt;br /&gt;
    # Assemble the full syslog formatted message&lt;br /&gt;
    $FullSyslogMessage = &amp;quot;&amp;lt;{0}&amp;gt;{1} {2} {3} {4}&amp;quot; -f $Priority, $Timestamp, $Hostname, $User, $Message&lt;br /&gt;
    # create an ASCII Encoding object&lt;br /&gt;
    $Encoding = [System.Text.Encoding]::ASCII&lt;br /&gt;
    # Convert into byte array representation&lt;br /&gt;
    $ByteSyslogMessage = $Encoding.GetBytes($FullSyslogMessage)&lt;br /&gt;
&lt;br /&gt;
    Write-Host $Message &amp;quot;-&amp;quot; $severity &amp;quot;-&amp;quot; $Facility&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Send the Message&lt;br /&gt;
#####-----####&lt;br /&gt;
$UDPCLient.Send($ByteSyslogMessage, $ByteSyslogMessage.Length)&lt;br /&gt;
#write-host $FullSyslogMessage&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
* save as syslog.psm1 (or whatever name)&lt;br /&gt;
* Import into ps1 script via&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Import-Module .\syslog.psm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Invoke by calling the function&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syslog &amp;quot;dfasdf asdfadsfa&amp;quot; 3 1&lt;br /&gt;
syslog &amp;quot;dfasdf asdfadsfa&amp;quot; 6&lt;br /&gt;
syslog &amp;quot;dfasdf asdfadsfa&amp;quot; 4 7&lt;br /&gt;
syslog &amp;quot;dfasdf asdfadsfa&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Results===&lt;br /&gt;
With the write-hosts enable, you should see that it returns the &amp;quot;quoted entry&amp;quot; and also the facility and severity.  If no facility or severity were given, it will default to values in the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dfasdf asdfadsfa - 3 - 1&lt;br /&gt;
dfasdf asdfadsfa - 3 - 1&lt;br /&gt;
dfasdf asdfadsfa - 6 -&lt;br /&gt;
dfasdf asdfadsfa - 6 - 22&lt;br /&gt;
dfasdf asdfadsfa - 4 - 7&lt;br /&gt;
dfasdf asdfadsfa - 4 - 7&lt;br /&gt;
dfasdf asdfadsfa -  -&lt;br /&gt;
dfasdf asdfadsfa - 6 - 22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Powershell]]&lt;br /&gt;
[[Category:Weblog-2019-04]]&lt;/div&gt;</summary>
		<author><name>Rabbi Bob</name></author>
	</entry>
</feed>