<?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>Mat's Techblog</title>
	<atom:link href="http://techblog.mirabito.net.au/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://techblog.mirabito.net.au</link>
	<description></description>
	<lastBuildDate>Wed, 07 Jul 2010 04:13:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Generating and working with code signing certificates</title>
		<link>http://techblog.mirabito.net.au/?p=297</link>
		<comments>http://techblog.mirabito.net.au/?p=297#comments</comments>
		<pubDate>Fri, 11 Jun 2010 06:01:12 +0000</pubDate>
		<dc:creator>Mat Mirabito</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://techblog.mirabito.net.au/?p=297</guid>
		<description><![CDATA[A code signing certificate is a security measure designed to assist in the prevention of malicious code execution. The intention is that code must be &#8220;signed&#8221; with a certificate that is trusted by the machine on which the code is executed. The trust is verified by contacting the certification authority for the certificate, which could [...]]]></description>
			<content:encoded><![CDATA[<p>A code signing certificate is a security measure designed to assist in the prevention of malicious code execution. The intention is that code must be &#8220;signed&#8221; with a certificate that is trusted by the machine on which the code is executed. The trust is verified by contacting the certification authority for the certificate, which could be either a local (on the machine itself, such as a self-signed certificate), internal (on the domain, such as an enterprise certification authority) or external certification authority (third party, such as Verisign or Thawte).</p>
<p>For an Active Directory domain with an enterprise root certification authority, the enterprise root certification authority infrastructure is trusted by all machines that are a member of the Active Directory domain, and therefore any certificates issued by this certification authority are automatically trusted.</p>
<p>In the case of code signing, it may be necessary also for the issued certificate to be in the &#8220;Trusted Publishers&#8221; store of the local machine in order to avoid any prompts upon executing code, even if the certificate was issued by a trusted certification authority. Therefore, it is required to ensure that certificates are added to this store where user interaction is unavailable, such as running automated processes that call signed code.</p>
<p>A certificate can be assigned to a user or a computer, which will then be the &#8220;publisher&#8221; of the code in question. Generally, this should be the user, and the user will then become the trusted publisher. As an example, members of the development team in your organisation will probably each have their own code signing certificate, which would all be added to the &#8220;Trusted Publishers&#8221; store on the domain machines. Alternatively, a special domain account might exist specifically for signing code, although one of the advantages of code signing is to be able to determine the person who signed it.</p>
<p>The processes below details the steps required to generate a code signing certificate, export the certificate and private key, and import the certificate to a local machine or to a group of machines through the use of group policy.</p>
<h2>Creating the Code Signing Certificate Template</h2>
<ol>
<li>Open the &#8220;Certification Authority&#8221; console on the enterprise root certification authority</li>
<li>Click on &#8220;Certificate Templates&#8221; and check if a template called &#8220;Code Signing&#8221; exists (if it already exists, there are no further steps required for this section)</li>
<li>If the &#8220;Code Signing&#8221; template does not exist, right click on the &#8220;Certificate Templates&#8221; node and select &#8220;New&#8221; -&gt; &#8220;Certificate Template to Issue&#8221;</li>
<li>Select &#8220;Code Signing&#8221; and click OK</li>
</ol>
<h2>Generating the Code Signing Certificate</h2>
<ol>
<li>Open MMC under administrative context</li>
<li>Add the &#8220;Certificates&#8221; snap-in to the MMC console (select &#8220;My user account&#8221; when prompted)</li>
<li>Expand &#8220;Personal&#8221;, right click on &#8220;Certificates&#8221; and select &#8220;All Tasks&#8221; -&gt; &#8220;Request New Certificate&#8221;</li>
<li>Select &#8220;Active Directory Enrollment Policy&#8221;</li>
<li>Tick &#8220;Code Signing&#8221; and then click on the &#8220;Details&#8221; button to the right hand side of the &#8220;Code Signing&#8221; option</li>
<li>Click on &#8220;Properties&#8221;</li>
<li>Click on the &#8220;Private Key&#8221; tab, and then expand the &#8220;Key Options&#8221; section</li>
<li>Tick &#8220;Make private key exportable&#8221; and &#8220;Strong private key protection&#8221;</li>
<li>Click OK and then click the &#8220;Enroll&#8221; button (a message may appear stating that an application is creating a protected item &#8211; click OK to acknowledge this message)</li>
</ol>
<h2>Exporting the Certificate for Publishing</h2>
<ol>
<li>Open MMC under administrative context</li>
<li>Add the &#8220;Certificates&#8221; snap-in to the MMC console (select &#8220;My user account&#8221; when prompted)</li>
<li>Expand &#8220;Personal&#8221;, right click on the appropriate code signing certificate and select &#8220;All Tasks&#8221; -&gt; &#8220;Export&#8230;&#8221;</li>
<li>Choose the option &#8220;Yes, export the private key&#8221; when prompted</li>
<li>Accept the default options on the &#8220;Export File Format&#8221; screen</li>
<li>Enter a password for the private key, which will need to be entered when importing the certificate</li>
<li>Save the certificate to an appropriate location</li>
</ol>
<h2>Importing the Certificate for Trusting</h2>
<h3>Local Machines</h3>
<ol>
<li>Open MMC under administrative context</li>
<li>Add the &#8220;Certificates&#8221; snap-in to the MMC console (select &#8220;Computer account&#8221; and select the local machine when prompted)</li>
<li>Right click &#8220;Trusted Publishers&#8221; and select &#8220;All Tasks&#8221; -&gt; &#8220;Import&#8230;&#8221;</li>
<li>Follow the wizard to import the exported certificate, and enter in the accompanying password that was used when the certificate was exported</li>
<li>If the certificate is no longer required to be imported by other machines, it is highly recommended that the exported file is deleted  </li>
</ol>
<h3>Group Policy</h3>
<ol>
<li>Open the appropriate group policy for editing</li>
<li>Expand &#8220;Computer Management&#8221; -&gt; &#8220;Policies&#8221; -&gt; &#8220;Windows Settings&#8221; -&gt; &#8220;Security Settings&#8221; -&gt; &#8220;Public Key Policies&#8221;</li>
<li>Right click on &#8220;Trusted Publishers&#8221; and select &#8220;Import&#8230;&#8221;</li>
<li>Follow the wizard to import the exported certificate, and enter in the accompanying password that was used when the certificate was exported</li>
<li>If the certificate is no longer required to be imported by other machines, it is highly recommended that the exported file is deleted</li>
</ol>
<p><!-- end content --></p>
]]></content:encoded>
			<wfw:commentRss>http://techblog.mirabito.net.au/?feed=rss2&amp;p=297</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Windows Internal Database no longer works correctly after a domain controller promotion or demotion operation</title>
		<link>http://techblog.mirabito.net.au/?p=292</link>
		<comments>http://techblog.mirabito.net.au/?p=292#comments</comments>
		<pubDate>Fri, 28 May 2010 06:59:54 +0000</pubDate>
		<dc:creator>Mat Mirabito</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://techblog.mirabito.net.au/?p=292</guid>
		<description><![CDATA[After promoting or demoting a domain controller, you might have difficulties with WSUS, namely the Windows Internal Database. This occurs because the Windows Internal Database (essentially based on the SQL 2005 database engine) has recorded the SID (security identifier) for the SQL groups it creates when the database was installed, and the domain controller operation [...]]]></description>
			<content:encoded><![CDATA[<p>After promoting or demoting a domain controller, you might have difficulties with WSUS, namely the Windows Internal Database. This occurs because the Windows Internal Database (essentially based on the SQL 2005 database engine) has recorded the SID (security identifier) for the SQL groups it creates when the database was installed, and the domain controller operation has now rendered them invalid.</p>
<p>When you try re-installing WSUS, you get this error: -</p>
<blockquote>
<pre>"Failed to connect to SQL server

SERVER\MICROSOFT##SSEE

[DBNETLIB]ConnectionOpen (Connect()).]SQL Server does not exist or access

denied."</pre>
</blockquote>
<p>Additionally, Application event ID&#8217;s 17204 &amp; 17207 and System event ID 7024 may also be logged.</p>
<p>Attempts to start the &#8220;Windows Internal Database (MICROSOFT##SSEE)&#8221; service also fail, as well as attempting to uninstall the Windows Internal Database from Add/Remove Programs.</p>
<p>In order to resolve this issue, you&#8217;ll need to follow these instructions: -</p>
<ol>
<li>Open the Registry Editor</li>
<li>Expand HKLM\SOFTARE\Microsoft\Microsoft SQL Server\MSSQL.2005\Setup</li>
<li>Export all configuration of this key in case a restore is required</li>
<li>Remove the &#8220;SQLGroup&#8221; and &#8220;FTSGroup&#8221; values</li>
<li>Uninstall the Windows Internal Database from Add/Remove Programs</li>
<li>Restart the WSUS 3.0 installation</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://techblog.mirabito.net.au/?feed=rss2&amp;p=292</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FIX &#8211; Repairing a machine after McAfee incorrectly identifies svchost.exe as W32/Wecorl.a</title>
		<link>http://techblog.mirabito.net.au/?p=287</link>
		<comments>http://techblog.mirabito.net.au/?p=287#comments</comments>
		<pubDate>Thu, 22 Apr 2010 01:05:40 +0000</pubDate>
		<dc:creator>Mat Mirabito</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://techblog.mirabito.net.au/?p=287</guid>
		<description><![CDATA[Seems that everyone is talking about McAfee today, after their software inadvertently identifies svchost.exe on Windows XP SP3 machines (only) as W32/Wecorl.a (McAfee knowledge base article KB68780 regarding the 5958 DAT update on April 21, 2010). Workarounds have been posted both by McAfee and by the information technology community, however the following might help speed [...]]]></description>
			<content:encoded><![CDATA[<p>Seems that everyone is talking about McAfee today, after their software inadvertently identifies svchost.exe on Windows XP SP3 machines (only) as W32/Wecorl.a (McAfee knowledge base article KB68780 regarding the 5958 DAT update on April 21, 2010).</p>
<p>Workarounds have been posted both by <a href="https://kc.mcafee.com/corporate/index?page=content&amp;id=KB68780&amp;pmv=print" target="_blank">McAfee</a> and by the information technology community, however the following might help speed things up if you have a large line of machines to fix by hand: -</p>
<ol>
<li>Download the EXTRA.DAT file from Mcafee here &#8211; <a href="https://kc.mcafee.com/resources/sites/MCAFEE/content/live/CORP_KNOWLEDGEBASE/68000/KB68780/en_US/EXTRA.zip">https://kc.mcafee.com/resources/sites/MCAFEE/content/live/CORP_KNOWLEDGEBASE/68000/KB68780/en_US/EXTRA.zip</a></li>
<li>Copy the EXTRA.DAT file to a USB key</li>
<li>Create a batch file with the following content, and save it to the USB key: -</li>
</ol>
<blockquote><p>echo off<br />
echo Copying extra.dat&#8230;<br />
copy extra.dat &#8220;%programfiles%\Common Files\McAfee\Engine&#8221;<br />
echo Copying svchost.exe&#8230;<br />
copy &#8220;%systemroot%\System32\dllcache\svchost.exe&#8221; &#8220;%systemroot%\System32&#8243;<br />
pause<br />
echo Restarting machine&#8230;<br />
shutdown -r -t 0</p></blockquote>
<p>Running this batch file will copy the EXTRA.DAT file in to place, and restore the svchost.exe from the dllcache directory (if it was quarantined) and then automatically restart.</p>
<p>This may not work in all cases, but I have seen a fairly high success rate with machines that I have done this on.</p>
<blockquote><p> </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://techblog.mirabito.net.au/?feed=rss2&amp;p=287</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hyper-V guest only gives the &#8220;Backup Using Saved State&#8221; option in DPM</title>
		<link>http://techblog.mirabito.net.au/?p=285</link>
		<comments>http://techblog.mirabito.net.au/?p=285#comments</comments>
		<pubDate>Tue, 13 Apr 2010 11:43:52 +0000</pubDate>
		<dc:creator>Mat Mirabito</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://techblog.mirabito.net.au/?p=285</guid>
		<description><![CDATA[Microsoft Data Protection Manager (DPM) 2007 and 2010 allow online backups of Hyper-V guests, providing the guests and the Hyper-V server meet the necessary requirements as follows: - http://technet.microsoft.com/en-us/library/dd347840.aspx http://technet.microsoft.com/en-us/library/dd637102.aspx There is another condition that I&#8217;ve encountered that causes a Hyper-V guest to report as &#8220;Backup Using Saved State&#8221; rather than &#8220;Backup Using Child Partition Snapshot&#8221;, [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft Data Protection Manager (DPM) 2007 and 2010 allow online backups of Hyper-V guests, providing the guests and the Hyper-V server meet the necessary requirements as follows: -</p>
<p><a href="http://technet.microsoft.com/en-us/library/dd347840.aspx">http://technet.microsoft.com/en-us/library/dd347840.aspx</a></p>
<p><a href="http://technet.microsoft.com/en-us/library/dd637102.aspx">http://technet.microsoft.com/en-us/library/dd637102.aspx</a></p>
<p>There is another condition that I&#8217;ve encountered that causes a Hyper-V guest to report as &#8220;Backup Using Saved State&#8221; rather than &#8220;Backup Using Child Partition Snapshot&#8221;, where disks are marked as read-only.</p>
<p>In order to correct this, use diskpart to select the applicable disk and run &#8220;attrib disk clear readonly&#8221;, and then check that the Hyper-V guest reports as &#8220;Backup Using Child Partition Snapshot&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://techblog.mirabito.net.au/?feed=rss2&amp;p=285</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hyper-V virtual machine fails to start after moving the VHD files</title>
		<link>http://techblog.mirabito.net.au/?p=275</link>
		<comments>http://techblog.mirabito.net.au/?p=275#comments</comments>
		<pubDate>Thu, 19 Nov 2009 09:35:52 +0000</pubDate>
		<dc:creator>Mat Mirabito</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://techblog.mirabito.net.au/?p=275</guid>
		<description><![CDATA[Recently I had to replace a hard drive in one of my servers running Microsoft Hyper-V 2008 R2 which contained the virtual machine configuration and VHD files. I used robocopy to copy the data from the server drive, to a temporary drive, then replaced the drive before copying the data on to it. Unfortunately, I [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I had to replace a hard drive in one of my servers running Microsoft Hyper-V 2008 R2 which contained the virtual machine configuration and VHD files. I used robocopy to copy the data from the server drive, to a temporary drive, then replaced the drive before copying the data on to it.</p>
<p>Unfortunately, I forgot to copy the ACL&#8217;s as well, which caused issues when trying to start the virtual machines again. I use System Center Virtual Machine Manager, so when I tried to start my virtual machines again, I got the following error logged in the Jobs log: -</p>
<blockquote><p>Error (12700)<br />
VMM cannot complete the Hyper-V operation on the server.domain server because of the error: &#8216;Unnamed VM&#8217; could not initialize. (Virtual machine ID 598AFA1B-1726-44B7-8435-E00B2ACAF2B5)</p>
<p>&#8216;Unnamed VM&#8217; could not read or update the virtual machine configuration because access was denied: General access denied error (0&#215;80070005). Check the security settings on the folder in which the virtual machine is stored. (Virtual machine ID 598AFA1B-1726-44B7-8435-E00B2ACAF2B5)<br />
 (Unknown error (0&#215;8001))</p>
<p>Recommended Action<br />
Resolve the issue in Hyper-V and then try the operation again.</p></blockquote>
<p>In Hyper-V Manager, the following error is displayed when trying to start the same machine: -</p>
<blockquote><p>&#8216;SERVER&#8217; failed to start.</p>
<p>Microsoft Emulated IDE Controller (Instance ID {598AFA1B-1726-44B7-8435-E00B2ACAF2B5}): Failed to Power on with Error &#8216;General access denied error&#8217;</p>
<p>IDE/ATAPI Account does not have sufficient privilege to open attachment &#8216;D:\Virtual Server\Virtual Machines\server\system.vhd&#8217;. Error: &#8216;General access denied error&#8217;</p>
<p> Account does not have sufficient privilege to open attachment &#8216;D:\Virtual Server\Virtual Machines\server\system.vhd&#8217;. Error: &#8216;General access denied error&#8217;</p>
<p>[Expanded Information]<br />
&#8216;SERVER&#8217; failed to start. (Virtual machine ID 598AFA1B-1726-44B7-8435-E00B2ACAF2B5)</p>
<p>&#8216;SERVER&#8217; Microsoft Emulated IDE Controller (Instance ID {598AFA1B-1726-44B7-8435-E00B2ACAF2B5}): Failed to Power on with Error &#8216;General access denied error&#8217; (0&#215;80070005). (Virtual machine ID 598AFA1B-1726-44B7-8435-E00B2ACAF2B5)</p>
<p>&#8216;SERVER&#8217;: IDE/ATAPI Account does not have sufficient privilege to open attachment &#8216;D:\Virtual Server\Virtual Machines\server\system.vhd&#8217;. Error: &#8216;General access denied error&#8217; (0&#215;80070005). (Virtual machine ID 598AFA1B-1726-44B7-8435-E00B2ACAF2B5)</p>
<p>&#8216;SERVER&#8217;:  Account does not have sufficient privilege to open attachment &#8216;D:\Virtual Server\Virtual Machines\server\system.vhd&#8217;. Error: &#8216;General access denied error&#8217; (0&#215;80070005). (Virtual machine ID 598AFA1B-1726-44B7-8435-E00B2ACAF2B5)</p></blockquote>
<p>The issue is of course, that because the ACL&#8217;s weren&#8217;t preserved, Hyper-V can&#8217;t read the virtual machine files. Unfortunately, it&#8217;s not as simple as just adding the SYSTEM account to the root and applying permissions down, as Hyper-V R2 has it&#8217;s own security &#8220;namespace&#8221; (referred to in Microsoft documentation as the Service SID) called &#8220;NT VIRTUAL MACHINE&#8221; which contains the GUID&#8217;s for all registered virtual machines.</p>
<p>The easiest way to add permissions back to your virtual machines, in order to have them accessible via Hyper-V, is to use the following process on each machine (this is assuming you&#8217;re using System Center Virtual Machine Manager): -</p>
<ul>
<li>Open the directory that stores your virtual machine</li>
<li>Open the &#8220;Virtual Machines&#8221; subdirectory under your virtual machine directory</li>
<li>Record the GUID as per the file name of the .xml file in this directory</li>
<li>Run <em>icacls &#8220;&lt;virtualmachinefolder&gt;&#8221; /grant &#8220;NT VIRTUAL MACHINE\&lt;virtualmachineguid&gt;&#8221;:F /T</em> (for example <em>icacls &#8220;D:\Virtual Server\Virtual Machines\Server&#8221; /grant &#8220;NT VIRTUAL MACHINE\598AFA1B-1726-44B7-8435-E00B2ACAF2B5&#8243;:F /T</em></li>
</ul>
<p>Now you should be able to start your virtual machine.</p>
]]></content:encoded>
			<wfw:commentRss>http://techblog.mirabito.net.au/?feed=rss2&amp;p=275</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Error &#8220;The WebDAV server extension is either not installed or not configured properly&#8221; in SCCM 2007 on Windows Server 2008 R2</title>
		<link>http://techblog.mirabito.net.au/?p=269</link>
		<comments>http://techblog.mirabito.net.au/?p=269#comments</comments>
		<pubDate>Fri, 16 Oct 2009 06:05:35 +0000</pubDate>
		<dc:creator>Mat Mirabito</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://techblog.mirabito.net.au/?p=269</guid>
		<description><![CDATA[I came across a problem when I was installing SCCM 2007 on my Windows 2008 R2 server, where my Management Point was reporting this critical error: - SMS Site Component Manager faild to install component SMS_MP_CONTROL_MANAGER on server myserver. The WebDAV server extension is either not installed or not configured properly. Solution: Make sure WebDAV [...]]]></description>
			<content:encoded><![CDATA[<p>I came across a problem when I was installing SCCM 2007 on my Windows 2008 R2 server, where my Management Point was reporting this critical error: -</p>
<blockquote><p>SMS Site Component Manager faild to install component SMS_MP_CONTROL_MANAGER on server myserver.</p>
<p>The WebDAV server extension is either not installed or not configured properly.<br />
Solution: Make sure WebDAV is installed and enabled. Make sure there is an authoring rule that allow &#8220;All users&#8221; read access to &#8220;All content&#8221;. Make sure the WebDAV settings &#8220;Allow anonymous property queries&#8221; and &#8220;Allow property queries with infinite depth&#8221; are set to &#8220;true&#8221; and &#8220;Allow Custom Properties&#8221; is set to false.</p></blockquote>
<p>Fair enough. I loaded the IIS management console, connected to the local server and opened the &#8220;WebDAV Authoring Rules&#8221; option. Here, I added a new authoring rule as the error message suggested, and altered the WebDAV settings to specify the advanced properties.</p>
<p>I had made another change that required a restart, so I restarted my server at this stage intending to re-test the management point when it restarted, however the error persisted. I re-checked the authoring rules and properties, and confirmed that they were correct, yet SCCM was still reporting this critical error.</p>
<p>I tracked down the configuration file for WebDAV under &#8220;C:\Windows\System32\inetsrv\config\schema\WebDAV_schema.xml&#8221; and compared this to the properties I had set via the IIS management console &#8211; They didn&#8217;t match!</p>
<p>The following section doesn&#8217;t line up with what I specified via the IIS management console: -</p>
<blockquote><p>&lt;attribute name=&#8221;allowAnonymousPropfind&#8221; type=&#8221;bool&#8221; defaultValue=&#8221;false&#8221; /&gt;<br />
&lt;attribute name=&#8221;allowInfinitePropfindDepth&#8221; type=&#8221;bool&#8221; defaultValue=&#8221;false&#8221; /&gt;<br />
&lt;attribute name=&#8221;allowCustomProperties&#8221; type=&#8221;bool&#8221; defaultValue=&#8221;true&#8221; /&gt;</p></blockquote>
<p>These values should be &#8220;true&#8221;, &#8220;true&#8221;, &#8220;false&#8221;.</p>
<p>I wasn&#8217;t able to make any changes to this file without first taking ownership, due to the default ACL&#8217;s, but after I did that, I modified the values and re-saved the file (and also reverted the permissions back to the default).</p>
<p>After a restart of the &#8220;World Wide Web Publishing Service&#8221; and the &#8220;SMS_SITE_COMPONENT_MANAGER&#8221; service, everything started working correctly.</p>
]]></content:encoded>
			<wfw:commentRss>http://techblog.mirabito.net.au/?feed=rss2&amp;p=269</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Running trixbox on Hyper-V 2008 R2</title>
		<link>http://techblog.mirabito.net.au/?p=248</link>
		<comments>http://techblog.mirabito.net.au/?p=248#comments</comments>
		<pubDate>Wed, 30 Sep 2009 03:00:16 +0000</pubDate>
		<dc:creator>Mat Mirabito</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://techblog.mirabito.net.au/?p=248</guid>
		<description><![CDATA[Previously, I&#8217;ve never had much success running trixbox within a virtual environment, but I decided to revisit the possibility with the recent release of Windows Server 2008 R2 and the latest version of trixbox (currently 2.8) and this time had much greater success. The only thing I had to do was install the Microsoft Hyper-V [...]]]></description>
			<content:encoded><![CDATA[<p>Previously, I&#8217;ve never had much success running trixbox within a virtual environment, but I decided to revisit the possibility with the recent release of Windows Server 2008 R2 and the latest version of trixbox (currently 2.8) and this time had much greater success.</p>
<p>The only thing I had to do was install the Microsoft Hyper-V Integration Components for Linux on the machine and set the kernel parameters appropriately (as described below).</p>
<p>You can download the .iso from Microsoft at <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=ab7f4983-93c5-4a70-8c79-0642f0d59ec2">http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=ab7f4983-93c5-4a70-8c79-0642f0d59ec2</a>.</p>
<p>Currently, CentOS/RedHat doesn&#8217;t appear to be supported by Microsoft, but following the steps below will allow you to install the appropriate drivers (and confirm a successful intallation): -</p>
<ul>
<li>Mount the downloaded .iso on your trixbox machine</li>
<li>Install the kernel-devel and gcc (GNU Compiler Collection) packages by running the commands below</li>
</ul>
<blockquote><p>yum install kernel-devel</p>
<p>yum install gcc</p></blockquote>
<ul>
<li> Now you&#8217;ll need to mount the CD ROM using these commands</li>
</ul>
<blockquote><p>mkdir -p /mnt/cdrom</p>
<p>mount /dev/cdrom /mnt/cdrom</p></blockquote>
<ul>
<li>Copy the contents of the CD to the local machine</li>
</ul>
<blockquote><p>cp -rp /mnt/cdrom /opt/linux_ic</p></blockquote>
<ul>
<li>Unmount the CD ROM</li>
</ul>
<blockquote><p>umount /mnt/cdrom</p></blockquote>
<ul>
<li>Run the driver setup</li>
</ul>
<blockquote><p>cd /opt/linux_ic</p>
<p>./setup.pl drivers</p></blockquote>
<ul>
<li>Set the kernel boot parameters as per <a href="http://techblog.mirabito.net.au/?p=238" target="_self">this article</a></li>
<li>You&#8217;ll need to restart to initialise the drivers</li>
</ul>
<blockquote><p>shutdown -r now</p></blockquote>
<ul>
<li>When the machine is back up and running, make sure the drivers are loaded by running the command below</li>
</ul>
<blockquote><p>lsmod | grep vsc</p></blockquote>
<ul>
<li>This should give you a result similar to the following</li>
</ul>
<blockquote><p>netvsc</p>
<p>storvsc</p>
<p>blkvsc</p>
<p>vmbus</p>
<p>scsi_mod</p></blockquote>
<p>Now you have the integration components installed, configure the rest of the options on your trixbox and test it out. I allocated mine 512MB RAM, and it doesn&#8217;t skip a beat while I performed audio streaming tests.</p>
]]></content:encoded>
			<wfw:commentRss>http://techblog.mirabito.net.au/?feed=rss2&amp;p=248</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Getting &#8220;The version does not match a supported version&#8221; when trying to configure SQL 2005 Reporting Services</title>
		<link>http://techblog.mirabito.net.au/?p=242</link>
		<comments>http://techblog.mirabito.net.au/?p=242#comments</comments>
		<pubDate>Mon, 28 Sep 2009 04:42:14 +0000</pubDate>
		<dc:creator>Mat Mirabito</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://techblog.mirabito.net.au/?p=242</guid>
		<description><![CDATA[Recently I had to uninstall and re-install SQL 2005 Reporting Services for SCOM 2007 R2. While configuring it using the Reporting Services Configuration Manager, under the Database Setup tab I was prompted to upgrade the database version. When I clicked OK, I got the following messages: - The database version (C.0.8.40) does not match your [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I had to uninstall and re-install SQL 2005 Reporting Services for SCOM 2007 R2.</p>
<p>While configuring it using the Reporting Services Configuration Manager, under the Database Setup tab I was prompted to upgrade the database version. When I clicked OK, I got the following messages: -</p>
<blockquote><p>The database version (C.0.8.40) does not match your Reporting Services installation. You must upgrade your Reporting Services database.</p></blockquote>
<p>And then: -</p>
<blockquote><p>Couldn&#8217;t generate the upgrade script. There is no upgrade script available for this database version.</p></blockquote>
<p>Which had further details: -</p>
<blockquote><p>ReportServicesConfigUI.WMIProvider.WMIProviderException: The version does not match a supported version.</p></blockquote>
<p>Additionally, trying to access the reporting page via my browser gave me this error: -</p>
<blockquote><p>The version of the report server database is either in a format that is not valid, or it cannot be read. The found version is &#8216;Unknown&#8217;. The expected version is &#8216;C.0.8.40&#8242;. To continue, update the version of the report server database and verify access rights. (rsInvalidReportServerDatabase)</p></blockquote>
<p>The upgrade was failing because of a version mismatch, and this was caused by the Reporting Services component being installed individually from the SQL core services. The solution was to apply the latest service pack (SP3) to the SQL installation, which re-aligned the versions and allowed the ReportServer database to be upgraded via the Reporting Services Configuration Manager.</p>
]]></content:encoded>
			<wfw:commentRss>http://techblog.mirabito.net.au/?feed=rss2&amp;p=242</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux (specifically CentOS running trixbox) gains excessive time on system clock</title>
		<link>http://techblog.mirabito.net.au/?p=238</link>
		<comments>http://techblog.mirabito.net.au/?p=238#comments</comments>
		<pubDate>Sun, 27 Sep 2009 03:59:21 +0000</pubDate>
		<dc:creator>Mat Mirabito</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://techblog.mirabito.net.au/?p=238</guid>
		<description><![CDATA[I found this issue specifically on CentOS running the trixbox telephony software, where over a 12 hour period my system clock had gained over 3 hours of extra time. This is not a good thing for VoIP, as it relies heavily on time for RTP packet switching. I also had a compounding issue of my [...]]]></description>
			<content:encoded><![CDATA[<p>I found this issue specifically on CentOS running the trixbox telephony software, where over a 12 hour period my system clock had gained over 3 hours of extra time.</p>
<p>This is not a good thing for VoIP, as it relies heavily on time for RTP packet switching.</p>
<p>I also had a compounding issue of my system locking up whenever I tried to perform an NTP update from one of my domain controllers, with an error similar to the following: -</p>
<blockquote><p>BUG: soft lockup &#8211; CPU#0 stuck for 10s! [bash:2513]<br />
EIP: 0060:[&lt;c06100b8&gt;]</p>
<p>dahdi_dummy_timer</p></blockquote>
<p>It turns out that this service is particularly time sensitive, and the very large time step incurred by an NTP update causes it to lock up until the time is back in phase, but in my case that will never happen because of the rate that the system is gaining time.</p>
<p>My solution was to disable ACPI and APIC at boot time, prevent the dahdi service from starting at runtime and then perform an NTP update and update the hardware clock with the system time by performing the following steps: -</p>
<ol>
<li>Modified the kernel boot options by modifying the boot loader config file (trixbox uses grub, so I had to edit &#8220;/boot/grub/grub.conf&#8221; to add &#8220;divider=10 clocksource=acpi_pm&#8221; after the appropriate kernel line</li>
<li>Ran &#8220;chkconfig dahdi off&#8221; to prevent the dahdi service from automatically starting</li>
<li>Restart</li>
<li>Ran &#8220;ntpdate -u &lt;NTP server IP&gt;&#8221; to update the time</li>
<li>Ran &#8220;hwclock &#8211;systohc&#8221; to update the hardware clock from the system clock</li>
<li>Ran &#8220;chkconfig dahdi on&#8221; to allow the dahdi service to start automatically again</li>
</ol>
<p>Now the time is accurate and my VoIP calls are working properly.</p>
]]></content:encoded>
			<wfw:commentRss>http://techblog.mirabito.net.au/?feed=rss2&amp;p=238</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>&#8220;Failed to register service principal name&#8221; on Hyper-V host</title>
		<link>http://techblog.mirabito.net.au/?p=230</link>
		<comments>http://techblog.mirabito.net.au/?p=230#comments</comments>
		<pubDate>Sun, 20 Sep 2009 08:21:32 +0000</pubDate>
		<dc:creator>Mat Mirabito</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://techblog.mirabito.net.au/?p=230</guid>
		<description><![CDATA[I recently replaced one of my Hyper-V hosts with Windows Server 2008 R2, and noticed that I was getting the following event logged every two minutes: - Log Name:      Microsoft-Windows-Hyper-V-VMMS-Admin Source:        Microsoft-Windows-Hyper-V-VMMS Date:          20/09/2009 5:52:42 PM Event ID:      14050 Task Category: None Level:         Error Keywords:    � User:          SYSTEM Computer:      HyperV01.mydomain.internal Description: Failed to register service principal [...]]]></description>
			<content:encoded><![CDATA[<p>I recently replaced one of my Hyper-V hosts with Windows Server 2008 R2, and noticed that I was getting the following event logged every two minutes: -</p>
<blockquote><p>Log Name:      Microsoft-Windows-Hyper-V-VMMS-Admin<br />
Source:        Microsoft-Windows-Hyper-V-VMMS<br />
Date:          20/09/2009 5:52:42 PM<br />
Event ID:      14050<br />
Task Category: None<br />
Level:         Error<br />
Keywords:    �<br />
User:          SYSTEM<br />
Computer:      HyperV01.mydomain.internal<br />
Description:<br />
Failed to register service principal name.</p></blockquote>
<p> I was nearly certain that this was due to the fact that I hadn&#8217;t removed the computer from the domain before rebuilding it, and therefore it had acquired the old computer account when it was re-joined. This error indicates that there was an error updating the &#8220;servicePrincipalName&#8221; attribute of the computer account for my Hyper-V server.</p>
<p>I jumped in to my Active Directory to check out the permissions of the computer account first, and the first thing I noticed was that there was an unresolvable SID in my ACL. This wasn&#8217;t causing the issue, but it was a good indication that the permissions were probably in need of attention.</p>
<p>To understand how to resolve this issue, it&#8217;s important to understand what&#8217;s failing. In this case, we can see from the event 14050, that the SYSTEM account on my Hyper-V host tried to update the servicePrincipalAttribute of it&#8217;s own computer account within Active Directory, but failed. We believe it&#8217;s a permissions issue, so we should check the &#8220;SELF&#8221; entry in the ACL to see if it has the correct permissions: -</p>
<p> <img class="alignnone" src="http://img36.imageshack.us/img36/9822/spninvalid.gif" alt="" width="460" height="522" /></p>
<p>&#8230;And bingo! The &#8220;SELF&#8221; entry is missing the &#8220;Validated write to service principal name&#8221; permissions, so therefore it can&#8217;t write the attribute. &#8220;SELF&#8221; in this case, corresponds to the SYSTEM account of the host that owns the computer account.</p>
<p>So I went ahead and granted this permission to the computer account, and confirmed that the servicePrincipalName attribute updated on next attempt and that the events were no longer being logged.</p>
]]></content:encoded>
			<wfw:commentRss>http://techblog.mirabito.net.au/?feed=rss2&amp;p=230</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
