<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tachytelic.net &#187; Technical Posts</title>
	<atom:link href="http://www.tachytelic.net/category/techposts/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tachytelic.net</link>
	<description></description>
	<lastBuildDate>Sun, 15 Jan 2012 00:24:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Initiating a Gradwell call directly from a custom Internet Explorer Context Menu</title>
		<link>http://www.tachytelic.net/2012/01/initiating-a-gradwell-call-directly-from-a-custom-internet-explorer-context-menu/</link>
		<comments>http://www.tachytelic.net/2012/01/initiating-a-gradwell-call-directly-from-a-custom-internet-explorer-context-menu/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 21:14:56 +0000</pubDate>
		<dc:creator>Paulie</dc:creator>
				<category><![CDATA[Scripts & Utilities]]></category>
		<category><![CDATA[Technical Posts]]></category>
		<category><![CDATA[Gradwell]]></category>
		<category><![CDATA[VOIP]]></category>

		<guid isPermaLink="false">http://www.tachytelic.net/?p=418</guid>
		<description><![CDATA[I recently read some documentation on the Gradwell website which detailed how to initiate calls via the web: http://www.gradwell.com/support/kb/article.php?id=159 I wrote a powershell script to test the system and it worked well, but I didn&#8217;t really have a practical use for dialing from the command line.  Yesterday I was by chance reading about Extending the [...]]]></description>
			<content:encoded><![CDATA[<p>I recently read some documentation on the Gradwell website which detailed how to initiate calls via the web:</p>
<p><a href="http://www.gradwell.com/support/kb/article.php?id=159">http://www.gradwell.com/support/kb/article.php?id=159</a></p>
<p>I wrote a powershell script to test the system and it worked well, but I didn&#8217;t really have a practical use for dialing from the command line.  Yesterday I was by chance reading about <strong><a href="http://blogs.msdn.com/b/oldnewthing/archive/2004/05/24/140283.aspx" target="_blank">Extending the Internet Explorer Context Menu</a></strong>.</p>
<p>I decided to put together a quick bit of code that would allow me to initiate calls directly from Internet Explorer to my Gradwell extension, and it works really well!  I ditched the original Powershell version in favour of javascript because it made the solution much neater.</p>
<p>To make this work for you need to setup an authentication token for your extension on the Gradwell VoIP control panel first. Make a note of your extention and authentication token.</p>
<p>Download <strong><a href="http://www.tachytelic.net/wp-content/uploads/DialGradwell.htm">this HTML File</a> (right click - Save Target as) </strong>and store it locally somewhere on your machine.  Open the file for editing and modify with your own extension number and authentication token:</p>
<p><a href="http://www.tachytelic.net/wp-content/uploads/Gradwell.png"><img class="aligncenter size-full wp-image-424" title="Gradwell" src="http://www.tachytelic.net/wp-content/uploads/Gradwell.png" alt="" width="369" height="87" /></a></p>
<p>Now we just need to create the internet explorer context menu, create the following registry key:</p>
<p>[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\&amp;Gradwell Call]<br />
@=REG_SZ:&#8221;C:\some\path\to\View\DialGradwell.htm&#8221;<br />
Contexts=REG_DWORD:10</p>
<p>You will need to change &#8220;c:\some\path\to&#8221; to the actual folder where you saved &#8220;DialGradwell.htm&#8221;.</p>
<p><a href="http://www.tachytelic.net/wp-content/uploads/GradwelRegistry1.png"><img class="aligncenter size-full wp-image-427" title="GradwelRegistry" src="http://www.tachytelic.net/wp-content/uploads/GradwelRegistry1.png" alt="" width="527" height="133" /></a></p>
<p>Open Internet Explorer again and highlight some text or a link and right click and you should now have the option to call the number directly from your browser:</p>
<p><a href="http://www.tachytelic.net/wp-content/uploads/GradwellCallExample.png"><img class="aligncenter size-full wp-image-428" title="GradwellCallExample" src="http://www.tachytelic.net/wp-content/uploads/GradwellCallExample.png" alt="" width="435" height="382" /></a></p>
<p>If you have done everything right, simply click on the &#8220;Gradwell Call&#8221; context menu option and your phone should start ringing right away.  Answer the call and you&#8217;ll hear the ringing of the destination number right away.</p>
<p>I might see about doing the same thing for Chrome and Firefox.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tachytelic.net/2012/01/initiating-a-gradwell-call-directly-from-a-custom-internet-explorer-context-menu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Outlook: Your message did not reach some or all of the intended recipients.</title>
		<link>http://www.tachytelic.net/2011/09/outlook-your-message-did-not-reach-some-or-all-of-the-intended-recipients/</link>
		<comments>http://www.tachytelic.net/2011/09/outlook-your-message-did-not-reach-some-or-all-of-the-intended-recipients/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 16:59:42 +0000</pubDate>
		<dc:creator>Paulie</dc:creator>
				<category><![CDATA[Technical Posts]]></category>
		<category><![CDATA[outlook]]></category>

		<guid isPermaLink="false">http://www.tachytelic.net/?p=389</guid>
		<description><![CDATA[Had a problem with a customer today sending an email and instantly getting a response that the message was undeliverable, with the message: Your message did not reach some or all of the intended recipients. Subject: FW: Offer Sent: 20/09/2011 10:33 The following recipient(s) cannot be reached: &#8216;user@domain.com&#8217; on 20/09/2011 10:33 None of your e-mail [...]]]></description>
			<content:encoded><![CDATA[<p>Had a problem with a customer today sending an email and instantly getting a response that the message was undeliverable, with the message:</p>
<blockquote><p>Your message did not reach some or all of the intended recipients.</p>
<p>Subject:  FW: Offer</p>
<p>Sent:     20/09/2011 10:33</p>
<p>The following recipient(s) cannot be reached:</p>
<p>&#8216;user@domain.com&#8217; on 20/09/2011 10:33<br />
None of your e-mail accounts could send to this recipient.</p></blockquote>
<p>This problem is caused when the email address has been pasted into to the to: field with the mailto: portion still intact.</p>
<p>Go into the sent items and open the email that failed to transmit and then choose &#8220;resend this message&#8221; and then double click on the email address you will probably see something like this:</p>
<p><a href="http://www.tachytelic.net/wp-content/uploads/Outlook.png"><img class="aligncenter size-full wp-image-388" title="Outlook - Message did not reach some of all of the intended recipients" src="http://www.tachytelic.net/wp-content/uploads/Outlook.png" alt="Showing MAILTO instead of SMTP" width="484" height="245" /></a></p>
<p>As in the picture the &#8220;E-mail type:&#8221; is set to MAILTO.  Clicking on the Internet type button will reset it back to SMTP and should be able to send the message.</p>
<p>Sometimes the incorrect address can also get cached into your NK2 file, so you will need to remove it from your autocomplete cache to make sure that you don&#8217;t get the problem again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tachytelic.net/2011/09/outlook-your-message-did-not-reach-some-or-all-of-the-intended-recipients/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dell Openmanage Server Administrator E-Mail Alerts &#8211; Powershell &amp; VBScript versions</title>
		<link>http://www.tachytelic.net/2011/09/dell-openmanage-server-administrator-e-mail-alerts-updated-powershell-script/</link>
		<comments>http://www.tachytelic.net/2011/09/dell-openmanage-server-administrator-e-mail-alerts-updated-powershell-script/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 16:53:40 +0000</pubDate>
		<dc:creator>Paulie</dc:creator>
				<category><![CDATA[Scripts & Utilities]]></category>
		<category><![CDATA[Technical Posts]]></category>
		<category><![CDATA[Dell Openmanage]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[Powershell]]></category>

		<guid isPermaLink="false">http://www.tachytelic.net/?p=368</guid>
		<description><![CDATA[Last year I posted a script written in VBScript which enables email alerts from Dell OMSA without the need for IT Assistant.  This script has proved to be very popular, but a number of users have not been able to make it work because it depends on CDO, which is not included in Windows Server [...]]]></description>
			<content:encoded><![CDATA[<p>Last year I <a href="http://www.tachytelic.net/2010/03/setting-up-e-mail-alerts-from-dell-openmanage-omsa/" target="_blank">posted a script</a> written in VBScript which enables email alerts from Dell OMSA without the need for IT Assistant.  This script has proved to be very popular, but a number of users have not been able to make it work because it depends on CDO, which is not included in Windows Server Core.</p>
<p>So, I have rewritten the script in Powershell and it should now work on any system which has Powershell installed.  The new script is easier to read and includes support for SMTP over SSL, making the use of a Gmail account for sending the alerts very straightforward.</p>
<p>The whole process is very similar to the previous script, so if you used that one, this will be immediatly familiar.</p>
<p><strong>Installation:</strong></p>
<p>After you have downloaded the Zip file extract it to a folder on your server, e.g &#8220;C:\Script&#8221;</p>
<p>You will then need to edit the variables at the top of the script to make them appropriate for your environment:</p>
<p><a href="http://www.tachytelic.net/wp-content/uploads/OMSAPowershell1.png"><img class="aligncenter size-full wp-image-369" title="Dell Openmanage Powershell Script Variables" src="http://www.tachytelic.net/wp-content/uploads/OMSAPowershell1.png" alt="" width="508" height="169" /></a></p>
<p>If you do not specify an SMTPServer, it will default to localhost.  If you do not specify an SMTPPort it will default to port 25.</p>
<p>If you intend to use the script with a gmail account set:</p>
<p>$SMTPServer = &#8220;smtp.gmail.com&#8221;<br />
$SMTPUser = Your gmail account name (without the @gmail.com part).<br />
$SMTPPassword = Your gmail account password<br />
$SMTPPort = 587<br />
$EnableSSL = true</p>
<p><strong>Test Email is functional</strong></p>
<p>Now that you have the script installed open up a powershell prompt and run the script with the &#8220;testemail&#8221; parameter e.g:</p>
<p>c:\script\dellalerts.ps1 testemail</p>
<p>If everything is working properly you should receive a test alert in your inbox.</p>
<p><strong>Setup Alerts from OpenManage</strong></p>
<p>Once the email function has been tested you can go ahead and setup the script to run from open manage, simply run the script again with the &#8220;setup&#8221; parameter, and you should see something like this:</p>
<p><a href="http://www.tachytelic.net/wp-content/uploads/OMSAPowershell2.png"><img class="aligncenter size-full wp-image-370" title="OMSAPowershell2" src="http://www.tachytelic.net/wp-content/uploads/OMSAPowershell2.png" alt="" width="465" height="351" /></a></p>
<p><strong>Testing</strong></p>
<p>There are a few easy ways to test the script in practice with a real alert generated by OpenManage:</p>
<ul>
<li>Pop the side off the server casing, this will generate a chassis intrusion alert.</li>
<li>If you have a dual powersupply system you can pull the power to one of the supplies and the server should report the power loss.</li>
</ul>
<p>The problem with these methods is that you have to be in the same place as the server.  So I prefer to trigger a tempreture alert like this:</p>
<p><a href="http://www.tachytelic.net/wp-content/uploads/OMSAPowershell3.png"><img class="aligncenter size-full wp-image-373" title="OMSAPowershell3" src="http://www.tachytelic.net/wp-content/uploads/OMSAPowershell3.png" alt="" width="429" height="337" /></a></p>
<p>Just set the warning threshold to be a couple of degrees lower than your current reading.  <strong>Warning: </strong>If you have a thermal shutdown action configured, this could trigger that process off and shutdown your server.  Once you have received your test emails, set the tempreture wanrings back to default values.</p>
<p>Please let me know of any issues you have with the script and I will work on them as soon as possible.  I have installed this updated version on a number of systems and it is working well.</p>
<p style="text-align: center;">The download includes both the new version and the older VBScript version.<br />
<form action='https://www.paypal.com/cgi-bin/webscr' method='post' target='_blank'><p>
GBP 2.95 / Download<br />
<input type="image" src="https://www.paypal.com/en_GB/i/btn/btn_buynow_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
</p><input type="hidden" name="cmd" value="_xclick" /><input type='hidden' name='business' value='paul@murana.co.uk' /><input type='hidden' name='item_name' value='Dell Openmanage Server Administrator E-Mail Alerts - Powershell &amp; VBScript versions' /><input type='hidden' name='item_number' value='368' /><input type='hidden' name='amount' value='2.95' /><input type="hidden" name="no_shipping" value="1" /><input type="hidden" name="no_note" value="1" /><input type='hidden' name='currency_code' value='GBP' /><input type='hidden' name='notify_url' value='http://www.tachytelic.net/wp-content/plugins/easyfileshop/ipn.php' /></form></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tachytelic.net/2011/09/dell-openmanage-server-administrator-e-mail-alerts-updated-powershell-script/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Updating the RecipientContainer of a dynamic distribution group in Exchange 2007</title>
		<link>http://www.tachytelic.net/2010/10/updating-the-recipientcontainer-of-a-dynamic-distribution-group-in-exchange-2007/</link>
		<comments>http://www.tachytelic.net/2010/10/updating-the-recipientcontainer-of-a-dynamic-distribution-group-in-exchange-2007/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 11:27:51 +0000</pubDate>
		<dc:creator>Paulie</dc:creator>
				<category><![CDATA[Technical Posts]]></category>
		<category><![CDATA[Exchange]]></category>

		<guid isPermaLink="false">http://www.tachytelic.net/?p=310</guid>
		<description><![CDATA[After moving users to a different organisational unit you may find that you are unable to e-mail them using a dynamic distribution group. If the group was created in powershell you wont be able to edit it in the managment console either. It shows a message saying: This Dynamic Distribution Group was created with the [...]]]></description>
			<content:encoded><![CDATA[<p>After moving users to a different organisational unit you may find that you are unable to e-mail them using a dynamic distribution group.  If the group was created in powershell you wont be able to edit it in the managment console either.  It shows a message saying:</p>
<blockquote><p>
This Dynamic Distribution Group was created with the Exchange Management Shell.  You can use the Exchange Managment Shell to modify the filter.
</p></blockquote>
<p>And all of the controls are disabled.</p>
<p>To update the recipient container from the Exchange Management Shell run:</p>
<blockquote><p>
Set-DynamicDistributionGroup -Identity DistributionGroupName -RecipientContainer &#8216;containername/ouname&#8217;
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.tachytelic.net/2010/10/updating-the-recipientcontainer-of-a-dynamic-distribution-group-in-exchange-2007/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HP Direct PDF Printing and Printer tray control</title>
		<link>http://www.tachytelic.net/2010/10/hp-direct-pdf-printing-and-printer-tray-control/</link>
		<comments>http://www.tachytelic.net/2010/10/hp-direct-pdf-printing-and-printer-tray-control/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 09:37:24 +0000</pubDate>
		<dc:creator>Paulie</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Technical Posts]]></category>
		<category><![CDATA[Direct PDF]]></category>
		<category><![CDATA[HP Laserjet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Printing]]></category>
		<category><![CDATA[Shell Script]]></category>

		<guid isPermaLink="false">http://www.tachytelic.net/?p=287</guid>
		<description><![CDATA[HP Direct PDF printing is a great cross platform driverless printing mechanism which I have used for a number of customers with great results. A common problem with Direct PDF printing is that it is not possible to include any printer control commands such as tray calls within the PDF and lots of people have [...]]]></description>
			<content:encoded><![CDATA[<p>HP Direct PDF printing is a great cross platform driverless printing mechanism which I have used for a number of customers with great results.</p>
<p>A common problem with Direct PDF printing is that it is not possible to include any printer control commands such as tray calls within the PDF and lots of people have been asking how to do this &#8211; I checked with HP Technical support and was told it is not possible.</p>
<p>It is possible however to setup a print job with PJL commands and include the PDF documents within that job.  The key being to set the printer language/personality to PDF and then using the UEL (Universal Exit Language) command to issue more control commands.  After a bit of trial and error I found that this is actually quite straightforward, and thought I would post the code as I was not able to find any working examples:</p>
<blockquote><p>
<code><br />
ESC%-12345X@PJL<br />
@PJL JOB NAME = "paultest2.pdf" DISPLAY = "Printing &#038; Stapling paultest2.pdf"<br />
@PJL SET OUTBIN=OPTIONALOUTBIN1<br />
@PJL SET PROCESSINGTYPE="STAPLING"<br />
@PJL SET PROCESSINGOPTION="LEFT_1PT_ANGLED"<br />
@PJL SET MEDIASOURCE = TRAY3<br />
@PJL ENTER LANGUAGE = PDF<br />
</code>
</p></blockquote>
<p>After setting up the job with the above, you can then add the PDF code.  After the PDF you either need to end the job or specify more further printing control.  In my example I am printing another PDF document right away within the same job but from a different tray, like so:</p>
<blockquote><p>
<code><br />
ESC%-12345X@PJL<br />
@PJL SET MEDIASOURCE = TRAY4<br />
@PJL ENTER LANGUAGE = PDF<br />
</code>
</p></blockquote>
<p>Then follow this with more PDF data and then end the job like this:</p>
<blockquote><p>
<code><br />
ESC%-12345X@PJL<br />
@PJL RESET<br />
@PJL EOJ NAME = "paultest2.pdf"<br />
ESC%-12345X<br />
</code>
</p></blockquote>
<p>In this example the two PDFs are also being stapled together and the status display on the printer is also updated to show what document is being printed.</p>
<p>All of the above was tested using a HP Laserjet P4015N with a 500-Sheet Stapler/Stacker(CB522A).  Although it contains no references to PDF printing, the best reference I have found is this document from HP:<br />
<a href="http://h20000.www2.hp.com/bc/docs/support/SupportManual/bpl13208/bpl13208.pdf"></p>
<p>http://h20000.www2.hp.com/bc/docs/support/SupportManual/bpl13208/bpl13208.pdf</a></p>
<p>In production I am doing all of the PJL wrapping via a korn shell script which I&#8217;ve tested from IBM AIX, Ubuntu and Sco Openserver 5.0.7.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tachytelic.net/2010/10/hp-direct-pdf-printing-and-printer-tray-control/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Dell Openmanage Server Administrator (OMSA) Email Alerts for Linux</title>
		<link>http://www.tachytelic.net/2010/10/dell-openmanage-server-administrator-omsa-email-alerts-for-linux/</link>
		<comments>http://www.tachytelic.net/2010/10/dell-openmanage-server-administrator-omsa-email-alerts-for-linux/#comments</comments>
		<pubDate>Sat, 02 Oct 2010 22:53:05 +0000</pubDate>
		<dc:creator>Paulie</dc:creator>
				<category><![CDATA[Scripts & Utilities]]></category>
		<category><![CDATA[Technical Posts]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[E-Mail]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OMSA]]></category>
		<category><![CDATA[Shell Script]]></category>

		<guid isPermaLink="false">http://www.tachytelic.net/?p=259</guid>
		<description><![CDATA[Earlier this year I posted a script which sends email alerts from Dell servers using the alerting system built into Dell Openmanage. However, that script will only work on Windows systems. A visitor to the blog called Steve has kindly posted some code on that post which enables the same functionality in Linux and I [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier this year I <a href="http://www.tachytelic.net/2010/03/setting-up-e-mail-alerts-from-dell-openmanage-omsa/"><strong>posted a script</strong></a> which sends email alerts from Dell servers using the alerting system built into Dell Openmanage.  However, that script will only work on Windows systems.</p>
<p>A visitor to the blog called Steve has kindly posted some code on that post which enables the same functionality in Linux and I think it is worthy of its own post.</p>
<p>Before attempting to use the script you will need to download <a href="http://caspian.dotconf.net/menu/Software/SendEmail/#download"><strong>this perl script called sendEmail</strong></a> and that you have unix2dos installed.</p>
<p>The script accepts two arguments, which are setup or show.</p>
<p>&#8220;setup&#8221; will set the alerts action to the value of $alert_script which should be the full path to the script itself.<br />
&#8220;show&#8221; will print the current alert settings for the system to the screen.</p>
<p>The code of the script is as follows, or you can <strong><a href="http://www.tachytelic.net/wp-content/uploads/send_alert.txt">download from here</a></strong>:</p>
<div id="smallblockquote">
<code><br />
#!/usr/bin/perl<br />
########<br />
#<br />
# Alter these setting to suit your system<br />
$alert_script='/opt/asx_scripts/send_alert.pl';<br />
$argument = 0;<br />
$argument = $ARGV[0];<br />
$omreport = '/opt/dell/srvadmin/bin/omreport';<br />
$omconfig = '/opt/dell/srvadmin/bin/omconfig';<br />
$sendemail = '/opt/asx_scripts/sendEmail';<br />
$toname = 'name';<br />
$fromname = 'name';<br />
$domain = 'domain.com';<br />
$tmp_path = '/tmp';<br />
$mail_gateway = 'ip or name of mailgate';<br />
$unix2dos = '/usr/bin/unix2dos';<br />
#<br />
#</p>
<p>if("$argument" eq "setup"){<br />
        set_available_alerts();<br />
        exit;<br />
}<br />
if("$argument" eq "show"){<br />
        display_set_alerts();<br />
        exit;<br />
}<br />
if("$argument" eq "help"){<br />
        print "If you need some help read the code\n";<br />
        exit;<br />
}<br />
unless($argument){<br />
        $desc=`$omreport system alertlog 2>/dev/null | grep "Description" | head -1 | cut -f2-9 -d: | sed 's/ //'`;<br />
        chomp($desc);<br />
        $date=`$omreport system alertlog 2>/dev/null | grep "Date and Time" | head -1 | cut -f2-9 -d: | sed 's/ //g' | sed 's/://g'`;<br />
        chomp($date);<br />
        $host=`$omreport system summary 2>/dev/null | grep "Host Name" | head -1 | cut -f2-9 -d: | sed 's/ //'`;<br />
        chomp($host);<br />
        $tag=`$omreport system summary 2>/dev/null | grep "Chassis Service Tag" | head -1 | cut -f2-9 -d: | sed 's/ //'`;<br />
        chomp($tag);<br />
        $attach="$tmp_path/$date.log";<br />
        `$omreport system alertlog > "$attach"`;<br />
        if( -f "$unix2dos"){<br />
                `$unix2dos "$attach" 2>/dev/null`;<br />
        }<br />
        $send=`$sendemail -f "$fromname\@$domain" -t "$toname\@$domain" -u "System Error: $host SvcTag: $tag Time: $date" -m "$host SvcTag: $tag Error: $desc Time: $date" -a "$attach" -s "$mail_gateway"`;<br />
}else{<br />
        print "If you need some help read the code\n";<br />
        exit;<br />
}</p>
<p>sub set_available_alerts {<br />
        $alert_list = `$omconfig system alertaction 2>/dev/null | cut -f2 -d"<" | cut -f1 -d">"`;<br />
        chomp($alert_list);<br />
        chomp($alert_list);<br />
        @split_alert_list = split(/\|/, $alert_list);<br />
        foreach my $alert (@split_alert_list){<br />
                $set_result = `$omconfig system alertaction event=$alert execappath="$alert_script" 2>/dev/null | head -1`;<br />
                chomp($set_result);<br />
                if("$set_result" eq "Alert action(s) configured successfully."){<br />
                        print "Set Action:\t$alert\n";<br />
                }else{<br />
                        print "ERROR Set didnt return expected value ($set_result)\n";<br />
                }<br />
        }<br />
}<br />
sub display_set_alerts {<br />
        $currently_set = `$omreport system alertaction`;<br />
        print "$currently_set\n";<br />
}</p>
<p>exit;</p>
<p></code>
</div>
<p>A good way to test the script is to temporarily set the &#8220;Temperature Maximum&#8221; to something low like 12 to trigger an alert.    </p>
<p>Unfortunately all of my Linux machines are virtual machines so I cannot test or modify this script, so if anyone wants to give me SSH access to a server running OMSA, be my guest. <img src='http://www.tachytelic.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Again, big thanks to Steve for posting this and I am sure it will be useful to lots of people.  This has also inspired me to make some improvements to my original Windows version.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tachytelic.net/2010/10/dell-openmanage-server-administrator-omsa-email-alerts-for-linux/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Creating Trend Officescan installer package using clnpack.exe</title>
		<link>http://www.tachytelic.net/2010/07/creating-trend-officescan-installer-package-using-clnpack-exe/</link>
		<comments>http://www.tachytelic.net/2010/07/creating-trend-officescan-installer-package-using-clnpack-exe/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 20:06:49 +0000</pubDate>
		<dc:creator>Paulie</dc:creator>
				<category><![CDATA[Technical Posts]]></category>
		<category><![CDATA[Batch File]]></category>
		<category><![CDATA[Trend Officescan]]></category>

		<guid isPermaLink="false">http://www.tachytelic.net/?p=240</guid>
		<description><![CDATA[Today I was trying to use clnpack.exe fom a command line to automatically create updated installation packages for Trend Officescan on a weekly basis.  This seemed a simple case of putting together a command line but I wasn&#8217;t having any luck getting it working. Annoyingly clnpack.exe does not give any error messages at all if [...]]]></description>
			<content:encoded><![CDATA[<p>Today I was trying to use clnpack.exe fom a command line to automatically create updated installation packages for Trend Officescan on a weekly basis.  This seemed a simple case of putting together a command line but I wasn&#8217;t having any luck getting it working.</p>
<p>Annoyingly clnpack.exe does not give any error messages at all if the syntax of the commad is not perfect and you get nowhere.  In the end I discovered that I could only make clnpack.exe work by using 8.3 file paths instead of long path names.</p>
<p>An example of a working command line:</p>
<p><code><br />
C:\PROGRA~1\TRENDM~1\OfficeScan\PCCSRV\Admin\Utility\ClientPackager\clnpack.exe /i /o NT /s C:\PROGRA~1\TRENDM~1\OfficeScan\PCCSRV /d d:\shared~1\software\trend32.exe<br />
</code><br />
You can see 8.3 format filenames by going into a command prompt and using:<br />
<code><br />
dir /x<br />
</code><br />
Now that I have this command working I can integrate it with a batch file which will upload it to our web server.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tachytelic.net/2010/07/creating-trend-officescan-installer-package-using-clnpack-exe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automated and conditional reboots of Draytek routers via telnet</title>
		<link>http://www.tachytelic.net/2010/05/automated-and-conditional-reboots-of-draytek-routers-via-telnet/</link>
		<comments>http://www.tachytelic.net/2010/05/automated-and-conditional-reboots-of-draytek-routers-via-telnet/#comments</comments>
		<pubDate>Tue, 25 May 2010 08:49:42 +0000</pubDate>
		<dc:creator>Paulie</dc:creator>
				<category><![CDATA[Scripts & Utilities]]></category>
		<category><![CDATA[Technical Posts]]></category>
		<category><![CDATA[Draytek]]></category>

		<guid isPermaLink="false">http://www.tachytelic.net/?p=219</guid>
		<description><![CDATA[This is a script that I posted to the Draytek forum a couple of years ago, I noticed that it has been a very popular post so I have decided to post here also. The function of the script is to perform scheduled reboots of Draytek routers.  Optionally is it possible to reboot the router [...]]]></description>
			<content:encoded><![CDATA[<p>This is a script that I posted to the Draytek forum a couple of years ago, I noticed that it has been a very popular post so I have decided to post here also.</p>
<p>The function of the script is to perform scheduled reboots of Draytek routers.  Optionally is it possible to reboot the router only if a specified IP address does not respond to a ping request.  This is useful to test if a VPN connection is functioning, and only reboot the router if there is no response.</p>
<p>Early Draytek firmwares had a tendancy to lose VPN connectivity and a reboot is the only way to restore the connection.</p>
<p>First of you need to install the Toolsack Baseline components for this script to work:</p>
<p><a href="http://www.toolsack.com/download/">http://www.toolsack.com/download/</a></p>
<p>The script needs to be supplied with parameters,  so a typical command line would look like this:</p>
<p>cscript reboot.vbs 86.11.93.131 routerpassword</p>
<p>and a conditional command line would look like this:</p>
<p>cscript reboot.vbs 86.11.93.131 routerpassword 192.168.1.254</p>
<p>The 3rd argument will be tested for a ping response, if none is received  then a reboot will be executed.</p>
<p>Here is the code, save it as reboot.vbs:</p>
<pre>
set args=wscript.arguments

If wscript.arguments.count=2 then
   IP=args.item(0)
   Password=args.item(1)
   call reboot(IP,Password)
elseif wscript.arguments.count=3 then
   IP=args.item(0)
   Password=args.item(1)
   TestIP=args.item(2)
   if ping(TestIP)=False then
      call reboot(IP,Password)
   end if
else
   wscript.echo "Invalid number of arguments specified"
   wscript.echo "Please specify router IP address &#038; password and optional test IP"
end if

sub reboot(IP, Password)
   set s = CreateObject("Toolsack.Socket")
   s.Connect IP, 23
       s.Write Password &#038; vbCrLf
   s.write "sys reboot" &#038; vbcrlf
   s.write "quit" &#038; vbcrlf
end sub

Function Ping(strHost)

    dim objPing, objRetStatus

    set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _
      ("select * from Win32_PingStatus where address = '" &#038; strHost &#038; "'")

    for each objRetStatus in objPing
        if IsNull(objRetStatus.StatusCode) or objRetStatus.StatusCode<>0 then
       Ping = False
        else
            Ping = True
        end if
    next
End Function </pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tachytelic.net/2010/05/automated-and-conditional-reboots-of-draytek-routers-via-telnet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Small Business Server 2003 &#8211; Backup Status Hangs on Loading&#8230;</title>
		<link>http://www.tachytelic.net/2010/03/small-business-server-2003-backup-status-hangs-on-loading/</link>
		<comments>http://www.tachytelic.net/2010/03/small-business-server-2003-backup-status-hangs-on-loading/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 10:11:24 +0000</pubDate>
		<dc:creator>Paulie</dc:creator>
				<category><![CDATA[Technical Posts]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[SBS 2003]]></category>

		<guid isPermaLink="false">http://www.tachytelic.net/?p=213</guid>
		<description><![CDATA[Had a customer report a problem today with the Small Business Server Managment console not being able to show the status of the backups and just hanging at &#8220;Loading&#8230;&#8221; Visiting the backup URL manually ( http://localhost/backup/default.aspx ) enabled me to see the backup reports as normal.  Had a quick look in the code of default.htm which is [...]]]></description>
			<content:encoded><![CDATA[<p>Had a customer report a problem today with the Small Business Server Managment console not being able to show the status of the backups and just hanging at &#8220;Loading&#8230;&#8221;</p>
<p><a href="http://www.tachytelic.net/wp-content/uploads/StuckLoading.png"><img class="aligncenter size-full wp-image-214" title="StuckLoading" src="http://www.tachytelic.net/wp-content/uploads/StuckLoading.png" alt="Small Business Server 2003 Backup Console" width="533" height="374" /></a></p>
<p>Visiting the backup URL manually ( <a href="http://localhost/backup/default.aspx">http://localhost/backup/default.aspx</a> ) enabled me to see the backup reports as normal.  Had a quick look in the code of default.htm which is the page that the &#8220;Manage Small Business Server Backup&#8221; console loads and saw that it is really just a javascript redirect.</p>
<p>Turns out that this server had scripting disabled for the intranet zone and therefore the page redirection was never happening.</p>
<p><a href="http://www.tachytelic.net/wp-content/uploads/EnableActiveScripting1.png"><img class="aligncenter size-full wp-image-216" title="EnableActiveScripting" src="http://www.tachytelic.net/wp-content/uploads/EnableActiveScripting1.png" alt="" width="420" height="357" /></a><a href="http://www.tachytelic.net/wp-content/uploads/EnableActiveScripting.png"></a></p>
<p>Once scripting was enabled again the backup console started working as expected.  Couldn&#8217;t find mention of anyone else having this problem so thought I would post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tachytelic.net/2010/03/small-business-server-2003-backup-status-hangs-on-loading/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New-ExchangeCertificate Cmdlet Syntax Generator</title>
		<link>http://www.tachytelic.net/2010/03/new-exchangecertificate-cmdlet-syntax-generator/</link>
		<comments>http://www.tachytelic.net/2010/03/new-exchangecertificate-cmdlet-syntax-generator/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 22:32:52 +0000</pubDate>
		<dc:creator>Paulie</dc:creator>
				<category><![CDATA[Scripts & Utilities]]></category>
		<category><![CDATA[Technical Posts]]></category>
		<category><![CDATA[Cmdlet]]></category>
		<category><![CDATA[CSR]]></category>
		<category><![CDATA[E-Mail]]></category>
		<category><![CDATA[Exchange]]></category>

		<guid isPermaLink="false">http://www.tachytelic.net/?p=124</guid>
		<description><![CDATA[I am always forgetting the syntax for the New-ExchangeCertificate cmdlet when I need to do a new certificate request so I decided to write a little bit of javascript to build up the command automatically. Its much easier to copy and paste it from here than work with in it the Exchange 2007 Command Shell. [...]]]></description>
			<content:encoded><![CDATA[<p>	<script>
	function gencsr()
	{
	  var CommonName=GetTextBoxValue('CommonName');
	  var CommonNamePath='C:\\' + CommonName.replace(/\./g, '_') + '.csr';
	  var csrCommand='New-ExchangeCertificate -GenerateRequest -Path ' + CommonNamePath + ' -KeySize 2048 -SubjectName "c=' + GetTextBoxValue('Country') + ', s=' + GetTextBoxValue('County')
	  var csrCommand=csrCommand + ', l=' + GetTextBoxValue('City') + ', o=' + GetTextBoxValue('Organisation') + ', ou=' + GetTextBoxValue('Department') + ', cn=' + CommonName + '"';
	  if (GetTextBoxValue('SubjectAltNames')!=''){var csrCommand=csrCommand + " -DomainName " + GetTextBoxValue('SubjectAltNames')}
	  var csrCommand=csrCommand + ' -PrivateKeyExportable $True'	  
	  document.getElementById('csrrequest').value=csrCommand
	}
	function GetTextBoxValue(id)
	{
	   return document.getElementById(id).value;
	}
	</script></p>
<style>
	.csrlabel {width:175px;}
	.csrinput {width:300px;}
	</style>
<p>I am always forgetting the syntax for the New-ExchangeCertificate cmdlet when I need to do a new certificate request so I decided to write a little bit of javascript to build up the command automatically. Its much easier to copy and paste it from here than work with in it the Exchange 2007 Command Shell.</p>
<p>So just fill in the fields below and the command will be built automatically in the box below. Then just copy into command shell. If required, seperate the &#8220;Subject Alternative Names&#8221; with commas.</p>
<table>
<tr>
<td>
<p class="csrlabel">Common Name:</td>
<td>
<input type="text" id="CommonName" class="csrinput" onkeyup="gencsr();"></td>
</tr>
<tr>
<td>Subject Alternative Names:</td>
<td><textarea id="SubjectAltNames" rows="3" cols="20" class="csrinput" onkeyup="gencsr();"></textarea></td>
</tr>
<tr>
<td>Organisation:</td>
<td>
<input type="text" id="Organisation" class="csrinput" onkeyup="gencsr();"></td>
</tr>
<tr>
<td>Organisational Unit:</td>
<td>
<input type="text" id="Department" class="csrinput" onkeyup="gencsr();"></td>
</tr>
<tr>
<td>Town/City:</td>
<td>
<input type="text" id="City" class="csrinput" onkeyup="gencsr();"></td>
</tr>
<tr>
<td>County/State:</td>
<td>
<input type="text" id="County" class="csrinput" onkeyup="gencsr();"></td>
</tr>
<tr>
<td>Country:</td>
<td>
<select name="Country" id="Country" class="csrinput" onchange="gencsr();">
<option value="">Country&#8230;</option>
<option value="GB">United Kingdom</option>
<option value="US">United States of America</option>
<option value="AF">Afghanistan</option>
<option value="AL">Albania</option>
<option value="DZ">Algeria</option>
<option value="AS">American Samoa</option>
<option value="AD">Andorra</option>
<option value="AG">Angola</option>
<option value="AI">Anguilla</option>
<option value="AG">Antigua &amp; Barbuda</option>
<option value="AR">Argentina</option>
<option value="AA">Armenia</option>
<option value="AW">Aruba</option>
<option value="AU">Australia</option>
<option value="AT">Austria</option>
<option value="AZ">Azerbaijan</option>
<option value="BS">Bahamas</option>
<option value="BH">Bahrain</option>
<option value="BD">Bangladesh</option>
<option value="BB">Barbados</option>
<option value="BY">Belarus</option>
<option value="BE">Belgium</option>
<option value="BZ">Belize</option>
<option value="BJ">Benin</option>
<option value="BM">Bermuda</option>
<option value="BT">Bhutan</option>
<option value="BO">Bolivia</option>
<option value="BL">Bonaire</option>
<option value="BA">Bosnia &amp; Herzegovina</option>
<option value="BW">Botswana</option>
<option value="BR">Brazil</option>
<option value="BC">British Indian Ocean Ter</option>
<option value="BN">Brunei</option>
<option value="BG">Bulgaria</option>
<option value="BF">Burkina Faso</option>
<option value="BI">Burundi</option>
<option value="KH">Cambodia</option>
<option value="CM">Cameroon</option>
<option value="CA">Canada</option>
<option value="IC">Canary Islands</option>
<option value="CV">Cape Verde</option>
<option value="KY">Cayman Islands</option>
<option value="CF">Central African Republic</option>
<option value="TD">Chad</option>
<option value="CD">Channel Islands</option>
<option value="CL">Chile</option>
<option value="CN">China</option>
<option value="CI">Christmas Island</option>
<option value="CS">Cocos Island</option>
<option value="CO">Colombia</option>
<option value="CC">Comoros</option>
<option value="CG">Congo</option>
<option value="CK">Cook Islands</option>
<option value="CR">Costa Rica</option>
<option value="CT">Cote D&#8217;Ivoire</option>
<option value="HR">Croatia</option>
<option value="CU">Cuba</option>
<option value="CB">Curacao</option>
<option value="CY">Cyprus</option>
<option value="CZ">Czech Republic</option>
<option value="DK">Denmark</option>
<option value="DJ">Djibouti</option>
<option value="DM">Dominica</option>
<option value="DO">Dominican Republic</option>
<option value="TM">East Timor</option>
<option value="EC">Ecuador</option>
<option value="EG">Egypt</option>
<option value="SV">El Salvador</option>
<option value="GQ">Equatorial Guinea</option>
<option value="ER">Eritrea</option>
<option value="EE">Estonia</option>
<option value="ET">Ethiopia</option>
<option value="FA">Falkland Islands</option>
<option value="FO">Faroe Islands</option>
<option value="FJ">Fiji</option>
<option value="FI">Finland</option>
<option value="FR">France</option>
<option value="GF">French Guiana</option>
<option value="PF">French Polynesia</option>
<option value="FS">French Southern Ter</option>
<option value="GA">Gabon</option>
<option value="GM">Gambia</option>
<option value="GE">Georgia</option>
<option value="DE">Germany</option>
<option value="GH">Ghana</option>
<option value="GI">Gibraltar</option>
<option value="GB">Great Britain</option>
<option value="GR">Greece</option>
<option value="GL">Greenland</option>
<option value="GD">Grenada</option>
<option value="GP">Guadeloupe</option>
<option value="GU">Guam</option>
<option value="GT">Guatemala</option>
<option value="GN">Guinea</option>
<option value="GY">Guyana</option>
<option value="HT">Haiti</option>
<option value="HW">Hawaii</option>
<option value="HN">Honduras</option>
<option value="HK">Hong Kong</option>
<option value="HU">Hungary</option>
<option value="IS">Iceland</option>
<option value="IN">India</option>
<option value="ID">Indonesia</option>
<option value="IA">Iran</option>
<option value="IQ">Iraq</option>
<option value="IR">Ireland</option>
<option value="IM">Isle of Man</option>
<option value="IL">Israel</option>
<option value="IT">Italy</option>
<option value="JM">Jamaica</option>
<option value="JP">Japan</option>
<option value="JO">Jordan</option>
<option value="KZ">Kazakhstan</option>
<option value="KE">Kenya</option>
<option value="KI">Kiribati</option>
<option value="NK">Korea North</option>
<option value="KS">Korea South</option>
<option value="KW">Kuwait</option>
<option value="KG">Kyrgyzstan</option>
<option value="LA">Laos</option>
<option value="LV">Latvia</option>
<option value="LB">Lebanon</option>
<option value="LS">Lesotho</option>
<option value="LR">Liberia</option>
<option value="LY">Libya</option>
<option value="LI">Liechtenstein</option>
<option value="LT">Lithuania</option>
<option value="LU">Luxembourg</option>
<option value="MO">Macau</option>
<option value="MK">Macedonia</option>
<option value="MG">Madagascar</option>
<option value="MY">Malaysia</option>
<option value="MW">Malawi</option>
<option value="MV">Maldives</option>
<option value="ML">Mali</option>
<option value="MT">Malta</option>
<option value="MH">Marshall Islands</option>
<option value="MQ">Martinique</option>
<option value="MR">Mauritania</option>
<option value="MU">Mauritius</option>
<option value="ME">Mayotte</option>
<option value="MX">Mexico</option>
<option value="MI">Midway Islands</option>
<option value="MD">Moldova</option>
<option value="MC">Monaco</option>
<option value="MN">Mongolia</option>
<option value="MS">Montserrat</option>
<option value="MA">Morocco</option>
<option value="MZ">Mozambique</option>
<option value="MM">Myanmar</option>
<option value="NA">Nambia</option>
<option value="NU">Nauru</option>
<option value="NP">Nepal</option>
<option value="AN">Netherland Antilles</option>
<option value="NL">Netherlands (Holland, Europe)</option>
<option value="NV">Nevis</option>
<option value="NC">New Caledonia</option>
<option value="NZ">New Zealand</option>
<option value="NI">Nicaragua</option>
<option value="NE">Niger</option>
<option value="NG">Nigeria</option>
<option value="NW">Niue</option>
<option value="NF">Norfolk Island</option>
<option value="NO">Norway</option>
<option value="OM">Oman</option>
<option value="PK">Pakistan</option>
<option value="PW">Palau Island</option>
<option value="PS">Palestine</option>
<option value="PA">Panama</option>
<option value="PG">Papua New Guinea</option>
<option value="PY">Paraguay</option>
<option value="PE">Peru</option>
<option value="PH">Philippines</option>
<option value="PO">Pitcairn Island</option>
<option value="PL">Poland</option>
<option value="PT">Portugal</option>
<option value="PR">Puerto Rico</option>
<option value="QA">Qatar</option>
<option value="ME">Republic of Montenegro</option>
<option value="RS">Republic of Serbia</option>
<option value="RE">Reunion</option>
<option value="RO">Romania</option>
<option value="RU">Russia</option>
<option value="RW">Rwanda</option>
<option value="NT">St Barthelemy</option>
<option value="EU">St Eustatius</option>
<option value="HE">St Helena</option>
<option value="KN">St Kitts-Nevis</option>
<option value="LC">St Lucia</option>
<option value="MB">St Maarten</option>
<option value="PM">St Pierre &amp; Miquelon</option>
<option value="VC">St Vincent &amp; Grenadines</option>
<option value="SP">Saipan</option>
<option value="SO">Samoa</option>
<option value="AS">Samoa American</option>
<option value="SM">San Marino</option>
<option value="ST">Sao Tome &amp; Principe</option>
<option value="SA">Saudi Arabia</option>
<option value="SN">Senegal</option>
<option value="SC">Seychelles</option>
<option value="SL">Sierra Leone</option>
<option value="SG">Singapore</option>
<option value="SK">Slovakia</option>
<option value="SI">Slovenia</option>
<option value="SB">Solomon Islands</option>
<option value="OI">Somalia</option>
<option value="ZA">South Africa</option>
<option value="ES">Spain</option>
<option value="LK">Sri Lanka</option>
<option value="SD">Sudan</option>
<option value="SR">Suriname</option>
<option value="SZ">Swaziland</option>
<option value="SE">Sweden</option>
<option value="CH">Switzerland</option>
<option value="SY">Syria</option>
<option value="TA">Tahiti</option>
<option value="TW">Taiwan</option>
<option value="TJ">Tajikistan</option>
<option value="TZ">Tanzania</option>
<option value="TH">Thailand</option>
<option value="TG">Togo</option>
<option value="TK">Tokelau</option>
<option value="TO">Tonga</option>
<option value="TT">Trinidad &amp; Tobago</option>
<option value="TN">Tunisia</option>
<option value="TR">Turkey</option>
<option value="TU">Turkmenistan</option>
<option value="TC">Turks &amp; Caicos Is</option>
<option value="TV">Tuvalu</option>
<option value="UG">Uganda</option>
<option value="UA">Ukraine</option>
<option value="AE">United Arab Emirates</option>
<option value="UY">Uruguay</option>
<option value="UZ">Uzbekistan</option>
<option value="VU">Vanuatu</option>
<option value="VS">Vatican City State</option>
<option value="VE">Venezuela</option>
<option value="VN">Vietnam</option>
<option value="VB">Virgin Islands (Brit)</option>
<option value="VA">Virgin Islands (USA)</option>
<option value="WK">Wake Island</option>
<option value="WF">Wallis &amp; Futana Is</option>
<option value="YE">Yemen</option>
<option value="ZR">Zaire</option>
<option value="ZM">Zambia</option>
<option value="ZW">Zimbabwe</option>
</select>
</td>
</tr>
</table>
<p>	CSR Command:<br />
	<textarea id="csrrequest" rows="10" style="width:475px"></textarea></p>
<p> I am thinking of duplicating this code and writing another post which will generate the commands for the import of the newly generated certificate.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tachytelic.net/2010/03/new-exchangecertificate-cmdlet-syntax-generator/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

