<?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>MCB Systems</title>
	<atom:link href="http://www.mcbsys.com/techblog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mcbsys.com/techblog</link>
	<description>Custom Software and I.T. Services</description>
	<lastBuildDate>Wed, 15 May 2013 16:50:27 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Event 7026:  Boot-Start Device SBRE Failed to Load</title>
		<link>http://www.mcbsys.com/techblog/2013/05/event-7026-boot-start-device-sbre-failed-to-load/</link>
		<comments>http://www.mcbsys.com/techblog/2013/05/event-7026-boot-start-device-sbre-failed-to-load/#comments</comments>
		<pubDate>Wed, 15 May 2013 16:50:27 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[errors]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/?p=1493</guid>
		<description><![CDATA[I was getting this message when rebooting a Windows operating system: Log Name:&#160;&#160;&#160;&#160;&#160; System Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; Service Control Manager Event ID:&#160;&#160;&#160;&#160;&#160; 7026 Level:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Error Description: The following boot-start or system-start driver(s) failed to load: SBRE In my case, the SBRE “device” is left over from a previously-uninstalled VIPRE Business Agent. The manual uninstall instructions for VIPRE [...]]]></description>
				<content:encoded><![CDATA[<p>I was getting this message when rebooting a Windows operating system:</p>
<p>Log Name:&#160;&#160;&#160;&#160;&#160; System    <br />Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; Service Control Manager     <br />Event ID:&#160;&#160;&#160;&#160;&#160; 7026     <br />Level:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Error     <br />Description:     <br />The following boot-start or system-start driver(s) failed to load:     <br />SBRE</p>
<p><span id="more-1493"></span>
<p>In my case, the SBRE “device” is left over from a previously-uninstalled VIPRE Business Agent.</p>
<p>The <a href="http://kb.gfi.com/articles/Skynet_Article/How-to-manually-remove-a-VIPRE-Business-agent">manual uninstall instructions</a> for VIPRE say to delete this registry key:</p>
<p>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SBRE</p>
<p>(Under that key, the <strong>ImagePath</strong> value points to <code>C:\Windows\system32\drivers\SBREdrv.sys</code>, which does not exist, hence the “failed to load” message.)</p>
<p><a href="http://www.confignotes.com/2012/08/windows-event-viewver-failed-to-load-sbre/">This post</a> suggests running the following at a command prompt to remove the SBRE service:</p>
<p><code>sc delete SBRE</code></p>
<p>That command does delete the <strong>Services</strong> registry key. But it also removes the related <strong>Enum</strong> registry key:</p>
<p>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_SBRE</p>
<p>So the <code>sc delete SBRE</code> command seems more thorough.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/05/event-7026-boot-start-device-sbre-failed-to-load/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scoped Snapshots vmicvss Error 13 on Server 2012, Windows 8</title>
		<link>http://www.mcbsys.com/techblog/2013/05/scoped-snapshots-vmicvss-error-13-on-server-2012-windows-8/</link>
		<comments>http://www.mcbsys.com/techblog/2013/05/scoped-snapshots-vmicvss-error-13-on-server-2012-windows-8/#comments</comments>
		<pubDate>Mon, 06 May 2013 20:04:01 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[server 2012]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/?p=1491</guid>
		<description><![CDATA[I’m running Server 2012 Essentials running in a Hyper-V machine under Windows Server 2008 R2. The Hyper-V host does a daily Windows backup at 9pm. The backup is configured to capture Bare Metal Recovery, System State, System Reserved, and the C: drive. It does not back up the E: drive where the VHDs of the [...]]]></description>
				<content:encoded><![CDATA[<p>I’m running Server 2012 Essentials running in a Hyper-V machine under Windows Server 2008 R2.</p>
<p>The Hyper-V host does a daily Windows backup at 9pm. The backup is configured to capture Bare Metal Recovery, System State, System Reserved, and the C: drive. It does <em>not</em> back up the E: drive where the VHDs of the client machines are stored. (The guest machines do their own backups.)</p>
<p>During the Hyper-V host backup, the following message appears five times in the Application log of the Server 2012 guest.</p>
<p><span id="more-1491"></span>
<p><code>Log Name:&#160;&#160;&#160;&#160;&#160; Application      <br />Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; vmicvss       <br />Date:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 11/29/2012 9:00:05 PM       <br />Event ID:&#160;&#160;&#160;&#160;&#160; 13       <br />Task Category: None       <br />Level:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Error       <br />Keywords:&#160;&#160;&#160;&#160;&#160; Classic       <br />User:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; N/A       <br />Computer:&#160;&#160;&#160;&#160;&#160; SVR2012E.mydomain.local       <br />Description:       <br />Windows cannot perform an online backup of this system because scoped snapshots are enabled. To resolve this, disable scoped snapshots by creating the following registry value on this computer:       <br />&#160; PATH: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; CurrentVersion\SystemRestore\       <br />&#160; DWORD: ScopeSnapshots       <br />&#160; Value: 0       <br />Incorrectly editing the registry may severely damage your system. Before making changes to the registry, you should back up any valued data on the computer.</code></p>
<h3>The Solution</h3>
<p>In the Server 2012 Hyper-V guest, add the registry value as specified in the error message.</p>
<h3>The Explanation</h3>
<p>I asked in a Microsoft Partner forum about what scoped snapshots are and what this error means. Their answer:</p>
<blockquote><p>I’ve confirmed with product team, this is an expected behavior. Scope snapshot is a special volume snapshot for volsnap performance. Mainly used by Windows critical updates. Scope means the volsnap only creates Copy on Write (Shadow) volume for the files that are involved in the updates instead of all the files on the volume.</p>
<p>Scope snapshot prevents volume snap revert operations, thus it will cause Hyper-V host backup failure since Hyper-V needs to perform mount and revert VM vhd operations on Hyper-V host. It can cause the hyper-v host backup failed even you didn’t include the hyper-v guest. That is the reason that we blocked it inside of VM during the backup. </p>
</blockquote>
<h3>Windows 8 Too</h3>
<p>I just installed Windows 8 Pro as a guest on the same Hyper-V server and started getting the same message. In this case, the Server 2012 Essentials machine is successfully backing up the Windows 8 machine. I assume that setting the registry value will fix it there too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/05/scoped-snapshots-vmicvss-error-13-on-server-2012-windows-8/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Batch Convert PDF to PDF/A</title>
		<link>http://www.mcbsys.com/techblog/2013/04/batch-convert-pdf-to-pdfa/</link>
		<comments>http://www.mcbsys.com/techblog/2013/04/batch-convert-pdf-to-pdfa/#comments</comments>
		<pubDate>Tue, 16 Apr 2013 03:38:47 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[paperless]]></category>
		<category><![CDATA[pdf]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/04/batch-convert-pdf-to-pdfa/</guid>
		<description><![CDATA[I’m developing a paperless workflow for my home and office. I want to save all my documents in PDF/A-1b archival format so I will be able to open them for years to come. The PDFs should be searchable, meaning they contain not only images of documents, but strings of text. This allows the documents to [...]]]></description>
				<content:encoded><![CDATA[<p>I’m developing a paperless workflow for my home and office. I want to save all my documents in PDF/A-1b archival format so I will be able to open them for years to come. The PDFs should be <em>searchable</em>, meaning they contain not only images of documents, but strings of text. This allows the documents to be indexed so I can quickly find documents when I type in Windows Explorer’s search box.</p>
<p><span id="more-1479"></span> There are basically three types of documents that need to be archived:</p>
<ul>
<li><strong>Paper documents</strong>. These must be scanned and, in order for them to be searchable, have Optical Character Recognition (OCR) applied. I’ve found <a href="http://www.nuance.com/for-business/by-product/omnipage/standard/index.htm" target="_blank">OmniPage 18 Standard</a> to be pretty good at this, except for the annoying bug that white-on-black text (often used in column headings of printed documents) disappears.</li>
<li><strong>Non-PDF electronic documents</strong> like emails, web pages, etc. These already have text; they just need to be converted to PDF/A. I’ve already blogged about <a href="http://www.mcbsys.com/techblog/2013/04/use-cutepdf-to-print-to-pdfa-for-free/" target="_blank">using CutePDF to print these to PDF/A</a>.</li>
<li><strong>PDF documents</strong>. Once you opt out of paper statements, your bank, credit card company, telephone company, and utility will give you links to PDF files for download. Your tax software probably saved a PDF file too. You could re-print these to PDF/A using CutePDF, but I chose to write a batch file to quickly convert an existing PDF to PDF/A using Ghostscript. This batch process is the subject of this article.</li>
</ul>
<h3>Set up the Batch Components</h3>
<p><strong>Caveat</strong> This approach <em>should</em> create valid PDF/A documents, but even among experts, there is some disagreement about the PDF/A standard. <em>Use this approach at your own risk.</em> If you have Adobe Acrobat Professional, you can use its “pre-flight” validation to check the output. Or you may want to try a free online validator like the one at <a href="http://www.pdf-tools.com/pdf/pdfa-online-pruefen.aspx">PDF-Tools.com</a> or the one at <a href="http://www.intarsys.de/pdfa-check">intarsys.de</a> (German). For more background on the process, see this this <a href="http://superuser.com/questions/571446/ghostscript-pdf-a-conversion-fails-validation">superuser article</a> and this Ghostscript <a href="http://bugs.ghostscript.com/show_bug.cgi?id=693830">bug report</a>.</p>
<p>The underlying technology for this batch file is the same as for the CutePDF process, so if you have already followed the <a href="http://www.mcbsys.com/techblog/2013/04/use-cutepdf-to-print-to-pdfa-for-free/" target="_blank">other post</a>, you can skip the identical steps.</p>
<p>1. Download the GNU Affero-licensed version of Ghostscript 9.07 <a href="http://www.ghostscript.com/download/gsdnld.html">here</a>. I found that the 32-bit version works fine even under 64-bit Windows 7. Install Ghostscript to the default directory, <code>C:\Program Files (x86)\gs\gs9.07</code>. At the end of the install, go ahead and let it <strong>Generate cidfmap for Windows CJK TrueType fonts</strong>.</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/Batch-Convert-PDFA-1.png" target="_blank"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="Batch Convert PDFA 1" alt="Batch Convert PDFA 1" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/Batch-Convert-PDFA-1_thumb.png" width="354" height="277" border="0" /></a></p>
<p>2. Create an empty folder on your C: drive called <strong>C:\GS_PDFA</strong> (Ghostscript PDF/A).</p>
<p>3. Go to <strong>Control Panel &gt; System and Security &gt; System</strong>. Click on <strong>Advanced system settings</strong>. Add C:\GS_PDFA to end of the Path statement (System environment variable):</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/Batch-Convert-PDFA-2.png" target="_blank"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="Batch Convert PDFA 2" alt="Batch Convert PDFA 2" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/Batch-Convert-PDFA-2_thumb.png" width="220" height="244" border="0" /></a></p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/Batch-Convert-PDFA-3.png" target="_blank"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="Batch Convert PDFA 3" alt="Batch Convert PDFA 3" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/Batch-Convert-PDFA-3_thumb.png" width="221" height="244" border="0" /></a></p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/Batch-Convert-PDFA-4.png" target="_blank"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="Batch Convert PDFA 4" alt="Batch Convert PDFA 4" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/Batch-Convert-PDFA-4_thumb.png" width="244" height="107" border="0" /></a></p>
<p>4. Download</p>
<div class="wlWriterEditableSmartContent" id="scid:F60BB8FA-6F02-4999-8F5E-9DD4E92C4DA7:3e09c31e-8293-4796-9d71-c8899083b0ef" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/PDFAbatch_1.1.zip">PDFAbatch_1.1.zip</a></div>
</div>
<p>and unzip it into C:\GS_PDFA. This will give you three files:</p>
<p><code>pdfa.cmd</code> – the batch file<br />
<code>PDFA_def.ps</code> – the prefix file for Ghostscript conversion to PDF/A<br />
<code>PDF_ShowBookmarksPanel.ps</code> – a Postscript instruction to tell a PDF reader to show the Bookmarks Panel when opening the document</p>
<p>Note that <code>PDFA_def.sys</code> is the same file described in the <a href="http://www.mcbsys.com/techblog/2013/04/use-cutepdf-to-print-to-pdfa-for-free/" target="_blank">CutePDF post</a>, so it’s okay to overwrite it.</p>
<p>5. Locate the path to Ghostscript’s <code>gswin32c.exe</code> on your system. <code>pdfa.cmd</code> assumes it is in <code>C:\Program Files (x86)\gs\gs9.07\bin\</code>. If it is somewhere else, update line 45 of <code>pdfa.cmd</code> to point to the correct path.</p>
<p>6. Download the Adobe ICC profiles <a href="http://www.adobe.com/support/downloads/detail.jsp?ftpID=3680">here</a>. An <a href="http://en.wikipedia.org/wiki/ICC_profile">ICC profile</a> describes a “color space.” We’ll use the simplest one, Adobe RGB (1998). From the downloaded zip archive, extract <strong>AdobeRGB1998.icc</strong> to the C:\GS_PDFA folder. Again, this is the same file used in the CutePDF post so it’s okay to overwrite it. (You can use a different profile, e.g. <code>sRGB_IEC61966-2-1_no black_scaling.icc</code> from <a href="http://www.color.org">www.color.org</a>; you’ll need to modify PDFA_def.ps accordingly.)</p>
<p>That’s it! You’re now ready to convert PDF files to PDF/A.</p>
<h3>Use the Batch File</h3>
<p>Since the batch file is in your path, you should be able to open a command prompt anywhere on your system, type <strong>pdfa &lt;filename&gt;</strong>, and watch it convert the file to PDF/A. Some notes and advanced usage:</p>
<ul>
<li>Do <em>not </em>type the <strong>.pdf</strong> extension on the input parameters. Just type the file name.</li>
<li>If the file name contains spaces, enclose it in quotation marks.</li>
<li>The batch program will rename the input file to <strong>.old.pdf</strong> and create the PDF/A as <strong>.pdf</strong>. You can delete the <strong>.old.pdf</strong> file(s) if you are satisfied with the new PDF/A document.</li>
<li>You can concatenate up to five input PDFs into one output PDF/A. Separate the input file names with spaces.</li>
<li>When conversion finishes, the PDF/A output file will open in the program on your computer that is registered for viewing PDF files (e.g. Adobe Reader).</li>
<li>To set the Initial View of the PDF to show the Bookmarks (outline) panel, set the last parameter to <strong>-sb</strong> (show bookmarks).  The input file must already contain bookmarks.  Bookmarks will not work properly when concatenating files because bookmarks copied from later files will point to incorrect page numbers.</li>
<li>Type <strong>pdfa</strong> by itself to see some usage notes.</li>
</ul>
<h4>Usage</h4>
<p><code>pdfa file1 [file2^|-sb] [file3^|-sb] [file4^|-sb] [file5^|-sb]</code></p>
<h4>Usage Examples</h4>
<p>1. If you have a PDF utility bill, open a command prompt where the PDF file resides and use this command:</p>
<p><strong>pdfa &#8220;Utility Bill&#8221;</strong></p>
<p><em>Output</em></p>
<p>Utility Bill.pdf – the PDF/A document<br />
Utility Bill.old.pdf – the original PDF document</p>
<p>2. If you have a credit card statement with two reconciliation reports to attach, use the following command:</p>
<p><strong>pdfa CCstatement recon1 recon2</strong></p>
<p><em>Output</em></p>
<p>CCstatement.pdf – the combined PDF/A document<br />
CCstatement.old.pdf<br />
recon1.old.pdf<br />
recon2.old.pdf</p>
<p>3. If you have a tax return that includes bookmarks, use the following command:</p>
<p><strong>pdfa &#8220;Tax Return&#8221; -sb</strong></p>
<p><em>Output</em></p>
<p>Tax Return.pdf – the PDF/A document, should open with bookmarks panel<br />
Tax Return.old.pdf</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/04/batch-convert-pdf-to-pdfa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Find the Largest Files on a Linux Machine</title>
		<link>http://www.mcbsys.com/techblog/2013/04/find-the-largest-files-on-a-linux-machine/</link>
		<comments>http://www.mcbsys.com/techblog/2013/04/find-the-largest-files-on-a-linux-machine/#comments</comments>
		<pubDate>Fri, 12 Apr 2013 18:07:01 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/04/find-largest-files-on-a-linux-machine/</guid>
		<description><![CDATA[The PBX in a Flash machine at a client site sends me a daily Logwatch email (setup described here). At the bottom of that email are a few lines telling me how much disk space is in use. I also SNMP to monitor disk usage (described here). Both of these tell me that disk usage [...]]]></description>
				<content:encoded><![CDATA[<p>The PBX in a Flash machine at a client site sends me a daily Logwatch email (setup described <a href="http://www.mcbsys.com/techblog/2008/11/setting-up-pbx-in-a-flash-part-2-before-running-freepbx/" target="_blank">here</a>). At the bottom of that email are a few lines telling me how much disk space is in use. I also SNMP to monitor disk usage (described <a href="http://www.mcbsys.com/techblog/2009/04/monitoring-centos-linux-with-kaseya/" target="_blank">here</a>).</p>
<p>Both of these tell me that disk usage is up to 75%. Looking back a few months, it was only 50%. What is using up so much space?</p>
<p><span id="more-1466"></span></p>
<p>A quick Google search turned up this article:&nbsp; <a href="http://www.cyberciti.biz/faq/how-do-i-find-the-largest-filesdirectories-on-a-linuxunixbsd-filesystem/" target="_blank">How Do I Find The Largest Top 10 Files and Directories On a Linux / UNIX / BSD?</a> The very first command:</p>
<p><code>$ du -a /var | sort -n -r | head -n 10</code></p>
<p>showed me what I need to know:</p>
<pre>11288832&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /var
10821596&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /var/spool
10821208&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /var/spool/asterisk
10818532&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /var/spool/asterisk/backup
10765244&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /var/spool/asterisk/backup/Daily_00_30
149624&nbsp; /var/lib
145476&nbsp; /var/log
125308&nbsp; /var/log/asterisk
123680&nbsp; /var/log/asterisk/freepbx_dbug
88964&nbsp;&nbsp; /var/www</pre>
<p>A quick check of the <code>/var/spool/asterisk/backup/Daily_00_30</code> directory confirms that my old daily backups are not being deleted. So it’s back to <a href="http://www.mcbsys.com/techblog/2010/06/linux-daily-delete-job-with-logwatch/">Linux Daily Delete Job with Logwatch</a> to figure out what isn’t working.</p>
<p><strong>Note</strong> If you want to see the whole file system (including mount points etc.), remove “var” from the command:</p>
<p><code>$ du -a / | sort -n -r | head -n 10</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/04/find-the-largest-files-on-a-linux-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use CutePDF to Print to PDF/A for Free</title>
		<link>http://www.mcbsys.com/techblog/2013/04/use-cutepdf-to-print-to-pdfa-for-free/</link>
		<comments>http://www.mcbsys.com/techblog/2013/04/use-cutepdf-to-print-to-pdfa-for-free/#comments</comments>
		<pubDate>Fri, 12 Apr 2013 07:02:19 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[paperless]]></category>
		<category><![CDATA[pdf]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/04/use-cutepdf-to-print-to-pdfa-for-free/</guid>
		<description><![CDATA[I’ve been working on developing a paperless workflow. I want to save my digital files in PDF/A format, specially designed for archiving. (In particular, I want to create PDF/A-1b documents.) An important part of this workflow is the ability to print documents and emails to PDF/A. I found that with some tweaking, I can use [...]]]></description>
				<content:encoded><![CDATA[<p>I’ve been working on developing a paperless workflow. I want to save my digital files in <a href="http://en.wikipedia.org/wiki/PDF/A" target="_blank">PDF/A</a> format, specially designed for archiving. (In particular, I want to create PDF/A-1b documents.) An important part of this workflow is the ability to print documents and emails to PDF/A. I found that with some tweaking, I can use CutePDF to do so. Here’s how.</p>
<p>  <span id="more-1463"></span>
<p><strong>Note</strong> This is a fairly advanced procedure and requires Administrator permissions.</p>
<p>CutePDF uses a program called Ghostscript to convert a printer file to PDF. If you don’t already have Ghostscript, CutePDF Writer 3.0 downloads Ghostscript 8.15. But you need Ghostscript 9.07 for this PDF/A conversion, so you need to install Ghostscript first.</p>
<p>1. If CutePDF is installed, uninstall it.</p>
<p>2. Download the GNU Affero-licensed version of Ghostscript 9.07 <a href="http://www.ghostscript.com/download/gsdnld.html" target="_blank">here</a>. I found that the 32-bit version works fine even under 64-bit Windows 7. Install Ghostscript to the default directory, <code>C:\Program Files (x86)\gs\gs9.07</code>. At the end of the install, go ahead and let it <strong>Generate cidfmap for Windows CJK TrueType fonts</strong>.</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/CutePDF-for-PDFA-1.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CutePDF for PDFA 1" border="0" alt="CutePDF for PDFA 1" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/CutePDF-for-PDFA-1_thumb.png" width="354" height="277" /></a></p>
<p>3. Download the free CutePDF Writer 3.0 <a href="http://www.cutepdf.com/products/cutepdf/writer.asp" target="_blank">here</a>. Install it, but be <strong>very careful</strong> to <em>un</em>check all the extra software it will try to install:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/CutePDF-for-PDFA-2.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CutePDF for PDFA 2" border="0" alt="CutePDF for PDFA 2" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/CutePDF-for-PDFA-2_thumb.png" width="354" height="281" /></a></p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/CutePDF-for-PDFA-3.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CutePDF for PDFA 3" border="0" alt="CutePDF for PDFA 3" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/CutePDF-for-PDFA-3_thumb.png" width="354" height="281" /></a></p>
<p>The CutePDF installer should automatically find your Ghostscript 9.07 installation and should <em>not</em> prompt you to download Ghostscript.</p>
<p>4. Create an empty folder on your C: drive called <strong>C:\GS_PDFA</strong> (Ghostscript PDF/A).</p>
<p>5. Download the Adobe ICC profiles <a href="http://www.adobe.com/support/downloads/detail.jsp?ftpID=3680" target="_blank">here</a>. An <a href="http://en.wikipedia.org/wiki/ICC_profile" target="_blank">ICC profile</a> describes a “color space.” We’ll use the simplest one, Adobe RGB (1998). From the downloaded zip archive, extract <strong>AdobeRGB1998.icc</strong> to the C:\GS_PDFA folder.</p>
<p>6. Ghostscript needs some special instructions for creating PDF/A files. These are partially contained in a <strong>PDFA_def.ps</strong> file. For more information, see the sample file in your Ghostscript installation (<code>C:\Program Files (x86)\gs\gs9.07\lib\PDFA_def.ps</code>). Also see this <a href="http://bugs.ghostscript.com/show_bug.cgi?id=693830" target="_blank">bug report</a>. </p>
<p>I’ve modified the sample to work with the 3-color RGB color space. In the C:\GS_PDFA folder, create an empty text file named <strong>PDFA_def.ps</strong> and paste in the following text. (Since this a derivative work of a file included with GNU Affero-licensed Ghostscript, please use it under the terms of the <a href="http://www.gnu.org/licenses/agpl-3.0.html" target="_blank">GNU Affero General Public License</a>.)</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:6eb8e3fb-12cc-4092-a9c1-230bd2fa94d9" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: bash; auto-links: false; gutter: true; pad-line-numbers: true; title: ; toolbar: true; notranslate">
/ICCProfile (C:/GS_PDFA/AdobeRGB1998.icc)   % Customize.
def

[ /Title (Title)                  % Customize.
  /DOCINFO pdfmark

% Define an ICC profile :

[/_objdef {icc_PDFA} /type /stream /OBJ pdfmark
[{icc_PDFA} &lt;&lt;/N systemdict /ProcessColorModel get /DeviceGray eq {1} {systemdict /ProcessColorModel get /DeviceRGB eq {3} {4} ifelse} ifelse &gt;&gt; /PUT pdfmark
[{icc_PDFA} ICCProfile (r) file /PUT pdfmark

% Define the output intent dictionary :

[/_objdef {OutputIntent_PDFA} /type /dict /OBJ pdfmark
[{OutputIntent_PDFA} &lt;&lt;
  /Type /OutputIntent             % Must be so (the standard requires).
  /S /GTS_PDFA1                   % Must be so (the standard requires).
  /DestOutputProfile {icc_PDFA}            % Must be so (see above).
  /OutputConditionIdentifier (AdobeRGB1998)      % Customize
&gt;&gt; /PUT pdfmark
[{Catalog} &lt;&lt;/OutputIntents [ {OutputIntent_PDFA} ]&gt;&gt; /PUT pdfmark
</pre>
</div>
<p>7. CutePDF also needs some instructions for printing to PDF/A. In the C:\GS_PDFA folder, create an empty text file named <strong>PDFWrite.pdfa.rsp</strong>. Open the file in Notepad and paste in this text</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:e8ed2d7f-41c2-4065-8711-a9a9c8156286" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; toolbar: true; notranslate">
-sDEVICE=pdfwrite
-q
-dPDFSETTINGS=/default
-dAutoRotatePages=/All
-dNOPAUSE
-dBATCH
-dPDFA
-dNOOUTERSAVE
-sProcessColorModel=DeviceRGB
-dUseCIEColor
-dPDFACompatibilityPolicy=1
&quot;C:\GS_PDFA\PDFA_def.ps&quot;

</pre>
</div>
<p>8. The second part of the instructions for CutePDF must be added to the CutePDF installation folder, <code>C:\Program Files (x86)\Acro Software\CutePDF Writer</code>. You will need Administrator permissions.</p>
<p>Create an empty text file in that folder named <strong>setup.ini</strong>. Run Notepad as Administrator, open the file, and paste in this text:</p>
<p><code></p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:259d0b3d-326b-4221-ac5e-366952feb0cd" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: bash; auto-links: false; gutter: true; title: ; notranslate">
[Parameters]
Command=&quot;C:\Program Files (x86)\gs\gs9.07\bin\gswin32c.exe&quot;
Arguments=-sOutputFile=&quot;%1&quot; @&quot;C:\GS_PDFA\PDFWrite.pdfa.rsp&quot; -
</pre>
</div>
<p></code><code></code></p>
<p>This tells CutePDF where to find your Ghostscript installation and what arguments to pass to it. We are basically telling it to use the commands in our custom <strong>PDFWrite.pdfa.rsp</strong>, which will in turn load the special PDFA_def.ps file before loading the iniput stream. And yes, the last line in <strong>setup.ini</strong> ends in a hyphen (-)!</p>
<h3>Print to PDF/A</h3>
<p>That’s it! Now, when you print using CutePDF, the file should be created in PDF/A-1b format. After opening in Adobe Reader, you’ll see a blue bar at the top:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/CutePDF-for-PDFA-4.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CutePDF for PDFA 4" border="0" alt="CutePDF for PDFA 4" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/CutePDF-for-PDFA-4_thumb.png" width="554" height="38" /></a></p>
<p>Note that this message, in spite of what it says, does <em>not</em> guarantee compliance with the standard. To test compliance, you can use Adobe Acrobat’s pre-flight testing (Acrobat offers a 30-day free trial). You can also try a free online validator like the one at <a href="http://www.pdf-tools.com/pdf/pdfa-online-pruefen.aspx" target="_blank">PDF-Tools.com</a> or the one at <a href="http://www.intarsys.de/pdfa-check" target="_blank">intarsys.de</a> (German). In my testing, files created with Ghostscript passed the Acrobat and PDF-Tools tests, but failed the intarsys test with font errors.</p>
<h3>Print to Plain PDF</h3>
<p>If you want to go back to printing to plain PDF from CutePDF, in the CutePDF installation folder, just rename <strong>setup.ini</strong> to <strong>setup.pdfa.ini</strong>. CutePDF will then use its default settings. You can leave the C:\GS_PDFA folder set up so all you need to do for PDF/A printing is to rename <strong>setup.pdfa.ini</strong> back to <strong>setup.ini</strong>.</p>
<h3>Converting PDF to PDF/A</h3>
<p>If you already have a text-based (searchable) PDF file, perhaps received from a bank or utility, you can convert it to PDF/A without printing with CutePDF. See <a href="http://www.mcbsys.com/techblog/2013/04/batch-convert-pdf-to-pdfa/">Batch Convert PDF to PDF/A</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/04/use-cutepdf-to-print-to-pdfa-for-free/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Access Point Won&#8217;t Stay Up with POE</title>
		<link>http://www.mcbsys.com/techblog/2013/04/access-point-wont-stay-up-with-poe/</link>
		<comments>http://www.mcbsys.com/techblog/2013/04/access-point-wont-stay-up-with-poe/#comments</comments>
		<pubDate>Mon, 08 Apr 2013 19:59:22 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[switch]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/04/strange-access-point-behavior-using-poe/</guid>
		<description><![CDATA[I’m working on installing four Cisco 1131AG access points at a client’s location. We want to use Power Over Ethernet (POE) to provide power, and purchased a Cisco SG200-08P switch, which has four POE ports, to provide power. Strange Behavior We found that one access point (AP) would not stay up. It would come online, [...]]]></description>
				<content:encoded><![CDATA[<p>I’m working on installing four <a href="http://www.cisco.com/en/US/prod/collateral/wireless/ps5678/ps6087/product_data_sheet0900aecd801b9058.html" target="_blank">Cisco 1131AG</a> access points at a client’s location. We want to use Power Over Ethernet (POE) to provide power, and purchased a <a href="http://www.cisco.com/en/US/prod/collateral/switches/ps5718/ps11229/data_sheet_c78-634369.html" target="_blank">Cisco SG200-08P</a> switch, which has four POE ports, to provide power.</p>
<h3>   <span id="more-1450"></span> Strange Behavior</h3>
<p>We found that one access point (AP) would not stay up. It would come online, then go down after a minute or two, then it might come back up for a bit. The “mood ring” status light on the AP would constantly shift from green to pale green to off, with an occasional yellow or blue flicker, like it was in a constant reboot cycle. However if I used a local power supply for the AP and plugged it into a non-powered switch port, the AP would stay up and work fine.</p>
<h3>Troubleshooting</h3>
<p>We at first suspected that the drop was bad; in fact, I had had to re-punch down the termination on one drop to solve an open pair reported by my cable tester. However, I was able to see the same rebooting behavior when plugging the AP directly into the switch using a CAT6 patch cable, so that confirmed it wasn’t a building cabling issue.</p>
<p>Next I thought that port 4 of the switch was bad, but I switched things around and saw the same issue with port 3. In fact, the last POE device plugged in to the switch would not stay up.</p>
<p>I checked the log in the switch and noticed that the link went down right after the switch disabled Short Reach Mode:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/POE-switch-issue-1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="POE switch issue 1" border="0" alt="POE switch issue 1" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/POE-switch-issue-1_thumb.png" width="554" height="89" /></a></p>
<p>So maybe the negotiation of Short Reach Mode somehow caused the POE to fail? I disabled Short Reach Auto on the switch, but the AP still wouldn’t stay up.</p>
<p>The Power Consumption information reported at the switch is interesting:&#160; the first three APs draw about 8.4 watts, but the last one, the one that is not staying up, is only pulling 4.4 watts:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/POE-switch-issue-2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="POE switch issue 2" border="0" alt="POE switch issue 2" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/04/POE-switch-issue-2_thumb.png" width="554" height="79" /></a></p>
<h3>The Cause</h3>
<p>A colleague identified the root cause: the <a href="http://www.cisco.com/en/US/prod/collateral/switches/ps5718/ps11229/data_sheet_c78-634369.html" target="_blank">SG200-08P</a> switch has a maximum “total power budget” of 32 watts. Each AP can draw up to 12.2 watts (according to the <a href="http://www.cisco.com/en/US/prod/collateral/wireless/ps5678/ps6087/product_data_sheet0900aecd801b9058.html" target="_blank">specs</a>) or 12.95 watts (according to the <a href="http://www.cisco.com/en/US/docs/wireless/access_point/1130/installation/guide/113h_c4.html#wp1084467" target="_blank">troubleshooting support page</a>). In fact, with almost no activity, each AP is only drawing about 8.4 watts, so three of them work, but the fourth gets short-changed because the switch won’t supply more than 32 watts. Too bad the switch doesn’t actually report that in its log, e.g. “power budget exceeded, reducing power on port g4.”</p>
<p>It’s pretty frustrating that Cisco sells these underpowered switches without making the power limitations more clear. I’d like to see this sentence at the top of the product page:&#160; <font color="#ff0000">“Cisco Series 200 POE switches cannot provide 802.3af standard power (15.4 watts) on all POE ports. Only half of the POE ports are usable at full power.”</font></p>
<h3>Lesson Learned</h3>
<p>When setting up POE, don’t just count ports, check the “total power budget” available on the switch compared to requirements of the devices.</p>
<p>A related article, written for a fully-managed 3750 switch:&#160; <a href="http://www.cisco.com/en/US/docs/switches/lan/catalyst3750/software/troubleshooting/g_power_over_ethernet.html" target="_blank">Troubleshooting Power over Ethernet (PoE)</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/04/access-point-wont-stay-up-with-poe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Restore a Hyper-V Server to an Optiplex 960, Take 3</title>
		<link>http://www.mcbsys.com/techblog/2013/04/restore-a-hyper-v-server-to-an-optiplex-960-take-3/</link>
		<comments>http://www.mcbsys.com/techblog/2013/04/restore-a-hyper-v-server-to-an-optiplex-960-take-3/#comments</comments>
		<pubDate>Sun, 07 Apr 2013 01:34:16 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[bitlocker]]></category>
		<category><![CDATA[diskpart]]></category>
		<category><![CDATA[hyper-v]]></category>
		<category><![CDATA[optiplex]]></category>
		<category><![CDATA[windows home server]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/04/restore-a-hyper-v-server-to-an-optiplex-960-take-3/</guid>
		<description><![CDATA[This is the third in the series of almost annual articles about my experiences testing a Hyper-V restore. I’ve done this successfully in 2011 and 2012. Why repeat? To make sure disaster recovery is still possible, and to try a new approach. To recap, I have a Hyper-V server (Dell PowerEdge 1900) running one Hyper-V [...]]]></description>
				<content:encoded><![CDATA[<p>This is the third in the series of almost annual articles about my experiences testing a Hyper-V restore. I’ve done this successfully in <a href="http://www.mcbsys.com/techblog/2011/01/restore-a-hyper-v-server-to-an-optiplex-960/" target="_blank">2011</a> and <a href="http://www.mcbsys.com/techblog/2012/03/restore-a-hyper-v-server-to-an-optiplex-960-take-2/" target="_blank">2012</a>. Why repeat? To make sure disaster recovery is still possible, and to try a new approach.</p>
<p><span id="more-1444"></span></p>
<p>To recap, I have a Hyper-V server (Dell PowerEdge 1900) running one Hyper-V guest. Both run Windows Server 2008 R2. Both the host and guest run daily backups using Windows Server Backup. My emergency restore machine is a client desktop, a Dell Optiplex 960.</p>
<p>In the past, I’ve restored the entire host machine, which included the volume holding the Hyper-V guest VHDs. Today I want to try a different approach:&nbsp; only restore the client, basically a virtual-to-physical (V2P) restore. The basic approach is as follows:</p>
<ol>
<li>The guest backups reside <em>inside</em> a VHD on a Bitlocker-encrypted external USB drive. Copy the backup out of the VHD and onto a second, unencrypted USB drive (a spare that I brought along from my office).</li>
<li>Boot the Optiplex 960 from a Server 2008 R2 installation disk.</li>
<li>Restore the backup from the temporary USB drive.</li>
<li>Test server functionality.</li>
</ol>
<h3>The Procedure</h3>
<p><strong>12:55pm</strong> Arrive on-site and prepare for the test.</p>
<p>Log in to Windows 7 on Optiplex 960. Attach encrypted USB backup drive.&nbsp; Supply Bitlocker password to unlock.</p>
<p><strong>1:08pm</strong> In diskmgmt.msc, <strong>Action &gt; Attach VHD</strong>.&nbsp; Open the VHD on the external drive that contains the Hyper-V guest backups. Open writeable. The VHD mounted as drive G:.</p>
<p>In drive Properties, take ownership of drive, give my user Full Control permissions.</p>
<p><strong>1:14pm</strong> Start copying G:\WindowsImageBackup to second, unencrypted USB drive.</p>
<p>Copy stopped on a .vhd file, showed 0 bytes copied even after several minutes. Cancel the copy.</p>
<p>Probably a permissions issue on the backup folders/files. Open an administrative command prompt and use this command to assign ownership to administrators group recursively:</p>
<p><code>G:<br />
takeown /f WindowsImageBackup /a /r</code></p>
<p>My user already has full control permissions on WindowsImageBackup, which should be inherited by subfolders and files.</p>
<p><strong>1:20pm</strong> Re-start copy to second USB drive.&nbsp; Approve prompt asking for administrative permission to copy 23 files.</p>
<p><strong>1:55pm</strong> Copy finished.</p>
<p>Reboot the 960 from the Server 2008 R2 setup disk. Disconnect the original, Bitlocker-encrypted USB drive while the system is down—we’re done with that drive.</p>
<p>Press F12 during boot to boot from CD-ROM, then when prompted, press any key to boot from CD-ROM. Boot to Setup when prompted. (Note that we won’t be running Hyper-V, so there is no need to check virtualization support.)</p>
<p>At the installation screen, choose <strong>Repair</strong>, then <strong>Restore your computer using a system image you created earlier</strong>. The wizard automatically finds the image on the attached, unencrypted drive. Accept the defaults to restore the entire system.</p>
<p><strong>2:00pm</strong> Restore started.</p>
<p><strong>2:14pm</strong> Drive C restore completed, drive D: not restored (why not?).</p>
<p>Rebooted into Drive C:. For this test, <strong>disconnect network cable</strong> from the 960 because the real server is still online. “Applying computer settings” taking a long time.</p>
<p><strong>2:18pm</strong> Logon prompt, but seemed to hang after accepting 6 password characters. Character cursor blinking but mouse cursor not visible.</p>
<p><strong>2:21pm</strong> Full password accepted, group policy objects applied, logon complete. Loading roaming profile failed because it is stored on drive D:, which did not restore. Starts installing drivers; most succeed but one “Unknown Device” fails. “You must restart your computer to apply these changes.” I planned to choose Restart Later, but external drive not visible, so restarted now.</p>
<p><strong>2:29pm</strong> Back to desktop but external drive still not visible. Disconnect and reconnect it and it shows up. In diskmgmt.msc, create and quick-format partition for D: drive. Original was 60GB exactly. Make it 60.1GB.</p>
<p>Run Windows Server Backup in GUI mode to restore (“Recover”) drive D:. In the recovery wizard, choose <strong>A backup stored on another location</strong>, then <strong>Local drives</strong>, then the USB drive (F:), accept server name, accept latest backup date, choose <strong>Volumes</strong>, choose to restore D: to the empty volume created just above. I had to restart the recovery wizard a couple times to get the new, empty Drive D: to populate.</p>
<p><strong>2:40pm</strong> Start restore of D:.</p>
<p><strong>4:00pm (estimated)</strong> Finish restore of D:. Estimated based on approximately 1% per minute speed at the beginning of the restore.</p>
<p>I was away for a while here—this time not counted in “Duration” section.</p>
<p><strong>4:50pm</strong> Put restored server online and test.</p>
<p>Close inbound port 25 on router so inbound mail will not be accepted.</p>
<p>Shut down live server (Hyper-V guest).</p>
<p>Attach 960 to network and restart it.</p>
<p><strong>5:07pm</strong> Assign same static IP to server. Click OK at the warning that another adapter has that address and both should not be active at once. This was the cause of slow logon before.</p>
<p>Test the server:</p>
<p>a. Check Event Log &gt; Administrative Events.<br />
b. Check that Web server works. (May need to test from outside network—the wireless guest network at the client, which I’m using for my laptop, doesn’t bridge to wired network.)<br />
c. Check that Active directory works, including accepting a logon from a client, running group policy, and redirecting folders.<br />
d. Check that shared drives are available from a client. Try opening QuickBooks and other data on test server.<br />
e. On the test server run the diagnostics of the mail server program (<a href="http://www.mailenable.com/%27">MailEnable</a>) and make sure they pass. Log on to through webmail and test that you can successfully send an outbound email.<br />
f. Print a page to a network printer.</p>
<p><strong>5:27pm</strong> Testing of clients, etc. completed.</p>
<p>Now that network card has the correct IP, try a reboot. Still seemed like it lingered on Applying Computer Settings for too long. Logon prompt after 2 minutes 28 seconds. Actual login is fast:&nbsp; 14 seconds to the desktop.</p>
<h3>Workstation Restore</h3>
<p><strong>5:40pm</strong> Boot from WHS restore CD. Go through restore wizard. In Disk Management, delete volumes used by test restore, create 80GB C: volume.</p>
<p><strong>5:49pm</strong> Start restore. It says estimated time is 7 minutes, but bar is not moving.</p>
<p><strong>5:56pm</strong> Bar jumped a little, now shows estimated time 2 hours and 28 minutes, then 2 hours and 10 minutes.</p>
<p><strong>6:30pm</strong> Restore apparently hung:&nbsp; still shows 2 hours and 10 minutes.</p>
<p>Cancel restore. Disconnected temporary external USB drive. Reboot from WHS CD again.</p>
<p><strong>6:40pm</strong> Start restore using yesterday’s backup rather than today’s. Allow system to choose volumes. Seems stuck on estimating time.</p>
<p><strong>6:55pm</strong> Shows 6 hours 8 minutes remaining. Will leave on.</p>
<p>By <strong>10:00am</strong> the next morning, the machine was showing 4 days remaining on the restore. Strange, since this worked fine last year. I encountered the same slow restore issue a few months ago with a different machine. This time I know to just directly attach the 960’s drive to the Windows Home Server to do the restore. Details in <a href="http://social.microsoft.com/Forums/en-US/whssoftware/thread/e90cf4e4-439e-42bf-8bf9-f0083bd80d3c" target="_blank">this thread</a>. The restore took about 40 minutes and the 960 booted right up once I re-installed its drive.</p>
<h3>Duration</h3>
<p>So 12:55pm to 5:07pm when the server was ready for logon: 4.2 hours, less the 50 minutes I was away, leaves about 3.4 hours to actually get the server to a usable state. That’s two hours faster than previous years.</p>
<h3>Lessons Learned</h3>
<ul>
<li>Use the command line (<code>takeown</code>) to quickly get permissions to a backup drive.</li>
<li>If there is only one guest and you have a good backup of the guest, restoring only the guest (physical-to-virtual) saves time.</li>
<li>The new server will create a new network connection for the client’s network card. As soon as the restored server boots and you can log in, set a fixed IP address and DNS to match the real server’s IP and DNS. (DNS in this case points to itself since it’s a domain controller.) This will speed up logins, group policy, etc.</li>
<li>Since Windows Home Server restores have become problematic (though not impossible), before the next test, back up the client to a local USB drive.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/04/restore-a-hyper-v-server-to-an-optiplex-960-take-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding a Target Volume Using Wbadmin</title>
		<link>http://www.mcbsys.com/techblog/2013/03/adding-a-target-volume-using-wbadmin/</link>
		<comments>http://www.mcbsys.com/techblog/2013/03/adding-a-target-volume-using-wbadmin/#comments</comments>
		<pubDate>Mon, 25 Mar 2013 16:46:19 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[backup]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/03/adding-a-target-volume-using-wbadmin/</guid>
		<description><![CDATA[Option 3 of Microsoft KB 2009365 describes how to add a disk to Windows Server backup when other disks are offsite:&#160; you have to use the wbadmin command line tool. But the article does not explain how to add a volume, not a disk, as a target. If you follow the KB article and answer [...]]]></description>
				<content:encoded><![CDATA[<p>Option 3 of Microsoft KB <a href="http://support.microsoft.com/kb/2009365/en-us" target="_blank">2009365</a> describes how to add a disk to Windows Server backup when other disks are offsite:&#160; you have to use the <strong>wbadmin</strong> command line tool. But the article does not explain how to add a <em>volume</em>, not a disk, as a target.</p>
<p>  <span id="more-1442"></span>
<p>If you follow the KB article and answer Yes to all the command-line prompts, it will <strong><font color="#ff0000">delete all data</font></strong> on the specified disk when it reformats it for exclusive backup use. Fortunately I stopped it before then.</p>
<p>To add a volume as a backup target, let’s say drive F:, use this syntax:</p>
<p><code>wbadmin enable backup –addTarget:F:</code></p>
<p>If the volume does not have a drive letter, you can use <strong>mountvol</strong> to get the volume ID, then use this syntax:</p>
<p> <code>
<p>wbadmin enable backup</p>
<p>  <code>-addTarget:\\?\Volume{e16904af-9171-11e2-9109-001d23bdb7ff}</code></code>
<p>Note that <strong>mountvol</strong> will include a closing backslash (“\”) in the volume name. Do not include that last “\” in the <strong>wbadmin</strong> command.</p>
<p>More info:&#160; TechNet’s <a href="http://technet.microsoft.com/en-us/library/cc742130%28v=ws.10%29.aspx" target="_blank">wbadmin enable backup</a> documentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/03/adding-a-target-volume-using-wbadmin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Server 2012 Essentials Client Backup Cleanup Not Running</title>
		<link>http://www.mcbsys.com/techblog/2013/03/server-2012-essentials-client-backup-cleanup-not-running/</link>
		<comments>http://www.mcbsys.com/techblog/2013/03/server-2012-essentials-client-backup-cleanup-not-running/#comments</comments>
		<pubDate>Mon, 25 Mar 2013 16:08:37 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[server 2012]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/03/server-2012-essentials-client-backup-cleanup-not-running/</guid>
		<description><![CDATA[Windows Server 2012 Essentials is raising the following warning every 30 minutes: Warning Alert: CleanupOverdue is raised at SVR2012E. &#60;Title&#62; A scheduled cleanup task for Client Computer Backup did not finish successfully. &#60;Description&#62; A scheduled cleanup task for Client Computer Backup did not succeed on 3/9/2013 11:59:02 PM. The task has not succeeded in 15 [...]]]></description>
				<content:encoded><![CDATA[<p>Windows Server 2012 Essentials is raising the following warning every 30 minutes:</p>
<blockquote><p>Warning Alert: CleanupOverdue is raised at SVR2012E. &lt;Title&gt; A scheduled cleanup task for Client Computer Backup did not finish successfully. &lt;Description&gt; A scheduled cleanup task for Client Computer Backup did not succeed on 3/9/2013 11:59:02 PM. The task has not succeeded in 15 days.. &lt;AdditionalInfo&gt; .</p>
</blockquote>
<p>  <span id="more-1441"></span>
<p>In Task Scheduler, under Task Scheduler Library &gt; Microsoft &gt; Windows &gt; Windows Server, there is a weekly scheduled task named “Cleanup.” According to its description, “This task applies the backup retention policy to clean up the client computer backup database.” Sounds promising, but according to its History tab, it looks like it has never run:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/2012E-Client-Backup-Cleanup-1.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="2012E Client Backup Cleanup 1" border="0" alt="2012E Client Backup Cleanup 1" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/2012E-Client-Backup-Cleanup-1_thumb.png" width="554" height="318" /></a></p>
<p>Other tasks in the same section have history entries, so task scheduler history is enabled. Checking the Event Viewer, the TaskScheduler &gt; Operational log goes back 9 days, so it should definitely include a weekly task.</p>
<h3>Run Manually</h3>
<p>I decided to try running the task manually. It completed in about 7 minutes with Exit Code 0, and wrote the history as expected:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/2012E-Client-Backup-Cleanup-2.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="2012E Client Backup Cleanup 2" border="0" alt="2012E Client Backup Cleanup 2" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/2012E-Client-Backup-Cleanup-2_thumb.png" width="244" height="209" /></a></p>
<h3>What Happened?</h3>
<p>I don’t know. The original message said that the cleanup failed on 3/9 11:59pm. But no issues were reported in my 3/10 server report. </p>
<p>I’ll just have to check this next week to see if the scheduled task is running as scheduled.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/03/server-2012-essentials-client-backup-cleanup-not-running/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Plugable UD-160-A Display Issues</title>
		<link>http://www.mcbsys.com/techblog/2013/03/plugable-ud-160-a-display-issues/</link>
		<comments>http://www.mcbsys.com/techblog/2013/03/plugable-ud-160-a-display-issues/#comments</comments>
		<pubDate>Sat, 23 Mar 2013 17:41:23 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/03/plugable-ud-160-a-display-issues/</guid>
		<description><![CDATA[I recently purchased a Plugable UD-160-A Universal Docking Station so I could add a third display in addition to my laptop’s display and my primary monitor. I was experiencing some odd transparency/overlap issues with some apps on the monitor connected to the UD-160, and (easier to duplicate), Windows Aero Peek was not working—I was only [...]]]></description>
				<content:encoded><![CDATA[<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 10px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="Plugable UD-160-A" border="0" alt="Plugable UD-160-A" align="left" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/Plugable-UD-160-A1.jpg" width="81" height="128" />I recently purchased a <a href="http://plugable.com/products/UD-160-A" target="_blank">Plugable UD-160-A Universal Docking Station</a> so I could add a third display in addition to my laptop’s display and my primary monitor. I was experiencing some odd transparency/overlap issues with some apps on the monitor connected to the UD-160, and (easier to duplicate), Windows Aero Peek was not working—I was only seeing the program window names when I hovered over icons in the taskbar.</p>
<p>  <span id="more-1431"></span>
<p>The Windows Aero troubleshooter said that the Desktop Window Manager was disabled, but it was not. Restarting that service had no effect other than to reproduce the Desktop Window Manager crash and generate this error in the Application event log:</p>
<p>Log Name:&#160;&#160;&#160;&#160;&#160; Application   <br />Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; Desktop Window Manager    <br />Event ID:&#160;&#160;&#160;&#160;&#160; 9020    <br />Level:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Error    <br />Computer:&#160;&#160;&#160;&#160;&#160; WIN7X64PC.mydomain.local    <br />Description:&#160; The Desktop Window Manager has encountered a fatal error (0&#215;88980406)</p>
<h3>DisplayLink</h3>
<p>The UD-160 uses a DisplayLink chip. When I typed “aero” into <a href="http://plugable.com/search?q=aero" target="_blank">Plugable’s custom Google search</a>, it led me to <a href="http://www.displaylink.org/forum/showthread.php?t=124" target="_blank">this 2009 article</a> on the DisplayLink forum. In contrast to that user, my system has integrated Intel HD Graphics. Windows 7 tells me the driver software is up to date. I was not looking forward to trying the suggested fix of forcing the installation of Vista drivers.</p>
<h3>Windows 7 Platform Update</h3>
<p>Then I found <a href="http://social.technet.microsoft.com/Forums/en-US/w7itproperf/thread/8631b379-6001-41b7-95b6-7633b397fc0a" target="_blank">this article</a> started by a user with a totally different configuration than mine but who was getting the same Desktop Window Manager crash. The accepted answer by “omnicosmic” is to uninstall the <strong>Platform Update for Windows 7 x64-Edition (KB2670838)</strong>. That did in fact install on my system in February 2013 (though I suppressed the Internet Explorer 10 upgrade). After uninstalling that update and rebooting, Aero Peek is working again!</p>
<h3>New Problem:&#160; Blurry Text</h3>
<p>Unfortunately, I now have a new, and arguably worse, problem:&#160; windows on the monitor connected to the US-160 go fuzzy when there is any activity. For example, if I have Firefox on that monitor and refresh a page, while the page is loading. all the text is blurred. When the page finishes loading, the text is clear again. Even dragging the window around blurs the text until I stop moving the window.</p>
<p>Back to the Plugable search and I came up with <a href="http://www.displaylink.org/forum/showthread.php?t=278" target="_blank">Extended monitor repeatedly blurs</a> on the DisplayLink forum. DisplayLink team member Wim replied, </p>
<blockquote><p>This is due to “Optimize for Video” being enabled in the DisplayLink GUI. If you disable “Optimize for Video”, then this will not occur.</p>
</blockquote>
<p>Sure enough, after using the DisplayLink icon in the system tray to uncheck Optimize for Video, the text no longer goes fuzzy.</p>
<p>It seemed odd that I would have to <em>disable</em> video optimization to get video to work right, but it made more sense after reading Wim’s explanation <a href="http://www.displaylink.org/forum/showthread.php?t=490" target="_blank">here</a>:</p>
<blockquote><p>“Optimise for Video” lowers the video quality so there is less data to send. This means we can keep the framerate high, so your video playback looks smoother. The quality of the video will be slightly lower than watching it on the primary screen, but at least the framerate will be higher, which is more important when sitting back watching a film.</p>
</blockquote>
<p>Maybe it should be called Optimize for <em>Streaming</em> Video—it’s not something you want for routine computer use. </p>
<p>Now I wonder if Optimize for Video was the problem with Aero Peek as well…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/03/plugable-ud-160-a-display-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Failed to Surface VHD for Windows Server Backup</title>
		<link>http://www.mcbsys.com/techblog/2013/03/failed-to-surface-vhd-for-windows-server-backup/</link>
		<comments>http://www.mcbsys.com/techblog/2013/03/failed-to-surface-vhd-for-windows-server-backup/#comments</comments>
		<pubDate>Mon, 11 Mar 2013 19:26:13 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[backup]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/03/failed-to-surface-vhd-for-windows-server-backup/</guid>
		<description><![CDATA[Yes, though “failed to surface” sounds like a problem for a whale or a submarine, it applies to Virtual Hard Disks as well. I have a Windows Server 2008R2 Hyper-V host running a 2008R2 guest. The guest uses Windows Server Backup, targeting a VHD on the host. Yesterday I swapped the removable physical drive on [...]]]></description>
				<content:encoded><![CDATA[<p>Yes, though “failed to surface” sounds like a problem for a whale or a submarine, it applies to Virtual Hard Disks as well.</p>
<p>I have a Windows Server 2008R2 Hyper-V host running a 2008R2 guest. The guest uses Windows Server Backup, targeting a VHD on the host. Yesterday I swapped the removable physical drive on the host that contains the VHD for the guest. The name of the VHD file was the same, and when I logged on to the guest, I could browse the backup drive and see the WindowsImageBackup folder. But last night’s guest backup failed.</p>
<p>  <span id="more-1430"></span>
<p>The error messages are buried deep in the Applications and Services even logs. In the guest, this message appeared:</p>
<p>Log Name:&#160;&#160;&#160;&#160;&#160; Microsoft-Windows-Backup   <br />Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; Microsoft-Windows-Backup    <br />Date:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 3/10/2013 11:00:12 PM    <br />Event ID:&#160;&#160;&#160;&#160;&#160; 19    <br />Level:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Error    <br />User:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SYSTEM    <br />Computer:&#160;&#160;&#160;&#160;&#160; HVGUEST.mydomain.com    <br />Description:&#160;&#160; The backup operation attempted at &#8216;?2013?-?03?-?11T06:00:12.019877300Z&#8217; has failed to start, error code &#8217;2147942402&#8242;. Please review the event details for a solution, and then rerun the backup operation once the issue is resolved.</p>
<p>In the host, these two messages appeared:</p>
<p>Log Name:&#160;&#160;&#160;&#160;&#160; Microsoft-Windows-VHDMP/Operational   <br />Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; Microsoft-Windows-VHDMP    <br />Date:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 3/10/2013 11:00:01 PM    <br />Event ID:&#160;&#160;&#160;&#160;&#160; 6    <br />Level:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Error    <br />User:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SYSTEM    <br />Computer:&#160;&#160;&#160;&#160;&#160; HVHOST    <br />Description:&#160;&#160; Failed to read data from VHD G:\Virtual Machines\HVGUEST\Virtual Hard Disks\HVGUEST-Backup.vhd. Error status 0xC000026E.</p>
<p>Log Name:&#160;&#160;&#160;&#160;&#160; Microsoft-Windows-VHDMP/Operational   <br />Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; Microsoft-Windows-VHDMP    <br />Date:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 3/10/2013 11:00:01 PM    <br />Event ID:&#160;&#160;&#160;&#160;&#160; 4    <br />Level:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Error    <br />User:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SYSTEM    <br />Computer:&#160;&#160;&#160;&#160;&#160; HVHOST    <br />Description:&#160;&#160; Failed to surface VHD G:\Virtual Machines\HVGUEST\Virtual Hard Disks\HVGUEST-Backup.vhd. Surface attempt was cancelled.</p>
<h3>Manual Backup Failure</h3>
<p>I tried running the guest backup manually but it failed with this “cannot find the file specified” error:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/Failed-to-Surface-VHD.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Failed to Surface VHD" border="0" alt="Failed to Surface VHD" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/Failed-to-Surface-VHD_thumb.png" width="354" height="292" /></a></p>
<p>Interestingly, this did not generate errors in the event logs on the guest or host.</p>
<h3>Solution</h3>
<p>The solution turned out to be quite simple: in the host’s Hyper-V management console, I went to the guest’s settings, removed the VHD in question, saved the settings, then re-added the VHD and saved again. Because the VHD is added as a SCSI drive, I was able to to do this without shutting down the guest. I noticed that the volume name in the guest changed. Once I had made that change, I was able to successfully run a backup in the guest.</p>
<p>My guess is that Windows Server Backup is targeting a volume, not just a drive, so it couldn’t “see” the new VHD until it was explicitly added to the VM.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/03/failed-to-surface-vhd-for-windows-server-backup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The RPCHD Service</title>
		<link>http://www.mcbsys.com/techblog/2013/03/the-rpchd-service/</link>
		<comments>http://www.mcbsys.com/techblog/2013/03/the-rpchd-service/#comments</comments>
		<pubDate>Tue, 05 Mar 2013 17:56:49 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[backup]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/03/the-rpchd-service/</guid>
		<description><![CDATA[I’ve been testing IDrive as an online backup option. Yesterday a chat support rep asked needed to look at my system, and at his request I downloaded and installed “RemoteSupportHost_317082.exe”, apparently provided by remotepc.net. I was not particularly surprised to find that this started a UNC server. I was a little surprised to find that [...]]]></description>
				<content:encoded><![CDATA[<p>I’ve been testing <a href="www.idrive.com" target="_blank">IDrive</a> as an online backup option. Yesterday a chat support rep asked needed to look at my system, and at his request I downloaded and installed “RemoteSupportHost_317082.exe”, apparently provided by remotepc.net. I was not particularly surprised to find that this started a UNC server. I was a little surprised to find that it allowed the rep to control BOTH of my screens, and that I did not have to grant permission for control (as opposed to viewing). But now I see that it installed an “RPCHD service” and did not remove it upon completion.</p>
<p>  <span id="more-1426"></span>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/RPCHD-service.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="RPCHD service" border="0" alt="RPCHD service" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/RPCHD-service_thumb.png" width="354" height="398" /></a></p>
<p>I noticed this from event log monitoring today. I see the following events in the System event log:</p>
<p>Log Name:&#160;&#160;&#160;&#160;&#160; System   <br />Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; Service Control Manager    <br />Date:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 3/4/2013 1:32:43 PM    <br />Event ID:&#160;&#160;&#160;&#160;&#160; 7045    <br />Level:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Information    <br />Description:    <br />A service was installed in the system.    <br />Service Name:&#160; RPCHD    <br />Service File Name:&#160; Ú\Dummy.exe    <br />Service Type:&#160; user mode service    <br />Service Start Type:&#160; demand start    <br />Service Account:&#160; LocalSystem</p>
<p>Log Name:&#160;&#160;&#160;&#160;&#160; System   <br />Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; Service Control Manager    <br />Date:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 3/4/2013 1:32:43 PM    <br />Event ID:&#160;&#160;&#160;&#160;&#160; 7030    <br />Description:    <br />The RPCHD service is marked as an interactive service.&#160; However, the system is configured to not allow interactive services.&#160; This service may not function properly.</p>
<p>Log Name:&#160;&#160;&#160;&#160;&#160; System   <br />Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; Service Control Manager    <br />Date:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 3/4/2013 1:32:43 PM    <br />Event ID:&#160;&#160;&#160;&#160;&#160; 7040    <br />Description:    <br />The start type of the RPCHD service was changed from demand start to auto start.</p>
<p>Log Name:&#160;&#160;&#160;&#160;&#160; System   <br />Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; Service Control Manager    <br />Date:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 3/4/2013 1:32:43 PM    <br />Event ID:&#160;&#160;&#160;&#160;&#160; 7000    <br />Description:    <br />The RPCHD service failed to start due to the following error:     <br />The system cannot find the file specified.</p>
<p>Note that this system does not have a U: drive, much less a Ú drive. I do wonder what the service would do if it was configured correctly. RPCHD might be Remote Procedure Call Hard Drive, perhaps a remote disk access program.</p>
<p>I did a full system scan with Malwarebytes and no infection was found. I don’t think this is malicious. However, I don’t want it on my system. I’m going to do a System Restore to before the support call, which should remove the service.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/03/the-rpchd-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Registry Permissions after Domain Change</title>
		<link>http://www.mcbsys.com/techblog/2013/03/registry-permissions-after-domain-change/</link>
		<comments>http://www.mcbsys.com/techblog/2013/03/registry-permissions-after-domain-change/#comments</comments>
		<pubDate>Sat, 02 Mar 2013 02:18:25 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[permissions]]></category>
		<category><![CDATA[server 2012]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/03/registry-permissions-after-domain-change/</guid>
		<description><![CDATA[A couple months ago, as part of migrating to Server 2012 Essentials, I created a new Windows domain for my network with the same name as the old domain. I used the ForensIT User Profile Wizard to migrate user profiles. Overall that worked great, but there have been a couple of issues. I blogged about [...]]]></description>
				<content:encoded><![CDATA[<p>A couple months ago, as part of migrating to Server 2012 Essentials, I created a new Windows domain for my network with the same name as the old domain. I used the <a href="http://www.forensit.com/domain-migration.html">ForensIT User Profile Wizard</a> to migrate user profiles. Overall that worked great, but there have been a couple of issues. I blogged about one <a href="http://www.mcbsys.com/techblog/2012/12/cant-sign-code-after-changing-windows-domain/" target="_blank">here</a>. Today I think I cracked another one.</p>
<p>  <span id="more-1420"></span>
<p>I was trying to install the SkyDrive connector on my 64-bit Windows 7 machine, but it failed with this error:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/Registry-permissions-after-domain-change-1.png.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Registry permissions after domain change 1.png" border="0" alt="Registry permissions after domain change 1.png" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/Registry-permissions-after-domain-change-1.png_thumb.png" width="370" height="217" /></a></p>
<p>A web search brought me to <a href="http://answers.microsoft.com/en-us/windowslive/forum/skydrive-wlsettings/hi-cannot-install-skydrive-on-my-laptop/ad1a360f-ede8-4297-afbf-1324ae564a88" target="_blank">this post</a>, where the June 11, 2012 reply by forum moderator Jonathan_V was spot on. My SkyDrive setup log contained this error message:</p>
<p><code>!ERROR! (0x80070005) RegCreateKeyExW() failed for Key</code> <code>Software\Classes\Interface\{F0AF7C30-EAE4-4644-961D-54E6E28708D6} with Value</code> <code>ISyncEngineCOMServer and use64BitRegistryView = 1</code></p>
<p>When I checked the permissions on </p>
<p><code>HKEY_CURRENT_USER\Software\Classes</code></p>
<p>it correctly shows that my logon (a domain admin account) has Full Control. However when I go down one level to </p>
<p><code>HKEY_CURRENT_USER\Software\Classes\Interfaces</code></p>
<p>I see that a) this key’s permissions are not inherited and b) only the SID for my account in the old domain is shown; my new logon is not listed:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/Registry-permissions-after-domain-change-2.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Registry permissions after domain change 2" border="0" alt="Registry permissions after domain change 2" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/Registry-permissions-after-domain-change-2_thumb.png" width="354" height="303" /></a></p>
<p>Following Jonathan_V’s advice, I gave my logon with Full Control on that key and voilà! I was able to install the SkyDrive connector.</p>
<h3></h3>
<h3>Inconsistent Permissions</h3>
<p>Oddly, I just checked the permissions on a 32-bit Windows 7 virtual machine, and its permissions are quite different:</p>
<ul>
<li><code>\Classes</code> does not list a domain user at all, simply granting the Administrators group Full Control and the Users group Read permission.&#160; </li>
<li><code>\Classes\Interface</code> just inherits from <code>\Classes</code>.</li>
</ul>
<p>Sure enough, SkyDrive installs fine in this VM. </p>
<p>Since my logon <em>and</em> the Domain Admins group are members of the local Administrators group on both computers, I don’t understand why that wasn’t enough to grant permissions on the first machine to write to <code>\Classes\Interface</code>. UAC is set to Notify on both machines.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/03/registry-permissions-after-domain-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2012 Essentials Internet Connection Errors</title>
		<link>http://www.mcbsys.com/techblog/2013/02/2012-essentials-internet-connection-errors/</link>
		<comments>http://www.mcbsys.com/techblog/2013/02/2012-essentials-internet-connection-errors/#comments</comments>
		<pubDate>Mon, 25 Feb 2013 17:13:35 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[server 2012]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/02/2012-essentials-internet-connection-errors/</guid>
		<description><![CDATA[On my Server 2012 Essentials virtual machine, I was getting five or six messages every day telling me that the server is not connected to the Internet, even though it is. The messages appeared in a balloon alert in my system tray (from the 2012 Essentials Launchpad) as well as in the event log: Log [...]]]></description>
				<content:encoded><![CDATA[<p>On my Server 2012 Essentials virtual machine, I was getting five or six messages every day telling me that the server is not connected to the Internet, even though it is. The messages appeared in a balloon alert in my system tray (from the 2012 Essentials Launchpad) as well as in the event log:</p>
<p>  <span id="more-1407"></span> Log Name:&#160;&#160;&#160;&#160;&#160; Microsoft-Windows-Windows Server/Admin   <br />Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; Microsoft-Windows-Windows Server   <br />Event ID:&#160;&#160;&#160;&#160;&#160; 1280   <br />Level:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Error   <br />User:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SYSTEM   <br />Computer:&#160;&#160;&#160;&#160;&#160; SVR2012E.mydomain.local   <br />Description:&#160;&#160; Critical Alert: Critical Alert: InternetConnectivity is raised at SVR2012E. &lt;Title&gt; The server is not connected to the Internet. &lt;Description&gt; The server is not connected to the Internet. To access websites, you must ensure that the server is connected to the Internet.
<p>Also in the event log:</p>
<p>Log Name:&#160;&#160;&#160;&#160;&#160; Microsoft-Windows-DeviceSetupManager/Admin    <br />Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; Microsoft-Windows-DeviceSetupManager     <br />Event ID:&#160;&#160;&#160;&#160;&#160; 202     <br />Level:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Warning     <br />User:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SYSTEM     <br />Computer:&#160;&#160;&#160;&#160;&#160; SVR2012E.mydomain.local     <br />Description:&#160;&#160; The Network List Manager reports no connectivity to the internet.</p>
<h3>Analysis and, Hopefully, a Solution</h3>
<p>I originally thought maybe there were transient errors in my Internet connection, so I just ignored this for several months. Eventually it became annoying enough to pursue.</p>
<p>First, note that the Windows Server Event ID 1280 is apparently used for <em>any</em> error in that log. I also have Event ID 1280 with text about low disk space on a workstation. So searching on Event ID 1280 is not an accurate way to find solutions to the Internet connection issue.</p>
<p>However, searching on “The server is not connected to the Internet” does bring back numerous results. It was <a href="http://social.technet.microsoft.com/Forums/en-US/smallbusinessserver2011essentials/thread/3515b385-1c33-4834-bf0d-e52c0ecdd6d0/" target="_blank">this article</a> that mentioned DNS Forwarders. Aha, I thought; I seem to remember that I had removed DNS forwarders back on SBS 2008, relying solely on root hints. Could that help here?</p>
<p>My current setup has one forwarder pointing to my router. That must be how the Essentials setup wizard configured it:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/02/Server-2012E-DNS-Forwarders.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Server 2012E DNS Forwarders" border="0" alt="Server 2012E DNS Forwarders" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/02/Server-2012E-DNS-Forwarders_thumb.png" width="354" height="295" /></a></p>
<p>I couldn’t find any clear guidance on whether this setup is required for Server 2012 Essentials. Well, let’s find out. I deleted the DNS forwarder and, loosely following <a href="http://kwsupport.com/2012/10/updating-dns-root-hints-on-sbs-2011/" target="_blank">this article</a>, updated the root hints. (It was interesting that this added IPv6 addresses for some root hints.) Since this, the messages about the server not being connected to the Internet have not appeared.</p>
<h3><span style="color: #0000ff">Update February 28, 2013 – Not Fixed?</span></h3>
<p>I&#8217;m still seeing some &quot;The server is not connected to the Internet&quot; messages.</p>
<p>Wait, the forwarder to the router is back! How did that happen?</p>
<p>Sean Daniel talks <a href="http://sbs.seandaniel.com/2011/06/basics-of-local-dns-for-small-business.html" target="_blank">here</a> about the wacky DNS configuration of 2011 Essentials that apparently applies to 2012 Essentials as well. However in the comments of that article, he states that &quot;the standard server DNS server will obtain forwarders on install,&quot; i.e. this auto-population of forwarders is apparently a standard DNS &quot;feature.&quot; </p>
<p>Now that I think about it, no wonder it&#8217;s causing problems, because the first entry in my router&#8217;s DNS points to the 2012E server, and the server points to the router as a forwarder, so it becomes an infinite loop.</p>
<p>I can&#8217;t find any references about DNS automatically finding and adding the router as a forwarder. I&#8217;m pretty sure that didn&#8217;t happen in SBS 2008. I tried adding my ISP&#8217;s DNS ahead of the router in the list of forwarders, but after a reboot, the router is back at the top of the list.</p>
<p>Robert Pearman has published an <a href="http://titlerequired.com/2012/05/04/quick-fix-dns-forwarders-sbs-2011-essentials/" target="_self">article</a> on using a scheduled task to repeatedly remove change or remove the forwarders. Do I really have a schedule a whack-a-mole task to clobber forwarders that keep reappearing?</p>
<p>Maybe I should remove the Server 2012 Essentials IP from the router’s DNS list, and let the Windows Server LAN Configuration service on the clients force DNS to point to the server’s IP when the clients are on the local LAN. I guess that’s the way it’s “supposed” to work. That should theoretically stop the circular DNS pinging that is going on now, but I ‘m worried about hitting DNS resolution issues that others have encountered.</p>
<p><font color="#0000ff">Update to the update:</font>&#160; On Windows XP and Server 2003 clients, there is no 2012 Essentials connector, hence no Windows Server LAN Configuration service, so you’ll have to manually set the DNS to point to the server (which better have a fixed IP address).</p>
<h3><font color="#0000ff">Update March 2, 2013 – Fixed, I Think</font></h3>
<p>Removing the server’s IP from the list of DNS servers in the router seems to have solved this issue, as well as another issue I was having with a Windows 7 virtual machine where 3CX PBX software services were not starting properly (details <a href="www.3cx.com/forums/3cx-11-in-vm-service-got-signal-to-stop-on-reboot-33433.html" target="_blank">here</a>). </p>
<p>One strange problem was that after removing the server from the router’s DNS list, I could not use Remote Desktop to connect to the client (which runs as a virtual machine). It kept telling me the clock was out of sync, which it was not:</p>
<p>“Remote Desktop cannot verify the identity of the remote computer because there is a time or date difference between your computer and the remote computer.”</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/Remote-Desktop-Issue.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Remote Desktop Issue" border="0" alt="Remote Desktop Issue" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/03/Remote-Desktop-Issue_thumb.png" width="554" height="166" /></a></p>
<p>I had to go to the Hyper-V host and connect to the virtual machine to get in. When I did, I saw that the network adapter’s DNS was still set to Automatic even though the Windows Server LAN Configuration service was running. I had to restart that service to get it to populate the client’s DNS with the server’s IP. Once that was done, I was able to connect via Remote Desktop and the 3CX services start automatically on boot.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/02/2012-essentials-internet-connection-errors/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DFSR event 2013 during Windows Server Backup</title>
		<link>http://www.mcbsys.com/techblog/2013/02/dfsr-event-2013-during-windows-server-backup/</link>
		<comments>http://www.mcbsys.com/techblog/2013/02/dfsr-event-2013-during-windows-server-backup/#comments</comments>
		<pubDate>Fri, 01 Feb 2013 20:33:43 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[server 2012]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/02/dfsr-event-2013-during-windows-server-backup/</guid>
		<description><![CDATA[On Server 2012 Essentials, I run the native Windows Server Backup two times per day. I get the warning message below one time during each backup. The message appears 32 seconds after the backup starts. Log Name:&#160;&#160;&#160;&#160;&#160; DFS Replication Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; DFSR Event ID:&#160;&#160;&#160;&#160;&#160; 2213 Level:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Warning Description: The DFS Replication service stopped replication on volume [...]]]></description>
				<content:encoded><![CDATA[<p>On Server 2012 Essentials, I run the native Windows Server Backup two times per day. I get the warning message below one time during each backup. The message appears 32 seconds after the backup starts.</p>
<p>  <span id="more-1399"></span><br />
<blockquote>
<p>Log Name:&#160;&#160;&#160;&#160;&#160; DFS Replication     <br />Source:&#160;&#160;&#160;&#160;&#160;&#160;&#160; DFSR      <br />Event ID:&#160;&#160;&#160;&#160;&#160; 2213      <br />Level:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Warning      <br />Description:      <br />The DFS Replication service stopped replication on volume C:. This occurs when a DFSR JET database is not shut down cleanly and Auto Recovery is disabled. To resolve this issue, back up the files in the affected replicated folders, and then use the ResumeReplication WMI method to resume replication.       <br />Additional Information:       <br />Volume: C:       <br />GUID: F83647D3-3447-11E2-93ED-806E6F6E6963 </p>
<p>Recovery Steps </p>
<p>1. Back up the files in all replicated folders on the volume. Failure to do so may result in data loss due to unexpected conflict resolution during the recovery of the replicated folders. </p>
<p>2. To resume the replication for this volume, use the WMI method ResumeReplication of the DfsrVolumeConfig class. For example, from an elevated command prompt, type the following command: </p>
<p>wmic /namespace:\\root\microsoftdfs path dfsrVolumeConfig where volumeGuid=&quot;F83647D3-3447-11E2-93ED-806E6F6E6963&quot; call ResumeReplication </p>
<p>For more information, see <a href="http://support.microsoft.com/kb/2663685">http://support.microsoft.com/kb/2663685</a>.</p>
</blockquote>
<p>The DFSR warning is included every day in the Health Report email under &quot;Critical Errors&quot;.</p>
<h3>Analysis</h3>
<p>To my knowledge, I am not using DFS Replication. However, working with Microsoft partner support, I learned that DFS Replication is running on Server 2012 Essentials by default, and that Windows Server Backup will back up the DFSR database a during backup.</p>
<p>The rep asked about the value of this registry key:</p>
<p>HKLM\System\CurrentControlSet\Services\DFSR\Parameters\StopReplicationOnAutoRecovery</p>
<p>which on my server is set to 1.</p>
<h3>The Fix</h3>
<p>Partner support recommended running the <strong>wmic</strong> command shown in the event description. Once I did that, the error stopped and has not returned in over a month.</p>
<p>Note that although the event description refers to Volume C:, the GUID F83647D3-3447-11E2-93ED-806E6F6E6963 is actually the 350MB System Reserved area at the beginning of the volume (no drive letter). Why that System Reserved area has to be configured for replication, or why replication is installed by default in the first place, I don’t know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/02/dfsr-event-2013-during-windows-server-backup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Red X&#8217;s on Network Shares, UAC Prompts</title>
		<link>http://www.mcbsys.com/techblog/2013/01/red-xs-on-network-shares-uac-prompts/</link>
		<comments>http://www.mcbsys.com/techblog/2013/01/red-xs-on-network-shares-uac-prompts/#comments</comments>
		<pubDate>Wed, 16 Jan 2013 02:43:48 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/01/red-xs-on-network-shares-uac-prompts/</guid>
		<description><![CDATA[My Windows 7 desktop was showing red X’s next to each mapped network drive. Clicking on the drive let me browse the files, but the Red X remained. When I try to run Microsoft programs like regedit.exe, a UAC prompt told me the Publisher was Unknown: When I tried to run programs stored on the [...]]]></description>
				<content:encoded><![CDATA[<p>My Windows 7 desktop was showing red X’s next to each mapped network drive. Clicking on the drive let me browse the files, but the Red X remained.</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Network-UAC-issue-1.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Network UAC issue 1" border="0" alt="Network UAC issue 1" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Network-UAC-issue-1_thumb.png" width="164" height="244" /></a></p>
<p>  <span id="more-1394"></span>
<p>When I try to run Microsoft programs like <strong>regedit.exe</strong>, a UAC prompt told me the Publisher was Unknown:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Network-UAC-issue-2.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Network UAC issue 2" border="0" alt="Network UAC issue 2" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Network-UAC-issue-2_thumb.png" width="244" height="140" /></a></p>
<p>When I tried to run programs stored on the network, I also got UAC warnings:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Network-UAC-issue-3.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Network UAC issue 3" border="0" alt="Network UAC issue 3" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Network-UAC-issue-3_thumb.png" width="244" height="175" /></a></p>
<p>Finally I remembered that this all depends on a service, but which one? Start <strong>services.msc</strong> (click through the UAC warning), click <strong>Startup Type</strong> to sort by that column, and check for services that should start Automatically but are not running. Aha, <strong>Cryptographic Services</strong> looks promising—check out the Description:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Network-UAC-issue-4.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Network UAC issue 4" border="0" alt="Network UAC issue 4" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Network-UAC-issue-4_thumb.png" width="554" height="385" /></a></p>
<p>After I started that service, the UAC prompts for Microsoft programs were immediately corrected to show the Publisher:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Network-UAC-issue-5.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Network UAC issue 5" border="0" alt="Network UAC issue 5" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Network-UAC-issue-5_thumb.png" width="244" height="131" /></a></p>
<p>However, I still had the the red X’s next to my network drives. Maybe that’s due to another service. <strong>Network Location Awareness</strong> was already running; restarting it didn’t help. Okay, how about I just log off and back on without rebooting? Voila, accessible network drives, and no UAC prompt starting network programs:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Network-UAC-issue-6.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Network UAC issue 6" border="0" alt="Network UAC issue 6" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Network-UAC-issue-6_thumb.png" width="162" height="244" /></a></p>
<p>Now the question is, why or how did <strong>Cryptographic Services</strong> get stopped in the first place?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/01/red-xs-on-network-shares-uac-prompts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Find Changes in GoldMine Data</title>
		<link>http://www.mcbsys.com/techblog/2013/01/find-changes-in-goldmine-data/</link>
		<comments>http://www.mcbsys.com/techblog/2013/01/find-changes-in-goldmine-data/#comments</comments>
		<pubDate>Fri, 04 Jan 2013 01:50:33 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[GoldMine]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/01/find-changes-in-goldmine-data/</guid>
		<description><![CDATA[The GoldMine CRM system has a powerful synchronization capability sends changed data to remote sites. But what if you need to review changes on your local machine? You can list changes to individual records using Sync Spy. On recent versions, go to the record you are interested in, then go to Tools &#62; Synchronization &#62; [...]]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://www.goldmine.com" target="_blank">GoldMine</a> CRM system has a powerful synchronization capability sends changed data to remote sites. But what if you need to review changes on your local machine?</p>
<p>  <span id="more-1377"></span>
<p>You can list changes to individual records using <strong>Sync Spy</strong>. On recent versions, go to the record you are interested in, then go to <strong>Tools &gt; Synchronization &gt; Sync Spy</strong>:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/GoldMine-Sync-Spy.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="GoldMine Sync Spy" border="0" alt="GoldMine Sync Spy" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/GoldMine-Sync-Spy_thumb.png" width="354" height="198" /></a></p>
<p>In older versions of GoldMine, this was under <strong>Tools &gt; Sync Spy</strong>.</p>
<p>But what if you need to see <em>all</em> changes since a certain date?</p>
<h3>SQL to the Rescue</h3>
<p>I recently had this need and wrote a “quick-and-dirty” SQL script to list changes to the primary GoldMine tables since a certain date and time, based on the sync logs. The tables are Contact1, Contact2, ContSupp, ContHist, and Cal. </p>
<p><strong>Note</strong> There are lots of other tables; for example, changes to Lookup will not be listed. Also, only adds and updates are listed; deletions are not shown. </p>
<p><strong><font color="#ff0000">Caution</font></strong> The changes identified seem accurate to me, but there’s no guarantee that the script catches all changes or lists them correctly. Use at your own risk!</p>
<h4>Get the Cutoff LogStamp</h4>
<p>The script uses the sync logs to identify changes. The sync logs store the date and time that the entry was created in a special format. Before you run the script, you must convert the date and time to this special format using GoldMine.</p>
<p><strong>Example</strong> You want to list all changes since December 20, 2012 at 12:00am. In GoldMine, go to <strong>Tools &gt; GoldSync Administration</strong>. Right-click anywhere in the list of <strong>Site Groups</strong> and <strong>Servers </strong>and select <strong>Date/Time Stamp Conversion…</strong>:</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="GoldMine Sync Stamp Conversion 1" border="0" alt="GoldMine Sync Stamp Conversion 1" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/GoldMine-Sync-Stamp-Conversion-1.png" width="295" height="192" /></p>
<p>In the <strong>Date/Time Stamp Conversion</strong> dialog, enter the date and time and press <strong>Convert</strong>:</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="GoldMine Sync Stamp Conversion 2" border="0" alt="GoldMine Sync Stamp Conversion 2" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/GoldMine-Sync-Stamp-Conversion-2.png" width="490" height="325" /></p>
<p>Here we see that 12/20/2012 12:00am converts to <code>GNDI4G0</code>. This is the value we need for the script.</p>
<h4>Run the Script</h4>
<p>Here is the script. Modify the <code>set</code> statement to use the converted value from above.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:69858f0d-1714-43d0-894f-40d4c9f52560" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: sql; collapse: false; pad-line-numbers: true; title: ; notranslate">
-- Find GoldMine changes since a certain date

declare @SinceLogStamp as varchar(7)

-- Convert the desired date/time cutoff using GoldMine.
-- In the GoldSync Administration Center, right-click and select Date/Time Stamp Conversion.
-- Fill in the converted value here:
set @SinceLogStamp = 'GNDI4G0' -- 12/20/2012 12:00am

-- Contact1
select C1.Company, C1.Contact, C1.LastDate, TL.LogStamp, TL.TableID, TL.FieldName, C1.AccountNo, C1.RecID
from Contact1 C1
inner join ContTLog TL
  on C1.RecID = TL.FRecID
where TL.LogStamp &gt;= @SinceLogStamp
  and TL.FieldName not in ('LASTDATE','LASTTIME','LASTUSER','LASTCONTON','LASTCONTAT','PREVRESULT','MEETDATEON','MEETTIMEAT','NEXTACTION','ACTIONON','CALLBACKON')
order by C1.Company, C1.Contact, TL.LogStamp

-- Contact2
select C1.Company, C1.Contact, C1.LastDate, TL.LogStamp, TL.TableID, TL.FieldName, C1.AccountNo, C2.RecID 
from Contact1 C1
inner join Contact2 C2
  on C1.AccountNo = C2.AccountNo
inner join ContTLog TL
  on C2.RecID = TL.FRecID
where TL.LogStamp &gt;= @SinceLogStamp
  and TL.TableID = '''' -- Contact2 TableID is a single quotation mark
  and TL.FieldName not in ('LASTDATE','LASTTIME','LASTUSER','LASTCONTON','LASTCONTAT','PREVRESULT','MEETDATEON','MEETTIMEAT','NEXTACTION','ACTIONON','CALLBACKON')
order by C1.Company, C1.Contact, TL.LogStamp

-- ContSupp
select C1.Company, C1.Contact, CS.RecType, CS.Contact as ContSuppContact, CS.ContSupRef, C1.LastDate, TL.LogStamp, TL.TableID, TL.FieldName, C1.AccountNo, CS.RecID 
from Contact1 C1
inner join ContSupp CS
  on C1.AccountNo = CS.AccountNo
inner join ContTLog TL
  on CS.RecID = TL.FRecID
where TL.LogStamp &gt;= @SinceLogStamp
  and TL.FieldName not in ('LASTDATE','LASTTIME')
order by C1.Company, C1.Contact, TL.LogStamp

-- ContHist
select C1.Company, C1.Contact, CH.RecType, CH.Ref, CH.OnDate, CH.OnTime, TL.LogStamp, TL.TableID, TL.FieldName, C1.AccountNo, CH.RecID 
from Contact1 C1
inner join ContHist CH
  on C1.AccountNo = CH.AccountNo
inner join ContTLog TL
  on CH.RecID = TL.FRecID
where TL.LogStamp &gt;= @SinceLogStamp
  and TL.FieldName not in ('LASTDATE','LASTTIME')
order by C1.Company, C1.Contact, CH.OnDate, CH.OnTime, TL.LogStamp

-- Cal
select C1.Company, C1.Contact, Cal.Ref, Cal.OnDate, Cal.OnTime, Cal.AlarmDate, Cal.AlarmTime, TL.LogStamp, TL.TableID, TL.FieldName, C1.AccountNo, Cal.RecID 
from Contact1 C1
inner join Cal
  on C1.AccountNo = Cal.AccountNo
inner join GMTLog TL
  on Cal.RecID = TL.FRecID
where TL.LogStamp &gt;= @SinceLogStamp
  and TL.FieldName not in ('LASTDATE','LASTTIME')
order by C1.Company, C1.Contact, TL.LogStamp
</pre>
</div>
<p>Now run the script from SQL Management Studio to list changes. Note that several system-generated changes (e.g. LASTDATE, LASTTIME) are intentionally excluded. </p>
<p>If you use the script, and especially if you improve it, post a comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/01/find-changes-in-goldmine-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GoldMine 9 Truncates Long Detail Names</title>
		<link>http://www.mcbsys.com/techblog/2013/01/goldmine-9-truncates-long-detail-names/</link>
		<comments>http://www.mcbsys.com/techblog/2013/01/goldmine-9-truncates-long-detail-names/#comments</comments>
		<pubDate>Fri, 04 Jan 2013 00:25:22 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[GoldMine]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/01/goldmine-9-truncates-long-detail-names/</guid>
		<description><![CDATA[In the process of upgrading from GoldMine 6.7 to 9.2, I discovered that Detail names longer than 20 characters were cut off. The UI seems to be inserting the comment delimiter (//) in Detail headers. For example, I have a profile named “Airborne Account Number”.&#160; The Profile Choices list shows it with two slashes inserted [...]]]></description>
				<content:encoded><![CDATA[<p>In the process of upgrading from GoldMine 6.7 to 9.2, I discovered that Detail names longer than 20 characters were cut off. The UI seems to be inserting the comment delimiter (//) in Detail headers.</p>
<p>  <span id="more-1370"></span>
<p>For example, I have a profile named “Airborne Account Number”.&#160; The Profile Choices list shows it with two slashes inserted after 20 characters. But when I click on Edit to remove the slashes, they are not there:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Long-Detail-1.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Long Detail 1" border="0" alt="Long Detail 1" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Long-Detail-1_thumb.png" width="354" height="214" /></a></p>
<p>When I check the Lookup table in SQL, I don’t see any slashes:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Long-Detail-2.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Long Detail 2" border="0" alt="Long Detail 2" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Long-Detail-2_thumb.png" width="354" height="157" /></a></p>
<p>But when I select “Airborne Account Num//ber” as the Detail name, the name is truncated:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Long-Detail-3.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Long Detail 3" border="0" alt="Long Detail 3" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Long-Detail-3_thumb.png" width="354" height="172" /></a></p>
<p>When I click on the <strong>Setup</strong> tab of an existing record with the long Detail name, I get this message:</p>
<p><a href="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Long-Detail-4.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Long Detail 4" border="0" alt="Long Detail 4" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/Long-Detail-4_thumb.png" width="354" height="131" /></a></p>
<p>The Detail is stored in ContSupp.Contact, which is 40 characters long, so it doesn’t seem like it would need to be limited to 20 characters. However, FrontRange Support informed me that the 20-character limitation solved another issue and will not be changed, so it’s up to me to shorten all my existing Detail names.</p>
<h3>Shortening the Detail Names</h3>
<p>I developed the following procedure and scripts to shorten my Detail names.</p>
<p><strong><font color="#ff0000">Warning</font></strong> This is an advanced procedure requiring an in-depth understanding of Microsoft SQL and of GoldMine data structures. The procedure will irreversibly alter your GoldMine data. Make sure you have a good SQL backup before you start and that you know how to restore SQL backups. The changes made by this procedure will <em>not</em> sync to other GoldMine installations unless you re-sync <em>all</em> of your data. </p>
<p>The procedure worked for me, but your environment is different. So use this information at your own risk—it’s not guaranteed in any way. It is recommended that you contact your GoldMine professional or <a href="http://www.mcbsys.com/contact/" target="_blank">MCB Systems</a> for assistance.</p>
<p><strong>Note</strong> This procedure does <em>not</em> work for the special Detail called “World Wide Web Site Address” that was present in very old GoldMine versions. The new Detail, “Web Site”, requires special coding. Contact MCB Systems if you need help converting this Detail.</p>
<h4>Step 1:&#160; Identify Long Details</h4>
<p>After rehosting to GoldMine 9.x, run the the following script from SQL Management Studio to identify the long Details. If you have multiple databases, run this against each database.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:b9ae8ea5-e9c4-48b7-9bd1-5983aabc17b6" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: sql; title: ; notranslate">
select distinct left(contact,20) + '|' + substring(contact,21,20) 
from contsupp
where rectype = 'P' and Len(contact) &gt;20
order by left(contact,20) + '|' + substring(contact,21,20) 
</pre>
</div>
<p>Copy the script output to an Excel spreadsheet. If you ran it against multiple databases, sort the spreadsheet and eliminate duplicates.</p>
<h4>Step 2:&#160; Add a Stored Proc to Rename Details</h4>
<p>Run the following script against each of your GoldMine databases. It adds a stored procedure called Rename_Detail, but it doesn’t actually change any data.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:6d60ea97-9a30-4180-937f-15bcfa880b1b" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: sql; auto-links: false; collapse: true; light: false; title: ; toolbar: true; notranslate">
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Rename_Detail]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
begin
  drop procedure [dbo].[Rename_Detail]
end
GO


/*
	  Rename one GoldMine Detail (Profile):
    - Update all occurrences in ContSupp.
    - Update the value in Lookup (if Lookup table is present in current database).

    Note:  This proc does not update the Last Update fields in the Detail record.
           It is assumed you prefer to leave those to reflect the last _manual_ update.
           
    Warning:  This change is NOT sync-aware.  Run this on a primary installation 
              then re-sync _all_ data (ignore cutoff) to other installations.
*/

CREATE procedure Rename_Detail
(	@OldDetailName   varchar(40)
,	@NewDetailName   varchar(40)
)
as

set nocount on

declare @DetailsUpdated   int
,   @LookupsUpdated		int
,		@UpdateError		int
,		@ReturnValue		int
,		@ProcedureName		sysname

set @ProcedureName = object_name(@@procid)

------------------------------------------------------------------------------------------------------
-- Make sure we have required parameters
------------------------------------------------------------------------------------------------------
if (@OldDetailName is null or rtrim(@OldDetailName) = '')
 or (@NewDetailName is null or rtrim(@NewDetailName) = '')
begin
	raiserror ('%s requires that you specify @OldDetailName and @NewDetailName', 16, 1, @ProcedureName)
	goto EndProc
end

begin transaction

raiserror ('%s: Preparing to rename detail from &quot;%s&quot; to &quot;%s&quot;', 10, 1, @ProcedureName, @OldDetailName, @NewDetailName)

------------------------------------------------------------------------------------------------------
-- Update ContSupp
------------------------------------------------------------------------------------------------------
update ContSupp
set Contact = @NewDetailName
, U_Contact = upper(@NewDetailName)
where RecType = 'P' -- Profile record
  and Contact = @OldDetailName  
select @UpdateError = @@Error, @DetailsUpdated = @@RowCount
if @UpdateError = 0 -- No SQL error
begin
  set @ReturnValue = 0 -- successfully updated ContSupp
  if @DetailsUpdated = 0
  begin
	raiserror ('%s: - No ContSupp detail records found', 10, 1, @ProcedureName, @DetailsUpdated)
  end
  else
  begin
    raiserror ('%s: - Successfully renamed %d ContSupp detail records', 10, 1, @ProcedureName, @DetailsUpdated)
  end
end
else -- SQL error
begin
  raiserror ('%s: ContSupp update failed with SQL error %d.', 16, 1, @ProcedureName, @UpdateError)
  set @ReturnValue = @UpdateError -- Error number from Update
  goto RollbackTrans
end

------------------------------------------------------------------------------------------------------
-- Update Lookup
------------------------------------------------------------------------------------------------------
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Lookup]') and OBJECTPROPERTY(id, N'IsTable') = 1)
begin
  raiserror ('%s: - Lookup table does not exist in this database. Lookup rename skipped.', 10, 1, @ProcedureName)
  goto CommitTrans
end

update Lookup
set Entry = @NewDetailName
, U_Entry = upper(@NewDetailName)
where FieldName = 'MPROFHEAD V' -- Profile Header Value
  and Entry = @OldDetailName
select @UpdateError = @@Error, @LookupsUpdated = @@RowCount
if @UpdateError = 0 -- no SQL error
begin
  if @LookupsUpdated = 1
  begin
    set @ReturnValue = 0 -- successfully updated 1 Lookup
    raiserror ('%s: - Successfully renamed %d Lookup detail header records', 10, 1, @ProcedureName, @LookupsUpdated)
  end
  else
  begin
    raiserror ('%s: - Expected to update one Lookup but updated %d', 16, 1, @ProcedureName, @LookupsUpdated)
	set @ReturnValue = -1
    goto RollbackTrans
  end
end
else -- SQL error
begin
  raiserror ('%s: - Lookup update failed with SQL error %d', 16, 1, @ProcedureName, @UpdateError)
  set @ReturnValue = @UpdateError -- Error number from Update
  goto RollbackTrans
end

set @ReturnValue = @DetailsUpdated
goto CommitTrans

RollbackTrans:
rollback transaction
raiserror ('%s: - Transaction rolled back. All changes made by this call to the proc have been reversed.', 16, 1, @ProcedureName)
goto EndProc

CommitTrans:
commit transaction

EndProc:
return @ReturnValue

GO
</pre>
</div>
<h3>Step 3:&#160; Rename the Details</h3>
<p>Finally, call the stored proc once for each Detail you want to rename, and in each database where that detail exists. The Excel spreadsheet from Step 1 tells you which Details need to be renamed; you need to come up with an abbreviated name for each one, and then copy the full name and the abbreviation into a script that calls the stored proc over and over. </p>
<p><strong><font color="#ff0000">Warning</font></strong> This is the bit that irretrievably changes your data. See full <strong>Warning</strong> above.</p>
<p>Here is an excerpt from my script:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:a0429c73-edcd-4603-94d9-986a674620fe" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: sql; title: ; notranslate">
exec @ReturnCode = dbo.Rename_Detail @OldDetailName = 'Airborne Account Number',        @NewDetailName = 'Airborne Account No'
exec @ReturnCode = dbo.Rename_Detail @OldDetailName = 'Express Mail Corp. Acct. No.',   @NewDetailName = 'Expr Mail Corp Acct'
exec @ReturnCode = dbo.Rename_Detail @OldDetailName = 'Federal Express Acct. #',        @NewDetailName = 'FedEx Account No'
exec @ReturnCode = dbo.Rename_Detail @OldDetailName = 'GoldMine Serial Number',         @NewDetailName = 'GoldMine Serial No'
exec @ReturnCode = dbo.Rename_Detail @OldDetailName = 'Tax Exempt ID number(s)',        @NewDetailName = 'Tax Exempt ID No(s)'
exec @ReturnCode = dbo.Rename_Detail @OldDetailName = 'UPS Billing Invoice Number',     @NewDetailName = 'UPS Billing Inv No'
</pre>
</div>
<h4>Step 4:&#160; Check the Results</h4>
<p>The stored proc will print information about the Details that it updates. Review this output, checking in particular for any errors reported. Also review the actual data in your GoldMine database. If you see any issues, restore your SQL backup and start over. If everything looks okay and you synchronize with other sites, you must now re-sync all data (“Ignore Cutoff Date”) in order for the changes to transfer to the other sites.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/01/goldmine-9-truncates-long-detail-names/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GoldMine Filter Syncs Too Many Records</title>
		<link>http://www.mcbsys.com/techblog/2013/01/goldmine-filter-syncs-too-many-records/</link>
		<comments>http://www.mcbsys.com/techblog/2013/01/goldmine-filter-syncs-too-many-records/#comments</comments>
		<pubDate>Thu, 03 Jan 2013 23:08:58 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[GoldMine]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2013/01/goldmine-filter-syncs-too-many-records/</guid>
		<description><![CDATA[Recently I upgraded from GoldMine 6.7 to 9.2.1.92. I have a filter defined that I use when syncing to Outlook. The filter count shows 1184 records, but it actually syncs 1544 records. What gives? This is the SQL filter that returns a count of 1184: But the sync log shows 1544 contacts created (and that [...]]]></description>
				<content:encoded><![CDATA[<p>Recently I upgraded from GoldMine 6.7 to 9.2.1.92. I have a filter defined that I use when syncing to Outlook. The filter count shows 1184 records, but it actually syncs 1544 records. What gives?</p>
<p>  <span id="more-1361"></span>
<p>This is the SQL filter that returns a count of 1184:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:7c11046b-043c-466b-9d05-7e608b42ead8" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: sql; pad-line-numbers: true; title: ; notranslate">
WHERE c1.U_KEY5 LIKE 'YES%' 
  AND (c1.U_KEY1 = 'CUSTOMER (SRV.)' 
       OR c1.U_KEY1 LIKE 'FAMILY%' 
       OR c1.U_KEY1 = 'FRIEND' 
       OR c1.U_KEY1 = 'NEIGHBOR' 
       OR c1.U_KEY1 = 'PERS. BUS.' 
       OR c1.U_KEY1 = 'XXX')
</pre>
</div>
<p>But the sync log shows 1544 contacts created (and that corresponds to what showed up in Outlook). That’s exactly 360 more than expected, which corresponds to the “removed from filter” value, but what does <em>that</em> mean?</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="1.Outlook sync with old SQL clause in filter" border="0" alt="1.Outlook sync with old SQL clause in filter" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/1.Outlook-sync-with-old-SQL-clause-in-filter.png" width="384" height="339" /></p>
<p>Reviewing the filter in 6.7, I see the dBASE version is quite different. (I had been editing the dBASE version but not making corresponding changes to the SQL version.) This dBASE filter counts 1083 records, and that’s how many synced in 6.7:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:4f9bf8d3-908e-48bf-8418-58c04eb05a93" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: sql; title: ; notranslate">
&quot;YES&quot;$upper(contact1-&gt;key5)
.AND. 
(&quot;CUSTOMER&quot;$upper(contact1-&gt;key1) 
 .OR. &quot;FAMILY&quot; $upper(contact1-&gt;key1)
 .OR. &quot;FRIEND&quot;$upper(contact1-&gt;key1)
 .OR. &quot;NEIGHBOR&quot;$upper(contact1-&gt;key1)
 .OR. &quot;COLLEAGUE&quot;$upper(contact1-&gt;key1)
 .OR. &quot;DAD&quot;$upper(contact1-&gt;key2)
 .OR. (
       (&quot;PERS. BUS.&quot;$upper(contact1-&gt;key1) 
        .OR. &quot;VENDOR&quot;$upper(contact1-&gt;key1) 
        .OR. &quot;COMPETITOR&quot;$upper(contact1-&gt;key1) )
       .AND. 
       (     &quot;(619)&quot;$contact1-&gt;phone1
        .OR. &quot;(858)&quot;$contact1-&gt;phone1
        .OR. &quot;(760)&quot;$contact1-&gt;phone1
        .OR. &quot;(951)&quot;$contact1-&gt;phone1 
        .OR. &quot;(619)&quot;$contact1-&gt;phone2
        .OR. &quot;(858)&quot;$contact1-&gt;phone2
        .OR. &quot;(760)&quot;$contact1-&gt;phone2
        .OR. &quot;(951)&quot;$contact1-&gt;phone2 
        .OR. &quot;(619)&quot;$contact1-&gt;phone3
        .OR. &quot;(858)&quot;$contact1-&gt;phone3
        .OR. &quot;(760)&quot;$contact1-&gt;phone3
        .OR. &quot;(951)&quot;$contact1-&gt;phone3 
       )
      )
)
</pre>
</div>
<h3>The Solution</h3>
<p>I re-wrote the SQL query to match the dBASE query. After that, 1083 records were counted and synced in 9.2.1.92:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:46bd7030-3ba1-48d8-a840-3b7f1622210f" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: sql; title: ; notranslate">
WHERE c1.U_KEY5 LIKE 'YES%' 
  AND (   c1.U_KEY1 LIKE 'CUSTOMER%' 
       OR c1.U_KEY1 LIKE 'FAMILY%' 
       OR c1.U_KEY1 LIKE 'FRIEND%' 
       OR c1.U_KEY1 LIKE 'NEIGHBOR%' 
       OR c1.U_KEY1 LIKE 'COLLEAGUE%' 
       OR c1.U_KEY2 LIKE 'DAD%' 
       OR ( (   c1.U_KEY1 LIKE 'PERS. BUS.%' 
             OR c1.U_KEY1 LIKE 'VENDOR%' 
             OR c1.U_KEY1 LIKE 'COMPETITOR%' )
           AND
            (   LEFT(c1.PHONE1,5) IN ('(619)', '(858)', '(760)', '(951)')
             OR LEFT(c1.PHONE2,5) IN ('(619)', '(858)', '(760)', '(951)')
             OR LEFT(c1.PHONE3,5) IN ('(619)', '(858)', '(760)', '(951)') )
          )
      )
</pre>
</div>
<h3><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="2.Outlook sync after updating filter&#39;s SQL clause" border="0" alt="2.Outlook sync after updating filter&#39;s SQL clause" src="http://www.mcbsys.com/techblog/wp-content/uploads/2013/01/2.Outlook-sync-after-updating-filters-SQL-clause.png" width="376" height="259" /></h3>
<h3>The Cause</h3>
<p>I finally figured out that if I OR’d the old and new SQL versions together, I got the 1544 count. This clause counts 1544 records:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:53388f16-2f65-4d35-b167-123221932f1e" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: sql; title: ; notranslate">
WHERE (      
c1.U_KEY5 LIKE 'YES%' 
  AND (c1.U_KEY1 = 'CUSTOMER (SRV.)' 
       OR c1.U_KEY1 LIKE 'FAMILY%' 
       OR c1.U_KEY1 = 'FRIEND' 
       OR c1.U_KEY1 = 'NEIGHBOR' 
       OR c1.U_KEY1 = 'PERS. BUS.' 
       OR c1.U_KEY1 = 'XXX')      
 )
OR 
(       
c1.U_KEY5 LIKE 'YES%' 
  AND (   c1.U_KEY1 LIKE 'CUSTOMER%' 
       OR c1.U_KEY1 LIKE 'FAMILY%' 
       OR c1.U_KEY1 LIKE 'FRIEND%' 
       OR c1.U_KEY1 LIKE 'NEIGHBOR%' 
       OR c1.U_KEY1 LIKE 'COLLEAGUE%' 
       OR c1.U_KEY2 LIKE 'DAD%' 
       OR ( (   c1.U_KEY1 LIKE 'PERS. BUS.%' 
             OR c1.U_KEY1 LIKE 'VENDOR%' 
             OR c1.U_KEY1 LIKE 'COMPETITOR%' )
           AND
            (   LEFT(c1.PHONE1,5) IN ('(619)', '(858)', '(760)', '(951)')
             OR LEFT(c1.PHONE2,5) IN ('(619)', '(858)', '(760)', '(951)')
             OR LEFT(c1.PHONE3,5) IN ('(619)', '(858)', '(760)', '(951)') )
          )
      )
)
</pre>
</div>
<p>In other words, it seems that the 9.2.1.92 Outlook sync was using <em>both</em> the SQL clause <em>and</em> the dBASE clause, OR’ing them together, to determine which records to include. Once I updated the SQL clause to match the old dBASE clause, the sync included only the records counted by the filter.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2013/01/goldmine-filter-syncs-too-many-records/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Add a Lookup Menu to GoldMine 9.2</title>
		<link>http://www.mcbsys.com/techblog/2012/12/add-a-lookup-menu-to-goldmine-9-2/</link>
		<comments>http://www.mcbsys.com/techblog/2012/12/add-a-lookup-menu-to-goldmine-9-2/#comments</comments>
		<pubDate>Wed, 19 Dec 2012 05:22:45 +0000</pubDate>
		<dc:creator>Mark Berry</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[GoldMine]]></category>

		<guid isPermaLink="false">http://www.mcbsys.com/techblog/2012/12/add-a-lookup-menu-to-goldmine-9-2/</guid>
		<description><![CDATA[I’m in the process of upgrading from GoldMine 6.5 to 9.2.1.92. I really don’t want to give up the super-fast keyboard access to the search function. For example, in GoldMine 6.5, to search for a contact by last name, I press Alt+L, L (open the Lookup menu and search by Last name). Three keystrokes and [...]]]></description>
				<content:encoded><![CDATA[<p>I’m in the process of upgrading from GoldMine 6.5 to 9.2.1.92. I really don’t want to give up the super-fast keyboard access to the search function. For example, in GoldMine 6.5, to search for a contact by last name, I press <strong>Alt+L, L</strong> (open the <strong>L</strong>ookup menu and search by <strong>L</strong>ast name). Three keystrokes and and I’m in the search window.</p>
<p>    <span id="more-1349"></span> You can revert to classic menus in GoldMine 9.2, but what I’d really like is to use the new menus <em>and</em> have access to the first four items of the Lookup menu so I can quickly search by Company, Contact, Last, or Phone1.
<p>Through a bit of sleuthing and comparing, I was able to add a simple Lookup menu to the end of GoldMine 9.2’s standard menu:</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="GoldMine Lookup Menu" border="0" alt="GoldMine Lookup Menu" src="http://www.mcbsys.com/techblog/wp-content/uploads/2012/12/GoldMine-Lookup-Menu.png" width="385" height="125" /></p>
<p><strong><font color="#ff0000">Warning</font></strong> If you have customized your menu, this procedure will destroy your customizations. Make a copy of your &lt;username&gt;.INI file before trying with this, and know how to revert to the saved version.</p>
<h3>Add the Lookup Menu as Text</h3>
<p>If you don’t care about icons next to your menu items, open your &lt;username&gt;.INI file, find the [Toolbar] section, and replace the <code>GoldMine_Length</code> and <code>GoldMine</code> lines with this text:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:40835bb1-c6c5-4e0e-8b0a-bdb964b16ec3" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: xml; auto-links: false; gutter: false; pad-line-numbers: true; title: ; toolbar: false; notranslate">
GoldMine_Length=16888
GoldMine=&lt;GoldMine CompactMode=&quot;1&quot;&gt;&lt;CommandBars&gt;&lt;CommandBar Class=&quot;CXTPMenuBar&quot; Type=&quot;0&quot; BarID=&quot;1&quot; Flags=&quot;32&quot; Title=&quot;Menu Bar&quot; MRUWidth=&quot;32767&quot; Closeable=&quot;0&quot; ResourceId=&quot;1&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65537&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777216&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65538&quot; CommandBarId=&quot;16777219&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65539&quot; CommandBarId=&quot;16777221&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65540&quot; CommandBarId=&quot;16777225&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65541&quot; CommandBarId=&quot;16777234&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65542&quot; CommandBarId=&quot;16777237&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65543&quot; CommandBarId=&quot;16777238&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65544&quot; CommandBarId=&quot;16777241&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65545&quot; CommandBarId=&quot;16777243&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65546&quot; CommandBarId=&quot;16777245&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;0&quot; Caption=&quot;New Menu&quot; CustomCaption=&quot;&amp;amp;Lookup&quot; CommandBarId=&quot;16777246&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777216&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65569&quot; CommandBarId=&quot;16777217&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65571&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777218&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;735&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;194&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;195&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;164&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;196&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777217&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;103&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;1000&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777218&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;123&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;732&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;121&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;122&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;727&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;719&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;723&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;724&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;154&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777219&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;202&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;203&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;204&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;230&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;201&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;295&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65609&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777220&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777220&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;207&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;208&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777221&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;332&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;366&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;548&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;331&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;309&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;349&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;354&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;350&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;741&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;742&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;352&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;118&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;746&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;341&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;3750&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65652&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777222&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65653&quot; CommandBarId=&quot;16777223&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65654&quot; CommandBarId=&quot;16777224&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777222&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;359&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;342&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;344&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;346&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;348&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;360&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777223&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;112&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;353&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777224&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;4015&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;4014&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777225&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65665&quot; CommandBarId=&quot;16777226&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65667&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777227&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65668&quot; CommandBarId=&quot;16777228&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;698&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65671&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777229&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65672&quot; CommandBarId=&quot;16777230&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;460&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;338&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;463&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;464&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;141&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;140&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65681&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777232&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;729&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;324&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65685&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777233&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777226&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;132&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;139&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;130&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;131&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;621&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;127&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;690&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;129&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777227&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;537&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;161&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;160&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;163&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777228&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;149&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;148&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777229&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;151&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;104&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;150&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;191&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;192&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;146&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777230&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;290&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;69890&quot; CommandBarId=&quot;16777231&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;134&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;297&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;159&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;299&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;329&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777231&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;135&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;136&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;137&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777232&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;152&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;144&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;133&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;367&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;142&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;613&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;110&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;320&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;3751&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777233&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;153&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;166&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777234&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;546&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;542&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;545&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;114&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;115&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;116&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;4016&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;117&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;119&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65709&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777235&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;538&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65712&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777236&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777235&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;301&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;302&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;303&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;304&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;311&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;307&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;308&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;312&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777236&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;314&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;315&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;317&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;318&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777237&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;531&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;532&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;533&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;541&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;534&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;535&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;540&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;536&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;539&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777238&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;520&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65762&quot; CommandBarId=&quot;16777239&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;522&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;524&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;525&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;526&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;527&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;519&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;518&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65773&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777240&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;4019&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777239&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;523&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;521&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777240&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;528&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;529&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777241&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;745&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;725&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;467&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;466&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65798&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777242&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;740&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;722&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777242&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;730&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;731&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777243&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;669&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;711&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;710&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;712&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;714&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65832&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777244&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777244&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;748&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;749&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777245&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;581&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;580&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;582&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;587&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;589&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;579&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777246&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;402&quot; CustomCaption=&quot;&amp;amp;Company...&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;403&quot; CustomCaption=&quot;Co&amp;amp;ntact...&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;411&quot; CustomCaption=&quot;&amp;amp;Last...&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;414&quot; CustomCaption=&quot;&amp;amp;Phone1...&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;/CommandBars&gt;&lt;Layout&gt;&lt;DockState Version=&quot;20&quot; ScreenSize=&quot;1600, 1200&quot; Count=&quot;3&quot;&gt;&lt;BarInfo0 BarId=&quot;1&quot; MRUWidth=&quot;32767&quot;/&gt;&lt;BarInfo1 BarId=&quot;670&quot; MRUWidth=&quot;32767&quot; PointPos=&quot;0, 25&quot;/&gt;&lt;BarInfo2 BarId=&quot;56000&quot; Visible=&quot;0&quot; MRUWidth=&quot;32767&quot; PointPos=&quot;0, 57&quot; MRUDockPos=&quot;106, 44, 107, 45&quot;/&gt;&lt;/DockState&gt;&lt;DockBars&gt;&lt;DockBar0 Count=&quot;6&quot; Id1=&quot;1&quot; Id3=&quot;56000&quot; Id4=&quot;670&quot;/&gt;&lt;/DockBars&gt;&lt;/Layout&gt;&lt;/GoldMine&gt;
</pre>
</div>
<h3>Add the Lookup Menu with Text and Icons</h3>
<p>If you’d like to display the icons as well, the string becomes quite a bit longer:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:2eedc12d-42a0-43ee-abb1-9e2d91387c21" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: xml; auto-links: false; gutter: false; title: ; toolbar: false; notranslate">
GoldMine_Length=26743
GoldMine=&lt;GoldMine CompactMode=&quot;1&quot;&gt;&lt;CommandBars&gt;&lt;CommandBar Class=&quot;CXTPMenuBar&quot; Type=&quot;0&quot; BarID=&quot;1&quot; Flags=&quot;32&quot; Title=&quot;Menu Bar&quot; MRUWidth=&quot;32767&quot; Closeable=&quot;0&quot; ResourceId=&quot;1&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65537&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777216&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65538&quot; CommandBarId=&quot;16777219&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65539&quot; CommandBarId=&quot;16777221&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65540&quot; CommandBarId=&quot;16777225&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65541&quot; CommandBarId=&quot;16777234&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65542&quot; CommandBarId=&quot;16777237&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65543&quot; CommandBarId=&quot;16777238&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65544&quot; CommandBarId=&quot;16777241&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65545&quot; CommandBarId=&quot;16777243&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65546&quot; CommandBarId=&quot;16777245&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;0&quot; Caption=&quot;New Menu&quot; CustomCaption=&quot;&amp;amp;Lookup&quot; CommandBarId=&quot;16777246&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777216&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65569&quot; CommandBarId=&quot;16777217&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65571&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777218&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;735&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;194&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;195&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;164&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;196&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777217&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;103&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;1000&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777218&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;123&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;732&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;121&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;122&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;727&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;719&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;723&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;724&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;154&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777219&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;230&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;201&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;295&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65609&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777220&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777220&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;207&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;208&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777221&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;332&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;366&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;548&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;331&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;309&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;349&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;354&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;350&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;741&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;742&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;352&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;118&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;746&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;341&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;3750&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65652&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777222&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65653&quot; CommandBarId=&quot;16777223&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65654&quot; CommandBarId=&quot;16777224&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777222&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;359&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;342&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;344&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;346&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;348&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;360&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777223&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;112&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;353&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777224&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;4015&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;4014&quot; HideFlags=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777225&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65665&quot; CommandBarId=&quot;16777226&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65667&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777227&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65668&quot; CommandBarId=&quot;16777228&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;698&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65671&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777229&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65672&quot; CommandBarId=&quot;16777230&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;460&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;338&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;463&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;464&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;141&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;140&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65681&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777232&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;729&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;324&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65685&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777233&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777226&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;132&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;139&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;130&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;131&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;621&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;127&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;690&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;129&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777227&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;537&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;161&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;160&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;163&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777228&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;149&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;148&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777229&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;151&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;104&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;150&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;146&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777230&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;290&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;69890&quot; CommandBarId=&quot;16777231&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;134&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;297&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;159&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;299&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;329&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777231&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;135&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;136&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;137&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777232&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;152&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;144&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;133&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;367&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;142&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;613&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;110&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;320&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;3751&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777233&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;153&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;166&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777234&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;546&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;542&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;545&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;114&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;115&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;116&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;4016&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;117&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;119&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65709&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777235&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;538&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65712&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777236&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777235&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;301&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;302&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;303&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;304&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;311&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;307&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;308&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;312&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777236&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;314&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;315&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;317&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;318&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777237&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;531&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;532&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;533&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;541&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;534&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;535&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;540&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;536&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;539&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777238&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;520&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65762&quot; CommandBarId=&quot;16777239&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;522&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;524&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;525&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;526&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;527&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;519&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;518&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65773&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777240&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;4019&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777239&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;523&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;521&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777240&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;528&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;529&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777241&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;745&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;725&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;467&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;466&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65798&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777242&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;740&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;722&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777242&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;730&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;731&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777243&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;669&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;711&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;710&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;712&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;714&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65832&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777244&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777244&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;748&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;749&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777245&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;581&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;580&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;582&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;587&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;589&quot; BeginGroup=&quot;1&quot; Style=&quot;3&quot;/&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;579&quot; Style=&quot;3&quot;/&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777246&quot; Style=&quot;4194304&quot;&gt;&lt;Controls&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;402&quot; CustomIconId=&quot;68267&quot; CustomCaption=&quot;&amp;amp;Company...&quot; Style=&quot;3&quot;&gt;&lt;CustomIcon&gt;&lt;Icon Width=&quot;16&quot; Data=&quot;ABAAAAAAEBAAAAAAEDAAICAAAAAAABAAAAAAABAAAAAABAAAACAADAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPAAAAPPAAAAPPAAAAAAAAEAKBKBKBAAKBKBKBAAKBKBKBAAKBKBKBAAKBKBKBAAKBKBKBAAKBKBKBAAKBKBKBAAKBKBKBAAKBKBKBAAKBKBKBAAKBKBKBAAKBKBKBAADHAAAAAADHAAAAAAPPAAAAAAGCGCGCAAGLGLGLAAGLGLGLAAGLGLGLAAGLGLGLAAGLGLGLAAGLGLGLAAGLGLGLAAGLGLGLAAGLGLGLAAGLGLGLAAGCGCGCAADHAAAAAADHAAAAAAPPAAAAAAAAAAAAAAGCGCGCAAGFGFGFAAGFGFGFAAGFGFGFAAGFGFGFAAGFGFGFAAGFGFGFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAPPAAAAAAAAAAAAAAAAAAAAAAGCGCGCAAGLGLGLAAGLGLGLAAGLGLGLAAGLGLGLAAGLGLGLAAAAAAAAAAOMOMOMAAOMOMOMAAOMOMOMAAOMOMOMAAAAAAAAAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCGCGCAACPCPCPAACDCDCDAACPCPCPAAAAAAAAAAPPPPBLAAPPPPPPAAPPPPPPAAPPPPPPAAPPPPPPAAOMOMOMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCGCGCAACPCPCPAACDCDCDAACPCPCPAAAAAAAAAAPPPPBLAAPPPPLGAAPPPPPPAAPPPPPPAAPPPPPPAAOMOMOMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCGCGCAACPCPCPAACDCDCDAACPCPCPAAAAAAAAAAPPPPBLAAPPPPPPAAPPPPLGAAPPPPPPAAPPPPPPAAOMOMOMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCGCGCAACPCPCPAACDCDCDAACPCPCPAAAAAAAAAAPPPPBLAAPPPPOIAAPPPPPPAAPPPPLGAAPPPPPPAAOMOMOMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCGCGCAAPPPPPPAACDCDCDAAPPPPPPAACDCDCDAAAAAAAAAAPPPPBLAAPPPPBLAAPPPPBLAAPPPPBLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCGCGCAAPPPPPPAACDCDCDAAPPPPPPAACDCDCDAAPPPPPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCGCGCAAPPPPPPAAOAOAOAAAPPPPPPAAOAOAOAAAPPPPPPAAOAOAOAAAPPPPPPAAOAOAOAAAGCGCGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCGCGCAACDCDCDAAGLGLGLAAGLGLGLAAGLGLGLAAGLGLGLAAGLGLGLAAGLGLGLAAGLGLGLAAGLGLGLAACGCGCGAAGCGCGCAAKBKBKBAAAAAAAAAAAAAAAAAAAAAAAAAAGCGCGCAAOJOJOJAACGCGCGAACDCDCDAAKKKKKKAAKKKKKKAAKKKKKKAAKKKKKKAACGCGCGAACGCGCGAACDCDCDAAGCGCGCAAKBKBKBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCGCGCAACGCGCGAAOJOJOJAACGCGCGAACDCDCDAACGCGCGAACGCGCGAACDCDCDAAGCGCGCAAGCGCGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCGCGCAACGCGCGAAOJOJOJAACGCGCGAAGCGCGCAAGCGCGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCGCGCAAGCGCGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDAAICAAAAAAABAAAAAAABAAAAAABAAABAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPPPPPAAPPAAAAAAAEAAAAAAAAAAAABAAAAAAADAAAAAAAHAAAAAAIHAAAAAAIHAAAAAAIHAAAAAAIHAAAAAAIPAAAAAAIPBAAAAAIPBAAAAAAHAAAAAAAHAAAAAAIPBAAAAAOPHAAAAJPPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&quot;/&gt;&lt;/CustomIcon&gt;&lt;/Control&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;403&quot; CustomIconId=&quot;68268&quot; CustomCaption=&quot;Co&amp;amp;ntact...&quot; Style=&quot;3&quot;&gt;&lt;CustomIcon&gt;&lt;Icon Width=&quot;16&quot; Data=&quot;ABAAAAAAEBAAAAAAEDAAICAAAAAAABAAAAAAABAAAAAABAAAACAADAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPAAAAPPAAAAPPAAAAAAAAEAAIAIAIAAPPPPPPAAAMAMAMAAAMAMAMAAAIAIAIAAAIAIAIAAAIAIAIAAAIAIAIAAAIAIAIAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAIAAAAAAPPAAAAAAAIAIAIAAPPPPPPAAAMAMAMAAAMAMAMAAAMAMAMAAAIAIAIAAAIAIAIAAAIAIAIAAAIAIAIAAAIAIAIAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAPPAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAAAAAAAAAIAAAAAAAAAAAAAAPPAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAAMAMAMAAAMAMAMAAAMAMAMAAAAAAAAAAOMOMOMAAOMOMOMAAOMOMOMAAOMOMOMAAAAAAAAAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAAMAMAMAAAMAMAMAAAAAAAAAAPPPPENAAPPPPPPAAPPPPPPAAPPPPPPAAPPPPPPAAOMOMOMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAAMAMAMAAAMAMAMAAAAAAAAAAPPPPENAAPPPPOIAAPPPPPPAAPPPPPPAAPPPPPPAAOMOMOMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAPPPPPPAAAMAMAMAAAAAAAAAAPPPPENAAPPPPPPAAPPPPOIAAPPPPPPAAPPPPPPAAOMOMOMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAAIAIAIAAPPPPPPAAAAAAAAAAPPPPENAAPPPPOIAAPPPPPPAAPPPPOIAAPPPPPPAAOMOMOMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPPPENAAPPPPENAAPPPPENAAPPPPENAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAAMAMAMAAAMAMAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAPPPPPPAAPPPPPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAAIAIAIAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDAAICAAAAAAABAAAAAAABAAAAAABAAABAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPPPPPAAPPAAAAAAAEAAAAIBAAAAAABBAAAAAADAAAAAAAHAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAIPAAAAAAPPBAAAAAOPDAAAAAMPHAAAAAMPHAAAAAMPHAAAAAOPPAAAABPPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&quot;/&gt;&lt;/CustomIcon&gt;&lt;/Control&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;411&quot; CustomIconId=&quot;68269&quot; CustomCaption=&quot;&amp;amp;Last...&quot; Style=&quot;3&quot;&gt;&lt;CustomIcon&gt;&lt;Icon Width=&quot;16&quot; Data=&quot;ABAAAAAAEBAAAAAAEDAAICAAAAAAABAAAAAAABAAAAAABAAAACAADAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPAAAAPPAAAAPPAAAAAAAAEAAAAAMNAAAAAAMNAAAAAAMNAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAIAIAIAAAIAIAIAAAIAIAIAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAMNAAAIAIAIAAPPPPPPAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAIAIAIAAAIAIAIAAAIAIAIAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAPPAAAAAAAAAAMNAAAAAAMNAAAAAAMNAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAPPAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAAAAAAAAOMOMOMAAOMOMOMAAOMOMOMAAOMOMOMAAAAAAAAAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAMNAAAAAAMNAAAAAAJLAAAMAMAMAAAMAMAMAAAMAMAMAAAAAAAAAAPPPPENAAPPPPPPAAPPPPPPAAPPPPPPAAPPPPPPAAOMOMOMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMNAAAIAIAIAAPPPPPPAAAAAAMNAAAMAMAMAAAMAMAMAAAAAAAAAAPPPPENAAPPPPOIAAPPPPPPAAPPPPPPAAPPPPPPAAOMOMOMAAAAAAAAAAAAAAAAAAAAAAAAAAFCFCPPAAAIAIAIAAAAAAJLAAAMAMAMAAAMAMAMAAAMAMAMAAAAAAAAAAPPPPENAAPPPPPPAAPPPPOIAAPPPPPPAAPPPPPPAAOMOMOMAAAAAAAAAAAAAAAAAAAAAAAAAAFCFCPPAAAIAIAIAAPPPPPPAAAAAAJLAAAMAMAMAAAMAMAMAAAAAAAAAAPPPPENAAPPPPOIAAPPPPPPAAPPPPOIAAPPPPPPAAOMOMOMAAAAAAAAAAAAAAAAAAAAAAAAAAFCFCPPAAAAAAMNAAAAAAMNAAAAAAMNAAPPPPPPAAAMAMAMAAAAAAAAAAAAAAAAAAPPPPENAAPPPPENAAPPPPENAAPPPPENAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAAIAIAIAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJLAAAMAMAMAAAMAMAMAAAMAMAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMNAAAAAAAAAAAAAAAAAAAIAIAIAAAAAAJLAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPAAAAAAMNAAAAAAJLAAAAAAJLAAAAAAMNAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMNAAAAAAAAAAAAAAMNAAPPPPPPAAAMAMAMAAAMAMAMAAAMAMAMAAAMAMAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPAAAAAAAAAAAAAAMNAAAIAIAIAAPPPPPPAAPPPPPPAAPPPPPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPAAAAAAAAAAAAAAAAAAAIAIAIAAAIAIAIAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDAAICAAAAAAABAAAAAAABAAAAAABAAABAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPPPPPAAPPAAAAAAAEAAAAMAAAAAAAIAAAAAAABAAAAAAIDAAAAAAADAAAAAAADAAAAAAADAAAAAAADAAAAAAAHAAAAAIPPAAAAAAHPHAAAAAGPDAAAAAAPDAAAAAKPDAAAAAKPHAAAAINPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&quot;/&gt;&lt;/CustomIcon&gt;&lt;/Control&gt;&lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;414&quot; CustomIconId=&quot;68270&quot; CustomCaption=&quot;&amp;amp;Phone1...&quot; Style=&quot;3&quot;&gt;&lt;CustomIcon&gt;&lt;Icon Width=&quot;16&quot; Data=&quot;ABAAAAAAEBAAAAAAEDAAICAAAAAAABAAAAAAABAAAAAABAAAACAADAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPAAAAPPAAAAPPAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAIAAAAAAPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPPPAAAIAIAIAAAAAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPPPAAAAPPPPAAAAPPPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPPPAAAAPPPPAAAAPPPPAAPPPPPPAAAAAAAAAAOMOMOMAAOMOMOMAAOMOMOMAAOMOMOMAAAAAAAAAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAAAPPPPAAPPPPPPAAPPPPPPAAAAAAAAAAPPPPENAAPPPPPPAAPPPPPPAAPPPPPPAAPPPPPPAAOMOMOMAAAAAAAAAAAAAAAAAAAAAIAIAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAAAPPPPAAAAPPPPAAAAAAAAAAPPPPENAAPPPPOIAAPPPPPPAAPPPPPPAAPPPPPPAAOMOMOMAAAAAAAAAAAAAIAIAAAAAIAIAAAAAIAIAAAAAAAAAAAAAAAAAAAIAIAIAAAAPPPPAAAMAMAMAAAAAAAAAAPPPPENAAPPPPPPAAPPPPOIAAPPPPPPAAPPPPPPAAOMOMOMAAAAAAAAAAAAPPPPAAAAPPPPAAAAAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAAAPPPPAAAAAAAAAAPPPPENAAPPPPOIAAPPPPPPAAPPPPOIAAPPPPPPAAOMOMOMAAAAAAAAAAAAPPPPAAAAPPPPAAAAAIAIAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAAAPPPPAAAAAAAAAAPPPPENAAPPPPENAAPPPPENAAPPPPENAAAAAAAAAAAIAIAIAAAAPPPPAAAAPPPPAAAAAIAIAAAIAIAIAAAAAAAAAAAAAAAAAAAIAIAIAAAAAAAAAAAMAMAMAAAMAMAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAAAAPPPPAAAAPPPPAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAPPPPPPAAAAAIAIAAAIAIAIAAPPPPPPAAAAAAAAAAAAPPPPAAAIAIAIAAAAAIAIAAAAPPPPAAAAPPPPAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAAAPPPPAAPPPPPPAAAAAIAIAAAIAIAIAAAAAIAIAAAAPPPPAAAAPPPPAAAAPPPPAAAIAIAIAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAAIAIAIAAPPPPPPAAAAPPPPAAPPPPPPAAAAPPPPAAAAAIAIAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAIAAAAAIAIAAAAAIAIAAAIAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDAAICAAAAAAABAAAAAAABAAAAAABAAABAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPPPPPAAPPAAAAAAAEAAPPIPAAAAIPBPAAAAAODCAAAAAIHAAAAAAABAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAMAAAAAAAOAAAAAAAMBAAAAAAMDAAAAAAMHAAAAAAOPBAAAAIPPHAAAAPPPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&quot;/&gt;&lt;/CustomIcon&gt;&lt;/Control&gt;&lt;/Controls&gt;&lt;/CommandBar&gt;&lt;/CommandBars&gt;&lt;Layout&gt;&lt;DockState Version=&quot;20&quot; ScreenSize=&quot;1600, 1200&quot; Count=&quot;3&quot;&gt;&lt;BarInfo0 BarId=&quot;1&quot; MRUWidth=&quot;32767&quot;/&gt;&lt;BarInfo1 BarId=&quot;670&quot; MRUWidth=&quot;32767&quot; PointPos=&quot;0, 25&quot;/&gt;&lt;BarInfo2 BarId=&quot;56000&quot; Visible=&quot;0&quot; MRUWidth=&quot;32767&quot; PointPos=&quot;0, 57&quot; MRUDockPos=&quot;106, 44, 107, 45&quot;/&gt;&lt;/DockState&gt;&lt;DockBars&gt;&lt;DockBar0 Count=&quot;6&quot; Id1=&quot;1&quot; Id3=&quot;56000&quot; Id4=&quot;670&quot;/&gt;&lt;/DockBars&gt;&lt;/Layout&gt;&lt;/GoldMine&gt;
</pre>
</div>
<h3>It’s the XML, Baby</h3>
<p>For more insight into how these menu items work, copy the content of the “GoldMine” key into the <a href="http://www.xmltoolbox.com/" target="_blank">XmlToolbox</a> web site. Basically we’re just inserting a custom menu near the top:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:a623cc86-ef4a-4f07-942f-b03d5a1fda3b" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: xml; auto-links: false; gutter: false; highlight: [12]; title: ; toolbar: false; notranslate">
&lt;Controls&gt;
  &lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65537&quot; BeginGroup=&quot;1&quot; CommandBarId=&quot;16777216&quot;/&gt;
  &lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65538&quot; CommandBarId=&quot;16777219&quot;/&gt;
  &lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65539&quot; CommandBarId=&quot;16777221&quot;/&gt;
  &lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65540&quot; CommandBarId=&quot;16777225&quot;/&gt;
  &lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65541&quot; CommandBarId=&quot;16777234&quot;/&gt;
  &lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65542&quot; CommandBarId=&quot;16777237&quot;/&gt;
  &lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65543&quot; CommandBarId=&quot;16777238&quot;/&gt;
  &lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65544&quot; CommandBarId=&quot;16777241&quot;/&gt;
  &lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65545&quot; CommandBarId=&quot;16777243&quot;/&gt;
  &lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;65546&quot; CommandBarId=&quot;16777245&quot;/&gt;
  &lt;Control Class=&quot;CXTPControlPopup&quot; Type=&quot;2&quot; Id=&quot;0&quot; Caption=&quot;New Menu&quot; CustomCaption=&quot;&amp;amp;Lookup&quot; CommandBarId=&quot;16777246&quot;/&gt;
&lt;/Controls&gt;
</pre>
</div>
<p>which is defined as follows near the bottom (text-only version):</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:654cdf4f-b1c6-415a-9625-d4625c79c16b" class="wlWriterEditableSmartContent">
<pre style=white-space:normal>
<pre class="brush: xml; auto-links: false; gutter: false; title: ; toolbar: false; notranslate">
&lt;CommandBar Class=&quot;CXTPPopupBar&quot; Type=&quot;2&quot; Position=&quot;5&quot; BarID=&quot;16777246&quot; Style=&quot;4194304&quot;&gt;
  &lt;Controls&gt;
    &lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;402&quot; CustomCaption=&quot;&amp;amp;Company...&quot; Style=&quot;3&quot;/&gt;
    &lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;403&quot; CustomCaption=&quot;Co&amp;amp;ntact...&quot; Style=&quot;3&quot;/&gt;
    &lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;411&quot; CustomCaption=&quot;&amp;amp;Last...&quot; Style=&quot;3&quot;/&gt;
    &lt;Control Class=&quot;CXTPControlButton&quot; Id=&quot;414&quot; CustomCaption=&quot;&amp;amp;Phone1...&quot; Style=&quot;3&quot;/&gt;
  &lt;/Controls&gt;
&lt;/CommandBar&gt;
</pre>
</div>
<p>The “trick” here is that the Ids 402, 403, 411, and 414 refer to the old menu commands, which are still present in the code but are otherwise hidden when you are using the the new menu.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcbsys.com/techblog/2012/12/add-a-lookup-menu-to-goldmine-9-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
