<?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>Michael Phillips Blog &#187; registry</title>
	<atom:link href="http://nukeitmike.com/blog/tag/registry/feed" rel="self" type="application/rss+xml" />
	<link>http://nukeitmike.com/blog</link>
	<description>My place to speak about things</description>
	<lastBuildDate>Fri, 03 Feb 2012 22:55:29 +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>SCVMM and P2V Adventures</title>
		<link>http://nukeitmike.com/blog/2010/06/17/scvmm-and-p2v-adventures/</link>
		<comments>http://nukeitmike.com/blog/2010/06/17/scvmm-and-p2v-adventures/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 19:11:08 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SCVMM]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[Virtual Server]]></category>
		<category><![CDATA[Windows Server 2003]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[registry]]></category>

		<guid isPermaLink="false">http://nukeitmike.com/blog/2010/06/17/scvmm-and-p2v-adventures/</guid>
		<description><![CDATA[Where I work, we have been using Microsoft Virtualization since Virtual Server was in Beta.&#160; Of course, we don’t necessarily use all of the functions and features of all the software we have, but one feature that I have used a good bit is the “Convert physical server” action in System Center Virtual Machine Manager.&#160; [...]]]></description>
			<content:encoded><![CDATA[<p> Where I work, we have been using Microsoft Virtualization since Virtual Server was in Beta.&#160; Of course, we don’t necessarily use all of the functions and features of all the software we have, but one feature that I have used a good bit is the “Convert physical server” action in System Center Virtual Machine Manager.&#160; Until recently, I have used this with great success.&#160; We run IBM xSeries servers and I have converted something like 50 of them to virtual machines running on Hyper-V over the past several years.&#160; </p>
<p>In late 2007, we bought our first IBM Blade Center (which I am very happy with) and with that move we also decided to do “boot from SAN” for all of our blades.&#160; Just seemed to make sense that we wouldn’t put moving parts in a device that was designed to run so well without moving parts.&#160; </p>
<p>At the time, we were implementing a new ERP system and several “hanger on” type applications, and Hyper-V (virtualization in general) wasn’t something that was supported by a lot of the software we were deploying.&#160; So we have a lot of powerful blade servers, running a lot of low use applications.&#160; I have managed to eradicate several of those wasteful installations, but there are a set that I am only now getting buy-in to virtualize.&#160; </p>
<p>And today’s adventure begins with a Windows Server 2003 SP2 machine installed Boot from SAN on an IBM HS21-XM Blade server.</p>
<p>First attempt:</p>
<blockquote><p>1.&#160; Convert physical server</p>
<p>2.&#160; Virtual machine name </p>
<p>3.&#160; Scan System</p>
<p><a href="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image_thumb.png" width="601" height="412" /></a></p>
<p>Looks good..</p>
<p>4. Conversion options</p>
</blockquote>
<blockquote><p><a href="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image1.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image_thumb1.png" width="555" height="484" /></a> </p>
<p>we can try the defaults..</p>
<p>5.&#160; Specify the processor and memory…&#160; </p>
<p>6.&#160; Select the host, path, network, start options, etc..</p>
<p>7.&#160; The job starts, the machine gets copied over, and …</p>
</blockquote>
<p>That try resulted in a blue screen loop..&#160; </p>
<p><a href="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image_thumb2.png" width="644" height="271" /></a> </p>
<p>Ok… time to try the Offline conversion:</p>
<blockquote><p>1. Proceed as above but select the Offline conversion option at step 4.</p>
<p>2.&#160; hmm..&#160; conversion warnings… must correct to proceed..</p>
<p><font size="2"><em>Warning (13246)         <br />No compatible drivers were identified for the device: Broadcom BCM5708S NetXtreme II GigE (NDIS VBD Client). The offline physical-to-virtual conversion requires a driver for this device. </em></font></p>
<p><font size="2"><em>Device Type: network adapter         <br />Device Description: Broadcom BCM5708S NetXtreme II GigE (NDIS VBD Client)          <br />Device Manufacturer: Broadcom Corporation          <br />Hardware IDs (listed in order of preference):          <br />B06BDRV\L2ND&amp;PCI_16AC14E4&amp;SUBSYS_03271014&amp;REV_12 </em></font></p>
<p><font size="2"><em>Compatible IDs (listed in order of preference):         <br />B06BDRV\L2ND&amp;PCI_16AC14E4&amp;SUBSYS_03271014          <br />B06BDRV\L2ND&amp;PCI_16AC14E4          <br />B06BDRV\L2ND</em></font></p>
<p><font size="2"><em>Recommended Action         <br />Create a new folder under C:\Program Files\Microsoft System Center Virtual Machine Manager 2008 R2\Driver Import on the Virtual Machine Manager server and then copy the necessary 32-bit Windows Vista driver package files for this device to the new folder. The driver package files include the driver (.sys) and installation (.inf and .cat) files. Check the device manufacturer&#8217;s website for the necessary drivers.</em></font></p>
<p>We don’t really need to do that right…</p>
</blockquote>
<p>Had some trouble with that part…&#160; finally figured out that the drivers that need to be placed in that folder are the “RIS” drivers.&#160; </p>
<p>Try number 3 (or 30, I lost count)…</p>
<blockquote><p>1. Proceed as try number 2, ignore warning because we did put the driver in there, and</p>
<p>Blue screen loop…</p>
</blockquote>
<p>Hmm… maybe this is just not meant to be.&#160; Did some more searching and found this article: </p>
<p><a title="http://blogs.msdn.com/b/robertvi/archive/2009/10/07/after-installing-hyper-v-integration-services-on-the-next-reboot-the-vm-displays-bsod-0x0000007b.aspx" href="http://blogs.msdn.com/b/robertvi/archive/2009/10/07/after-installing-hyper-v-integration-services-on-the-next-reboot-the-vm-displays-bsod-0x0000007b.aspx">http://blogs.msdn.com/b/robertvi/archive/2009/10/07/after-installing-hyper-v-integration-services-on-the-next-reboot-the-vm-displays-bsod-0x0000007b.aspx</a>&#160;</p>
<p>Basically, there are some people seeing the exact same blue screen that I was seeing, except this was after the install of updated integration components.&#160; But I wasn’t installing integration components yet… or was I?</p>
<p><a href="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image3.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image_thumb3.png" width="358" height="346" /></a> </p>
<p>Ok so maybe it was getting that far and just “blowing up” after the install of the components.&#160; Good thing about this being a P2V, I can go back to the source machine pretty easy and check the registry:</p>
<p><a href="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image_thumb4.png" width="644" height="258" /></a> </p>
<p>Looks like we may have an answer here.&#160; Change the<em> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Wdf01000\Group</em> entry to be <em>WdfLoadGroup</em> instead of <em>base.&#160; </em></p>
<p>It is my guess, that this would have worked even with the online conversion option. </p>
]]></content:encoded>
			<wfw:commentRss>http://nukeitmike.com/blog/2010/06/17/scvmm-and-p2v-adventures//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Temporary Registry Profiles &#8211; Finally an answer</title>
		<link>http://nukeitmike.com/blog/2009/08/11/temporary-registry-profiles-finally-an-answer/</link>
		<comments>http://nukeitmike.com/blog/2009/08/11/temporary-registry-profiles-finally-an-answer/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 13:36:14 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[General Info]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[Process Monitor]]></category>
		<category><![CDATA[profiles]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[Sysinternals]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://nukeitmike.com/blog/2009/08/11/temporary-registry-profiles-finally-an-answer/</guid>
		<description><![CDATA[We have been having issues at work for a while where a user gets “cannot load the locally stored profile” and a temporary profile is created.&#160; It gets to be quite frustrating for the users because each time they log in they lose any settings that they have made.&#160; Apparently, we arent’ the only company [...]]]></description>
			<content:encoded><![CDATA[<p>We have been having issues at work for a while where a user gets “cannot load the locally stored profile” and a temporary profile is created.&#160; It gets to be quite frustrating for the users because each time they log in they lose any settings that they have made.&#160; Apparently, we arent’ the only company that has been having this issue.&#160; The complete article has a very interesting discussion on the Windows Logical Prefetcher and what the cause of the problem was, but the gist of what you need to fix the problem is update your Citrix client or use the work arounds mentioned below:</p>
<blockquote><p>Now that the problem was understood, Microsoft and Citrix brainstormed on workarounds customers could apply while Citrix worked on an update to the ICA Client that would prevent the sharing violation. One workaround was to disable application prefetching and another was to write a logoff script that deletes the Ssonsvr.exe prefetch files. Citrix published the workarounds in this <a href="http://support.citrix.com/article/CTX118226">Citrix Knowledge Base</a> article and Microsoft in this <a href="http://support.microsoft.com/kb/969100/en-us">Microsoft Knowledge Base</a> article. The update to the ICA Client, which was made available a few days later, changed the network provider DLL to 10 seconds after Ssonsvr.exe launches before returning control to Mpnotify.exe. Because Winlogon waits for Mpnotify to exit before logging on a user, the Logical Prefetcher won’t associate Winlogon’s accesses of the user’s hive with Ssonsvr.exe’s startup. </p>
</blockquote>
<p><a href="http://blogs.technet.com/markrussinovich/archive/2009/08/10/3272210.aspx">Mark&#8217;s Blog : The Case of the Temporary Registry Profiles</a></p>
]]></content:encoded>
			<wfw:commentRss>http://nukeitmike.com/blog/2009/08/11/temporary-registry-profiles-finally-an-answer//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uninstalling Forefront from Server Core</title>
		<link>http://nukeitmike.com/blog/2009/04/02/uninstalling-forefront-from-server-core/</link>
		<comments>http://nukeitmike.com/blog/2009/04/02/uninstalling-forefront-from-server-core/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 13:27:43 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Forefront Client Security]]></category>
		<category><![CDATA[General Info]]></category>
		<category><![CDATA[Server Core]]></category>
		<category><![CDATA[Add or Remove Programs]]></category>
		<category><![CDATA[Forefront]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[uninstall]]></category>

		<guid isPermaLink="false">http://nukeitmike.com/blog/2009/04/02/uninstalling-forefront-from-server-core/</guid>
		<description><![CDATA[The best way to uninstall any program from Server Core, is to go into the registry to HKLM\software\Microsoft\Windows\CurrentVersion\Uninstall .  In there, you will see GUID for the various programs that are installed.  If you select the GUID and look at the right had side you will see some good information:   One of the REG_EXPAND_SZ [...]]]></description>
			<content:encoded><![CDATA[<p>The best way to uninstall any program from Server Core, is to go into the registry to <em>HKLM\software\Microsoft\Windows\CurrentVersion\Uninstall</em> .  In there, you will see GUID for the various programs that are installed.  If you select the GUID and look at the right had side you will see some good information:</p>
<p> </p>
<p><a href="http://nukeitmike.com/blog/wp-content/uploads/2009/04/image.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://nukeitmike.com/blog/wp-content/uploads/2009/04/image-thumb.png" border="0" alt="image" width="640" height="377" /></a></p>
<p>One of the <em>REG_EXPAND_SZ</em> values on the right is the <em>UninstallString</em>.  If you copy that value and paste it into the command line, it will politely ask:  Are you sure you want to uninstall this product?  If you are sure you want to uninstall it, go ahead and hit Ok.</p>
<p>If you want to get rid of both pieces of Forefront ( the Security State Assessment Service, and the Client Security Antimalware Service) you will need to find both registry keys and run both uninstalls.  There is a catch though…  the Client Security Antimalware Service has a value that looks like this: <em>MsiExec.exe /I{436028CD-6476-4224-9274-8F0320F30FD1}.</em>  To get it to uninstall, you need to change the /I to /X like this <em>MsiExec.exe /X{436028CD-6476-4224-9274-8F0320F30FD1}.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://nukeitmike.com/blog/2009/04/02/uninstalling-forefront-from-server-core//feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Another Registry Script&#8230;</title>
		<link>http://nukeitmike.com/blog/2009/03/11/another-registry-script/</link>
		<comments>http://nukeitmike.com/blog/2009/03/11/another-registry-script/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 03:18:30 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[vbscript]]></category>

		<guid isPermaLink="false">http://nukeitmike.com/blog/?p=111</guid>
		<description><![CDATA[I have the unfortunate need to occasionally fix things in the registry, mostly related to applications running in a Citrix environment.  I believe there are nice tools out there that are supposed to do this for you, if given the right information, but I haven&#8217;t bothered to figure out what those tools are or how [...]]]></description>
			<content:encoded><![CDATA[<p>I have the unfortunate need to occasionally fix things in the registry, mostly related to applications running in a Citrix environment.  I believe there are nice tools out there that are supposed to do this for you, if given the right information, but I haven&#8217;t bothered to figure out what those tools are or how to use them.  Instead, I torture myself with trying to muddle through VBScript and make it do what I want. </p>
<p>In that spirit, I am going to show you one of my pitiful scripts (and this one is horrible, because I didn&#8217;t bother to clean it up after I worked out how to make it accomplish the desired goal.  So&#8230; here you go:</p>
<p>&#8216;==========================================================================<br />
&#8216;<br />
&#8216; VBScript Source File &#8212; Created with SAPIEN Technologies PrimalScript 2007<br />
&#8216;<br />
&#8216; NAME: BorlandDBPathFix.vbs<br />
&#8216;<br />
&#8216; AUTHOR: Michael Phillips , Brasfield &amp; Gorrie, LLC<br />
&#8216; DATE : March 11, 2009<br />
&#8216;<br />
&#8216; COMMENT: This script is to change the value of 2 registry keys on a per<br />
&#8216; user basis. It should set the value to be the correct system<br />
&#8216; drive (c: or u:).<br />
&#8216; It should also be noted that this script isn&#8217;t very pretty.<br />
&#8216;==========================================================================<br />
&#8216;Registry stuff<br />
Const HKCU = &amp;H80000001 &#8216;This defines the Current User Hive<br />
Const HKLM = &amp;H80000002 &#8216;This defines the Local Machine Hive<br />
Const REG_SZ = 1<br />
Const REG_EXPAND_SZ = 2<br />
Const REG_BINARY = 3<br />
Const REG_DWORD = 4<br />
Const REG_MULTI_SZ = 7<br />
vDebug = 1<br />
Dim strComputer</p>
<p>strComputer = &#8220;.&#8221; &#8216;This computer is the &#8220;.&#8221;. If you want another computer, replace the .</p>
<p>Set oReg=GetObject(&#8220;winmgmts:{impersonationLevel=impersonate}!\\&#8221; &amp; _<br />
strComputer &amp; &#8220;\root\default:StdRegProv&#8221;)</p>
<p>sGetPath<br />
Sub sGetPath<br />
Set oShell = CreateObject( &#8220;WScript.Shell&#8221; )<br />
strSystemDrive = oShell.ExpandEnvironmentStrings(&#8220;%systemdrive%&#8221;)<br />
&#8216;* wscript.echo strSystemDrive<br />
fGetRegistryValues strSystemDrive<br />
End Sub</p>
<p>&#8216;*<br />
&#8216;* This is what we are looking for:<br />
&#8216;* [HKCU\Software\Borland\BDS\4.0\DBExpress]<br />
&#8216;* @=&#8221;"<br />
&#8216;* &#8220;Connection Registry File&#8221;=&#8221;C:\\Program Files\\Common Files\\Borland Shared\\DBExpress\\dbxconnections.ini&#8221;<br />
&#8216;* &#8220;Driver Registry File&#8221;=&#8221;C:\\Program Files\\Common Files\\Borland Shared\\DBExpress\\dbxdrivers.ini&#8221;<br />
Function fGetRegistryValues (vSystemDrive)<br />
&#8216;* wscript.echo vSystemDrive &amp; &#8221; is being passed as vSystemDrive&#8221;<br />
oReg.GetExpandedStringValue HKCU,&#8221;Software\Borland\BDS\4.0\DBExpress&#8221;,&#8221;Connection Registry File&#8221;,strValue1<br />
oReg.GetExpandedStringValue HKCU,&#8221;Software\Borland\BDS\4.0\DBExpress&#8221;,&#8221;Driver Registry File&#8221;,strValue2<br />
strDriveLetter1 = Left (strValue1,2)<br />
&#8216;* wscript.echo strDriveLetter1 &amp; strValue1 &amp; strSystemDrive<br />
strDriveLetter2 = Left (strValue2,2)<br />
If strDriveLetter1 = vSystemDrive Then<br />
If strDriveLetter2 = vSystemDrive Then<br />
Else<br />
fSetRegistryValues strValue1,strValue2,vSystemDrive</p>
<p>End If<br />
Else<br />
fSetRegistryValues strValue1,strValue2,vSystemDrive<br />
End If<br />
End Function<br />
Function fSetRegistryValues (fValue1,fValue2,fDriveLetter)<br />
&#8216;* wscript.echo &#8220;Bad Letter is being passed &#8221; &amp; fValue1 &amp; fValue2 &amp; fDriveLetter<br />
vLength1 = (Len (fValue1))-2<br />
vLength2 = (Len (fValue2))-2<br />
&#8216;* wscript.echo &#8220;&#8211;strValue1 &amp; vLength1&#8211; &gt;&#8221; &amp; fValue1 &amp; &#8221; &#8221; &amp; vLength1<br />
strPathNoLetter1 = Right (fValue1,vLength1)<br />
strNewKeyValue1 = fDriveLetter &amp; strPathNoLetter1<br />
fWriteStringRegistryValues &#8220;Software\Borland\BDS\4.0\DBExpress&#8221;,&#8221;Connection Registry File&#8221;,strNewKeyValue1<br />
&#8216;* wscript.echo strNewKeyValue1</p>
<p>strPathNoLetter2 = Right (fValue2,vLength2)<br />
strNewKeyValue2 = fDriveLetter &amp; strPathNoLetter2<br />
fWriteStringRegistryValues &#8220;Software\Borland\BDS\4.0\DBExpress&#8221;,&#8221;Driver Registry File&#8221;,strNewKeyValue2<br />
&#8216;* wscript.echo (fDriveLetter &amp; (Right (fValue2,vLength2)))<br />
End Function</p>
<p>Function fWriteStringRegistryValues (fvRegistryKeyPath,fvRegistryKeyName,fvRegistryKeyValue)<br />
If vDebug = 1 Then<br />
&#8216;* wscript.echo &#8220;Begining Function -fWriteStringRegistryValues-.&#8221;<br />
End If<br />
&#8216; This function takes input to write string values to the registry. Key must already exist.<br />
oReg.SetStringValue HKCU,fvRegistryKeyPath,fvRegistryKeyName,fvRegistryKeyValue<br />
End Function</p>
]]></content:encoded>
			<wfw:commentRss>http://nukeitmike.com/blog/2009/03/11/another-registry-script//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

