<?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>J. Greg&#039;s Brain Corral</title>
	<atom:link href="http://www.uvm.edu/~jgm/wordpress/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.uvm.edu/~jgm/wordpress</link>
	<description>I put it here so I don&#039;t have to keep it in my brain...</description>
	<lastBuildDate>Tue, 03 Nov 2009 22:30:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Microsoft Data Protection Manager 2007 &#8211; Evaluating the MS Solution</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=228</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=228#comments</comments>
		<pubDate>Tue, 03 Nov 2009 22:30:51 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Back Them Files Up]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=228</guid>
		<description><![CDATA[Ever have a disaster with one of your servers?&#160; No?&#160; You lucky bastard…
Recently we had corruption of a number of our Virtual Machines (caused by a fault in the firmware of our “enterprise” storage system from a Nameless Mainstream Vendor, which was triggered by unexpected filesystem behavior from an Evil Mainstream Company’s virtualization platform).&#160; This [...]]]></description>
			<content:encoded><![CDATA[<p>Ever have a disaster with one of your servers?&#160; No?&#160; You lucky bastard…</p>
<p>Recently we had corruption of a number of our Virtual Machines (caused by a fault in the firmware of our “enterprise” storage system from a Nameless Mainstream Vendor, which was triggered by unexpected filesystem behavior from an <strong>E</strong>vil <strong>M</strong>ainstream <strong>C</strong>ompany’s virtualization platform).&#160; This event forced us to exercise our system disaster recovery tools, (also from a Nameless <strong>E</strong>vil <strong>M</strong>ainstream <strong>C</strong>ompany) and brought us to the subsequent discovery that some backup products just don’t do DR.&#160; There is much that could be said about that, but I will leave it there.</p>
<p>Anyway, we thought we would have a look at Microsoft DPM 2007 SP1 to see if the DR story there is any better.</p>
<p>Here are some sticking points I have hit while evaluating the product:</p>
<ul>
<li>Server Recovery Tool (SRT) – This is the Bare Metal Recovery component of DPM.&#160; As it turns out, it only can protect Server 2003 and XP systems.&#160; Server 2000 is a no go (no tears here…), as are Server 2008 and Server 2008 R2 (aargh!).&#160; SRT is pretty easy to setup and configure, but keep in mind that it must run on a Server 2003 OS (not Server 2008!). </li>
<li>DPM Reporting Services – The DPM installer creates a IIS instance on your machine, and configures/installs SQL 2005 with Reporting Services.&#160; Very nice!&#160; Unfortunately, the installer misses one critical IIS setting when installed on Server 2008:      <br /><a title="http://scdpm.blogspot.com/2009/07/reporting-does-not-work-with-dpm-2007.html" href="http://scdpm.blogspot.com/2009/07/reporting-does-not-work-with-dpm-2007.html">http://scdpm.blogspot.com/2009/07/reporting-does-not-work-with-dpm-2007.html</a>       <br />You need edit the feature permissions on the the “HTTP Handler Mappings” feature on the Reporting Services IIS site to allow “Script” access (not script execution, just script access).&#160; After that, you should be able to run reports from the DPM console.</li>
<li>Updates – In addition to SP1, there are numerous hotfix rollup packages available, of which you should take advantage.&#160; </li>
</ul>
<ul>
<li>Here the the most current DPM update pack, as of the time of this writing:       <br /><a title="http://www.microsoft.com/downloads/details.aspx?familyid=14E1A04B-2323-4344-B737-A3194B9AB3ED&amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?familyid=14E1A04B-2323-4344-B737-A3194B9AB3ED&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=14E1A04B-2323-4344-B737-A3194B9AB3ED&amp;displaylang=en</a>        <br />In my case, I need this to address errors in the WSSCmdletsWrapper that crop up when attempting to create a protection group for Windows SharePoint Services.&#160; Keep in mind that you need to update the server <em>and your DPM Agents</em>.</li>
<li>You may also need VSS updates:       <br /><a title="http://support.microsoft.com/kb/940349" href="http://support.microsoft.com/kb/940349">http://support.microsoft.com/kb/940349</a>        <br />It appears that VSS updates are available only for Server 2003.&#160; I guess Server 2008 is perfect and does not need VSS update</li>
</ul>
<li>SharePoint Services Backup – The documentation on WSS backup is actually very good, but it is quite scattered.&#160; A few sticking points for me were: </li>
<ul>
<li>You must configure your WSS VSS Agent to run as an account that has <em>both</em> local Administrator rights on the SharePoint WFE, <em>and</em> Farm Administrator rights.&#160; The writer must be configured <em>after </em>installing the DPM agent and <em>before </em>attempting backup.&#160; Use “ConfigureSharePoint.exe” in the DPM bin directory to make these changes. </li>
<li>You also can configure backup of MOSS Search, which is accomplished using a different switch to the “ConfigureSharePoint.exe” tool. </li>
<li>The VSS updates mentioned above are required before backing up a WSS farm.</li>
<li>Server 2008 DR – Documentation on this really bites.&#160; I sent the following feedback to the DPM whitepaper team for their document on Server 2008 Bare Metal recovery (<a title="How to do Bare Metal Recovery of WS08 with DPM 2007 SP1" href="http://download.microsoft.com/download/2/A/B/2AB50D28-D892-4BF3-B823-C62CA02E4CF8/DPM2007sp1_Bare_Metal_Recovery_of_Windows_Server_2008.docx">How to do Bare Metal Recovery of WS08 with DPM 2007 SP1</a>):</li>
<blockquote><p><em>There are a few points in the white paper that require some clarification as they will confuse most readers.&#160; I also have a few questions about the reasoning behind some of the steps in the document.</em></p>
<ol>
<li><em>In the section &quot;Before you create the protection group&quot; under &quot;Configuring Backups for BMR&quot; it is unclear on which system you should be performing these steps.&#160; A seasoned DPM admin will be able to figure out that these steps need to be performed on every system which will be backed up, but a newbie will not know this.&#160; The instructions should be more explicit.&#160; </em></li>
<li><em>The instructions have us create a share on the local server rather than simply backing up the WSB image to a named volume.&#160; Why?&#160; It would seem that backing up to a local share adds unnecessary complexity to this operation.&#160; Using a local volume will be simpler and more secure.&#160; </em></li>
<li><em>Similarly, in the recovery instructions we are told to restore the system image to a local share.&#160; Why?&#160; In a bare metal recovery scenario, there is no local share to recover to!&#160; The server referred to as &quot;%computername%&quot; in the recovery will likely be offline, and thus not available as a recovery target. </em></li>
<li><em>In step 3 of &quot;Configuring Backups&#8230;&quot; we instructed to add the PreBackupScript commands to the &quot;PSDataSourceConfig.xml&quot; file, but we are not told within which XML tags to insert the code.&#160; I was unable to make Pre-backup scripts run when following these instructions.&#160; Instead, I placed the code snippet into &quot;ScriptConfig.xml&quot; (where other documentation suggests that this code actually belongs), and my backup jobs then started to run. </em></li>
<li><em>There is no guidance here about the frequency with which BMR sets should be created.&#160; Unfortunately, I can find very little in the way of best-practices on this subject (Server 2008 disaster recovery, as a general topic).&#160; It seems that weekly (or perhaps even monthly) BME sets followed by daily &quot;standard&quot; DPM backups would be adequate to protect most operating systems, but it would be nice to have some verification of this.&#160; Can you point me to any additional documentation on this subject.</em></li>
</ol>
</blockquote>
<li>Server 2008 DR needs some improvement, to be blunt about it.&#160; The team promises better BMR integration under DPM 2010, but details are not yet available.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=228</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sharepoint &#8211; farm build procedure</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=227</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=227#comments</comments>
		<pubDate>Tue, 03 Nov 2009 19:36:02 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=227</guid>
		<description><![CDATA[After a semi-disaster with SharePoint earlier this week, I have been forced into the view that I really should have our SharePoint infrastructure hosted on more than one web server.&#160; To that end, I am planning the deployment of a new, 2+ node Windows SharePoint Services farm.&#160; 
Initial architecture will be something like this:

Host: SharePoint2

Roles:&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>After a semi-disaster with SharePoint earlier this week, I have been forced into the view that I really should have our SharePoint infrastructure hosted on more than one web server.&#160; To that end, I am planning the deployment of a new, 2+ node Windows SharePoint Services farm.&#160; </p>
<p>Initial architecture will be something like this:</p>
<ul>
<li>Host: SharePoint2
<ul>
<li>Roles:&#160; Web front end, Search Server query and crawl, ECTS ADAM Instance </li>
</ul>
</li>
<li>Host: SharePoint3
<ul>
<li>Roles:&#160; Web front end, Search Server query and index, ECTS ADAM Instance </li>
</ul>
</li>
<li>Hosts: WinDB1 and WinDB2
<ul>
<li>Roles:&#160; Back-end SQL Database failover cluster </li>
</ul>
</li>
<li>F5 Big-IP Local Traffic Manager (hardware load balancer) </li>
</ul>
<p>Once initial rollout is complete, we likely will want to add:</p>
<ul>
<li>Host: SharePoint3
<ul>
<li>Roles: Dedicated Search Server Index and crawl engine. </li>
</ul>
</li>
<li>Hosts: WinDB1 and WinDB2
<ul>
<li>Reconfigured in a SQL mirrored configuration </li>
</ul>
</li>
</ul>
<p>Here is an outline of the SharePoint2/3 build procedure:</p>
<ol>
<li>Install Server 2008 x64 Standard OS
<ol>
<li>Activate Roles:&#160; IIS (with ASP.NET support), AD Lightweight Directory Services (AKA AD LDS, AKA ADAM). </li>
<li>Activate Features:&#160; .Net Framework 3.0, PowerShell </li>
</ol>
</li>
<li>Install Search Server Express x64 bits:
<ol>
<li>Perform “complete” install (Search Server will not install a SQL 2005 instance, as is the case with WSS installer).&#160; Under “file location”, specify “E:\Office\12.0\Data” as the index storage location. </li>
<li>Skip running of the Configuration Wizard after install. </li>
</ol>
</li>
<li>Install SharePoint Administration Kit v2.0
<ol>
<li>Exclude Profile replicator component as it will not work on WSS </li>
</ol>
</li>
<li>Clone the server as many times as deemed necessary. (At present, make one clone!).&#160; Any cloned systems must be sysprep-ed before joining the domain.&#160; Once preped, join the computers, configure networking. </li>
<li>If planning to add this server to a load balanced cluster, install NLB feature:
<ul>
<li>from “administrator” cmd shell, run “ocsetup NetworkLoadBalancingFullServer” </li>
<li>Don’t join to a production NLB cluster until SharePoint configuration is complete! </li>
</ul>
</li>
<li>Replicate AD LDS (ADAM) instance to new machine, if required.
<ol>
<li>In Server Manager, Click on “AD Lightweight Directory Services” Role, </li>
<li>Click “AD LDS Setup Wizard”
<ol>
<li>Select “A replica of an existing instance” </li>
<li>Name the instance “ECTSInstance” </li>
<li>Accept standard LDAP ports </li>
<li>specify a partnerpoint server to replicate from, use standard LDAP ports. </li>
<li>Select the “OU=ects,…” partition set for replication (this should be the only partition!) </li>
<li>Select secondary (non-system) volume as target for AD LDS data… generally this will be “E:\Microsoft ADAM\ECTSInstance\data” </li>
<li>Specify domain service account to run the AD LDS instance. </li>
<li>Add “domain admins” to the AD LDS Administrators list.&#160; Finish the wizard. </li>
</ol>
</li>
<li>Run the campus…bat file located in <em>e:\Microsoft ADAM\ECTSInstance\data\</em>.&#160; This will register the Kerberos Service Principal Names required for LDP replication mutual authentication. </li>
<li>Open the “Local Security Policy” Admin tool.&#160; Add the domain service account to the “generate security audits” User Rights Assignment branch. </li>
<li>Open the AD Users and Computers tool, locate the computer object on which you installed the Instance.&#160; Give the LDS service account “create all child objects” to the computer object. </li>
<li>Add the cluster load balanced SSL cert into the Personal certificate store of the ECTSInstance service account.
<ol>
<li>Request wildcard certificate using the procedure outlined here:              <br /><a title="http://erlend.oftedal.no/blog/?blogid=7" href="http://erlend.oftedal.no/blog/?blogid=7">http://erlend.oftedal.no/blog/?blogid=7</a>               <br />(We use the web interface for requesting a certificate, make user we use the RSA SChannel crypto provider to generate the request, use the “SHA-1” hash, use PKCS10 format, and use the “UVM – Web Server” request template.&#160; For load-balanced LDAP servers, we must request a wildcard certificate (*.uvm.edu)               <br /><strong>NOTE:</strong> This step will not have to be repeated again until the current cert expires.&#160; To add another AD LDS server, export the cert from a current server, import into the new server </li>
<li>Export the request cert to file selecting “export all extended attributes” and “export private key” options. </li>
<li>Import the cert into the “Personal” branch of the service account’s certificate store on the target server.&#160; Make sure that you import “all extended attributes”, and the private key.&#160; Do <em>not</em> select the use of advanced encryption password. </li>
<li>Restart AD LDS and test SSL connections. </li>
<li>If all is not working (as is the case with one of my two servers), here is where we get into undocumented territory.&#160; Here are some helpful resources for debugging:
<ol>
<li>I set SChannel diag logging to verbose :
<ul>
<li>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel                      <br />REG_DWORD EventLogging, value 0&#215;7 </li>
<li>Restart ECTSInstance, look for “SChannel” entries in the server “application” even logs.&#160; These logs will tell you which certificate the system attempted to use, and why access failed. </li>
</ul>
</li>
<li>You may need to add the wildcard cert to the Local Computer Certificate Store as well… run MMC, add the “Certificates” snap-in for “Service Account”, using the “ECTS Instance” service.&#160; Navigate to the “Personal” branch, run an import action, import the wildcard with all extended attributes and the private key. </li>
<li>Now locate the physical copy of this cert in c:\programdata\microsoft\crypto\RSA\MachineKeys (it will be the file with the most recently modified time stamp).&#160; Add “read/execute” permissions to this file for the AD LDS service account, then restart the LDS instance. </li>
</ol>
</li>
</ol>
</li>
<li>Force mutual authentication for replication traffic:
<ol>
<li>Run ADSI Edit </li>
<li>“Connect to”, enter the AD LDS server name in the Computer field, select the “Configration” well-known naming context.&#160; As documented in <a title="http://technet.microsoft.com/en-us/library/cc794841.aspx" href="http://technet.microsoft.com/en-us/library/cc794841.aspx">http://technet.microsoft.com/en-us/library/cc794841.aspx</a>, get “properties” on the “CN=Configuration…” partition, and change the value of “msDSReplAuthenticationMode” to “2”. </li>
</ol>
</li>
<li>Set local password policy – this controls password policy of AD LDS accounts:
<ol>
<li>Add the Sharepoint server computer account to the “ETS – SharePoint Password Policy” GP Object.&#160; After running “gpupdate /target:computer /force”, verify the settings by doing the following:
<ol>
<li>Open Local Security Policy control panel </li>
<li>Expand “Account Policies”-&gt;”Password Policy” </li>
<li>Settings applied should follow the 24/365/0/8/Disabled/Disabled format.&#160; (we may want to revisit this policy later). </li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
<li>Run the SharePoint Products and Technologies Configuration Wizard:
<ol>
<li>Connect to an existing Farm </li>
<li>Enter “WINBD” as the database server.&#160; The wizard will correctly select “SharePoint_FarmConfig” as the configuration database.&#160; The correct service account username will be provided… you need to enter the password. </li>
<li>Click “Advanced Settings”, specify that you which the server to host the Central Admnistration site.
<ol>
<li>If setup fails with the error:              <br /><em>&quot;SharePoint Configuration Wizard failed with an exception &quot;Error during encryption or decryption. System error code 997&quot;                <br /></em>A solution can be found here:               <br /><a title="http://blogs.msdn.com/priyo/archive/2007/08/11/add-new-sharepoint-server-to-existing-server-farm-an-unhandled-exception-occurred-in-the-user-interface-exception-information-unable-to-connect-to-the-remote-server.aspx" href="http://blogs.msdn.com/priyo/archive/2007/08/11/add-new-sharepoint-server-to-existing-server-farm-an-unhandled-exception-occurred-in-the-user-interface-exception-information-unable-to-connect-to-the-remote-server.aspx">http://blogs.msdn.com/priyo/archive/2007/08/11/add-new-sharepoint-server-to-existing-server-farm-an-unhandled-exception-occurred-in-the-user-interface-exception-information-unable-to-connect-to-the-remote-server.aspx</a>               <br />Essentially we just run “stsadm –o updatefarmcredentials –userlogin “domain\service_acount” –password &lt;thePassword&gt;” on the first SharePoint server, then re-run the wizard. </li>
</ol>
</li>
<li>Update the “Central Admin” shortcut to point to the local Central Admin site by doing the following registry hack:          <br /><a title="http://blogs.technet.com/wbaer/archive/2007/08/30/sharepoint-3-0-central-administration-url-on-multiple-web-front-end-servers.aspx" href="http://blogs.technet.com/wbaer/archive/2007/08/30/sharepoint-3-0-central-administration-url-on-multiple-web-front-end-servers.aspx">http://blogs.technet.com/wbaer/archive/2007/08/30/sharepoint-3-0-central-administration-url-on-multiple-web-front-end-servers.aspx</a>           <br />Essentially, edit the key:           <br />HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\WSS           <br />Then locate CentralAdministrationURL and change it to point to the local server. </li>
</ol>
</li>
<li>Configure Search Service:
<ol>
<li>When Search is run in an environment where SharePoint services are accessed from a FQDN which is different from the physical host name (i.e. our environment, or any other environment with load balancers), you will need to work around the “loopback security check” feature of Windows.&#160; Failing to do so will result in “access denied” errors in the crawl logs.&#160; My thanks to Shawn Feldman for discovering this:          <br /><a href="http://blogs.msdn.com/fledman/archive/2008/09/18/access-denied-with-windows-server-2008-and-moss-when-crawling.aspx">http://blogs.msdn.com/fledman/archive/2008/09/18/access-denied-with-windows-server-2008-and-moss-when-crawling.aspx</a>           <br />The relevant work-around is documented here (see “Method 2”):           <br /><a href="http://support.microsoft.com/kb/896861">http://support.microsoft.com/kb/896861</a>           <br />We simply need to add the public FQDN of our SharePoint server to:           <br />Key: HKLM\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0           <br />Value: REG_MULTI_SZ, sharepoint.uvm.edu           <br />And then restart the IISAdmin service. </li>
<li>Open the search admin page from SharePoint Central Administration:
<ol>
<li>Access Crawling –&gt; Content Sources
<ol>
<li>Click the “Local Office SharePoint Server sites” default source. </li>
<li>Define a crawling schedule for the SharePoint application </li>
<li>Click “new content source” to add any additional content sources that are desired (i.e. our production file servers). </li>
<li>Define additional crawl schedules for these new content sources. </li>
</ol>
</li>
</ol>
</li>
<li>Add Search Center to our SharePoint landing page:
<ol>
<li></li>
</ol>
</li>
</ol>
</li>
<li>Install Infrastructure Update for WSS3 x64:
<ol>
<li>Initiate the update on the first node in the cluster.&#160; </li>
<li>When prompted, start the install on the second cluster node. </li>
<li>When the configuration wizard completes on the second node, go back to the first and allow configuration to complete. </li>
</ol>
</li>
<li>Install Infrastructure Update for Search Server x64:
<ol>
<li>Initiate the update on the first node in the cluster.&#160; </li>
<li>When prompted, start the install on the second cluster node. </li>
<li>When the configuration wizard completes on the second node, go back to the first and allow configuration to complete. </li>
</ol>
</li>
<li>Clean up IIS settings for the newly created Web Sites – configure binding, authentication and SSL:
<ol>
<li>SSL Cert Installation:&#160; <br />Install SSL certs into “Personal” Store of the Computer account using the “Certificates” MMC snapin. </li>
<li>Binding:&#160; <br />Open the IIS Manager MMC snapin.&#160; On each site, right-click and select “edit bindings”:
<ol>
<li>For site “SharePoint – 443” (which represent the traditional “sharepoint.uvm.edu” URL), bind https and http protocols to port 80 and port 443, using the IP address for “sharepoint.uvm.edu” (132.198.102.12).&#160; When binding SSL, select the appropriate cert from the “SSL Certificate” drop down menu. </li>
<li>For “SharePoint – Internet” (which represents SharePointLite), bind https and http, ports 443 and 80, to “sharepointlite.uvm.edu”, IP 132.198.102.36.&#160; Again, select the correct SSL cert for this site. </li>
<li>For “SharePoint – Extranet” (which represents PartnerPoint), bing https and http, ports 443 and 80, to “partnerpoint.uvm.edu”, IP 132.198.102.49, selecting the matching SSL cert once again. </li>
</ol>
</li>
<li>SSL Configuration:&#160; (Note that these procedures are only accurate when using Windows-native load balancers… when we transition to f5 load balancing, it will not be necessary to return custom errors from IIS as the f5 will handle HTTP-to-HTTPS redirections.)
<ol>
<li>In IIS Manager, open the “features view” for each site. </li>
<li>Double-click “SSL Settings” </li>
<li>Check “Require SSL”, leaving the default “ignore Client certificates” setting. </li>
<li>Now double-click the “Error Pages” item for the server root.&#160; Add a custom error for 403.4 (SSL required), pointing to our custom “redirect.html” javascript file.&#160; We will need to have copied this file into “c:\inetpub\custerr\en-US\” before completing this step </li>
<li>Now find the applicationHost.config file for the IIS server.&#160; This should be located in “C:\Windows\system32\inetsrv\config”.&#160; Locate the section for each site that serves SharePoint content (i.e. &lt;location path=”SharePoint – 443”&gt;), then locate the &lt;httpErrors&gt; tag under &lt;system.webServer&gt;.&#160; In the httpErrors tag, change the value for “existingResponse” from “PassThrough” to “Replace” (response “Auto” also seems to work, but may produce inconsistent results).&#160; This will prevent ASP.NET from replacing the 403.4 error response from the IIS server.&#160; I am much indebted to this forum thread for this breakthrough:              <br /><a title="http://forums.iis.net/t/1113734.aspx" href="http://forums.iis.net/t/1113734.aspx">http://forums.iis.net/t/1113734.aspx</a>               <br />Also helpful was the new “failed request tracing” module in IIS7:               <br /><a title="http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis7/" href="http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis7/">http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis7/</a>               <br />More information on the meaning of the various existingResponse values can be found here:               <br /><a title="http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx" href="http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx">http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx</a> </li>
</ol>
</li>
</ol>
</li>
<li>Install the MS FilterPack 1.0 (Search Server can already index most Office 2007 documents, but this adds ability to index inside of One Note files and ZIP archives):
<ol>
<li>Follow instructions at:          <br /><a title="http://support.microsoft.com/?id=946336" href="http://support.microsoft.com/?id=946336">http://support.microsoft.com/?id=946336</a> </li>
</ol>
</li>
<li>Install Adobe iFilter, with 64-bit “thunking” DCOM service:
<ul>
<li><a title="http://labs.adobe.com/wiki/index.php/PDF_iFilter_8_-_64-bit_Support" href="http://labs.adobe.com/wiki/index.php/PDF_iFilter_8_-_64-bit_Support">http://labs.adobe.com/wiki/index.php/PDF_iFilter_8_-_64-bit_Support</a> </li>
<li><a title="http://workerthread.wordpress.com/2008/07/18/adobe-reader-9-available-works-fine-with-sharepoint/" href="http://workerthread.wordpress.com/2008/07/18/adobe-reader-9-available-works-fine-with-sharepoint/">http://workerthread.wordpress.com/2008/07/18/adobe-reader-9-available-works-fine-with-sharepoint/</a> </li>
<li><a title="http://servergrrl.blogspot.com/2008/01/and-now-for-something-completely.html" href="http://servergrrl.blogspot.com/2008/01/and-now-for-something-completely.html">http://servergrrl.blogspot.com/2008/01/and-now-for-something-completely.html</a> </li>
<li>TEST IT… Internet chatter suggests that this config is less than reliable. </li>
</ul>
</li>
<li>Install MindManager extensions.
<ol>
<li>DEPRECATED – We will discontinue this extension with the new upgrade as it does not work with MM v7 or v8 </li>
</ol>
</li>
<li>Install ECTS components on each web front end server.
<ul>
<li>Having problems with installation script… what if we try the ECTS update available though CodePlex???
<ol>
<li>If using updated ECTS files, it will be necessary to update the PartnerAdmin and PartnerConfig pages, as the self-service Site Collection Manager.&#160; The existing pages will not work because the GUIDs on the Web Parts have changed.&#160; </li>
<li>The ects_setup_sharepoint.vbs script still fails using the updated code… Since the codeplex team has not documented their changes, I think we will skip this option. </li>
</ol>
</li>
<li>Troubleshooting issues:
<ol>
<li>The ects_setup_sharepoint.vbs script succeeds in installing the ECTS solution, but fails when activating site features.&#160; I suspect that “cscript” on Server 2008 is not processing return codes from stsadm.exe correctly, and this is reporting failure to install features (I am not positive about the reason for the script failure, although it certainly is not a result of stsadm.exe being broken.&#160; <br />I was able to work around this problem by opening the ects_setup_sharepoint.vbs file in a text editor, searching for the error string that was sent to the console when the script failed, then running all of the operations in the script manually from that point forward.&#160; Fortunately, all of the stsadm commands in the script are successful when run from the command line. </li>
<li>ECTS is not compatible with MS Load Balancing out of the box.&#160; I switched to a F5 load balancer before working through the problem.&#160; It is possible that the problem I was having could have been fixed with the same “loopback security check” that caused problems during our F5 configuration              <br /><a href="http://support.microsoft.com/kb/896861">http://support.microsoft.com/kb/896861</a>               <br />In fact, we may have had the problem even with the f5 in place, but I would not know because I applied the loopback fix before implementing the F5.               <br />The error codes suggest that a login failure is occurring between the IIS application and the AD LDS LDAP instance.&#160; When I try to connect to the load-balanced LDAP DNS name using the “LDP.exe” LDAP client, I also get an authentication error.&#160; However, when I connect to the local server address, authentication works.&#160; </li>
<li>As was the case when I first installed ECTS, the web.config files required a bit of hand-tuning to get services working correctly:              <br /><a title="http://www.uvm.edu/~jgm/wordpress/?p=112" href="http://www.uvm.edu/~jgm/wordpress/?p=112">http://www.uvm.edu/~jgm/wordpress/?p=112</a>               <br />Once again, I had to modify the “ADAMConnectionString” in the web.config of each IIS site to reflect the actual DNS name of the load-balanced AD LDS servers.&#160; I had installed ECTS using a different name initially, and the ECTS un-installation script did not clear out these values. </li>
<li>I did find it necessary to deactivate all ECTS site collection features, re-activate them, then perform an IIS reset before my existing ECTS management pages would work again.&#160; This seems pretty par for the course when removing and re-installing SharePoint solutions. </li>
</ol>
</li>
</ul>
</li>
<li>Install Globally-deployable solutions from the “fab 40” application template.&#160; If you deploy a web front end into an existing farm, the files required by these features will get transferred automatically.&#160; However, when building a new farm, we need to install them manually.&#160; Currently required “server admin” templates are:
<ul>
<li>ApplicationTemplateCore </li>
<li>ChangeRequest </li>
<li>ContactsManagement </li>
<li>DocumentLibraryReview </li>
<li>EventPlanning </li>
<li>HelpDesk </li>
<li>InventoryTracking </li>
<li>ITTeamWorkspace </li>
<li>Knowledgebase </li>
<li>LendingLibrary </li>
<li>PhysicalAssetTracking </li>
<li>ProjectTrackingWorkspace </li>
<li>RoomEquipmentReservations </li>
<li>Procedure:
<ul>
<li>stsadm -o addsolution -filename &lt;file_path&gt;\&lt;template_name&gt;.wsp </li>
<li>stsadm -o deploysolution -name &lt;template_name&gt;.wsp –allowgacdeployment </li>
</ul>
</li>
</ul>
</li>
<li>Install radEditor:
<ol>
<li>Install ASP.NET Ajax for .NET 2.0, version 1.0 </li>
<li>Follow the Ajax configuration for SharePoint configuration guide found here:          <br />&#160;<a title="http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=3" href="http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=3">http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=3</a> </li>
<li>Install radEditor using the included instructions. </li>
<li>Copy radEditor configuration files from an existing production server to the new server:
<ol>
<li>In the directory:              <br />”C:\Program Files\Common Files\Microsoft Shared\web server extensions\wpresources\RadEditorSharePoint\[versionString]\RadControls\Editor”               <br />Backup the existing ListConfigFile.xml, ConfigFile.xml, ListToolsFile.xml, and ToolsFile.xml files.&#160; Replace with versions customized for UVM.&#160; Note that the MOSS LinkManager tool does not work in WSS.&#160; Also note that when editing list content that does not support “Enhanced Content”, the first toolbar in the ListToolsFile.xml will be removed… in past versions, the toolbar named “enhancedTools” was removed. </li>
<li>Copy the files ListConfigFile.xml, ConfigFile.xml, ListToolsFile.xml, and ToolsFile.xml to all other nodes in the cluster. </li>
<li>perform an IISRESET. </li>
<li>Update ONET.xml files in the “12” hive to activate the radEditor feature by default in all new sites (see ONET.xml template files on the prod web front end for examples).              <br /><strong>NOTE<em> </em></strong>that the “RadEditor for non-IE browsers” and “RadEditor for IE” features have been collapsed into one unified feature.&#160; Update the ONET.XML files accordingly!&#160; (note that the feature ID for the main RadEditor List editor has not changed… only it’s name is different.&#160; We did not have to insert a new default feature ID, but we did need to remove the “RadEditor for IE” feature because it is no longer present in RadEditor MOSS.) </li>
<li>Run:              <br />stsadm –o uninstallfeature –name RadEditorFeatureRichHtml.               <br />This “Web Content Management” feature is not supported in WSS, so we may as well remove it to avoid confusion. </li>
<li>Deactivate and then re-activate the radEditor features on at least one existing site, and test functionality. </li>
</ol>
</li>
</ol>
</li>
<li>Install “Smiling Goat” Feed Reader (RSS/ATOM subscriber web part)
<ol>
<li>This will require Feed Reader users to update their web parts! </li>
</ol>
</li>
<li>Install SharePoint Training Kit:
<ol>
<li></li>
</ol>
</li>
<li>Tune web application settings to match production server:
<ol>
<li>Set upload limits for files (also need to set IIS “maxAllowedContentLength” in each web.config to be longer than the SharePoint upload limit.&#160; See <a title="http://support.microsoft.com/kb/944981/en-us" href="http://support.microsoft.com/kb/944981/en-us">http://support.microsoft.com/kb/944981/en-us</a> for details.)</li>
<li>Set time zone </li>
<li>Set allowed/disallowed MIME types </li>
<li>Set quota templates for new sites </li>
<li>Config incoming/outgoing email settings </li>
<li>Config site expiration/auto-deletion. </li>
<li>Edit the footer of the “welcome” email message starting at line 5219 of “core.en-US.resx” in the 12-hive “resources” folder.&#160; Replicate on all web front ends in the farm. </li>
</ol>
</li>
<li>Configure f5 load balancers:
<ol>
<li></li>
</ol>
</li>
<li>TEST TEST TEST:
<ol>
<li>Test each feature on both web front ends by alternately disabling the nodes in the load balancer configuration. </li>
<li>Test again with both nodes enabled… watch for authentication and session persistence issues. </li>
<li>Test all features in each access mapping – SP, SPLite, and Partner… web.config file variations could cause problems! </li>
</ol>
</li>
<li>Consider Deployment of “Group Board 2007” and “Sample Master Pages”:
<ul>
<li><a title="http://www.microsoft.com/sharepoint/templates.mspx" href="http://www.microsoft.com/sharepoint/templates.mspx">http://www.microsoft.com/sharepoint/templates.mspx</a> </li>
</ul>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=227</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(Not) Implementing MSIT Site Life Cycle Management</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=223</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=223#comments</comments>
		<pubDate>Thu, 06 Aug 2009 18:58:52 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[Site Delete Capture]]></category>
		<category><![CDATA[Site Lifecycle Manager]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=223</guid>
		<description><![CDATA[I had a look at implementing MS IT Site Life Cycle Management as an alternative to AvePoint products, or the previously blogged-about MS IT Site Delete Capture utility:
http://www.codeplex.com/governance/Release/ProjectReleases.aspx?ReleaseId=4622
Unfortunately, this product just is not going to work for us.  It is possible that we could wrangle it into shape with enough time, and an ability/desire to [...]]]></description>
			<content:encoded><![CDATA[<p>I had a look at implementing MS IT Site Life Cycle Management as an alternative to AvePoint products, or the previously blogged-about MS IT Site Delete Capture utility:</p>
<p><a href="http://www.codeplex.com/governance/Release/ProjectReleases.aspx?ReleaseId=4622">http://www.codeplex.com/governance/Release/ProjectReleases.aspx?ReleaseId=4622</a></p>
<p>Unfortunately, this product just is not going to work for us.  It is possible that we could wrangle it into shape with enough time, and an ability/desire to check the code out of codeplex and patch it up.  However, I just can&#8217;t bring myself to deal with it.  Here are some problems that I encountered:</p>
<ol>
<li>The utility has not been tested or developed to work on the Server 2008 platform.  The directions are written with Server 2003 as a reference platform, and tell you do do things like &#8220;create a virtual directory&#8221; when what they really want you to do is to create an application in your IIS App Pool.  I could live with this but&#8230;</li>
<li>The tool does not work on Server 2003 either, at least, not when using WSS 3.0 Service Pack 2.  The web.config file in the LCMWeb directory references an assembly in the GAC named &#8220;Microsoft.Internal.MIME&#8221;, with the version 8.0.0.0.  Guess what?  That assembly was upgraded with Service Pack to to version 8.0.681.0.  But even after updating the web.config file to the new version, I still get errors when attempting to load the LCMWebConfig.aspx page.  humph.</li>
</ol>
<p>Essentially, this tool is not supported, and ,to make matters worse, it is not being maintained.  I really would hate to spend time beating it into shape only to have the damn thing break when the next service pack or release of WSS comes out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=223</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(Not) Implementing MSIT Site Delete Capture LE</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=217</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=217#comments</comments>
		<pubDate>Thu, 30 Jul 2009 21:50:03 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[Codeplex]]></category>
		<category><![CDATA[Governance]]></category>
		<category><![CDATA[Site Delete Capture]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=217</guid>
		<description><![CDATA[&#8220;Site Delete Capture LE&#8221; from Microsoft IT&#8230; cool idea, tricky to implement.  Here is the problem:
Attempts to delete a site result in &#8220;Access Denied&#8221; error messages in the site delete log files.  No corresponding events found in the Security Event logs, nor are we able to detect any &#8220;ACCESS DENIED&#8221; messages using procmon.exe.  What&#8217;s up? 
Well, [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Site Delete Capture LE&#8221; from Microsoft IT&#8230; cool idea, tricky to implement.  Here is the problem:</p>
<p>Attempts to delete a site result in &#8220;Access Denied&#8221; error messages in the site delete log files.  No corresponding events found in the Security Event logs, nor are we able to detect any &#8220;ACCESS DENIED&#8221; messages using procmon.exe.  What&#8217;s up? </p>
<p>Well, in this thread:<br />
<a href="http://governance.codeplex.com/Thread/View.aspx?ThreadId=11781">http://governance.codeplex.com/Thread/View.aspx?ThreadId=11781</a> <br />
one of the project authors suggests that the utility requires additional rights beyond the &#8220;least-priviledge&#8221; baseline, specifically, the account running your SharePoint WFE applicaiton pool needs to be a &#8220;Farm Administrator&#8221;, and it needs &#8220;Full Control&#8221; over the web application.</p>
<p>Much as I did not like this suggestion, I decided to give it a try in the test environment, but it fails anyway.  Further investigation reveals that the sharepoint WFE service account is not actaully capable of performing site backups.  If you log in as the service account, you cannot run any &#8220;stsadm&#8221; commands at all&#8230; every command results in &#8220;ACCESS DENIED&#8221;.</p>
<p>It turns out that stsadm.exe will not run without local administrator privs.  It also would seem (although I cannot prove it) that the Site Delete Capture utility is using stsadm functions to generate its snapshots.  Since I will not be giving our SharePoint WFE app pool local admin rights, I guess I cannot use this utility.  On to testing the Site Lifecycle Manager instead&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=217</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cool Tools for SharePoint</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=215</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=215#comments</comments>
		<pubDate>Tue, 28 Jul 2009 18:38:02 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[Codeplex]]></category>
		<category><![CDATA[Governance]]></category>
		<category><![CDATA[Site Delete Capture]]></category>
		<category><![CDATA[Site Lifecycle Manager]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=215</guid>
		<description><![CDATA[Hey look&#8230; Microsoft IT has released some cool tools for SharePoint management:
http://governance.codeplex.com/
Possibly of most use would be:
http://www.codeplex.com/governance/Release/ProjectReleases.aspx?ReleaseId=14351
A utility to automatically backup sites upon deletion actions.
And:
http://www.codeplex.com/governance/Release/ProjectReleases.aspx?ReleaseId=4622
Site Lifecycle Management &#8211; a potential replacement for the hated &#8220;Site Expiration&#8221; process we have in place at present.
]]></description>
			<content:encoded><![CDATA[<p>Hey look&#8230; Microsoft IT has released some cool tools for SharePoint management:<br />
http://governance.codeplex.com/</p>
<p>Possibly of most use would be:<br />
http://www.codeplex.com/governance/Release/ProjectReleases.aspx?ReleaseId=14351<br />
A utility to automatically backup sites upon deletion actions.</p>
<p>And:<br />
http://www.codeplex.com/governance/Release/ProjectReleases.aspx?ReleaseId=4622<br />
Site Lifecycle Management &#8211; a potential replacement for the hated &#8220;Site Expiration&#8221; process we have in place at present.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=215</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ApplicationXtender &#8211; 5.30 to 5.40SP1 upgrade planning</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=205</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=205#comments</comments>
		<pubDate>Tue, 30 Jun 2009 21:38:43 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Document Imaging]]></category>
		<category><![CDATA[ApplicationXtender]]></category>
		<category><![CDATA[IIS]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=205</guid>
		<description><![CDATA[Previously I documented a rough outline of the AX 5.30 Infrastructure installation process:
http://www.uvm.edu/~jgm/wordpress/?p=71
With support for 5.30 expiring today, I think it high time we got our infrastructure up to date up to the most current version that is supported for use with SunGard Banner.

Uninstall all previously existing AX components.  Purge any residual files from the [...]]]></description>
			<content:encoded><![CDATA[<p>Previously I documented a rough outline of the AX 5.30 Infrastructure installation process:<span id="sample-permalink"><br />
http://www.uvm.edu/~jgm/wordpress/?p=71</span></p>
<p><span>With support for 5.30 expiring today, I think it high time we got our infrastructure <span style="text-decoration: line-through;">up to date</span> up to the most current version that is supported for use with SunGard Banner.</span></p>
<ol style="padding-left: 30px;">
<li>Uninstall all previously existing AX components.  Purge any residual files from the IIS  publishing directories, &#8220;Program Files&#8221;, &#8220;Application Data&#8221;, and the registry.</li>
<li>Set security for the global impersonation account according to the table on page 210 of the &#8220;concepts and planning guide&#8221;.
<ol>
<li>Note that the account does <em>not</em> have to be a local administrator!</li>
<li>However, the security accounts will have to have privileges to the resources accessed by the services (i.e. NTFS filesystems rights, shared folder access).</li>
<li>Rendering Service -
<ol>
<li>When granting rights to the DX data store, plan ahead.  Permissions could take a <em>long</em> time to apply.</li>
<li>Requires Local Security Policy &#8220;Replace a Process Level Token&#8221; and &#8220;Adjust memory quotas for a process&#8221; rights.  Also, the &#8220;Allow service to interact with the desktop&#8221; box must be <em>deselected</em> in the &#8220;Log On&#8221; tab of the Rendering service properties.</li>
</ol>
</li>
<li>WebAccess.NET Services -
<ol>
<li>Global Account needs only &#8220;Log on as a service&#8221; Local Security Policy assignment.  You can clear out all &#8220;legacy&#8221; security permissions as they are <em>not</em> needed for WebAccess!</li>
</ol>
</li>
</ol>
</li>
<li><span>Install AX Desktop, installing all administration tools:</span>
<ol>
<li><span>msiexec /i &#8220;</span>ApplicationXtender Desktop.msi&#8221;<span> /qb ADDLOCAL=</span>DocumentManager,AppGen,ConfigurationTools,ManagementTools</li>
</ol>
</li>
<li>Install the new License Server and install license file:
<ol>
<li>Install the &#8220;ApplicationXtender License Server.msi&#8221; (FlexNet License Manager)
<ol>
<li>Drop the .LIC license file into C:\Program Files\XtenderSolutions\Content Management\License Server</li>
<li>Configure the Login identity of the &#8220;ApplicationXtender License Client Components&#8221; COM+ application to use the global impersonation account.  This component must be shut down to be reconfigured.  Details in EMC PowerLink solution esg92864.</li>
<li>Restart the &#8220;ApplicationXtender License Service&#8221; Service.</li>
</ol>
</li>
<li>Install the &#8220;EMC License Server&#8221; (Proprietary License Server, to support DiskXtender)
<ol>
<li>Install all current patches to the service</li>
<li>Run the &#8220;License Server Administrator&#8221; GUI.</li>
<li>Go to &#8220;Tools&#8221;, then &#8220;New License Wizard&#8221; to install the DiskXtender License.</li>
</ol>
</li>
</ol>
</li>
<li>Install DiskXtender
<ol>
<li>Install DiskXtender patches, in sequence
<ol>
<li>When prompted for the DX service account, you must provide an account that has local &#8220;administrator&#8221; rights, and the ability to &#8220;log on as a service&#8221;.</li>
</ol>
</li>
<li>Verify and/or re-establish RPC partition maps &#8211; See the &#8220;Core Components&#8221; guide for instructions.</li>
<li>Consider switching to DCOM security model, which will require modifying the &#8220;AE_PATHS&#8221; table in each data source db.   See page 160 of the &#8220;Desktop Install Guide&#8221; for details.
<ol>
<li>This is not actually practical to do since it will break AX Desktop on any system that is not joined to the CAMPUS domain (and why would they not be joined, I wonder?)</li>
</ol>
</li>
</ol>
</li>
<li>Launch AX Admin
<ol>
<li>See &#8220;ApplicationXtender Desktop Installation Guide&#8221; for details</li>
<li>Log in as SYSOP and perform the database upgrade, if prompted.</li>
<li>Verify global settings:
<ol>
<li>Add license server configuration: see &#8220;Core Components&#8221; guide for details.</li>
<li>Web Access .NET must use Global credentials since we are using and Oracle database with Oracle security.</li>
</ol>
</li>
<li>Save the configuration and exit</li>
</ol>
</li>
<li>Launch AppGen, and verify functionality.
<ol>
<li>Connect to each defined data source, one at a time.</li>
<li>Perform database upgrades if prompted (this should be safe, but can take several minutes to complete).</li>
</ol>
</li>
<li>Set IIS web site root to use ASP.NET 2.0.</li>
<li>Install AX Web Services, making sure to install the required &#8220;Utility Services&#8221; component.  &#8220;AX Web Services&#8221; and &#8220;Workflow&#8221; components are optional.
<ol>
<li>See &#8220;AppXtender Core Components Admin Guide&#8221; for installation and config details.</li>
<li>Choose IIS installation option, and install into &#8220;Default Web Site&#8221; (which should be the only site present)</li>
<li>Ensure that &#8220;Default.aspx&#8221; is listed as an accepted default page for the &#8220;AppXtender&#8221; IIS web application.</li>
</ol>
</li>
<li>Install AX Web Access .NET</li>
<li>Install AX Rending Server</li>
<li>Run the Component Setup Wizard for all installed components</li>
<li>Outside of my control:
<ol>
<li style="text-align: left;">BannerXtender updates need to be applied to production Banner systems.</li>
<li style="text-align: left;">DocSend and ECopy stations need to be upgraded to 5.40 AX Desktop releases</li>
<li style="text-align: left;">DocAccel server needs 5.40 AX Desktop upgrade</li>
<li style="text-align: left;">All AX desktop clients need updates, too.</li>
<li style="text-align: left;">Anyone using WX WebAccess.NET ActiveX controls will need to upgrade these components.</li>
</ol>
</li>
<li>Test Test Test!</li>
</ol>
<p style="padding-left: 30px;">
<p style="padding-left: 30px;"><span><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=205</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Deployment Toolkit &#8211; To Do Items</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=197</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=197#comments</comments>
		<pubDate>Tue, 02 Jun 2009 21:35:29 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>
		<category><![CDATA[Microsoft Deployment Toolkit]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=197</guid>
		<description><![CDATA[MDT looks to be gaining a lot of usage, which is good from my perspective as it means more brains with whom to share ideas.
Here are a few ideas I have been considering for addition to our MDT Workbench:

Use the MDT Wizard Editor to add a page for whole-system backup.  This functionality has been requested [...]]]></description>
			<content:encoded><![CDATA[<p>MDT looks to be gaining a lot of usage, which is good from my perspective as it means more brains with whom to share ideas.</p>
<p>Here are a few ideas I have been considering for addition to our MDT Workbench:</p>
<ul>
<li>Use the <a href="http://mdtwizardeditor.codeplex.com/">MDT Wizard Editor </a>to add a page for whole-system backup.  This functionality has been requested by our College of Medicine IT Staff.</li>
<li>Implement the &#8220;<a href="http://myitforum.com/cs2/blogs/jscheffelmaer/default.aspx">Roles Wizard</a>&#8221; solution to allow Distributed IT staff the ability to select MSD database roles for their system.
<ul>
<li>This will require that I farm out data writer rights to the MSD database, too.</li>
</ul>
</li>
<li>Move all online versions of the MDT Distribution Points to our NetApp network storage and activate de-duplication features&#8230; this should keep the whole bloated thing <em>much </em>more trim.</li>
<li>Create<a href="http://technet.microsoft.com/en-us/library/bb978362.aspx"> Model Aliases </a>for Apple computers.  This will be helpful as we gear up for BootCamp support.</li>
<li>Finish my own disk paritioning script to add support for BootCamp, and to preserve OEM utility partitions.</li>
<li>Integrate all current <a href="http://www.delltechcenter.com/page/Dell+Business+Client+Operating+System+Deployment+-+The+.CAB+Files">Dell Driver CABs</a>&#8230; figure out if there are notifications available for these.</li>
<li>Move &#8220;sensitive&#8221; application installers into a single central distribution share and secure them.  Do not replicate these installers to secondary distribution points.</li>
<li>Implement &#8220;media&#8221; based deployment points to allow high-speed deployment from low-speed networks.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=197</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MED-V Configuration Hiccups</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=166</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=166#comments</comments>
		<pubDate>Tue, 05 May 2009 05:49:25 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Virtualize your life]]></category>
		<category><![CDATA[MED-V]]></category>
		<category><![CDATA[Virtual PC]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Windows XP]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=166</guid>
		<description><![CDATA[Microsoft Enterprise Desktop Virtualization, or MED-V&#8230; an really cool new technology.  And as with any right-out-of-the-stable product, documentation is a bit sparse.  Worse, there are currently no Microsoft-sponsored forums for the product.  Those of us wising to deploy right away are going to be figuring things out on our own&#8230; again.
A few tidbits so far:

There [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft Enterprise Desktop Virtualization, or MED-V&#8230; an really cool new technology.  And as with any right-out-of-the-stable product, documentation is a bit sparse.  Worse, there are currently no Microsoft-sponsored forums for the product.  Those of us wising to deploy right away are going to be figuring things out on our own&#8230; again.</p>
<p>A few tidbits so far:</p>
<ul>
<li>There appears to be a missing manual, available at various places on the Internet, but <em>not</em> from Microsoft.  Perhaps it came with the MED-V beta?  Anyway, it has some good step-by-step configuration info for IIS that is not present in the official manual.  Get it here:<br />
<a title="MED-V Installation and Configuration Guide 1.0" href="http://www.mvug.co.uk/media/p/120.aspx" target="_blank">http://www.mvug.co.uk/media/p/120.aspx</a></li>
<li>When setting up an HTTP distribution server for MED-V, make sure the following role services get installed:
<ul>
<li>BITS Server Extensions (added as a general feature <em>after</em> IIS is installed)</li>
<li>Windows Authentication</li>
<li>Basic Authentication</li>
<li>Client Certificate Mapping Authentication</li>
</ul>
</li>
<li>You will need to grant read/write access to the image upload directory on the IIS server&#8230; kind of a &#8220;duh&#8221; note; however, you may want to add the permissions from the IIS console rather than from explorer, as doing so avoids issues with web.config and BITS transaction file permissions.</li>
<li>Before you download a MED-V image to a MED-V client, you will need to add the two following MIME types to the IIS server:
<ul>
<li>.index &#8211; application/octet-stream</li>
<li>.ckm &#8211; application/octet-stream</li>
</ul>
</li>
<li>Reporting Database configuration:
<ul>
<li>Documentation <em>suggests</em> but does not specifically state that when configuring MED-V to use a remote SQL server for the reporting database, you should need to use <em>SQL Authentication. </em>If you attempt to use Windows Integrated security, you will see that the Med-V service attempts to connect to the new database as an &#8220;anonymous user&#8221; (which, of course, fails).</li>
<li>The documentation tells you to provide the SQL Server &#8220;SA&#8221; login and password to the MED-V database configuration tool.  This, if course, is not necessary.  You <em>can and should </em>create a separate SQL login for MED-V.  This login will need to have &#8220;dbcreator&#8221; rights at the time you create the database, but this role can be revoked as soon as the database has been created.</li>
<li>Your database connection string should resemble the following example:<br />
<em>Data Source=DBSERVER1\Instance1;Initial Catalog=MEDVReports;uid=medvReportUser;password=G1bb3r1$hP@ssw0rd</em></li>
</ul>
</li>
<li>XP Image Configuration:
<ul>
<li>When configuring your XP image for sysprep and domain join, you <em>must</em> create an sysprep.inf configuration that will run mini-sup in fully unatteded mode.  You file must contain the following entries in addition to your preferred local settings:</li>
<blockquote><p>[Unattended]<br />
InstallFilesPath=C:\i386<br />
OemSkipEula=Yes</p>
<p>[GuiUnattended]<br />
OEMSkipRegional=1<br />
OEMSkipWelcome=1<br />
AutoLogon=Yes<br />
AdminPassword=&#8221;insertYourPasswordHere&#8221;<br />
EncryptedAdminPassword=NO<br />
AutoLogonCount=5</p>
<p>[Identification]<br />
JoinWorkgroup=UVM</p>
<p>[Networking]<br />
InstallDefaultComponents=Yes</p>
<p>[UserData]<br />
ProductKey=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX<br />
FullName=&#8221;User Full Name&#8221;<br />
OrgName=&#8221;Your Organization Name&#8221;<br />
ComputerName=*</p></blockquote>
<li>You also <em>must</em> configure the automatic administrator logon option for at least as many times as are required to perform your planned computer rename and domain join operations (whcihc would be two reboots, but you might want to pad it a bit to be safe).  Keep in mind that the MED-V client will <em>not </em>be able to hook into the guest GINA using your MED-V login creds until the workstation has been joined to the domain.</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=166</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>External Collaboration Toolkit for SharePoint &#8211; Run Screaming</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=162</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=162#comments</comments>
		<pubDate>Mon, 27 Apr 2009 21:40:35 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[ECTS]]></category>
		<category><![CDATA[Support]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=162</guid>
		<description><![CDATA[After two days of troubleshooting some vexing problems with ECTS, I have arrived at a new recommendation concerning this product:
Run Screaming
Okay, that may be a bit damning&#8230; here is a qualifier.  If you have no SLA with your customers, don&#8217;t mind lots of downtime, love C# programming, and otherwise find SharePoint troubleshooting highly amusing, then [...]]]></description>
			<content:encoded><![CDATA[<p>After two days of troubleshooting some vexing problems with ECTS, I have arrived at a new recommendation concerning this product:</p>
<p><em>Run Screaming</em></p>
<p>Okay, that may be a bit damning&#8230; here is a qualifier.  If you have no SLA with your customers, don&#8217;t mind lots of downtime, love C# programming, and otherwise find SharePoint troubleshooting highly amusing, then ECTS is the solution for you.  Otherwise, try something less painful.</p>
<p>The main discovery that pushes me to make this recommendation is that the ECTS solution <em>is not supported by Microsoft</em>.  The head of the MS Solutions Accelerator group once told me that all Solutinos Accelerators for currently supported MS products are supported by Microsoft.  This is not actually the case.  <em>Always</em> read the fine print for your Solutions Accelerators.  In the case of ECTS, we find the following in the ECTS FAQ, available in the &#8220;Informational Materials&#8221; download.  From <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=d9af2c25-989c-45c4-8008-1f15722190ed">http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=d9af2c25-989c-45c4-8008-1f15722190ed</a>:</p>
<blockquote><p><span style="FONT-FAMILY: 'Verdana','sans-serif'; COLOR: fuchsia; FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 'MS Mincho'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><strong>Answer: Although every effort was made to ensure that the External Collaboration Toolkit for SharePoint provides trouble-free installation and reliable operation, it is not officially supported by Microsoft. We will provide best effort support on the </strong><a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=2012&amp;SiteID=1"><span style="font-family: Times New Roman; color: #0000ff;"><strong>SharePoint – Collaboration</strong></span></a><strong> forum, but cannot guarantee timely resolution of any issues.</strong></span></p></blockquote>
<p>Other pertinent bits of info from the Information Materials:</p>
<ul>
<li>There is a suggestion that the product has been tested and is &#8220;supported&#8221; (whatever that means) <em>only</em> with Server 2003 (<em>not</em> Server 2008).</li>
<li>There is a reference to the commercial product called the &#8220;<a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/ExtranetCollaborationManager.aspx">External Collaboration Manager</a>&#8220;, which I expect was developed by the same consultants that created ECTS in the first place (although I have no proof of that).</li>
</ul>
<p>I am going to pursue aggressively a Forms-based authentication solution using ADFS as a replacement for this service.</p>
<p>FWIW, here is a quick breakdown on the current set of problems, and what I did to fix them:</p>
<ol>
<li>When attempting to load the \sites\[sitename]\_layouts\ExternalCollaboration\aeu.aspx page (add new external user form), one user reported &#8220;Access Denied&#8221; error messages, even though he was in the site administrators list.
<ul>
<li>This happens because the aeu.aspx page checks to see is the currently logged in user is in the &#8220;Site Owners&#8221; group.  Of course, being a site administrator should be sufficient, but the page does not check for effective rights, but instead performs a simple ACL check.</li>
</ul>
</li>
<li>Users would intermittently experience page load errors when attempting to load the same &#8220;aeu.aspx&#8221; page.  Experientation with our load balancer indicated that the problem occured on  only one of the two web front ends in our farm.  Attempts to troubleshoot by using verbose Diagnostic logging, SysInternals ProcMon, and various browser debuggers (ieHTTPHeaders, Fiddler) turned up nothing.
<ul>
<li>Finally, I discovered that there was a single &#8220;ExternalCollaboration.RESX&#8221; file missing in the inetpub\wwwroot\wss\VirtualServers\[IIS-site]\App_GlobalResources\ directory.  After copying the RESX file to all three production IIS sites on both web front ends, and performing an IIS Reset, the page load error went away.  I don&#8217;t believe that these files ever got replicated to the second web front end after installation, so add this step to your farm build procedure.</li>
</ul>
</li>
<li>Our Account Services team reported that the &#8220;PartnerAdmin&#8221; page (or ECTS Administration web part) was reporting a &#8220;service unavailable&#8221; error.
<ul>
<li>This problem happened because <em>all</em> of the web.config files on our server reverted their &#8220;ADAMConnectionString&#8221; values to point to the pre-production host name for our ECTS LDAP service.  The event that triggered this service reversion is still unknown.  After I updated the string to point to &#8220;sharepoint.uvm.edu&#8221;, the problem was resolved.  Once again, I really need to re-install the whole solution using the correct LDAP connection string&#8230; the incorrect value is still cached somewhere in the SharePoint infrastructure that I cannot locate (most likely in configuration DB), waiting to bite me again.</li>
</ul>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=162</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows SharePoint Services Search &#8211; Gatherer Error</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=148</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=148#comments</comments>
		<pubDate>Wed, 25 Feb 2009 03:46:27 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[Search Server]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=148</guid>
		<description><![CDATA[I got a report from one of our power users that SharePoint search was not returning any results.  The default search service under WSS 3.0 is not very easy to troubleshoot.  Things will get better with Search Server 2008 (I hope).  Anyway, I did find the following in my Application Event Logs:
Event ID: 2436
Category:  Gatherer
Description:
The [...]]]></description>
			<content:encoded><![CDATA[<p>I got a report from one of our power users that SharePoint search was not returning any results.  The default search service under WSS 3.0 is not very easy to troubleshoot.  Things will get better with Search Server 2008 (I hope).  Anyway, I did find the following in my Application Event Logs:</p>
<p><span id="more-148"></span>Event ID: 2436<br />
Category:  Gatherer<br />
Description:<br />
The start address &lt;sts3s://sharepoint.uvm.edu/contentdbid={GUID}&gt; cannot be crawled.</p>
<p>Context: Application &#8216;Search index file on the search server&#8217;, Catalog &#8216;Search&#8217;</p>
<p>Details:</p>
<p>Access is denied. Check that the Default Content Access Account has access to this content, or add a crawl rule to crawl this content. (0&#215;80041205)</p>
<p><!--more--></p>
<p>Well, the service <em>used to </em>work, so I don&#8217;t think access rights are the real problem.  Some digging in the cloud turned up this:<br />
<a href="http://mysharepointblog.com/post/2007/01/Windows-SharePoint-Services-(WSS)-30-Search-Setup-Notes.aspx">http://mysharepointblog.com/post/2007/01/Windows-SharePoint-Services-(WSS)-30-Search-Setup-Notes.aspx</a><br />
which sounded promising, but the proposed fix is to run a site that does not use SSL to do the gathering&#8230; I don&#8217;t think this should be necessary as again, Search <em>used to</em> work, and we have <em>always</em> had SSL.  Still, it got me thinking.</p>
<p>I also found this thread:<br />
<a href="http://www.eggheadcafe.com/conversation.aspx?messageid=29143542&amp;threadid=29102434">http://www.eggheadcafe.com/conversation.aspx?messageid=29143542&amp;threadid=29102434</a><br />
Which also suggests that the problem is caused by some disagreement between host names, alternative access mappings, and the &#8220;Default&#8221; security zone in SharePoint.  So I had a look at my alternative access mapping (AAMs).  Lo and behold, I had a few extra internal URLs for the default zone.  They were not supposed to be there, and were added by accident while building our new SharePoint farm.  Removing the extra internal URLs fixed the problem.</p>
<p>By the way, the gatherer actually can crawl SSL sites&#8230; this ability was introduced with a hotfix some time back.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=148</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HTTP to HTTPS redirect using Iconic URL Rewriter</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=145</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=145#comments</comments>
		<pubDate>Fri, 13 Feb 2009 21:43:10 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[Utilities]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=145</guid>
		<description><![CDATA[So, you have a site that needs to to run over SSL-only (shouldn&#8217;t they all?)? You don&#8217;t trust your clients to type that ever-important &#8220;s&#8221; after &#8220;http&#8221; (and why would they?)? You think they will get scared off by those &#8220;Secure connection required&#8221; error pages (they will!)? You are not running IIS7 (who is?)? Not [...]]]></description>
			<content:encoded><![CDATA[<p>So, you have a site that needs to to run over SSL-only (shouldn&#8217;t they all?)? You don&#8217;t trust your clients to type that ever-important &#8220;s&#8221; after &#8220;http&#8221; (and why would they?)? You think they will get scared off by those &#8220;Secure connection required&#8221; error pages (they will!)? You are not running IIS7 (who is?)? Not using ASP.NET?</p>
<p>In the past we accomplished this using a client-side redirect, by creating a custom 404.3 error page with a Javascript redirect. This worked well, but what if you client systems won&#8217;t support javascript (i.e. it is a webdav connection)?</p>
<p>Codplex to the rescue! The venerable &#8220;Ionic URL Rewrite&#8221; ISAPI filter has been updated, and published on Codeplex:<br />
http://www.codeplex.com/IIRF<br />
Thanks, Cheeso!</p>
<p>IIRF now supports the ability to return URL redirects, in addition to simple rewrites.  To use IIRF to redirect a non-SSL URL to a secure version, follow the installation instructions included with IIRF.  Then:</p>
<ul>
<li>Stop your production IIS site from listening on port 80 and enforce SSL usage.</li>
<li>Make sure that the production site is not using host headers that would override your port settings.</li>
<li>Set up a secondary IIS site which listens on port 80 only.  Add the IIRF ISAPI filter to this site.</li>
</ul>
<p>Here is some sample entires you could use in the IsapiRewrite4.ini configration file to accomplish the redirect.  Note that [R] instead of [R=301] also works, but this performs a 302 &#8220;Temporary&#8221; redirect.  Conceptually I prefer a 301 (not that it matters because search crawlers are not hitting our Intranet sites):</p>
<pre><span id="more-145"></span>
# Following rule is activated if the incoming URL is not connecting to a secure port.
# Performs a Permanent Redirect (301) to the https version of the site if not secure.</pre>
<pre>RewriteCond %{SERVER_PORT_SECURE} ^0$
RedirectRule ^(.*)$ <a href="https://host.domain$1">https://host.domain$1</a> [R=301]</pre>
<pre># Following rule would do the same as above. I am not clear on the relative merrits of
# "HTTPS" vs. "SERVER_PORT_SECURE".</pre>
<pre>RewriteCond %{HTTPS} off
RedirectRule ^(.*)$ <a href="https://host.domain$1">https://host.domain$1</a> [R=301]</pre>
<pre># Yet another variation, this one simply checking the number of the port being used,
# With no validation on SSL vs. clear-text</pre>
<pre>RewriteCond %{SERVER_PORT} ^80$
RedirectRule ^(.*)$ <a href="https://host.domain$1">https://host.domain$1</a> [R=301]</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=145</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cloud Computing &#8211; Denial to Acceptance</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=143</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=143#comments</comments>
		<pubDate>Thu, 12 Feb 2009 22:06:03 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Cloud Computing - Keep Your Umbrella Handy]]></category>
		<category><![CDATA[Cloud Computing]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=143</guid>
		<description><![CDATA[Our Microsoft Sales Rep for the Live@edu Cloud Computing offering ran a web conference for us a few days ago on the Wave 3 release of Live@edu.  After the presentation I was feeling a bit shocked and depressed.  I think I have moved into phase 4 of the &#8220;Denial to Acceptance&#8221; process.  In the interest [...]]]></description>
			<content:encoded><![CDATA[<p>Our Microsoft Sales Rep for the Live@edu Cloud Computing offering ran a web conference for us a few days ago on the Wave 3 release of Live@edu.  After the presentation I was feeling a bit shocked and depressed.  I think I have moved into phase 4 of the &#8220;Denial to Acceptance&#8221; process.  In the interest of helping my fellow Higher-Ed sys admins along in this process, I give you the following Cloud Computing Denial to Acceptance checklist, version 1.0:</p>
<ol>
<li>Denial:
<ul>
<li>The systems administrator refuses to accept that Cloud Computing is real, or that it is relevant to him.  He may feel that Cloud Computing is a &#8220;fad&#8221; or &#8220;passing trend&#8221;.  He may believe that Cloud offerings are simply scams.  He may labor under the false impression that her clients are unaware of Cloud offerings or do not want these services.  He may initiate the deployment of a major new messaging or collboration platform in order to prove that Cloud Computing &#8220;has got nothing that we don&#8217;t got&#8221;.</li>
</ul>
</li>
<li>Anger/Resentment:
<ul>
<li>As time passes, more executives start asking about Cloud Computing, and more clients start using the free Cloud offerings.  It becomes impossible for the sys admin to remain in denial.  In reaction, he lashes out with anger.  He questions the intelligence of anyone who uses Google Apps.  He goes off on rants about how much &#8220;Outlook sucks&#8221; and how &#8220;Outlook Live sucks even more&#8221;.  He is deeply resentful of Cloud Computing providers for giving away for free the services he furiously has been trying to get funded for the past seven years.</li>
</ul>
</li>
<li>Bargaining:
<ul>
<li>In this next phase the sys admin attempts to mitigate the effects of Cloud Computing though bargaining.  She may offer to &#8220;put student email into the Cloud&#8221;, but insist that faculty and staff messaging cannot leave the school network for &#8220;security and regulatory compliance reasons&#8221;.  She may sacrifice a few token applications to the Cloud (such as mail distribution lists or video conferencing), but insist that other Cloud offering are &#8220;simply not mature&#8221;.  She may cite outdated versions of service agreements as proof of her convictions.  She may request large sums of money to develop similar service offerings in-house with a more institution-friendly SLA.</li>
</ul>
</li>
<li>Depression:
<ul>
<li>When it becomes clear that the Cloud is about to swallow his campus, the sys admin may become depressed and morrose.  He may close the door of his office to conceal the sounds of his multi-hour World-of-Warcraft &#8220;lunch breaks&#8221;.  He may stop development and maintenance on all in-house messaging and collaboration tools while asserting, &#8220;The service is dead already, what does it matter?&#8221;.</li>
</ul>
</li>
<li>Acceptance:
<ul>
<li>When the decision is made to take advantage of Cloud Computing services, the sys admin either will revert back to step 1 (and most likely be fired), or move on the the final &#8220;acceptance&#8221; phase.  At this time, she may actually get excited about the challenging of integrating Cloud applications into the school&#8217;s identity managment system.  Countless hours will be spent debating the the merits of Python vs. Perl as the default language for scripting directory actions.  Weeks will be spent researching and implementing federated identity management systems.  Hundreds of blog entries will be posted lambasting the developers of the Cloud service and their refusal to adhere to &#8220;ieee 81516&#8243; or &#8220;rfc 2342&#8243;.  Patches will be merged into various Web Services code trees.  As the weeks pass, the sys admins life will return to normal.  There will not be enough time or money for projects to be completed on time.  Job secuirty will continue to be assured.</li>
</ul>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=143</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sharepoint – farm build procedure</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=130</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=130#comments</comments>
		<pubDate>Tue, 03 Feb 2009 22:51:28 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[AD LDS]]></category>
		<category><![CDATA[Alternative Access Mappings]]></category>
		<category><![CDATA[ECTS]]></category>
		<category><![CDATA[F5]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[RadEditor]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=130</guid>
		<description><![CDATA[After a semi-disaster with SharePoint earlier this week, I have been forced into the view that I really should have our SharePoint infrastructure hosted on more than one web server.  To that end, I am planning the deployment of a new, 2+ node Windows SharePoint Services farm.
Initial architecture will be something like this:

Host: SharePoint2

Roles:  Web [...]]]></description>
			<content:encoded><![CDATA[<p>After a semi-disaster with SharePoint earlier this week, I have been forced into the view that I really should have our SharePoint infrastructure hosted on more than one web server.  To that end, I am planning the deployment of a new, 2+ node Windows SharePoint Services farm.</p>
<p>Initial architecture will be something like this:</p>
<ul>
<li>Host: SharePoint2
<ul>
<li>Roles:  Web front end, Search Server query and crawl, ECTS ADAM Instance</li>
</ul>
</li>
<li>Host: SharePoint3
<ul>
<li>Roles:  Web front end, Search Server query and index, ECTS ADAM Instance</li>
</ul>
</li>
<li>Hosts: WinDB1 and WinDB2
<ul>
<li>Roles:  Back-end SQL Database failover cluster</li>
</ul>
</li>
<li>F5 Big-IP Local Traffic Manager (hardware load balancer)</li>
</ul>
<p>Once initial rollout is complete, we likely will want to add:</p>
<ul>
<li>Hosts: WinDB1 and WinDB2
<ul>
<li>Reconfigured in a SQL mirrored configuration</li>
</ul>
</li>
</ul>
<p>Here is an outline of the SharePoint2/3 build procedure:</p>
<ol>
<li>Install Server 2008 x64 Standard OS
<ol>
<li>Activate Roles:  IIS (with ASP.NET support), AD Lightweight Directory Services (AKA AD LDS, AKA ADAM).</li>
<li>Activate Features:  .Net Framework 3.0, PowerShell, SMTP Server</li>
<li>Activate Feature &#8220;Desktop Experience&#8221; if you want access to &#8220;cleanmgr.exe&#8221; (Disk Cleanup wizard) and other desktop niceties.</li>
<li>To save disk space, you might want to delete the hiberfile.sys (Hibernation file), by running &#8220;powercfg.exe /hibernate off&#8221;.
<ol>
<li><span style="color: #ff0000;">Relocate the page file?</span></li>
<li><span style="color: #ff0000;">Do something about WinSXS directory bloat (likely impossible without a service pack)</span></li>
<li><span style="color: #ff0000;">Get IIS log files under control!</span></li>
</ol>
</li>
</ol>
</li>
<li>Configure SMTP Server using <em>IIS 6.0 Manager</em>.  (FTP and SMTP Services cannot be managed with the IIS 7 Manager!)
<ol>
<li>Configure BadMail and Drop Box directories so that they are not located on the System volume</li>
<li>Configure to listen only on primary server IP</li>
<li>Configure firewall to accept SMTP conections only from our In-Mail Gateways (using external firewall in our case, but this could be done with SMTP service settings and/or the Server 2008 firewall as well). <span style="color: #99cc00;">&lt;-DON&#8217;T FORGET &#8211; SMTP is allowed to the hosts, but need to go over the config with our DNS/mail admins!</span></li>
</ol>
</li>
<li>Install Search Server Express x64 bits:
<ol>
<li>Perform “complete” install (Search Server will not install a SQL 2005 instance, as is the case with WSS installer).  Under “file location”, specify “E:\Office\12.0\Data” as the index storage location.</li>
<li>Skip running of the Configuration Wizard after install.</li>
</ol>
</li>
<li>Install SharePoint Administration Kit v2.0
<ol>
<li>Exclude Profile replicator component as it will not work on WSS</li>
</ol>
</li>
<li>Clone the server as many times as deemed necessary. (At present, make one clone!).  Any cloned systems must be sysprep-ed before joining the domain.  Once preped, join the computers, configure networking.</li>
<li>If planning to add this server to a load balanced cluster, install NLB feature:<br />
<span style="color: #ff0000;">NOTE:  We will not be doing this as we plan to use F5 hardware LBs instead.</span></p>
<ul>
<li>from “administrator” cmd shell, run “ocsetup NetworkLoadBalancingFullServer”</li>
<li>Don’t join to a production NLB cluster until SharePoint configuration is complete!</li>
</ul>
</li>
<li>Replicate AD LDS (ADAM) instance to new machine, if required.<br />
(We need this as we are extending an existing ADAM instance to the new farm)</p>
<ol>
<li>In Server Manager, Click on “AD Lightweight Directory Services” Role,</li>
<li>Click “AD LDS Setup Wizard”
<ol>
<li>Select “A replica of an existing instance”</li>
<li>Name the instance “ECTSInstance”</li>
<li>Accept standard LDAP ports</li>
<li>specify a partnerpoint server to replicate from, use standard LDAP ports.</li>
<li>Select the “OU=ects,…” partition set for replication (this should be the only partition!)</li>
<li>Select secondary (non-system) volume as target for AD LDS data… generally this will be “E:\Microsoft ADAM\ECTSInstance\data”</li>
<li>Specify domain service account to run the AD LDS instance.</li>
<li>Add “domain admins” to the AD LDS Administrators list.  Finish the wizard.</li>
</ol>
</li>
<li>Run the campus…bat file located in <em>e:\Microsoft ADAM\ECTSInstance\data\</em>.  This will register the Kerberos Service Principal Names required for LDP replication mutual authentication.</li>
<li>Open the “Local Security Policy” Admin tool.  Add the domain service account to the “generate security audits” User Rights Assignment branch.</li>
<li>Open the AD Users and Computers tool, locate the computer object on which you installed the Instance.  Give the LDS service account “create all child objects” to the computer object.</li>
<li>Add the cluster load balanced SSL cert into the Personal certificate store of the ECTSInstance service account.
<ol>
<li>Request wildcard certificate using the procedure outlined here:<br />
<a title="http://erlend.oftedal.no/blog/?blogid=7" href="http://erlend.oftedal.no/blog/?blogid=7">http://erlend.oftedal.no/blog/?blogid=7</a><br />
(We use the web interface for requesting a certificate, make user we use the RSA SChannel crypto provider to generate the request, use the “SHA-1” hash, use PKCS10 format, and use the “UVM – Web Server” request template.  For load-balanced LDAP servers, we must request a wildcard certificate (*.uvm.edu)<br />
<strong>NOTE:</strong> This step will not have to be repeated again until the current cert expires.  To add another AD LDS server, export the cert from a current server, import into the new server</li>
<li>Export the request cert to file selecting “export all extended attributes” and “export private key” options.</li>
<li>Import the cert into the “Personal” branch of the service account’s certificate store on the target server.  Make sure that you import “all extended attributes”, and the private key.  Do <em>not</em> select the use of advanced encryption password.</li>
<li>Restart AD LDS and test SSL connections.</li>
<li>If all is not working (as is the case with one of my two servers), here is where we get into undocumented territory.  Here are some helpful resources for debugging:
<ol>
<li>I set SChannel diag logging to verbose :
<ul>
<li>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel<br />
REG_DWORD EventLogging, value 0&#215;7</li>
<li>Restart ECTSInstance, look for “SChannel” entries in the server “application” even logs.  These logs will tell you which certificate the system attempted to use, and why access failed.</li>
</ul>
</li>
<li>You may need to add the wildcard cert to the Local Computer Certificate Store as well… run MMC, add the “Certificates” snap-in for “Service Account”, using the “ECTS Instance” service.  Navigate to the “Personal” branch, run an import action, import the wildcard with all extended attributes and the private key.</li>
<li>Now locate the physical copy of this cert in c:\programdata\microsoft\crypto\RSA\MachineKeys (it will be the file with the most recently modified time stamp).  Add “read/execute” permissions to this file for the AD LDS service account, then restart the LDS instance.</li>
</ol>
</li>
</ol>
</li>
<li>Force mutual authentication for replication traffic:
<ol>
<li>Run ADSI Edit</li>
<li>“Connect to”, enter the AD LDS server name in the Computer field, select the “Configration” well-known naming context.  As documented in <a title="http://technet.microsoft.com/en-us/library/cc794841.aspx" href="http://technet.microsoft.com/en-us/library/cc794841.aspx">http://technet.microsoft.com/en-us/library/cc794841.aspx</a>, get “properties” on the “CN=Configuration…” partition, and change the value of “msDSReplAuthenticationMode” to “2”.</li>
</ol>
</li>
<li>Set local password policy – this controls password policy of AD LDS accounts:
<ol>
<li>Add the Sharepoint server computer account to the “ETS – SharePoint Password Policy” GP Object.  After running “gpupdate /target:computer /force”, verify the settings by doing the following:
<ol>
<li>Open Local Security Policy control panel</li>
<li>Expand “Account Policies”-&gt;”Password Policy”</li>
<li>Settings applied should follow the 1/365/0/8/Disabled/Disabled format.  (we may want to revisit this policy later).</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
<li>Run the SharePoint Products and Technologies Configuration Wizard:
<ol>
<li>Connect to an existing Farm</li>
<li>Enter “WINBD” as the database server.  The wizard will correctly select “SharePoint_FarmConfig” as the configuration database.  The correct service account username will be provided… you need to enter the password.</li>
<li>Click “Advanced Settings”, specify that you which the server to host the Central Admnistration site.
<ol>
<li>If setup fails with the error:<br />
<em>&#8220;SharePoint Configuration Wizard failed with an exception &#8220;Error during encryption or decryption. System error code 997&#8243;<br />
</em>A solution can be found here:<br />
<a title="http://blogs.msdn.com/priyo/archive/2007/08/11/add-new-sharepoint-server-to-existing-server-farm-an-unhandled-exception-occurred-in-the-user-interface-exception-information-unable-to-connect-to-the-remote-server.aspx" href="http://blogs.msdn.com/priyo/archive/2007/08/11/add-new-sharepoint-server-to-existing-server-farm-an-unhandled-exception-occurred-in-the-user-interface-exception-information-unable-to-connect-to-the-remote-server.aspx">http://blogs.msdn.com/priyo/archive/2007/08/11/add-new-sharepoint-server-to-existing-server-farm-an-unhandled-exception-occurred-in-the-user-interface-exception-information-unable-to-connect-to-the-remote-server.aspx</a><br />
Essentially we just run “stsadm –o updatefarmcredentials –userlogin “domain\service_acount” –password &lt;thePassword&gt;” on the first SharePoint server, then re-run the wizard.</li>
</ol>
</li>
<li>Update the “Central Admin” shortcut to point to the local Central Admin site by doing the following registry hack:<br />
<a title="http://blogs.technet.com/wbaer/archive/2007/08/30/sharepoint-3-0-central-administration-url-on-multiple-web-front-end-servers.aspx" href="http://blogs.technet.com/wbaer/archive/2007/08/30/sharepoint-3-0-central-administration-url-on-multiple-web-front-end-servers.aspx">http://blogs.technet.com/wbaer/archive/2007/08/30/sharepoint-3-0-central-administration-url-on-multiple-web-front-end-servers.aspx</a><br />
Essentially, edit the key:<br />
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\WSS<br />
Then locate CentralAdministrationURL and change it to point to the local server.</li>
</ol>
</li>
<li>Configure Search Service:
<ol>
<li>When Search is run in an environment where SharePoint services are accessed from a FQDN which is different from the physical host name (i.e. our environment, or any other environment with load balancers), you will need to work around the “loopback security check” feature of Windows.  Failing to do so will result in “access denied” errors in the crawl logs.  My thanks to Shawn Feldman for discovering this:<br />
<a href="http://blogs.msdn.com/fledman/archive/2008/09/18/access-denied-with-windows-server-2008-and-moss-when-crawling.aspx">http://blogs.msdn.com/fledman/archive/2008/09/18/access-denied-with-windows-server-2008-and-moss-when-crawling.aspx</a><br />
The relevant work-around is documented here (see “Method 2”):<br />
<a href="http://support.microsoft.com/kb/896861">http://support.microsoft.com/kb/896861</a><br />
We simply need to add the public FQDN of our SharePoint server to:<br />
Key: HKLM\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0<br />
Value: REG_MULTI_SZ, sharepoint.uvm.edu<br />
And then restart the IISAdmin service.</li>
<li>Open the search admin page from SharePoint Central Administration:
<ol>
<li>Access Crawling –&gt; Content Sources
<ol>
<li>Click the “Local Office SharePoint Server sites” default source.</li>
<li>Define a crawling schedule for the SharePoint application</li>
<li>Click “new content source” to add any additional content sources that are desired (i.e. our production file servers).</li>
<li>Define additional crawl schedules for these new content sources.</li>
<li>Set up &#8220;Crawl Rules&#8221; to exclude any directories from the content sources that you do not wish to have indexed.  In our environment, it was essential to exclude the &#8220;~snapshot&#8221; directories from the root of our NetApp file shares.</li>
</ol>
</li>
</ol>
</li>
<li>Add Search Center to our SharePoint landing page:
<ol>
<li>Create a new sub-site of type “Enterprise Search”</li>
<li>Tune federated results by adding/removing web parts to the results page</li>
</ol>
</li>
<li>Add Federated Locations for additional search results:<br />
Ideally we would like to add results from out “GoogleWeb.uvm.edu” search appliance, and perhaps a Google “site” search for other close University partners</p>
<ol>
<li>For GSA (Google Search Appliance) Federation, it appears we will need to setup an RSS Transform:
<ol>
<li><a href="http://enterprise-code-samples.googlecode.com/svn/trunk/rss-stylesheet/Readme.htm">http://enterprise-code-samples.googlecode.com/svn/trunk/rss-stylesheet/Readme.htm</a><br />
<a href="http://enterprise-code-samples.googlecode.com/svn/trunk/rss-stylesheet/">http://enterprise-code-samples.googlecode.com/svn/trunk/rss-stylesheet/</a></li>
<li>As the readme above recommends, we set up a new &#8220;front end&#8221; on the GSA for RSS results.  We called this Front End &#8220;RSS&#8221;.  We edit the &#8220;base_url&#8221; value to point to <em><span style="color: #0000ff;">http://googleweb.uvm.edu/Search?</span>.</em> We then visit this URL and perform a query.  We take the resulting query results URL:<br />
<span style="color: #0000ff;"><em>http://googleweb.uvm.edu/search?q={searchTerms}&amp;entqr=0&amp;output=xml_no_dtd&amp;sort=date%3AD%3AL%3Ad1&amp;lr=&amp;client=uvm2008&amp;ud=1&amp;oe=UTF-8&amp;ie=UTF-8&amp;proxystylesheet=uvm2008&amp;site=default_collection</em><br />
</span>and we substitute the name of our Front End in the place of the &#8220;proxystylesheet&#8221; and &#8220;client&#8221; values.  I also simplify the query just a bit as follows:<br />
<em><span style="color: #0000ff;">http://googleweb.uvm.edu/search?q={searchTerms}&amp;output=xml_no_dtd&amp;lr=&amp;client=rss&amp;ud=1&amp;oe=UTF-8&amp;ie=UTF-8&amp;proxystylesheet=rss&amp;site=default_collection</span></em></li>
<li>We then use the RSS query URL above as the template URL for a federated search query in the SharePoint Search Center.</li>
<li>We edit the search results page to include federated results, and specify the &#8220;UVM GoogleWeb Search&#8221; federated location in the &#8220;Location&#8221; of the Federated results web part (using the &#8220;Modify Shared Web Part&#8221; command).</li>
</ol>
</li>
</ol>
</li>
<li>Integrate Windows Search desktop tool with Search Server:<span style="color: #ff0000;">&lt;- Not yet done, but this can wait until after the production cut-over.<br />
</span></p>
<ol>
<li>Approve Windows Desktop Search 3.0-&gt;Windows Search 4.0 update on WSUS server</li>
<li>Deploy Group Policy templates for Windows Search 4</li>
<li>Configure:<br />
<a title="http://technet.microsoft.com/en-us/library/cc732491.aspx#BKMK_Addprimaryintranetsearch" href="http://technet.microsoft.com/en-us/library/cc732491.aspx#BKMK_Addprimaryintranetsearch">http://technet.microsoft.com/en-us/library/cc732491.aspx#BKMK_Addprimaryintranetsearch</a></li>
</ol>
</li>
</ol>
</li>
<li>Install Infrastructure Update for WSS3 x64:
<ol>
<li>Initiate the update on the first node in the cluster.</li>
<li>When prompted, start the install on the second cluster node.</li>
<li>When the configuration wizard completes on the second node, go back to the first and allow configuration to complete.</li>
</ol>
</li>
<li>Install Infrastructure Update for Search Server x64:
<ol>
<li>Initiate the update on the first node in the cluster.</li>
<li>When prompted, start the install on the second cluster node.</li>
<li>When the configuration wizard completes on the second node, go back to the first and allow configuration to complete.</li>
</ol>
</li>
<li>Clean up IIS settings for the newly created Web Sites – configure binding, authentication and SSL  <span style="color: #ff0000;">(Note that these procedures are only accurate when using Windows-native load balancers… when we transition to f5 load balancing, it will not be necessary to return custom errors from IIS as the f5 will handle HTTP-to-HTTPS redirections.) </span>:
<ol>
<li>SSL Cert Installation:<br />
Install SSL certs into “Personal” Store of the Computer account using the “Certificates” MMC snapin.</li>
<li>Binding:<br />
Open the IIS Manager MMC snapin.  On each site, right-click and select “edit bindings”:</p>
<ol>
<li>For site “SharePoint – 443” (which represent the traditional “sharepoint.uvm.edu” URL), bind https and http protocols to port 80 and port 443, using the IP address for “sharepoint.uvm.edu” (132.198.102.12).  When binding SSL, select the appropriate cert from the “SSL Certificate” drop down menu.</li>
<li>For “SharePoint – Internet” (which represents SharePointLite), bind https and http, ports 443 and 80, to “sharepointlite.uvm.edu”, IP 132.198.102.36.  Again, select the correct SSL cert for this site.</li>
<li>For “SharePoint – Extranet” (which represents PartnerPoint), bind https and http, ports 443 and 80, to “partnerpoint.uvm.edu”, IP 132.198.102.49, selecting the matching SSL cert once again.</li>
</ol>
</li>
<li>SSL Configuration:
<ol>
<li>In IIS Manager, open the “features view” for each site.</li>
<li>Double-click “SSL Settings”</li>
<li>Check “Require SSL”, leaving the default “ignore Client certificates” setting.</li>
<li>Now double-click the “Error Pages” item for the server root.  Add a custom error for 403.4 (SSL required), pointing to our custom “redirect.html” javascript file.  We will need to have copied this file into “c:\inetpub\custerr\en-US\” before completing this step</li>
<li>Now find the applicationHost.config file for the IIS server.  This should be located in “C:\Windows\system32\inetsrv\config”.  Locate the section for each site that serves SharePoint content (i.e. &lt;location path=”SharePoint – 443”&gt;), then locate the &lt;httpErrors&gt; tag under &lt;system.webServer&gt;.  In the httpErrors tag, change the value for “existingResponse” from “PassThrough” to “Replace” (response “Auto” also seems to work, but may produce inconsistent results).  This will prevent ASP.NET from replacing the 403.4 error response from the IIS server.  I am much indebted to this forum thread for this breakthrough:<br />
<a title="http://forums.iis.net/t/1113734.aspx" href="http://forums.iis.net/t/1113734.aspx">http://forums.iis.net/t/1113734.aspx</a><br />
Also helpful was the new “failed request tracing” module in IIS7:<br />
<a title="http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis7/" href="http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis7/">http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis7/</a><br />
More information on the meaning of the various existingResponse values can be found here:<br />
<a title="http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx" href="http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx">http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx</a></li>
</ol>
</li>
</ol>
</li>
<li>Install the MS FilterPack 1.0 (Search Server can already index most Office 2007 documents, but this adds ability to index inside of One Note files and ZIP archives):
<ol>
<li>Follow instructions at:<br />
<a title="http://support.microsoft.com/?id=946336" href="http://support.microsoft.com/?id=946336">http://support.microsoft.com/?id=946336</a></li>
</ol>
</li>
<li>Install Adobe iFilter, with 64-bit “thunking” DCOM service:
<ul>
<li><a title="http://labs.adobe.com/wiki/index.php/PDF_iFilter_8_-_64-bit_Support" href="http://labs.adobe.com/wiki/index.php/PDF_iFilter_8_-_64-bit_Support">http://labs.adobe.com/wiki/index.php/PDF_iFilter_8_-_64-bit_Support</a></li>
<li><a title="http://workerthread.wordpress.com/2008/07/18/adobe-reader-9-available-works-fine-with-sharepoint/" href="http://workerthread.wordpress.com/2008/07/18/adobe-reader-9-available-works-fine-with-sharepoint/">http://workerthread.wordpress.com/2008/07/18/adobe-reader-9-available-works-fine-with-sharepoint/</a></li>
<li><a title="http://servergrrl.blogspot.com/2008/01/and-now-for-something-completely.html" href="http://servergrrl.blogspot.com/2008/01/and-now-for-something-completely.html">http://servergrrl.blogspot.com/2008/01/and-now-for-something-completely.html</a></li>
<li>TEST IT… Internet chatter suggests that this config is less than reliable.</li>
</ul>
</li>
<li>Install MindManager extensions.
<ol>
<li>DEPRECATED – We will discontinue this extension with the new upgrade as it does not work with MM v7 or v8</li>
</ol>
</li>
<li>Install ECTS components on each web front end server.
<ul>
<li>Having problems with installation script… what if we try the ECTS update available though CodePlex???
<ol>
<li>If using updated ECTS files, it will be necessary to update the PartnerAdmin and PartnerConfig pages, as the self-service Site Collection Manager.  The existing pages will not work because the GUIDs on the Web Parts have changed.</li>
<li>The ects_setup_sharepoint.vbs script still fails using the updated code… Since the codeplex team has not documented their changes, I think we will skip this option.</li>
</ol>
</li>
<li>Troubleshooting issues:
<ol>
<li>The ects_setup_sharepoint.vbs script succeeds in installing the ECTS solution, but fails when activating site features.  I suspect that “cscript” on Server 2008 is not processing return codes from stsadm.exe correctly, and this is reporting failure to install features (I am not positive about the reason for the script failure, although it certainly is not a result of stsadm.exe being broken.<br />
I was able to work around this problem by opening the ects_setup_sharepoint.vbs file in a text editor, searching for the error string that was sent to the console when the script failed, then running all of the operations in the script manually from that point forward.  Fortunately, all of the stsadm commands in the script are successful when run from the command line.</li>
<li>ECTS is not compatible with MS Load Balancing out of the box.  I switched to a F5 load balancer before working through the problem.  It is possible that the problem I was having could have been fixed with the same “loopback security check” that caused problems during our F5 configuration<br />
<a href="http://support.microsoft.com/kb/896861">http://support.microsoft.com/kb/896861</a><br />
In fact, we may have had the problem even with the f5 in place, but I would not know because I applied the loopback fix before implementing the F5.<br />
The error codes suggest that a login failure is occurring between the IIS application and the AD LDS LDAP instance.  When I try to connect to the load-balanced LDAP DNS name using the “LDP.exe” LDAP client, I also get an authentication error.  However, when I connect to the local server address, authentication works.</li>
<li>As was the case when I first installed ECTS, the web.config files required a bit of hand-tuning to get services working correctly:<br />
<a title="http://www.uvm.edu/~jgm/wordpress/?p=112" href="http://www.uvm.edu/~jgm/wordpress/?p=112">http://www.uvm.edu/~jgm/wordpress/?p=112</a><br />
Once again, I had to modify the “ADAMConnectionString” in the web.config of each IIS site to reflect the actual DNS name of the load-balanced AD LDS servers.  I had installed ECTS using a different name initially, and the ECTS un-installation script did not clear out these values.</li>
<li>I did find it necessary to deactivate all ECTS site collection features, re-activate them, then perform an IIS reset before my existing ECTS management pages would work again.  This seems pretty par for the course when removing and re-installing SharePoint solutions.</li>
<li>After connecting the production content database and changing the URL for the server, I also needed to edit &#8220;LDAPHost&#8221; value to reflect the production name of the server in the &#8220;TEMPLATE\FEATURES\ECTSBase\Feature.xml&#8221; file (located in the &#8220;12&#8243; hive).  This value was set at the time that ECTS was deployed to the server.  I expect that the same (wrong) LDAPHost value would get replicated to additional ECTS servers if we were to add new ones, because this setting is contained in the RESX package that gets built by the ECTS installer, and cached in the database for future deployment.  I expect I would need to do a full retract/remove/redeploy to fix the problem permanently.</li>
</ol>
</li>
</ul>
</li>
<li>Install Globally-deployable solutions from the “fab 40” application template.  If you deploy a web front end into an existing farm, the files required by these features will get transferred automatically.  However, when building a new farm, we need to install them manually.  Currently required “server admin” templates are:
<ul>
<li>ApplicationTemplateCore</li>
<li>ChangeRequest</li>
<li>ContactsManagement</li>
<li>DocumentLibraryReview</li>
<li>EventPlanning</li>
<li>HelpDesk</li>
<li>InventoryTracking</li>
<li>ITTeamWorkspace</li>
<li>Knowledgebase</li>
<li>LendingLibrary</li>
<li>PhysicalAssetTracking</li>
<li>ProjectTrackingWorkspace</li>
<li>RoomEquipmentReservations</li>
<li>Procedure:
<ul>
<li>stsadm -o addsolution -filename &lt;file_path&gt;\&lt;template_name&gt;.wsp</li>
<li>stsadm -o deploysolution -name &lt;template_name&gt;.wsp –allowgacdeployment</li>
</ul>
</li>
</ul>
</li>
<li>Install radEditor:
<ol>
<li>Install ASP.NET Ajax for .NET 2.0, version 1.0</li>
<li>Follow the Ajax configuration for SharePoint configuration guide found here:<br />
<a title="http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=3" href="http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=3">http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=3</a></li>
<li>Install radEditor using the included instructions.</li>
<li>Copy radEditor configuration files from an existing production server to the new server:
<ol>
<li>In the directory:<br />
”C:\Program Files\Common Files\Microsoft Shared\web server extensions\wpresources\RadEditorSharePoint\[versionString]\RadControls\Editor”<br />
Backup the existing ListConfigFile.xml, ConfigFile.xml, ListToolsFile.xml, and ToolsFile.xml files.  Replace with versions customized for UVM.  Note that the MOSS LinkManager tool does not work in WSS.  Also note that when editing list content that does not support “Enhanced Content”, the first toolbar in the ListToolsFile.xml will be removed… in past versions, the toolbar named “enhancedTools” was removed.</li>
<li>Copy the files ListConfigFile.xml, ConfigFile.xml, ListToolsFile.xml, and ToolsFile.xml to all other nodes in the cluster.</li>
<li>perform an IISRESET.</li>
<li>Update ONET.xml files in the “12” hive to activate the radEditor feature by default in all new sites (see ONET.xml template files on the prod web front end for examples).<br />
<strong>NOTE<em> </em></strong>that the “RadEditor for non-IE browsers” and “RadEditor for IE” features have been collapsed into one unified feature.  Update the ONET.XML files accordingly!  (note that the feature ID for the main RadEditor List editor has not changed… only it’s name is different.  We did not have to insert a new default feature ID, but we did need to remove the “RadEditor for IE” feature because it is no longer present in RadEditor MOSS.)</li>
<li>Run:<br />
stsadm –o uninstallfeature –name RadEditorFeatureRichHtml.<br />
This “Web Content Management” feature is not supported in WSS, so we may as well remove it to avoid confusion.</li>
<li>Deactivate and then re-activate the radEditor features on at least one existing site, and test functionality.</li>
</ol>
</li>
</ol>
</li>
<li>Install “Smiling Goat” Feed Reader (RSS/ATOM subscriber web part)
<ol>
<li>This will require Feed Reader users to update their web parts!</li>
<li>Current release here:<br />
<a href="http://www.codeplex.com/FeedReader/Release/ProjectReleases.aspx?ReleaseId=19830">http://www.codeplex.com/FeedReader/Release/ProjectReleases.aspx?ReleaseId=19830</a><br />
(version 3.1.0.1 at the time of this writing)</li>
</ol>
</li>
<li>Install SharePoint Training Kit:</li>
<li>Tune web application settings to match production server:
<ol>
<li>In &#8220;Operations&#8221;:
<ol>
<li>Configure blocked file types &#8211; in our case we have been requested to all &#8220;MAT&#8221; files.  MAT is one of may obscure Office file extensions, but also is used by MatLab, a common mathematical/statistical application used on campus.</li>
<li>Enable Usage Analysis Processing &#8211; relocate log files off of the system volume.
<ol>
<li>You <em>MUST</em> grant read/write access to the local WSS_WPG to the folder that will hold the usage analysis logs.  If you fail to do so, you will see lots of errors in the Diagnostic Logs allong the lines of &#8220;Cannot create folder &#8220;&lt;big ugly hexidecimal number&gt;&#8221;".</li>
</ol>
</li>
<li>Configure incoming and outgoing email settings.
<ol>
<li>Incoming mail requires SMTP to be installed on the server &#8211; managed with the old-school IIS 6.0 Manager MMC.</li>
<li>We needed to use the &#8220;Advanced Settings&#8221; to specify the SMTP drop folder in the Incoming Mail settings page of Central Administration.  SharePoint diagnostics logs indicated that the timer service could not determine the drop folder location automatically.</li>
<li>After configuring the mail drop folder, SharePoint still was unable to process messages.  &#8220;Access denied&#8221; events started queuing up in the event viewer.  A quick analysis using SysInternals ProcMon shows that the WSS Access account (being used by the OWSTIMER.EXE process) has no ability to access the drop folder defined above.  I just added &#8220;modify&#8221; access for that account to the drop folder, and incoming mail started processing immediately.</li>
</ol>
</li>
</ol>
</li>
<li>Under &#8220;Application Management&#8221;:
<ol>
<li>Tune the &#8220;Web application general settings&#8221;:
<ol>
<li>Set upload limits for files</li>
<li>Set time zone</li>
<li>Set quota templates for new sites</li>
</ol>
</li>
<li>Config &#8220;site use confirmation and deletion&#8221;. <span style="color: #ff0000;">&lt;- Be sure to do this after PROD cutover!!!  Can&#8217;t do it ahead of time as users will start to get email from the pre-prod server!</span></li>
<li><span style="color: #000000;">Enable self-service site creation.<span style="color: #ff0000;"> &lt;-</span><span style="color: #ff0000;"> Also needs to be done after prod cut-over</span></span></li>
<li><span style="color: #000000;">Configure &#8220;policy for web application&#8221; to allow selected groups of SharePoint administrators rights to all sites in the farm.</span></li>
</ol>
</li>
<li>Edit the footer of the “welcome” email message starting at line 5219 of “core.en-US.resx” in the 12-hive “resources” folder.  Replicate on all web front ends in the farm.</li>
</ol>
</li>
<li>Configure f5 load balancers:
<ol>
<li>Lots of IP addresses required:
<ol>
<li>“floating ip” for network on which F5s will communicate with the SharePoint web servers.</li>
<li>2x Self-IPs for the physical interfaces on the F5s which will handle the floating IP</li>
<li>3x IP addresses for the public SharePoint URLs (standard, lite, partner)</li>
<li>6x IP addresses for the private interfaces on each web server node (for standard, lite, and partner sites, one each on two web servers)</li>
</ol>
</li>
<li>Need to generate SSL Certificate/Key pair files for the load balancer “SSL Profiles” (the F5 uses separate files for certificates and keys, as opposed to IIS which uses a single CER file – we need to split the IIS files and upload to the F5.
<ol>
<li>Using the certificate manager MMC snapin, export the production certs to PFX (PKCS #12) files (make sure to specify that you wish to export the private key, otherwise PKCS #12 is not an option in the wizard).</li>
<li>Convert the pfx file into a PEM using the openssl executables (available for Windows here: <a href="http://www.slproweb.com/products/Win32OpenSSL.html">http://www.slproweb.com/products/Win32OpenSSL.html</a>) using the folowing command:<br />
<em><span style="color: #0000ff;">openssl.exe pkcs12 -in [infile].pfx -out [outfile].pem -nodes<br />
</span></em>(You will be prompted to enter the password for the PFX, if it has one.  The &#8220;-nodes&#8221; flag indicates that the output file will not be encrypted with a password)</li>
<li>Open the PEM file created above with a text editor.  Remove the  private-key portion of the file (all content from &#8220;Bag Attributes&#8221; to &#8220;&#8212;&#8211;END RSA PRIVATE KEY&#8212;&#8211;&#8221;) and paste this into a separate &#8220;KEY&#8221; file (UNIX-style line endings, ANSI-encoded).</li>
<li>Upload the new PEM and KEY files into your F5 load balancer to create a new SSL client profile.</li>
</ol>
</li>
<li>Set up two virtual servers for each SharePoint URL – one to redirect HTTP to HTTPS, one to handle regular traffic.
<ol>
<li>Add the following iRule to perform the SSL redirect, and attach it to the Virtual Server listening on port 80:<br />
(This rule will redirect your browser to <a href="https://sharepoint.uvm.edu">https://sharepoint.uvm.edu</a> from either <a href="http://sharepoint">http://sharepoint</a> or <a href="http://sharepoint.uvm.edu">http://sharepoint.uvm.edu</a>… well, actually it will redirect any non-HTTPS connection to a HTTPS version of itself, appending our domain “.uvm.edu” if it is missing.)</p>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,'Courier New',courier,monospace; max-height: 200px; font-size: 8pt; cursor: text;">
<div style="border-style: none; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #606060">   1:</span> when HTTP_REQUEST {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #606060">   2:</span>   <span style="color: #0000ff">if</span> { [HTTP::host] == <span style="color: #006080">"*.uvm.edu"</span> } {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #606060">   3:</span>     HTTP::redirect https:<span style="color: #008000">//[HTTP::host][HTTP::uri]</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #606060">   4:</span>   } <span style="color: #0000ff">else</span> {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #606060">   5:</span>     HTTP::redirect https:<span style="color: #008000">//[HTTP::host].uvm.edu[HTTP::uri]</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #606060">   6:</span>   }</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #606060">   7:</span> }</pre>
</div>
</div>
</li>
</ol>
</li>
</ol>
</li>
<li>TEST TEST TEST:
<ol>
<li>Test each feature on both web front ends by alternately disabling the nodes in the load balancer configuration.</li>
<li>Test again with both nodes enabled… watch for authentication and session persistence issues.</li>
<li>Test all features in each access mapping – SP, SPLite, and Partner… web.config file variations could cause problems!</li>
</ol>
</li>
<li>Consider Deployment of “Group Board 2007” and “Sample Master Pages”:
<ul>
<li><a title="http://www.microsoft.com/sharepoint/templates.mspx" href="http://www.microsoft.com/sharepoint/templates.mspx">http://www.microsoft.com/sharepoint/templates.mspx</a></li>
</ul>
</li>
</ol>
<p>And to complete the cutover:</p>
<ol>
<li>Redirect SharePoint traffic to a &#8220;maintenance underway&#8221; page, or just put the service in read-only mode.</li>
<li>Backup the current production content database</li>
<li>Detach the content database from the production server.</li>
<li>Attach the content database to the new servers</li>
<li>Change the SSL profiles used on the F5 load balancers to use the production certs.</li>
<li>Take down the original SharePoint IIS server and disable.</li>
<li>Change the listening port on the F5 load balancers to match the production server IPs.</li>
<li>Configure Zone security and Alternative Access Mappings for the Farm to reflect the new production names:
<ol>
<li>Make sure that <a href="https://sharepoint.uvm.edu">https://sharepoint.uvm.edu</a>, <a href="https://sharepointlite.uvm.edu">https://sharepointlite.uvm.edu</a>, and <a href="https://partnerpoint.uvm.edu">https://partnerpoint.uvm.edu</a> are all listed as &#8220;Public URLs&#8221; for the farm.</li>
<li>Make sure that the HTTP equivalents of these URLS are listed as INTERNAL URLS in the AAM table <em>if you are performing SSL termination on the load balancers</em>.</li>
</ol>
</li>
<li>Contact SAA Mail admins to update the mail server LDAP records for SharePoint mail routing</li>
<li>Dredge though this post for things that will need to be configured after the migration, and test mercilessly.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=130</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ECTS Login Errors – Troubleshooting</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=127</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=127#comments</comments>
		<pubDate>Tue, 03 Feb 2009 17:15:47 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[LDAP]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[AD LDS]]></category>
		<category><![CDATA[ECTS]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=127</guid>
		<description><![CDATA[Users of our ECTS implementation “PartnerPoint” are not an overly happy set.  Most of the problems that we have experienced are centered around login errors.  This application is particularly prone to login errors for the following reasons:

Randomly generated initial password is too complex – data entry errors cause login denial
Password expiration errors are not transparent [...]]]></description>
			<content:encoded><![CDATA[<p>Users of our ECTS implementation “PartnerPoint” are not an overly happy set.  Most of the problems that we have experienced are centered around login errors.  This application is particularly prone to login errors for the following reasons:</p>
<ul>
<li>Randomly generated initial password is too complex – data entry errors cause login denial</li>
<li>Password expiration errors are not transparent – We need to capture the error that is seen in a password expiration instance.</li>
<li>Passwords generated by ECTS (either during account creation or a ECTS admin reset) are <em>temporary</em> and must be changed on next login.  The account attribute “eatmuPwdGenerated” holds this information.</li>
<li>Password strength requirements are not displayed in the forms, and password strength errors are not detailed or helpful (i.e. they do not tell you <em>why</em> your password is unacceptable).</li>
<li>Login errors are not detailed or helpful – they do not tell you if the account is locked or disabled, it the password is expired, or if you simply entered an invalid username/password combination.</li>
<li>Even when login is successful, users often will get “access denied” messages because of permissions problems:
<ul>
<li>The ECTS “Add External User” dialog generally refuses to add permissions to the ACL for a site… it only works consistently when you add the user to an existing site group</li>
<li>Sign-in for ECTS users requires at least “Read” permissions to the to-level site in a site collection.  You cannot grant external users rights to a child site with <em>no</em> permissions in the parent.</li>
</ul>
</li>
</ul>
<p><strong>Clearing account lockouts</strong> – accomplished by setting the “lockoutTime” attribute of the AD LDS account to “0”.  This causes the “badPwdCount” attribute to be reset to zero.  Note that you cannot set “badPwdCount”, nor “badPasswordTime” as these attributes are owned by “SYSTEM”, and thus cannot be edited manually.  Solution located in the “EggHead Cafe”:<br />
<a title="http://www.eggheadcafe.com/forumarchives/windowsserveractive_directory/nov2005/post24794404.asp" href="http://www.eggheadcafe.com/forumarchives/windowsserveractive_directory/nov2005/post24794404.asp">http://www.eggheadcafe.com/forumarchives/windowsserveractive_directory/nov2005/post24794404.asp</a></p>
<p><strong>Other AD LDS account attributes to watch</strong> – see MSDN Active Directory Schema documentation for details:<br />
<a title="http://msdn.microsoft.com/en-us/library/ms675090(VS.85).aspx" href="http://msdn.microsoft.com/en-us/library/ms675090(VS.85).aspx">http://msdn.microsoft.com/en-us/library/ms675090(VS.85).aspx</a></p>
<ul>
<li><strong>eatmuPwdGenerated</strong> – attribute added by ECTS installer.  Indicated whether current password was generated by ECTS, or by the user.  Reset when the user successfully logs in and sets his own password.</li>
<li><strong>msDS-UserPasswordExpired</strong> – populated, but apparently not accurate or used.</li>
<li><strong>msDS-User-Account-Control-Computed</strong> – Most commonly used for reporting on account state.  This value is computed from other fields, and should not be modified directly.</li>
<li><strong>pwdLastSet</strong> – in active use for ECTS accounts, uses “Large Integer” value, formatted as “NT Time”, or number of 100 nanosecond intervals from 1 Jan, 1601.  This can be converted to a readable date using “w32tm.exe /ntte [string]”.  This value cannot be reset to a specific value, although you can use the special values “0” (meaning “must change at next login”) or “-1” (meaning “now”); however, ADSI Edit does not allow you to enter the value of “-1”, so we would have to use a different tool to set a “-1” value.  Setting the value to “0” will break login as there is no LDAP method for requesting a password change.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=127</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modify the SharePoint “Welcome” email message</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=122</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=122#comments</comments>
		<pubDate>Fri, 30 Jan 2009 22:09:16 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=122</guid>
		<description><![CDATA[You may have noticed that that “welcome” email message lacks a certain freshness after awhile.  Further, it is entirely devoid of any information that might help users find help on your local instance of SharePoint.  How, then, to modify this rather stale bit of HTML?
I found the answer though our friends in the TechNet Social:
http://social.technet.microsoft.com/Forums/en-US/sharepointcustomization/thread/e4a34a49-af24-4437-8148-2bd6237013c0/
Who [...]]]></description>
			<content:encoded><![CDATA[<p>You may have noticed that that “welcome” email message lacks a certain freshness after awhile.  Further, it is entirely devoid of any information that might help users find help on your local instance of SharePoint.  How, then, to modify this rather stale bit of HTML?</p>
<p>I found the answer though our friends in the TechNet Social:<br />
<a title="http://social.technet.microsoft.com/Forums/en-US/sharepointcustomization/thread/e4a34a49-af24-4437-8148-2bd6237013c0/" href="http://social.technet.microsoft.com/Forums/en-US/sharepointcustomization/thread/e4a34a49-af24-4437-8148-2bd6237013c0/">http://social.technet.microsoft.com/Forums/en-US/sharepointcustomization/thread/e4a34a49-af24-4437-8148-2bd6237013c0/</a></p>
<p>Who in turn got if from the venerable EggHead Cafe:<br />
<a href="http://www.eggheadcafe.com/software/aspnet/30212653/how-to-change-welcome-mai.aspx">http://www.eggheadcafe.com/software/aspnet/30212653/how-to-change-welcome-mai.aspx</a></p>
<p>To summarize, modify the HTML code starting at line 5219 of the following RESX file in your “12” hive:<br />
C:\Program Files\Common Files\Microsoft Shared\web server\extensions\12\Resources\core.en-US.resx</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=122</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuring WiFi Profiles Using VBScript</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=121</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=121#comments</comments>
		<pubDate>Fri, 05 Dec 2008 21:31:56 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Scripting the Windows Experience]]></category>
		<category><![CDATA[certificates]]></category>
		<category><![CDATA[Netsh]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=121</guid>
		<description><![CDATA[We are in the midst of deploying a WPA2-Enterprise wireless network here at UVM.&#160; During the testing process we have discovered that although domain-joined computers have no trouble using the network (out-of-box settings don’t work very well, but we are pushing profiles using Group Policy to make easy for our clients), stand-alone workstations need very [...]]]></description>
			<content:encoded><![CDATA[<p>We are in the midst of deploying a WPA2-Enterprise wireless network here at UVM.&#160; During the testing process we have discovered that although domain-joined computers have no trouble using the network (out-of-box settings don’t work very well, but we are pushing profiles using Group Policy to make easy for our clients), stand-alone workstations need very specific WiFi settings that are not overly intuitive.</p>
<p>I decided to see if I could automate installation of wireless profiles using a script.&#160; Three days later, I have the outline of something that appears to work…</p>
<p>Below you will find a VBScript that performs the following procedures:</p>
<ul>
<li>Detects the operating system platform and Service Pack levels </li>
<li>Installs the trusted root certificate that is used by our RADIUS server if it is not already present.&#160; The script calls the “certmgr.exe” tool, available from the Windows Platform SDK (I suppose I could have used CAPICOM, but why should I torture myself?) </li>
<li>On Windows XP, uses the free utility “<a href="http://www.engl.co.uk/products/zwlancfg/index.html">zwlancfg.exe</a>” written by <a href="http://www.engl.co.uk/products/imagingtoolkit/index.html">ENGL</a> to install our WPA2-Enterprise wireless profile.&#160; The script will install the <a href="http://support.microsoft.com/kb/918997">KB918997</a> HotFix if it is not already present.&#160; This HotFix adds the WiFi API to Windows, allowing programmatic configuration of wireless on XP Service Pack 2 (<strong>Note:</strong> XP Service Pack 3 includes this HotFix).       <br />(I configured a WiFi profile on my XP laptop then used the command:       <br />zwlancfg.exe /export:”[profile name]”       <br />to generate the XML profile called by the script. </li>
<li>On Windows Vista, we call “netsh wlan import profile” to import a WiFi profile that was generated using:      <br />netsh wlan export profile –name:”[profile name]” –folder:”[export folder]” </li>
</ul>
<p>No doubt there are smarter ways to do this, and essential script logic that I am missing.&#160; I welcome your feedback and recommendations on how this script can be enhanced.&#160; Code follows:</p>
</p>
<hr />
<pre class="csharpcode"><span class="kwrd">option</span> explicit
<span class="rem">'Install UVM WPA2 wireless profile</span>
<span class="rem">' Supported platforms:  Windows Vista and XP with Service Pack 2 or 3</span>
<span class="rem">' Requires external tools: &quot;zwlancfg.exe&quot;, &quot;CertMgr.exe&quot; (from the Windows Platform SDK), and HotFix installer for KB918997</span>
<span class="rem">' Requires external files:  &quot;IPS Servidores&quot; root certificate file, XML configuration files for XP and Vista</span>

<span class="rem">' create constants</span>
<span class="kwrd">const</span> cNetName = <span class="str">&quot;wpa2&quot;</span>
<span class="kwrd">const</span> cLogFile = <span class="str">&quot;uvm_wpa2.log&quot;</span>

<span class="rem">' declare variants</span>
<span class="kwrd">dim</span> oShell, oUserEnv, oFSO, oFile
<span class="kwrd">dim</span> iSPVer
<span class="kwrd">dim</span> sTempEnv, strComputer, sOS
<span class="kwrd">dim</span> bSuccess

<span class="rem">'define variants</span>
bSuccess = <span class="kwrd">false</span>
strComputer = <span class="str">&quot;.&quot;</span>

<span class="rem">'instantiate global objects</span>
<span class="kwrd">set</span> oShell = WScript.CreateObject(<span class="str">&quot;WScript.Shell&quot;</span>)
<span class="kwrd">set</span> oFSO = CreateObject(<span class="str">&quot;Scripting.FileSystemObject&quot;</span>)
sTempEnv = oShell.ExpandEnvironmentStrings(<span class="str">&quot;%TEMP%&quot;</span>) &amp; <span class="str">&quot;&quot;</span>
<span class="kwrd">set</span> oFile = oFSO.CreateTextFile(sTempEnv &amp; cLogFile,<span class="kwrd">true</span>)

fDetectOS sOS, iSPVer

<span class="kwrd">if</span> inStr(sOS, <span class="str">&quot;Vista&quot;</span>) &gt; 0 <span class="kwrd">then</span>
    subInstCert
    subImpVistaProfile
    <span class="kwrd">elseif</span> inStr(sOS, <span class="str">&quot;XP&quot;</span>) &gt; 0 <span class="kwrd">then</span>
        <span class="kwrd">if</span> iSPVer = 2 <span class="kwrd">then</span>
            subXPPatch
            subInstCert
            subImpXPProfile
        <span class="kwrd">elseif</span> iSPVer = 3 <span class="kwrd">then</span>
            subInstCert
            subImpXPProfile
        <span class="kwrd">else</span>
            oFile.WriteLine <span class="str">&quot;Your operating system is not supported for use with this script.&quot;</span>
            WScript.Quit -4
        <span class="kwrd">end</span> <span class="kwrd">if</span>
    <span class="kwrd">else</span>
<span class="kwrd">end</span> <span class="kwrd">if</span>

oFile.close

<span class="rem">'''''''''''''''''''''''''''''''''</span>
<span class="rem">''' begin environment cleanup '''</span>
<span class="rem">'''''''''''''''''''''''''''''''''</span>
<span class="kwrd">set</span> oFile = <span class="kwrd">nothing</span>
<span class="kwrd">set</span> oFSO = <span class="kwrd">nothing</span>
<span class="kwrd">set</span> oUserEnv = <span class="kwrd">nothing</span>
<span class="kwrd">set</span> oShell = <span class="kwrd">Nothing</span>
<span class="rem">''''''''''''''''''''''''''''''''''</span>
<span class="rem">''''' end environment cleanup ''''</span>
<span class="rem">''''''''''''''''''''''''''''''''''</span>

<span class="kwrd">function</span> fDetectOS(sOS, iSPVer)
<span class="rem">'Detect OS Function - detects OS Caption string and Service Pack integer from WMI WIN32_OperatingSystem.</span>
<span class="rem">'Expects to varibles passed, returns the full OS Caption String, and SP Major Version intger</span>
    <span class="rem">'Declare variables</span>
    <span class="kwrd">dim</span> colItems
    <span class="kwrd">dim</span> objWMIService, objItem
    <span class="rem">'Instantiate local objects/collections</span>
    <span class="kwrd">Set</span> objWMIService = GetObject(<span class="str">&quot;winmgmts:&quot;</span> &amp; strComputer &amp; <span class="str">&quot;rootCIMV2&quot;</span>)
    <span class="kwrd">Set</span> colItems = objWMIService.ExecQuery(<span class="str">&quot;Select * from Win32_OperatingSystem&quot;</span>)

    <span class="kwrd">For</span> <span class="kwrd">Each</span> objItem <span class="kwrd">in</span> colItems
      sOS = objItem.Caption
      oFile.Write <span class="str">&quot;Detected Operating System: &quot;</span> &amp; sOS
      iSPVer = <span class="kwrd">cInt</span>(objItem.ServicePackMajorVersion)
      oFile.Write <span class="str">&quot;Detected Service Pack Version: &quot;</span> &amp; iSPVer
      oFile.Write <span class="str">&quot;Service Pack Minor Version: &quot;</span> &amp; objItem.ServicePackMinorVersion
    <span class="kwrd">Next</span>

    <span class="rem">'Clean local objects/variables</span>
    <span class="kwrd">set</span> objItem = <span class="kwrd">nothing</span>
    <span class="kwrd">set</span> colItems = <span class="kwrd">nothing</span>
    <span class="kwrd">set</span> objWMIService = <span class="kwrd">nothing</span>
<span class="kwrd">end</span> <span class="kwrd">function</span>

<span class="kwrd">sub</span> subImpVistaProfile
<span class="rem">'Imports Vista Wireless Profile using NETSH command.  </span>
<span class="rem">'Requires: a Vista wifi profile file exported using NETSH, defined in cVistaProfile within this function</span>
    <span class="kwrd">const</span> cVistaProfile = <span class="str">&quot;.uvm-wpa2-test.xml&quot;</span>
    <span class="kwrd">const</span> cUserScope = <span class="str">&quot;all&quot;</span>

    <span class="kwrd">dim</span> iStrMatch
    <span class="kwrd">dim</span> oExec, oStdOut
    <span class="kwrd">dim</span> sStdOutLine

    oFile.WriteLine <span class="str">&quot;Executing command: netsh wlan add profile filename=&quot;</span><span class="str">&quot;&quot;</span> &amp; cVistaProfile &amp; <span class="str">&quot;&quot;</span><span class="str">&quot; user=&quot;</span> &amp; cUserScope &amp; <span class="str">&quot;&quot;</span>
    <span class="kwrd">set</span> oExec = oShell.Exec(<span class="str">&quot;netsh wlan add profile filename=&quot;</span><span class="str">&quot;&quot;</span> &amp; cVistaProfile &amp; <span class="str">&quot;&quot;</span><span class="str">&quot; user=&quot;</span> &amp; cUserScope &amp; <span class="str">&quot;&quot;</span>)
    <span class="kwrd">set</span> oStdOut = oExec.stdOut
    <span class="kwrd">While</span> <span class="kwrd">not</span> oStdOut.AtEndOfStream
        sStdOutLine = oStdOut.ReadLine
        oFile.WriteLine(sStdOutLine)
        iStrMatch = <span class="kwrd">cInt</span>(inStr(sStdOutLine, <span class="str">&quot;Profile &quot;</span> &amp; cNetName &amp; <span class="str">&quot; is added on interface&quot;</span>))
        <span class="kwrd">if</span> iStrMatch &gt; 0 <span class="kwrd">then</span>
            WScript.Echo <span class="str">&quot;The &quot;</span> &amp; cNetName &amp; <span class="str">&quot; wireless profile was added successfully to your system&quot;</span>
        <span class="kwrd">elseif</span> iStrMatch = 0 <span class="kwrd">then</span>
            WScript.Echo <span class="str">&quot;The wireless profile failed to import.  Please see the manual profile &quot;</span> _
            &amp; <span class="str">&quot;configuration instructions available at http://www.uvm.edu/ets/wireless/wpa/.  A &quot;</span> _
            &amp; <span class="str">&quot;log file named &quot;</span> &amp; cLogFile &amp; <span class="str">&quot; which contains the full error message can be &quot;</span> _
            &amp; <span class="str">&quot;found in the &quot;</span> &amp; sTempEnv &amp; <span class="str">&quot; directory.&quot;</span>
            WScript.Quit -3
        <span class="kwrd">End</span> <span class="kwrd">If</span>
    <span class="kwrd">Wend</span>

    <span class="kwrd">set</span> oStdOut = <span class="kwrd">Nothing</span>
    <span class="kwrd">set</span> oExec = <span class="kwrd">Nothing</span>
<span class="kwrd">end</span> <span class="kwrd">sub</span>    

<span class="kwrd">sub</span> subImpXPProfile
    <span class="rem">' Installs an XP wifi profile using zwlancfg.exe.  Requires the HotFix KB918997 be installed on the system before running.</span>
    <span class="rem">' Requires presence of xml wifi profile file defined in cXPProfile</span>
    <span class="kwrd">const</span> cXPProfile = <span class="str">&quot;.wpa2.xml&quot;</span>
    <span class="kwrd">const</span> cForReading = 1
    <span class="kwrd">Dim</span> oZFile
    <span class="kwrd">Dim</span> sZFile

    oFile.WriteLine <span class="str">&quot;Executing command: zwlancfg.exe /import:&quot;</span><span class="str">&quot;&quot;</span> &amp; cXPProfile &amp; <span class="str">&quot;&quot;</span><span class="str">&quot; /log&quot;</span>
    oShell.Run <span class="str">&quot;zwlancfg.exe /import:&quot;</span><span class="str">&quot;&quot;</span> &amp; cXPProfile &amp; <span class="str">&quot;&quot;</span><span class="str">&quot; /log&quot;</span>, 1, <span class="kwrd">true</span>

    <span class="kwrd">set</span> oZFile = oFSO.OpenTextFile(<span class="str">&quot;zwlancfg.log&quot;</span>, cForReading)
    sZFile = oZFile.ReadAll
    oZFile.close

    oFile.WriteLine <span class="str">&quot;Output from zwlancfg.exe follows...&quot;</span>
    oFile.Write sZFile

    iStrMatch = <span class="kwrd">cInt</span>(inStr(sStdOutLine, <span class="str">&quot;Profile added to interface&quot;</span>))
    <span class="kwrd">if</span> iStrMatch &gt; 0 <span class="kwrd">then</span>
        bSuccess = <span class="kwrd">true</span>
        WScript.Echo <span class="str">&quot;The &quot;</span> &amp; cNetName &amp; <span class="str">&quot; wireless profile was added successfully to your system&quot;</span>
    <span class="kwrd">else</span> WScript.Echo <span class="str">&quot;Import of the WPA2 profile for XP failed.  Please see the manual profile &quot;</span> _
        &amp; <span class="str">&quot;configuration instructions available at &quot;</span> _
        &amp; <span class="str">&quot;http://www.uvm.edu/ets/wireless/wpa/.  A log file named &quot;</span> &amp; cLogFile &amp; <span class="str">&quot; which &quot;</span> _
        &amp; <span class="str">&quot;contains the full error message can be found in the &quot;</span> &amp; sTempEnv &amp; <span class="str">&quot; directory.&quot;</span>
        WScript.Quit -1
    <span class="kwrd">End</span> <span class="kwrd">If</span>
<span class="kwrd">end</span> <span class="kwrd">sub</span>

<span class="kwrd">sub</span> subXPPatch
    <span class="kwrd">stop</span>
    <span class="kwrd">const</span> cHotFixID = <span class="str">&quot;KB918997&quot;</span> <span class="rem">'IS THIS HOW THE HOTFIX IS DISPLAYED BY THE WMI QUERY?  nEED TO TEST!!!</span>
    <span class="kwrd">dim</span> colItems
    <span class="kwrd">dim</span> objWMIService, objItem
    <span class="kwrd">dim</span> iRC
    <span class="kwrd">dim</span> sHFOut
    <span class="kwrd">dim</span> bHFPresent

    bHFPresent = <span class="kwrd">false</span>

    <span class="kwrd">Set</span> objWMIService = GetObject(<span class="str">&quot;winmgmts:&quot;</span> &amp; strComputer &amp; <span class="str">&quot;rootCIMV2&quot;</span>)
    <span class="kwrd">Set</span> colItems = objWMIService.ExecQuery( _
        <span class="str">&quot;SELECT * FROM Win32_QuickFixEngineering&quot;</span>,,48)
    <span class="kwrd">For</span> <span class="kwrd">Each</span> objItem <span class="kwrd">in</span> colItems
        sHFOut = objItem.HotFixID
        <span class="kwrd">if</span> sHFOut = cHotFixID <span class="kwrd">then</span>
            bHFPresent = <span class="kwrd">True</span>
        <span class="kwrd">end</span> <span class="kwrd">if</span>
    <span class="kwrd">Next</span>
    oFile.WriteLine <span class="str">&quot;QFE HotFix ID &quot;</span> &amp; cHotFixID &amp; <span class="str">&quot; is present: &quot;</span> &amp; bHFPresent
    <span class="kwrd">if</span> bHFPresent = <span class="kwrd">false</span> <span class="kwrd">then</span>
        oFile.WriteLine <span class="str">&quot;We now will attempt to install QFE HotFix 918997.&quot;</span>
        iRC = oShell.Run(<span class="str">&quot;WindowsXP-KB918997-v6-x86-ENU.exe /passive /noreboot&quot;</span>, 1, <span class="kwrd">true</span>)
        oFile.WriteLine <span class="str">&quot;Return code from HotFix installer: &quot;</span> &amp; iRC
        <span class="kwrd">if</span> iRC = 0 <span class="kwrd">then</span> <span class="rem">'IS THIS THE ACTUAL RETURN CODE FOR A SUCCESSFUL INSTALL???</span>
            WScript.Echo <span class="str">&quot;A patch to your operating system was required to enable Wireless &quot;</span> _
            &amp; <span class="str">&quot;access to the UVM network.  The patch was applied successfully.  Please reboot &quot;</span> _
            &amp; <span class="str">&quot;your system and run this script again to complete Wireless configuration.&quot;</span>
        <span class="kwrd">else</span> WScript.Echo <span class="str">&quot;Application of the required XP HotFix &quot;</span> &amp; cHotFixID &amp; <span class="str">&quot; &quot;</span> _
            &amp; <span class="str">&quot;failed.  Please see the manual profile configuration instructions available at &quot;</span> _
            &amp; <span class="str">&quot;http://www.uvm.edu/ets/wireless/wpa/.  A log file named &quot;</span> &amp; cLogFile &amp; <span class="str">&quot; which &quot;</span> _
            &amp; <span class="str">&quot;contains the full error message can be found in the &quot;</span> &amp; sTempEnv &amp; <span class="str">&quot; directory.&quot;</span>
            WScript.Quit -1
        <span class="kwrd">end</span> <span class="kwrd">if</span>
    <span class="kwrd">end</span> <span class="kwrd">if</span>

    <span class="kwrd">set</span> objItem = <span class="kwrd">nothing</span>
    <span class="kwrd">set</span> colItems = <span class="kwrd">nothing</span>
    <span class="kwrd">set</span> objWMIService = <span class="kwrd">nothing</span>
<span class="kwrd">end</span> <span class="kwrd">sub</span>

<span class="kwrd">sub</span> subInstCert
    <span class="kwrd">stop</span>
    <span class="rem">'const cRootName = &quot;IPS SERVIDORES&quot;</span>
    <span class="rem">'dim oAllCerts, oCert</span>
    <span class="rem">'set colCerts = oCerts.Find(CAPICOM_CERTIFICATE_FIND_ROOT_NAME, cRootName, true)</span>
    <span class="rem">'oCert.Load(fileName, CAPICOM_KEY_STORAGE_DEFAULT, CAPICOM_LOCAL_MACHINE_KEY)</span>
    <span class="kwrd">dim</span> iRC
    iRC = oShell.Run(<span class="str">&quot;certmgr.exe -c -s -r localMachine root | find &quot;</span><span class="str">&quot;IPS SERVIDORES&quot;</span><span class="str">&quot;&quot;</span>, 1, <span class="kwrd">true</span>)
    <span class="kwrd">if</span> iRC = -1 <span class="kwrd">then</span>
        oFile.WriteLine <span class="str">&quot;Root Certificate for IPS_SERVIDORES needs to be installed.  Attempting install...&quot;</span>
        iRC = oShell.Run(<span class="str">&quot;certmgr.exe -add -c IPS_SERVIDORES.cer -s -r localMachine root&quot;</span>, 1, <span class="kwrd">true</span>)
        <span class="kwrd">if</span> iRC = 0 <span class="kwrd">then</span>
            oFile.WriteLine <span class="str">&quot;Certificate installed successfully&quot;</span>
        <span class="kwrd">else</span>
            WScript.Echo <span class="str">&quot;Certificate failed to install... You will need to install the &quot;</span> _
            &amp; <span class="str">&quot;certificate manually.  See the instructions at https://www.uvm.edu/ets/wireless/wpa2 &quot;</span> _
            &amp; <span class="str">&quot;, then run this script again to compelte installation of the UVM wireless profile.&quot;</span>
            WScript.Quit -2
        <span class="kwrd">end</span> <span class="kwrd">if</span>
    <span class="kwrd">else</span>
        oFile.WriteLine <span class="str">&quot;Root Certificate for &quot;</span><span class="str">&quot;IPS SERVIDORES&quot;</span><span class="str">&quot; is already installed.&quot;</span>
    <span class="kwrd">end</span> <span class="kwrd">if</span>
<span class="kwrd">end</span> <span class="kwrd">sub</span></pre>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=121</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Making Order of Chaos with MS LogParser 2.2</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=117</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=117#comments</comments>
		<pubDate>Wed, 12 Nov 2008 04:38:20 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Scripting the Windows Experience]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[Utilities]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=117</guid>
		<description><![CDATA[I was having some trouble today sifting though some SharePoint diagnostic logs.  There is way too much noise in the logs, and the TSV format makes finding information less than simple.  Luckily, I decided to give MS Log Parser a go&#8230; it has been sitting in an install directory waiting for some excercise for over [...]]]></description>
			<content:encoded><![CDATA[<p>I was having some trouble today sifting though some SharePoint diagnostic logs.  There is <em>way</em> too much noise in the logs, and the TSV format makes finding information less than simple.  Luckily, I decided to give MS Log Parser a go&#8230; it has been sitting in an install directory waiting for some excercise for over a year&#8230;</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&amp;displaylang=en</a></p>
<p>LogParser lets us run SQL-like queries against the contents of many different types of structured data files, including CSV, TSV, XML, W3C, IIS, and many others.  Output can be formatted in almost as many ways, including to a GUI dataview window.  Anyone who likes SQL queries will love this.</p>
<p>Below is a simple sample conversion that I ran to strip out all &#8220;Medium&#8221; rated alerts, and anything that was not generated by the SharePoint Search Services.:</p>
<p><code>LogParser.exe -i:TSV -o TSV "SELECT Timestamp, Process, Area, Category, Level, Message<br />
INTO searchEvents.tsv from 'c:\Program Files\Common Files\Microsoft Shared\web server<br />
extensions\12\LOGS\SHAREPOINT1-20081111-1237.log' WHERE Area='Search Server Common'<br />
AND Level&lt;&gt;'Medium'"</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=117</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BitLocker Recovery Tool Problems</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=114</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=114#comments</comments>
		<pubDate>Thu, 30 Oct 2008 18:49:45 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BitLocker]]></category>
		<category><![CDATA[Utilities]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=114</guid>
		<description><![CDATA[The motherboard on my trusty Dell Latitude D820 went sour this Sunday, requiring a full replacement.  No one was ever killed by losing access to their laptop for a few days, but I was somewhat annoyed to have lost access to my iTunes installation (thus making backup and sync of my iPod impossible), and I [...]]]></description>
			<content:encoded><![CDATA[<p>The motherboard on my trusty Dell Latitude D820 went sour this Sunday, requiring a full replacement.  No one was ever killed by losing access to their laptop for a few days, but I was somewhat annoyed to have lost access to my iTunes installation (thus making backup and sync of my iPod impossible), and I also had a few video files which I was working with stored locally.  So I decided to try testing out the BitLocker recovery tool to see if I could get access to my files.</p>
<p>First, we had to grab the BitLocker Recovery Tool from Microsoft:<br />
<a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=4FFD0D16-A51B-48B1-9042-AE1FB2DE40C6&amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4FFD0D16-A51B-48B1-9042-AE1FB2DE40C6&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=4FFD0D16-A51B-48B1-9042-AE1FB2DE40C6&amp;displaylang=en</a></p>
<p>I installed the tool onto a Vista desktop, and connected my laptop drive to the system using a SATA-to-USB converter, such as the one seen here:<br />
<a title="http://insidecomputer.stores.yahoo.net/seatasatousb.html" href="http://insidecomputer.stores.yahoo.net/seatasatousb.html">http://insidecomputer.stores.yahoo.net/seatasatousb.html</a><br />
That worked really well… my BitLocker-encrypted drive immediately became visible to Windows, although it (quite naturally) could not be read.</p>
<p>I then ran repair-bde.exe, providing the BDE recovery key which I had escrowed in Active Directory.  I used the option to extract the recovered data to an image file on my external ieee1394 drive.  Repair-bde dutifully extracted the drive contents to a file, and reported success.</p>
<p>Now the tricky part… how do we read this massive image file?  It does not appear to be a WIM file (i.e. “imagex /mount” claims that this is not a valid WIM image).  It cannot be mounted as an ISO, nor can it be extracted using any of the archive handlers supported by 7-zip.  It cannot be mounted as a virtual disk using Virtual PC.  What is it???</p>
<p>I contacted Microsoft support to find out… support claims that I should use “IMGMOUNT.EXE” to mount the image.  Some Googling suggests that this utility is part of the short-lived “Automated Deployment Services”, or “ADS” product that Microsoft released to allow deployment of Windows Server 2003 images:<br />
<a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=D99A89C9-4321-4BF6-91F9-9CA0DED26734&amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=D99A89C9-4321-4BF6-91F9-9CA0DED26734&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=D99A89C9-4321-4BF6-91F9-9CA0DED26734&amp;displaylang=en</a></p>
<p>So I downloaded ADS, and did a “custom” install, and selected the “image creation tools”.  This installed “IMGMOUNT.EXE” on my system, in the “%ProgramFiles%\Microsoft ADS\bin” directory.  Unfortunately, IMGMOUNT also reports that this is not a valid image.  Microsoft support also told me that the third-party tool “ISOBuster” should be able to mount the image:<br />
<a title="http://www.isobuster.com/" href="http://www.isobuster.com/">http://www.isobuster.com/</a><br />
But this failed to work, too.  I guess the image generated by Repair-bde.exe simply was not valid.</p>
<p>Oh well, by this time, my laptop has been repaired and I was able to get back into my OS using the BitLocker recovery password.  I guess the takehome lesson is not to use the recover-to-image option of the repair-bde tool… instead, recover to the root on an external drive.  This may not work any better, but at least you will know immediately if the utility is successful in decrypting your drive contents.</p>
<p>The other problem that I ran into was the fact that I lost my TPM chip with the motherboard.  As you may know, your BitLocker decryption keys are stored on your TPM, and that your TPM cannot be detached from your motherboard.  New motherboard=new TPM.  Oh well… It looks like I need to turn off BitLocker on my system, decrypt the whole drive, and then re-activate BitLocker.  There does not appear to be a way to write the BitLocker decryption keys to the TPM once the drive is already encrypted… Bummer!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=114</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up Inverness &#8211; the External Collaboration Toolkit for SharePoint</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=112</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=112#comments</comments>
		<pubDate>Tue, 25 Mar 2008 22:19:39 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[AD LDS]]></category>
		<category><![CDATA[ECTS]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=112</guid>
		<description><![CDATA[
Decision Points:
Need to decide&#8230;

Where to host ADAM &#8211; We want it replicated for additional fault tolerance:


The best option may be to run it on each SharePoint server in your farm&#8230; ADAM supports clustering via network load balancing.  If you have setup up NLB for SharePoint, it then should not be too difficult to set it [...]]]></description>
			<content:encoded><![CDATA[<h3></h3>
<h3>Decision Points:</h3>
<p>Need to decide&#8230;</p>
<ul>
<li>Where to host ADAM &#8211; We want it replicated for additional fault tolerance:</li>
</ul>
<ul>
<li>The best option may be to run it on each SharePoint server in your farm&#8230; ADAM supports clustering via network load balancing.  If you have setup up NLB for SharePoint, it then should not be too difficult to set it up for ADAM as well.  This also eases configuration on Internet-facing servers&#8230; you don&#8217;t need to allow additional firewall rules from the SharePoint web server to an ADAM server in your trusted network.</li>
</ul>
<li>Where to host the ECTS configuration database:</li>
<ul>
<li>Place the DB external to the SharePoint server for scale out &#8230; you don&#8217;t want to install an essential component on a web farm server that you want to be able to take down to apply maintenance.</li>
</ul>
<li>External URL for SharePoint:</li>
<ul>
<li>I should be something short, and fairly memorable.  It also should sounds distinct from the Internal URL&#8230; I am trying &#8220;PartnerPoint.uvm.edu&#8221; to start out with .</li>
</ul>
<h3>Gotchas:</h3>
<ul>
<li>ADAM Setup:</li>
</ul>
<ul>
<li>ECTS requires SSL for ADAM&#8230; check the Event Viewer &#8220;ADAM&#8221; events for SSL errors.  Documentation suggests giving the ADAM service account rights to the required certificate in the &#8220;All Users&#8221; profile&#8230; this worked for me in TEST once my certificate has a Fully Qualified Domain Name in its subject line.  My auto-enrollment generated certs only have the FQDN in the SAN (subject alternative name) field, thus I needed to generate a new cert for SSL to work.  Once doing the PROD deployment, this fix did not work, and I had to copy the PROD SSL cert from the &#8220;Computer Account&#8221; Personal certificate store to the &#8220;Service Account&#8221; Personal certificate store (the store labeled &#8220;ECTS Instance&#8221;)</li>
<li>In our production environment I had trouble running the setup script&#8230; this was because I was trying to use ports that ADAM considered &#8220;invalid&#8221;.  Keep an eye on %windir%debugadamsetup.log if scripts fail&#8230; as indicated here:<br />
<a title="http://technet2.microsoft.com/windowsserver/en/library/2080b841-2211-400f-b393-04675a1653651033.mspx?mfr=true" href="http://technet2.microsoft.com/windowsserver/en/library/2080b841-2211-400f-b393-04675a1653651033.mspx?mfr=true">http://technet2.microsoft.com/windowsserver/en/library/2080b841-2211-400f-b393-04675a1653651033.mspx?mfr=true</a></li>
</ul>
<li>SharePoint app configuration:</li>
<ul>
<li>It seems that host headers may be required by the setup scripts&#8230; if initial config fails, try adding host headers to internal and external web sites, then running setup again.</li>
<li>Connection Strings are for ADAM and the ECTS database are stored in the web.config files of each SP web site instance&#8230; you can inspect these to validate your config.  Also, you can change the ECTS database using these connect strings.  By doing to I was able to rename the database to &#8220;ECTSTest&#8221; so that I will be able to install the PROD database on the same server.</li>
<li>In more complex environments where you are adding ECTS to an existing SharePoint server, the ects_setup_sharepoint.vbs script may not update <em>all</em> of the web.config files on your server.  This was not a problem on my test server, but it was a real pain in production.  To fix the issue, I copied the following sections from my Extranet site web.config to by internal (&#8221;Default&#8221; zone) web site web.config:</li>
</ul>
<ul>&lt;connectionStrings&gt;<br />
&lt;add name=&#8221;ADAMConnectionString&#8221; connectionString=LDAP://myserver:636/CN=Users,OU=ECTS,dc=mycontext /&gt;<br />
&lt;add name=&#8221;DBConnectionString&#8221; connectionString=&#8221;Data Source=MYDB; Database=ECTS; Integrated Security=SSPI&#8221; /&gt;<br />
&lt;/connectionStrings&gt;<br />
&lt;location path=&#8221;_layouts/ExternalCollaboration/PasswordReset.aspx&#8221;&gt;<br />
&lt;system.web&gt;<br />
&lt;authorization&gt;<br />
&lt;allow users=&#8221;*&#8221; /&gt;<br />
&lt;/authorization&gt;<br />
&lt;/system.web&gt;<br />
&lt;/location&gt;<br />
&lt;system.net&gt;<br />
&lt;mailSettings&gt;<br />
&lt;smtp from=PartnerAdmin@myserver&gt;<br />
&lt;network host=&#8221;smtp.myzone.net&#8221; port=&#8221;25&#8243; defaultCredentials=&#8221;true&#8221; /&gt;<br />
&lt;/smtp&gt;<br />
&lt;/mailSettings&gt;<br />
&lt;/system.net&gt;</ul>
<li>ECTS &#8220;Configuration Utility&#8221; web part:  This is tricky, as the documentation is a bit vague on this.  You must add the account that you are going to use to run the utility to the &#8220;datareaders&#8221; and &#8220;datawriters&#8221; roles of the ECTS database IN ADDITION TO the WSS service account.  If the correct permissions are not added, configuration will fail&#8230; somewhat silently.</li>
<li>Web Part Security:  Access to the ECTS web parts is dictated though SharePoint site groups.  The users that you want to access the site must be added <em>explicitly</em>, not though group objects.  I.E. Lets say we have a user named &#8220;Jimmy Joe Jim Bob&#8221; (with NetID &#8220;jjjb&#8221;).  He is a member of the Active Directory group &#8220;SharePoint Gods&#8221; (DOMAINSPGods).  We want Jimmy Joe to be a &#8220;Site Collection Approver&#8221;, I must add the NetID &#8220;jjjb&#8221; to the &#8220;External Site Approvers&#8221; SharePoint group.  I cannot add the group &#8220;DOMAINSPGods&#8221;&#8230; it just does not work that way.</li>
<h3>Help Resources:</h3>
<p>&#8220;SharePoint &#8211; Collaboration&#8221; forum on MSDN:<br />
<a title="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=2012&amp;SiteID=1" href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=2012&amp;SiteID=1">http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=2012&amp;SiteID=1</a></p>
<p>ECTS online documentation on TechNet:<br />
<a title="http://technet.microsoft.com/en-us/library/cc268155.aspx" href="http://technet.microsoft.com/en-us/library/cc268155.aspx">http://technet.microsoft.com/en-us/library/cc268155.aspx</a></p>
<p>Here is one that <em>really</em> helped me:<br />
(actually, the same information is available on <em>many</em> web sites, but this is really concise.  Getting &#8220;real&#8221; debug output helps to identify the source of config problem.  I found these stack traces a lot more useful than looking at SharePoint diagnostic logs)</p>
<p><a title="http://www.sharepointblogs.com/michael/archive/2007/06/28/sharepoint-under-the-hood-see-real-error-description-and-callstack-stack-trace.aspx" href="http://www.sharepointblogs.com/michael/archive/2007/06/28/sharepoint-under-the-hood-see-real-error-description-and-callstack-stack-trace.aspx">http://www.sharepointblogs.com/michael/archive/2007/06/28/sharepoint-under-the-hood-see-real-error-description-and-callstack-stack-trace.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=112</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OpsMgr Severity/Priority Levels: &#8220;What &#8216;IS&#8217; is.&#8221;</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=111</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=111#comments</comments>
		<pubDate>Tue, 18 Mar 2008 13:49:55 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Monitoring the Zoo]]></category>
		<category><![CDATA[OpsMgr]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=111</guid>
		<description><![CDATA[When working with OpsMgr overrides, I am always forgetting the mappings between alert severities and their corresponding numeric values in the database.&#160; It is important to keep this straight, because if you set your overrides incorrectly, you risk either suppressing all notification for an alert, or even worse&#8230; increasing the number of notifications that you [...]]]></description>
			<content:encoded><![CDATA[<p>When working with OpsMgr overrides, I am always forgetting the mappings between alert severities and their corresponding numeric values in the database.&#160; It is important to keep this straight, because if you set your overrides incorrectly, you risk either suppressing all notification for an alert, or even worse&#8230; increasing the number of notifications that you receive!</p>
<p>Marius provide the following mapping info in his fine blog on MSDN:</p>
<p><b>Mapping:</b></p>
<p>Alert Severity &#8211; Its corresponding integer value</p>
<p><b>Critical</b> &#8211; 2     <br /><b>Warning</b> &#8211; 1     <br /><b>Information</b> &#8211; 0</p>
<p>Alert Priority &#8211; Its corresponding integer value</p>
<p><b>High</b> &#8211; 2     <br /><b>Medium</b> &#8211; 1     <br /><b>Low</b> &#8211; 0</p>
<p>Read more here:</p>
<p><a title="http://blogs.msdn.com/mariussutara/archive/2007/12/17/alert-severity-and-priority-use-with-override.aspx" href="http://blogs.msdn.com/mariussutara/archive/2007/12/17/alert-severity-and-priority-use-with-override.aspx">http://blogs.msdn.com/mariussutara/archive/2007/12/17/alert-severity-and-priority-use-with-override.aspx</a></p>
<p>So remember, when downgrading an alert from &quot;Critical&quot; to &quot;Warning&quot;, change in from &quot;Severity 2&quot; to &quot;Severity 1&quot;.&#160; &quot;Severity 3&quot; will just cause more paging&#8230; TWTTTTH!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=111</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mastering the Maze 2008 &#8211; Collaborating with SharePoint @ UVM</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=110</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=110#comments</comments>
		<pubDate>Thu, 13 Mar 2008 15:30:05 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=110</guid>
		<description><![CDATA[They pulled me out of my dungeon to do some public speaking this week.&#160; FWIW, here is the slide stack that I used for the presentation&#8230;
PowerPoint 2007 version:
http://www.uvm.edu/~jgm/seminars/MM2008-CollaboratingWithSharePoint.pptx
PDF Version:
http://www.uvm.edu/~jgm/seminars/MM2008-CollaboratingWithSharePoint.pdf
I am going to assume that the use of any copyrighted content in this presentation falls under &#8220;fair use&#8221;, but IANAL, so send me that DMCA takedown [...]]]></description>
			<content:encoded><![CDATA[<p>They pulled me out of my dungeon to do some public speaking this week.&nbsp; FWIW, here is the slide stack that I used for the presentation&#8230;</p>
<p>PowerPoint 2007 version:</p>
<p><a href="http://www.uvm.edu/~jgm/seminars/MM2008-CollaboratingWithSharePoint.pptx">http://www.uvm.edu/~jgm/seminars/MM2008-CollaboratingWithSharePoint.pptx</a></p>
<p>PDF Version:</p>
<p><a title="http://www.uvm.edu/~jgm/seminars/MM2008-CollaboratingWithSharePoint.pdf" href="http://www.uvm.edu/~jgm/seminars/MM2008-CollaboratingWithSharePoint.pdf">http://www.uvm.edu/~jgm/seminars/MM2008-CollaboratingWithSharePoint.pdf</a></p>
<p>I am going to assume that the use of any copyrighted content in this presentation falls under &#8220;fair use&#8221;, but IANAL, so send me that DMCA takedown notice if I am wrong&#8230; </p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=110</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting Up Server 2008 Core</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=109</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=109#comments</comments>
		<pubDate>Tue, 12 Feb 2008 23:14:14 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Netsh]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Server 2008]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=109</guid>
		<description><![CDATA[Configuring IPv4 on the Local network interface:
http://www.petri.co.il/configure_tcp_ip_from_cmd.htm -and-
http://www.markwilson.co.uk/blog/2005/10/using-netsh-to-set-multiple-dns-server.htm

To set your IP address:
netsh interface ip set address name=&#8221;Local Area Connection&#8221; static &#60;ip address&#62; &#60;netmask&#62; &#60;default gateway&#62;
(Note:  If you are using netsh on a platform earlier than Server 2008 (i.e. Server 2003) you may nned to provide more explicit parameters such as:
netsh interface ip set address name&#8221;Local Area [...]]]></description>
			<content:encoded><![CDATA[<p>Configuring IPv4 on the Local network interface:</p>
<p><a title="http://www.petri.co.il/configure_tcp_ip_from_cmd.htm" href="http://www.petri.co.il/configure_tcp_ip_from_cmd.htm">http://www.petri.co.il/configure_tcp_ip_from_cmd.htm</a> -<em>and</em>-</p>
<p><a title="http://www.markwilson.co.uk/blog/2005/10/using-netsh-to-set-multiple-dns-server.htm" href="http://www.markwilson.co.uk/blog/2005/10/using-netsh-to-set-multiple-dns-server.htm">http://www.markwilson.co.uk/blog/2005/10/using-netsh-to-set-multiple-dns-server.htm</a></p>
<ul>
<li>To set your IP address:<br />
netsh interface ip set address name=&#8221;Local Area Connection&#8221; static &lt;ip address&gt; &lt;netmask&gt; &lt;default gateway&gt;<br />
(Note:  If you are using netsh on a platform earlier than Server 2008 (i.e. Server 2003) you may nned to provide more explicit parameters such as:<br />
netsh interface ip set address name&#8221;Local Area Connection&#8221; source=&#8221;static&#8221; addr=&#8221;&lt;addr&gt;&#8221; mask=&#8221;&lt;mask&gt;&#8221; gateway=&#8221;&lt;gateway&gt;&#8221; gwmetric=&#8221;1&#8243;)</li>
<li>To set your first DNS server:<br />
netsh interface ip set dns &#8220;Local Area Connection&#8221; static &lt;DNSServerIP&gt;<br />
(NOTE:  You may want to set DNS info first if you need your interface to be functional as soon as the IP address comes online.)</li>
<li>To set your first WINS server:<br />
netsh interface ip set wins &#8220;Local Area Connection&#8221; static &lt;WINSServerIP&gt;</li>
<li>Setting up additional WINS and DNS servers:
<ul>
<li>run &#8220;netsh&#8221;</li>
<li>go to the context &#8220;interface ip&#8221;</li>
<li>run:<br />
<code>add dns "Local Area Connection" <em>&lt;DNSServerIP&gt;</em> index=2<br />
</code>then<br />
<code>add wins "Local Area Connection" <em>&lt;WINSServerIP&gt;</em> index=2</code></li>
<li><code>Verify settings with:<br />
"ipconfig /all" or "netsh interface ip show config"</code></li>
</ul>
</li>
</ul>
<p>Installing VMWare Tools:</p>
<p><a title="http://www.flickr.com/photos/jimboy/sets/72157602876493918" href="http://www.flickr.com/photos/jimboy/sets/72157602876493918">http://www.flickr.com/photos/jimboy/sets/72157602876493918</a></p>
<ul>
<li>In the ESX console, initiate &#8220;Install VMWare Tools&#8221;</li>
<li>At the server console, switch to D:, run setup.exe with typical options, wait wait wait wait, affirm that you want to install the updated help files, reboot.</li>
</ul>
<p>Changing the console resolution:</p>
<p><a title="http://www.netometer.com/video/tutorials/core-server-change-resolution/index.php" href="http://www.netometer.com/video/tutorials/core-server-change-resolution/index.php">http://www.netometer.com/video/tutorials/core-server-change-resolution/index.php</a></p>
<ul>
<li>use regedit.exe</li>
<li>navigate to:<br />
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlVideo{BBF118A6-4C44-4FE4-A8A3-965A9A577F98}000<br />
(or whichever GUID key have the subkey of &#8220;0000&#8243; named &#8220;VolatileSettings&#8221;)</li>
<li>Change &#8220;DefaultSettings.XResolution&#8221; and &#8220;DefaultSettings.YResolution&#8221; to your desired values in <em>decimal</em> format.</li>
</ul>
<p>Enabling remote desktop:slmgr</p>
<p><a title="http://www.petri.co.il/managing-windows-2008-server-core-rdp.htm" href="http://www.petri.co.il/managing-windows-2008-server-core-rdp.htm">http://www.petri.co.il/managing-windows-2008-server-core-rdp.htm</a></p>
<ul>
<li>cscript C:WindowsSystem32Scregedit.wsf /ar 0</li>
<li>netsh advfirewall firewall set rule group=&#8221;Remote Desktop&#8221; new enable=yes</li>
</ul>
<p>Activating a KMS:</p>
<ul>
<li>After networking is configured, use SLMGR.vbs to activate your KMS</li>
<li>For you sanity, you may wish to perform &#8220;cscript //H:cscript&#8221; to set the command line script interpreter as the default script handler.</li>
<li>run &#8220;<em>slmgr.vbs -ipk &lt;KMS product key&gt;&#8221;</em></li>
<li>run &#8220;<em>slmgr.vbs -ato&#8221;</em> to activate the KMS</li>
<li>run &#8220;<em>Netsh advfirewall firewall set rule group=“Key Management Server” new enable=yes&#8221;</em> to allow KMS client traffic through the firewall (more on this below)</li>
<li>run &#8220;<em>slmgr.vbs -dlv&#8221; </em>to monitor KMS activity.</li>
</ul>
<p>Allowing Remote Administration:</p>
<p><a title="http://blogs.technet.com/server_core/archive/2008/01/14/configuring-the-firewall-for-remote-management-of-a-workgroup-server-core-installation.aspx" href="http://blogs.technet.com/server_core/archive/2008/01/14/configuring-the-firewall-for-remote-management-of-a-workgroup-server-core-installation.aspx">http://blogs.technet.com/server_core/archive/2008/01/14/configuring-the-firewall-for-remote-management-of-a-workgroup-server-core-installation.aspx</a></p>
<ul>
<li>Netsh advfirewall firewall set rule group=“&lt;rule group&gt;” new enable=yes</li>
<li>&lt;rule group&gt; can include:</li>
</ul>
<ul>
<li>Remote Event Log Management</li>
<li>Remote Service Management</li>
<li>File and Printer Sharing</li>
<li>Remote Scheduled Tasks Management</li>
<li>Performance Logs and Alerts</li>
<li>Remote Volume Management</li>
<li>Windows Firewall Remote Management</li>
</ul>
<li>Now that I have remote access via MMC, I see that the group &#8220;Key Management Service&#8221; is also available.  Also see the &#8220;Remote Desktop&#8221; group, above.</li>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=109</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making &quot;PostReflect.exe&quot; functional</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=108</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=108#comments</comments>
		<pubDate>Tue, 12 Feb 2008 15:08:28 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=108</guid>
		<description><![CDATA[Vista Service Pack 1 is here, and with it a few new tricks that need to be learned.&#160; The first shocker for me is that you cannot apply Vista SP1 to an offline image&#8230; bummer!&#160; I had understood from earlier MS brags about Vista that the &#34;componentized&#34; (sic) OS could always be maintained offline.&#160; Adding [...]]]></description>
			<content:encoded><![CDATA[<p>Vista Service Pack 1 is here, and with it a few new tricks that need to be learned.&#160; The first shocker for me is that you cannot apply Vista SP1 to an offline image&#8230; bummer!&#160; I had understood from earlier MS brags about Vista that the &quot;componentized&quot; (sic) OS could always be maintained offline.&#160; Adding insult to injury, you cannot slipstream SP1 into RTM source media, as was possible with XP and Server 2003.&#160; Oh well&#8230;</p>
<p>The new Windows AIK v1.1 which supports Vista SP1 states that you must run the &quot;postreflect.exe&quot; tool on any offline Vista SP1 image <em>before</em> you attempt to apply that image to new hardware.&#160; Why?&#160; I don&#8217;t know&#8230; they have some mumbo jumbo about critical driver availability which is hard to grok.&#160; The problem for me was that PostReflect failed to work!&#160; </p>
<p>Here is what I did:</p>
<ol>
<li>Applied Vista SP1 to a fresh Vista Enterprise install </li>
<li>Ran sysprep on the system, then used imagex from a WinPE instance to capture the image </li>
<li>transferred the image to our distribution server (which has Microsoft Deployment 4 and the new AIK installed). </li>
<li>Used imagex to mount the image in read/write mode </li>
<li>Ran &quot;vsp1cln.exe&quot; from the AIK to remove the SP1 uninstall information. </li>
<li>Ran &quot;postreflect e:\mount\windows c:&quot; to &quot;reflect&quot; the critical device drivers in the offline image mounted at &quot;e:\mount&quot;, which uses the system drive letter &quot;c:&quot; when running.&#160; This returned a &quot;FAILED&quot; error, with return code &quot;0&#215;0000007E&quot;. </li>
</ol>
<p>What the heck?</p>
<p>Since SP1 and postreflect are brand new, Google and the Microsoft news groups were of no help in debugging the problem.&#160; The godlike Mark Russinovich was.&#160; I started &quot;procmon.exe&quot; with a filter for &quot;postreflect.exe&quot;, then ran the prostreflect operation again.&#160; As usual, I captured a ton of activity, but it not take too much examination to see that postreflect was looking for the AIK 1.0 DLL &quot;drvstore.dll&quot;, but was unable to find it.&#160; As a quick fix, I did a &quot;cd&quot; to &quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\6.0.6000.16386_x86&quot; (where one copy of drvstore.dll is located).&#160; I then re-ran postreflect, and the operation now completes successfully!</p>
<p>As a long-term fix, I copied the contents of &quot;C:\Program Files\Windows AIK\Tools\x86\Servicing\6.0.6000.16386_x86&quot; to a directory &quot;C:\Program Files\Windows Imaging&quot;, then laid the contents of &quot;C:\Program Files\Windows AIK\Tools\x86\Servicing&quot; and &quot;C:\Program Files\Windows AIK\Tools\x86&quot; on top of that.&#160; My &quot;Windows Imaging&quot; folder was already in my system &quot;PATH&quot; environment variable as a fix for a similar problem we had with &quot;wdsutil&quot; in the past.&#160; &quot;postrefect&quot; now should be able to locate all of the files that it needs for future operations.&#160; However, I will need to keep an eye out of future AIK tool updates&#8230; those files will need to be copied to my &quot;Windows Imaging&quot; folder.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=108</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>stsadm -o export fails with &#8220;Guid should contain 32 digits&#8230;&#8221; error</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=107</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=107#comments</comments>
		<pubDate>Mon, 11 Feb 2008 17:19:20 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=107</guid>
		<description><![CDATA[While trying to use stsadm to export/import a site (part of my usual site repair process), I encountered an error in exporting &#8220;field&#8221; objects.  The error stated &#8220;FatalError: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).&#8221;.
Some digging revealed this forum post:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2003817&#038;SiteID=1
It is suggeted here that the file &#8220;Fields.xml&#8221; in the directory &#8220;C:\Program Files\Common [...]]]></description>
			<content:encoded><![CDATA[<p>While trying to use stsadm to export/import a site (part of my usual site repair process), I encountered an error in exporting &#8220;field&#8221; objects.  The error stated &#8220;FatalError: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).&#8221;.</p>
<p>Some digging revealed this forum post:<br />
<a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2003817&#038;SiteID=1">http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2003817&#038;SiteID=1</a></p>
<p>It is suggeted here that the file &#8220;Fields.xml&#8221; in the directory &#8220;C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\TSATypes&#8221; contains illegal curly-brace characters (i.e. {}).  </p>
<p>To fix the problem, we mack a backup of fields.xml, then search and replace ID=&#8221;{ with ID=&#8221;, and }&#8221; with &#8220;.  After performing these actions, stsadm is able to create an export archive of the site.</p>
<p>Another forum hints that one of the site templates in the &#8220;fab 40&#8243; application templates is at fault, but I cannot determine which one this would be from the content of the files.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=107</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows DS woes&#8230; and the cure</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=106</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=106#comments</comments>
		<pubDate>Wed, 06 Feb 2008 04:01:36 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=106</guid>
		<description><![CDATA[The people in the computer depot clinic reported a vexing problem with Windows DS deployment today&#8230; one of the techs reported a 0&#215;80070020 error in a WDS deployment session.&#160; The text was &#8220;Windows cannot install required files&#8221;.&#160; There is no mention of which files, which is quite irritating.&#160; The error comes up after 20-25 minutes [...]]]></description>
			<content:encoded><![CDATA[<p>The people in the computer depot clinic reported a vexing problem with Windows DS deployment today&#8230; one of the techs reported a 0&#215;80070020 error in a WDS deployment session.&nbsp; The text was &#8220;Windows cannot install required files&#8221;.&nbsp; There is no mention of <em>which</em> files, which is quite irritating.&nbsp; The error comes up <em>after</em> 20-25 minutes of deployment activity (when the process is 97% done).&nbsp; Annoying&#8230; and no telling how long it has been going on, either.  </p>
<p>I had a look that the Vista setup log files on a system that was experiencing the reported error: <br /><a href="http://support.microsoft.com/kb/927521">http://support.microsoft.com/kb/927521</a><br />To look at the log, press shift-F10 to bring up a command prompt, then &#8220;cd&#8221; to &#8220;C:\$WINDOWS.~BT\Sources\Panther&#8221;, and &#8220;notepad setuperr.log&#8221;.&nbsp; In this case we see that the file &#8220;WinPEpge.sys&#8221; failed to copy owing to a &#8220;sharing violation&#8221;. </p>
<p>Some quick Googling reveals: <br /><a href="http://support.microsoft.com/kb/944817">http://support.microsoft.com/kb/944817</a><br />Some of these images have a file called &#8220;WinPEpge.sys&#8221; in their root directories.&nbsp; This file is not supposed to be in the image at all.&nbsp; I have purged the Student X20 and X30 images of this foulness.&nbsp; I am not sure how that file got in there, as it should be excluded by default.&nbsp; However, to be safe I have updated the WDS Deployment and Capture images with config files that explicitly exempt the winpepge.sys file from capture and deployment. </p>
<p>Having to spend four hours on this today was not all bad, though.&nbsp; This gave me the chance to add GImageX.exe to the deployment/capture images: <br /><a href="http://blogs.technet.com/deploymentguys/archive/2008/01/03/gimagex-is-back.aspx">http://blogs.technet.com/deploymentguys/archive/2008/01/03/gimagex-is-back.aspx</a><br />this is a new graphical front-end to imagex that allows easier image capture, mounting, and maintenance.&nbsp; It will be available on the CD drive letter of a WDS Capture/Discover ISO, or the flash drive letter of a USB bootable version. </p>
<p>I really should try to dredge though the current image library for these &#8220;winpepge.sys&#8221; files in some sort of programmatic fashion.&nbsp; Doing so is made somewhat more complicated by the fact that you cannot directly edit WDS images that have been single-instanced into &#8220;.RWM&#8221; files by the WDSUTIL or its sister MMC console&#8230; ImageX just can&#8217;t handle this.&nbsp; You have to export the image from WDS, then edit it, then re-import.&nbsp; WDSUTIL is highly script-able, so this should be possible&#8230; it is just not &#8220;simple&#8221;.&nbsp; Maybe next week&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=106</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recursively adding drivers in a distribution share to a WinPE image with &#8220;FOR&#8221; and &#8220;peimg&#8221;</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=105</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=105#comments</comments>
		<pubDate>Tue, 05 Feb 2008 22:57:13 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Scripting the Windows Experience]]></category>
		<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=105</guid>
		<description><![CDATA[Microsoft has provided a handy tool for adding additional drivers into Windows Vista and WinPE 2.0 WIM files.  This tool is called &#8220;PEIMG&#8221;, and it is included in the Windows AIK, available from www.microsoft.com/downloads.  Unfortunately, PEIMG does not have a recursive function, so if you want to add all of the drivers in a complex [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft has provided a handy tool for adding additional drivers into Windows Vista and WinPE 2.0 WIM files.  This tool is called &#8220;PEIMG&#8221;, and it is included in the Windows AIK, available from <a href="http://www.microsoft.com/downloads">www.microsoft.com/downloads</a>.  Unfortunately, PEIMG does not have a recursive function, so if you want to add all of the drivers in a complex driver store (e.g. all of the drivers in a BDD Distribution Share), you need to do some scripting.</p>
<p>Fortunately, not much scripting is required&#8230; FOR comes to the rescue again!</p>
<blockquote><p>for /R .\ %i in (*.inf) do peimg /inf=&#8221;%i&#8221; e:\winpe_x86\mount\Windows</p></blockquote>
<p>In this case, we are using &#8220;/R&#8221; to tell &#8220;FOR&#8221; that we want it to recurse though the given directory path (in this example, &#8220;.\&#8221;) setting the variable &#8220;%i&#8221; to be equal to each &#8220;inf&#8221; file that it finds.  On each pass we run &#8220;peimg /inf=&#8221;, injecting our variable as the inf file to inject.</p>
<p>All of this assumes that you have already mounted the target WIM file into the directory e:\winpe_x86\mount\Windows.</p>
<p>We could fairly easily automate the whole winpe build process by stringing together these commands:</p>
<ol>
<li>imagex /mountrw &lt;WIM file&gt; &lt;WIM Index&gt; &lt;mount directory&gt;</li>
<li>for /R .\net %i in (*.inf) do peimg /inf=&#8221;%i&#8221; &lt;mountDirectory&gt;\windows</li>
<li>for /R .\hdc %i in (*.inf) do peimg /inf=&#8221;%i&#8221; &lt;mountDirectory&gt;\windows</li>
<li>for /R .\system %i in (*.inf) do peimg /inf=&#8221;%i&#8221; &lt;mountDirectory&gt;\windows</li>
<li>for /R .\SCSIAdapter %i in (*.inf) do peimg /inf=&#8221;%i&#8221; &lt;mountDirectory&gt;\windows</li>
<li>imagex /unmount /commit &lt;mountDirectory&gt;</li>
</ol>
<p>We could then use WDSUtil to import the image into a Windows DS server, convert it to a &#8220;discover&#8221; image.  OSCDIMG from the Windows AIK to create automatically a WDS Discover ISO file.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=105</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adjusting Windows Certificate Authority Validity Period</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=104</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=104#comments</comments>
		<pubDate>Tue, 20 Nov 2007 21:18:49 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Scripting the Windows Experience]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=104</guid>
		<description><![CDATA[For the second time since going live with our CAMPUS Active Directory Services, the Subordinate Certificate Authority that is bound to our production domain has come very close to expiring.&#160; What gives with the default two year validity period for Microsoft CAs?&#160; Verisign&#8217;s certificates are not any less secure than ours, and they have 5+ [...]]]></description>
			<content:encoded><![CDATA[<p>For the second time since going live with our CAMPUS Active Directory Services, the Subordinate Certificate Authority that is bound to our production domain has come very close to expiring.&nbsp; What gives with the default two year validity period for Microsoft CAs?&nbsp; Verisign&#8217;s certificates are not any less secure than ours, and they have 5+ year CA validity periods.</p>
<p>After much head banging, I discovered this KB:<br /><a title="http://support.microsoft.com/kb/254632/en-us" href="http://support.microsoft.com/kb/254632/en-us">http://support.microsoft.com/kb/254632/en-us</a></p>
<p>The reason I have been having so much trouble is that the Microsoft domain-rooted CA will use either the issuing certificate template validity period (which is what I would expect) <em>or the maximum CA cert validity period defined in the CertSvc registry key, whichever is <strong>less</strong></em> (which is not what I expected at all).</p>
<p>After setting the registry values in the KB on my Enterprise Root CA, I now have a SubCA that has a five year validity.&nbsp; Huzzah!</p>
<p>Here is what did not work:</p>
<p>Creating a new Subordinate CA Certificate with a five year validity period&#8230; <br />This failed because the existing CA uses for renewal the template that issued it&#8217;s certificate initially.&nbsp; Thus, if I remove the default &#8220;SubCA&#8221; template from the list of certificate templates to issue, cert renewal fails claiming that there is no appropriate template available.&nbsp; I can&#8217;t seem to add the default SubCA template to the &#8220;superceded templates&#8221; list, either.&nbsp; It is likely that this is a hard-coded limitation; perhaps MS does not want us altering the default CA templates?&nbsp; Whatever&#8230; at least I get a bit more time on my certs now, thankfully.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=104</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iSCSI block device migraiton plan for NetApp filer</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=102</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=102#comments</comments>
		<pubDate>Fri, 16 Nov 2007 22:14:38 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=102</guid>
		<description><![CDATA[If you have a NetApp, and you ever need a plan for migrating your iSCSI block devices from one filer head to another, here is a step by step:

Stop services on your iSCSI initiator host that may be writing to your lun to be migrated.
Refresh your target lun from source using snapmirror:snapmirror update &#60;target&#62;
Break your [...]]]></description>
			<content:encoded><![CDATA[<p>If you have a NetApp, and you ever need a plan for migrating your iSCSI block devices from one filer head to another, here is a step by step:</p>
<ol>
<li>Stop services on your iSCSI initiator host that may be writing to your lun to be migrated.</li>
<li>Refresh your target lun from source using snapmirror:<br /><em>snapmirror update &lt;target&gt;</em></li>
<li>Break your snapmirror relationship to prevent further writes to the new production lun:<br /><em>snapmirror break &lt;target&gt;</em></li>
<li>edit /etc/snapmirror.conf, remove the entry for your broken snapmirror target.</li>
<li>stop any remaining services on source server that rely on iSCSI storage</li>
<li>stop iSCSI initiator service</li>
<li>Upgrade MS iSCSI initiator to current version (at this time, v2.0.5</li>
<li>Unmap your original lun on the source filer:<br /><em>lun unmap &lt;source lun&gt;<br /></em>(NOTE: &#8220;<em>lun show -m&#8221;</em> can be useful for displaying existing map relationships)</li>
<li>Map your new lun to an iSCSI initiator group that contains your host:<br /><em>Map lun map &lt;target lun&gt; &lt;target iSCSI group&gt;<br /></em>(NOTE:&nbsp; You can use <em>igroup create -i -t windows &lt;iSCSI group&gt;</em> and <em>igroup add &lt;initiator ID&gt; &lt;iSCSI group&gt;</em> to define the &#8220;iGroup&#8221; used in this command.&nbsp; The initiator ID can be read from the poperties of the MS iSCSI Initiator Control panel.)</li>
<li>start the iSCSI service </li>
<li>log in to the new iSCSI targer, bind lun</li>
<li>restart services</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=102</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating NetApp filers</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=101</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=101#comments</comments>
		<pubDate>Fri, 16 Nov 2007 17:19:46 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=101</guid>
		<description><![CDATA[We are preparing to migrate from our FAS270c NetApp filer to a new FAS3050c.&#160; Migration/Upgrade procedure documentation is a bit sketchy on the NetApp site, so I thought I should put together my own step-by-step.&#160; Here it is, a work in progress&#8230;

Pre-migration:

Verify destination filer settings:

Quota configuration &#8211; compare /etc/quotas to current config on &#8220;files&#8221;.  [...]]]></description>
			<content:encoded><![CDATA[<p>We are preparing to migrate from our FAS270c NetApp filer to a new FAS3050c.&nbsp; Migration/Upgrade procedure documentation is a bit sketchy on the NetApp site, so I thought I should put together my own step-by-step.&nbsp; Here it is, a work in progress&#8230;</p>
<h3></h3>
<h3>Pre-migration:</h3>
<ol>
<li>Verify destination filer settings:
<ol>
<li>Quota configuration &#8211; compare /etc/quotas to current config on &#8220;files&#8221;.  </li>
<li>CIFS config:
<ol>
<li>/etc/cifsconfig_shares.cfg  </li>
<li>/etc/cifsconfig_setup.cfg  </li>
<li>/etc/cifs_homedir.cfg</li>
</ol>
</li>
<li>Filer options:<br />capture output from &#8220;options&#8221; command and compare settings to source filer. &#8211; DONE! </li>
<li>DNS and WINS registration settings</li>
</ol>
</li>
</ol>
<h3>Migration:</h3>
<ol>
<li>Disable CIFS on the source filer:<br /><em>cifs terminate -t 0</em>  </li>
<li>Force final SnapMirror synchronization:
<ol>
<li><em>snapmirror update coffee:vol1</em>  </li>
<li><em>snapmirror update coffee:vol2</em>  </li>
<li><em>snapmirror update coffee:vol3<br /></em>(Note:&nbsp; the &#8220;-w flag can be used if we want to wait for a mirror operation to complete before returning control to the console) </li>
</ol>
</li>
<li>Break snapmirror relationship:
<ol>
<li><em>snapmirror break coffee:vol1</em>  </li>
<li><em>snapmirror break coffee:vol2</em>  </li>
<li><em>snapmirror break coffee:vol3</em>  </li>
<li>update /etc/snapmirror.conf, remove old relationship definitions.</li>
</ol>
</li>
<li>Initialize quotas on target filer:
<ol>
<li><em>quota on vol1</em>  </li>
<li><em>quota on vol2</em>  </li>
<li><em>quota on vol3</em></li>
</ol>
</li>
<li>Rename the source filer </li>
</ol>
<ol>
<li><em>cf disable</em> the cluster.  </li>
<li>Verify SPNs for &#8220;files&#8221; computer account.  </li>
<li>delete &#8220;files&#8221; computer account  </li>
<li>assign new IP address to the filer, reboot  </li>
<li>run <em>cifs setup</em> on source filer
<ol>
<li>read config using <em>rdfile /etc/hosts</em>  </li>
<li>Assign new IP using <em>ifconfig vif1-720 132.198.102.???</em>  </li>
<li>ping to/from an external host to verify the update  </li>
<li>verify /etc/hosts and /etc/rc, then reboot to verify IP change  </li>
<li>update settings in <em>options autosupport</em> to reflect host name changes.  </li>
<li>Verify or force registrations in /etc/hosts, WINS, DNS.&nbsp; May need to manually register DNS using &#8220;nsupdate&#8221; on cdc01.</li>
</ol>
</li>
<li>reboot to verify CIFS config files  </li>
<li>Check settings in /etc/nsswitch.conf  </li>
<li><em>cf enable</em>&nbsp; the cluster </li>
<li>reset filer login info in dfm:</li>
</ol>
<ol>
<li><em>dfm host set &lt;hostname&gt; hostlogin=&lt;username&gt;</em> </li>
<li><em>dfm host set &lt;hostname&gt; hostpassword=&lt;password&gt;</em></li>
</ol>
<li>Rename the target filer
<ol>
<li><em>cf disable</em> the cluster.  </li>
<li>delete &#8220;blocks&#8221; computer account&nbsp;  </li>
<li>assign new IP address to the filer, reboot
<ol>
<li>read config using <em>rdfile /etc/hosts</em>  </li>
<li>Assign new IP using <em>ifconfig vif1-720 132.198.102.16</em>  </li>
<li>ping to/from an external host to verify the update  </li>
<li>verify /etc/hosts and /etc/rc, then reboot to verify IP change  </li>
<li>update settings in <em>options.autosupport</em> to reflect host name changes.</li>
</ol>
</li>
<li>run <em>cifs setup</em> on destination filer  </li>
<li>reboot to verify CIFS config files  </li>
<li>Verify or force registrations in /etc/hosts, WINS, DNS  </li>
<li>Check settings in /etc/nsswitch.conf  </li>
<li><em>cf enable</em>&nbsp; the cluster </li>
<li>reset filer login info in dfm:</li>
</ol>
<ol>
<li><em>dfm host set &lt;hostname&gt; hostlogin=&lt;username&gt;</em>  </li>
<li><em>dfm host set &lt;hostname&gt; hostpassword=&lt;password&gt;</em></li>
</ol>
</li>
<h3>Post-migration testing:</h3>
<ol>
<li>
<p>Home directory connections via CIFS (Windows 2000/XP/Mac)<br />Verify all variations on homedir mounting still function: </p>
<ol>
<li>\\files\NetID  </li>
<li>\\files\~  </li>
<li>\\files\cifs.homedir</li>
</ol>
</li>
<li>Home directory connection via SFTP/WebDAV  </li>
<li>Kerberos authentication from CAMPUS and &#8220;uvm.edu&#8221; k5 realm  </li>
<li>NTLM authentication levels/packet signing  </li>
<li>Quota enforcement  </li>
<li>Cluster failover  </li>
<li>DFM monitoring (need to update passwords used by DFM for connection to filers)  </li>
<li>Autosupport info in NOW.NETAPP.COM.  </li>
<li>NDMP backup from Networker.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=101</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discovering Ports in Use on your network:</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=100</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=100#comments</comments>
		<pubDate>Fri, 26 Oct 2007 02:04:16 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Scripting the Windows Experience]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=100</guid>
		<description><![CDATA[As part of our firewall reimplementation, I have been struggling with understanding the exact port needs of the services on our hosts.  Previously, I discussed a procedure for discovering all network shares being served by the servers you manage:

http://www.uvm.edu/~jgm/wordpress/?p=96
	
Today, I used this procedure as a jumping off point for discovering all servers using high-order [...]]]></description>
			<content:encoded><![CDATA[<p>As part of our firewall reimplementation, I have been struggling with understanding the exact port needs of the services on our hosts.  Previously, I discussed a procedure for discovering all network shares being served by the servers you manage:
</p>
<p><a href="http://www.uvm.edu/~jgm/wordpress/?p=96">http://www.uvm.edu/~jgm/wordpress/?p=96</a>
	</p>
<p>Today, I used this procedure as a jumping off point for discovering all servers using high-order RPC ports, and the RPC end-point mapper.  I followed the procedure above to discover all available hosts in a subnet.  Next we use the excellent SysInternals tool &#8220;PSExec&#8221; to gather &#8220;netstat&#8221; information on this list of hosts.  Here is the command:
</p>
<blockquote><p>for /f %c in (availablehosts.txt) do echo %c &gt;&gt; epmsys2.txt &amp;&amp; psexec.exe \\%c -e netstat -ano | find &#8220;135&#8243; &gt;&gt; epmsys2.txt</p></blockquote>
<p>Taking it apart…
</p>
<ul>
<li>Start a &#8220;for&#8221; loop for each server listed in the &#8220;available hosts&#8221; file.
</li>
<li>Start each pass though the loop by &#8220;echoing&#8221; the host name, and appending the output to a capture file.
</li>
<li>Next, use PSEXec to execute &#8220;netstat&#8221; on each host.  Use &#8220;-e&#8221; to reduce resources used on the target host (does not load user environment remotely).
</li>
<li>Pipe netstat output though &#8220;find&#8221;.  Filter for port 135 (the DCE RPC Endpoint Mapper).
</li>
<li>Direct output from psexec/netstat to the same file.
</li>
</ul>
<p>I ran this command two times… once for TCP Port 135, and then again for TCP port 6150 (which is the first &#8220;high order&#8221; RPC port available on our servers).  The result is a file content like this:
</p>
<blockquote><p><span style="font-family:Courier New">WINUPDATE.campus.ad.uvm.edu<br />
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       692<br />
printers.campus.ad.uvm.edu<br />
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       692<br />
  TCP    132.198.102.14:135     132.198.92.189:2917    TIME_WAIT       0<br />
  TCP    132.198.102.14:135     132.198.92.189:2918    TIME_WAIT       0<br />
  TCP    132.198.102.14:135     132.198.92.189:2919    TIME_WAIT       0<br />
  TCP    132.198.102.14:135     132.198.92.189:2920    TIME_WAIT       0<br />
</span></p>
</blockquote>
<p>
 </p>
<p>Every server listens with the EPM, but only a few have active connections.  These are the ones that are actually using the service.  As we expected, the Domain Controllers have many active EPM connections.  What I did not expect is that the print server is also very busy… I wonder why?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=100</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Network Load Balancing on VMWare ESX Server</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=99</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=99#comments</comments>
		<pubDate>Tue, 16 Oct 2007 21:56:27 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Virtualize your life]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=99</guid>
		<description><![CDATA[I have been working on implementing the new &#8220;Terminal Services Gateway&#8221; service that will be released with Server 2008.&#160; In order to cluster TS Gateways, we need to have a network load balancing solution in place.&#160; Hardware solutions are supported, but getting access to those would be a pain.&#160; Thus, I am back to looking [...]]]></description>
			<content:encoded><![CDATA[<p>I have been working on implementing the new &#8220;Terminal Services Gateway&#8221; service that will be released with Server 2008.&nbsp; In order to cluster TS Gateways, we need to have a network load balancing solution in place.&nbsp; Hardware solutions are supported, but getting access to those would be a pain.&nbsp; Thus, I am back to looking at Microsoft Network Load Balancing services.</p>
<p>My last attempt as using NLB ran into some troubles&#8230; NLB-fronted Server 2003 terminal servers were pokey at best.&nbsp; This time, I thought I should look at the implications of running Microsoft NLB on ESX server, which is the platform I am using for the TS Gateways.</p>
<p>Unsurprisingly, I learned some new things&#8230;</p>
<ul>
<li>Microsoft NLB is not supported by VMWare:<br /><a title="http://pubs.vmware.com/vi301/mscs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=mscs&amp;file=mscs_intro.3.4.html" href="http://pubs.vmware.com/vi301/mscs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=mscs&amp;file=mscs_intro.3.4.html">http://pubs.vmware.com/vi301/mscs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=mscs&amp;file=mscs_intro.3.4.html</a><br />(Configuration assistance is available only for &#8220;Microsoft Cluster Services&#8221; (MSCS)).  </li>
<li>When using NLB on ESX, it is recommended that you use &#8220;multicast&#8221; mode.&nbsp; This is mentioned several places: </li>
</ul>
<ul>
<li><a title="http://pubs.vmware.com/vi301/server_config/wwhelp/wwhimpl/common/html/wwhelp.htm?context=server_config&amp;file=sc_adv_netwk.6.5.html" href="http://pubs.vmware.com/vi301/server_config/wwhelp/wwhimpl/common/html/wwhelp.htm?context=server_config&amp;file=sc_adv_netwk.6.5.html">http://pubs.vmware.com/vi301/server_config/wwhelp/wwhimpl/common/html/wwhelp.htm?context=server_config&amp;file=sc_adv_netwk.6.5.html</a><br />Here, it is noted that if you are using NLB in Unicast mode, you will need to disable the NIC failover &#8220;notify switches&#8221; flag on your ESX VSwitch.&nbsp; This is uindesirable because it will increase the switch convergence time in the event of a failover (since the switches will have to rebuild their lookup tables following connection failures).  </li>
<li><a title="http://pubs.vmware.com/esx254/admin/wwhelp/wwhimpl/common/html/wwhelp.htm?context=admin&amp;file=esx25admin_cluster.11.13.html" href="http://pubs.vmware.com/esx254/admin/wwhelp/wwhimpl/common/html/wwhelp.htm?context=admin&amp;file=esx25admin_cluster.11.13.html">http://pubs.vmware.com/esx254/admin/wwhelp/wwhimpl/common/html/wwhelp.htm?context=admin&amp;file=esx25admin_cluster.11.13.html</a><br />This document outlines the procedure for setting up NLB on Windows 2000/ESX Server 2.5.&nbsp; Here you are specifically instructed to use Multicast mode.&nbsp; No reason is given.  </li>
<li><a title="http://pubs.vmware.com/vi301/server_config/wwhelp/wwhimpl/common/html/wwhelp.htm?context=server_config&amp;file=sc_security_cfgnet.15.13.html" href="http://pubs.vmware.com/vi301/server_config/wwhelp/wwhimpl/common/html/wwhelp.htm?context=server_config&amp;file=sc_security_cfgnet.15.13.html">http://pubs.vmware.com/vi301/server_config/wwhelp/wwhimpl/common/html/wwhelp.htm?context=server_config&amp;file=sc_security_cfgnet.15.13.html</a><br />In this document, procedures for securing ESX server switch ports are outlined.&nbsp; It is recommended that you prevent the ability of an OS to change the MAC address of its adapter (specifically, to prevent network adapter impersonation that could be used in an attack).&nbsp; NLB multicast mode does not need to alter the NICs MAC address, and this is compatible with this hardening procedure</li>
</ul>
<li>It is suggested that IGMP multicast is not necessary in a virtual network environment:<br /><a title="http://www.vmware.com/files/pdf/virtual_networking_concepts.pdf" href="http://www.vmware.com/files/pdf/virtual_networking_concepts.pdf">http://www.vmware.com/files/pdf/virtual_networking_concepts.pdf</a><br />Thus, we will forgo the use of &#8220;IGMP Multicast mode&#8221; NLB config&#8230; Which is just as well as IGMP appears to break NLB on our ESX cluster! </li>
<li>Another advantage of multicast is that it does limit inter-node communication, so we do not need to add a second virtual network adapter to each ESX guest just to allow the NLB manager to be run on a NLB node!&nbsp; This is not specifically referenced in <em>any</em> Server 2008 documentation that I can find&#8230; it is just something that I noticed&#8230; When I had the cluster configured in Unicast mode, the NLB manager complained mightily about its inability to talk to its sibling node.&nbsp; In Multicast mode, I get the same warning, but parameter reconfiguration succeeds. </li>
<li>Connections to the cluster still are a bit slow on initial lookup&#8230; why why why?</li>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=99</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Networking Wierdness? Disable IPv6 on Server 2008</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=98</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=98#comments</comments>
		<pubDate>Mon, 15 Oct 2007 18:41:10 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=98</guid>
		<description><![CDATA[If your network is like ours (and I hope that it is not), your DNS server is happily accepting IPv6 address registrations, but your routers can&#8217;t makes heads or tails of all those packets with those long addresses on them.&#160; Is this a problem?&#160; You betcha&#8217;.
If a client&#160;(Windows Server 2008, Vista, or really just about [...]]]></description>
			<content:encoded><![CDATA[<p>If your network is like ours (and I hope that it is not), your DNS server is happily accepting IPv6 address registrations, but your routers can&#8217;t makes heads or tails of all those packets with those long addresses on them.&nbsp; Is this a problem?&nbsp; You betcha&#8217;.</p>
<p>If a client&nbsp;(Windows Server 2008, Vista, or really just about any recent-vintage Linux distro) is configured to use IPv6 by default, and it is fortunate enough to find an IPv6 address registered in DNS for a server to which it is attempting to connect, guess which protocol it will use to connect to the server?&nbsp; But what if your router can&#8217;t pass IPv6 traffic?&nbsp; If you happed to be using a Vista client, it appears that after a few seconds, we fall back on IPv4.&nbsp; However, my Server 2008 RC0 clients are timing out and failing to connect to each other.&nbsp; Bummer!</p>
<p>Rather than going though the impossible process of fixing IPv6 on campus, I have decided to kill IPv6 on my Server 2008 systems.&nbsp; Here is where I got my information:</p>
<p><a title="http://www.microsoft.com/technet/community/columns/cableguy/cg0506.mspx" href="http://www.microsoft.com/technet/community/columns/cableguy/cg0506.mspx">http://www.microsoft.com/technet/community/columns/cableguy/cg0506.mspx</a></p>
<p>The instructions are for Vista, but they work on Server 2008, too.&nbsp; I just set this registry DWORD:</p>
<p>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters\DisabledComponents </p>
<p>to Hexidecimal 0xFF, thus disabling all IPv6 on the server.&nbsp; A quick reboot forced the server to re-register all DNS entries, thus making IPv6 go away.&nbsp; Voila, we are back in business (and RDP connections to my new servers from Vista clients are working much more smoothly).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=98</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generating SSL certificates for multi-named systems</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=97</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=97#comments</comments>
		<pubDate>Fri, 12 Oct 2007 20:59:26 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Scripting the Windows Experience]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=97</guid>
		<description><![CDATA[Recently we changed the name of an application server (groan).&#160; This application has a web front end that requires SSL.&#160; See the problem yet?&#160; New name=certificate mismatch.&#160; To limit this issue, I plan to maintain both the new and old names in DNS, but how to prevent SSL from &#8220;breaking&#8221;?&#160; One solution would be to [...]]]></description>
			<content:encoded><![CDATA[<p>Recently we changed the name of an application server (groan).&nbsp; This application has a web front end that requires SSL.&nbsp; See the problem yet?&nbsp; New name=certificate mismatch.&nbsp; To limit this issue, I plan to maintain both the new and old names in DNS, but how to prevent SSL from &#8220;breaking&#8221;?&nbsp; One solution would be to multi-home the system, create a separate IIS site for the new IP, and assign this a second SSL certificate.&nbsp; Unfortunately, our application is hostile to this approach&#8230; without making our implementation overly complex, we can have only one IIS site serving the application.</p>
<p>I believe the solution is to add a &#8220;Subject Alternative Name&#8221; (SAN) to the SSL cert.&nbsp; Unfortunately, IIS does not make this easy.&nbsp; The certificate request wizard does not allow for the specification of a SAN.&nbsp; Once again, it is the command line to the rescue&#8230;</p>
<p>The following KB details use of the certreq.exe command line tool to generate a certificate signing request with SAN, suitable for submission to a third-party CA:</p>
<p><a title="http://support.microsoft.com/kb/931351/en-us" href="http://support.microsoft.com/kb/931351/en-us">http://support.microsoft.com/kb/931351/en-us</a></p>
<p>The instructions worked fairly well for me, except that I needed to change the &#8220;RequestType&#8221; to &#8220;PKCS10&#8243; from &#8220;CMC&#8221;, as shown here:</p>
<p><a title="http://www.microsoft.com/technet/prodtechnol/office/livecomm/library/confcerts/lcscon_9.mspx" href="http://www.microsoft.com/technet/prodtechnol/office/livecomm/library/confcerts/lcscon_9.mspx">http://www.microsoft.com/technet/prodtechnol/office/livecomm/library/confcerts/lcscon_9.mspx</a></p>
<p>So, here is a representation of my certreq.exe .inf file:</p>
<blockquote><p>[Version]  </p>
<p>Signature=&#8221;$Windows NT$  </p>
<p>[NewRequest]<br />Subject = &#8220;CN=[FQDN of Server],OU=Enterprise Technology Services,O=University of Vermont,L=Burlington,ST=Vermont,C=US&#8221;<br />Exportable = FALSE<br />KeyLength = 1024&nbsp;&nbsp;&nbsp; <br />KeySpec = 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; Key Exchange<br />KeyUsage = 0xA0&nbsp;&nbsp;&nbsp;&nbsp; ; Digital Signature, Key Encipherment<br />MachineKeySet = True<br />ProviderName = &#8220;Microsoft RSA SChannel Cryptographic Provider&#8221;<br />ProviderType = 12<br />RequestType = PKCS10</p>
<p>[EnhancedKeyUsageExtension]<br />OID=1.3.6.1.5.5.7.3.1 ; Server Authentication<br />[RequestAttributes]<br />CertificateTemplate = WebServer<br />SAN=&#8221;dns=[FQDN from CN]&amp;dns=[Original FQDN of Server]&#8220;</p>
</blockquote>
<p>Note the syntax of the &#8220;SAN&#8221; line.&nbsp; Be sure to use &#8220;dns=&#8221; twice&#8230; once for each FQDN. </p>
<p>New generate the certificate request file:<br />
<blockquote>
<p>certreq.exe -new cerreq.inf certreq.req</p>
</blockquote>
<p>Cut and paste the contents of your .req file into the application for your third-party CA cert. </p>
<p>Today I used: </p>
<p><a title="http://certs.ipsca.com/srvc/Buy.asp" href="http://certs.ipsca.com/srvc/Buy.asp">http://certs.ipsca.com/srvc/Buy.asp</a> </p>
<p>Look!&nbsp; Free certificates for &#8220;.edu&#8221; (higher education, and the like) customers!&nbsp; Certificate generation is a bit slow, but then what do you expect for free?&nbsp; I wonder what will happen when their root certificate expires in 2009?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=97</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Discovering shares on the network</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=96</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=96#comments</comments>
		<pubDate>Fri, 12 Oct 2007 19:26:12 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Scripting the Windows Experience]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=96</guid>
		<description><![CDATA[Here was a fun little exercise&#8230; in attempting to impose more restrictive firewall rules on our central Windows server subnets, I wanted to enumerate all of the servers which require &#8220;public&#8221; CIFS protocol access.&#160; Naturally we want to take a programmatic approach to save time.
Here is what I came up with&#8230; it is not the [...]]]></description>
			<content:encoded><![CDATA[<p>Here was a fun little exercise&#8230; in attempting to impose more restrictive firewall rules on our central Windows server subnets, I wanted to enumerate all of the servers which require &#8220;public&#8221; CIFS protocol access.&nbsp; Naturally we want to take a programmatic approach to save time.</p>
<p>Here is what I came up with&#8230; it is not the work of a networking genius, but it worked:</p>
<h3>Tools required:</h3>
<ul>
<li>GnuWin32 &#8220;cut.exe&#8221; defined in your %PATH%, GnuWin32 XARGS (optional)</li>
<li>Remote registry rights on all systems to be queried</li>
<li>A windows CMD console, &#8217;cause I am lame and can&#8217;t take the time to learn PowerShell.</li>
</ul>
<h3>The process:</h3>
<p>First, we want to discover all of the servers in a network range that have valid registered DNS names:</p>
<blockquote><p>FOR /L %d in ([starting octet],1,254) DO nslookup [network].%d | find &#8220;Name:&#8221; | cut.exe -c 10-100 &gt;&gt; networkhosts.txt</p>
</blockquote>
<p>This command will use the FOR command to run &#8220;nslookup&#8221; on the IP address &#8220;[network].%D&#8221; several times, starting with [starting octet], incrementing by one, then terminating at &#8220;254&#8243;.&nbsp; The output of the lookup is sent to the windows (not GnuWin32) &#8220;find&#8221; command, which will locate the output line containing &#8220;Name:&#8221; (this will be the actual DNS name of the system).&nbsp; The output line is trimmed of all information except the DNS name using &#8220;cut&#8221; (DNS names start at the 10th character of the NSLookup output).&nbsp;Output is sent to a file for later use.&nbsp; </p>
<p>Next we test to see if the discovered host names are available.&nbsp; By doing so, we prevent wasting time on operations against servers that are not available:</p>
<blockquote><p>FOR&nbsp;/F %d in (networkhosts.txt) do ping -n 1 %d &amp;&amp; echo %d &gt;&gt; availablehosts.txt</p>
</blockquote>
<p>We use FOR again to ping all of the host in the file that we create above.&nbsp; If the ping succeeds (meaning the host is there),&nbsp;&nbsp;repeat the host name with an &#8220;echo&#8221;, and send that output to&nbsp;a file.&nbsp; </p>
<p>Now we actually need to see if the hosts have any publicly available network shares&#8230; One approach would be use the the old-school &#8220;net view&#8221; command to display visible shares on the remote hosts:</p>
<blockquote><p>FOR /F %S in (avaiablehosts.txt)&nbsp;DO net view \\%S &gt;&gt; VizShares.txt</p>
</blockquote>
<p>This is useful, although it will not disclose &#8220;hidden shares&#8221;.&nbsp; To get around the &#8220;hidden&#8221; shares problem, we can perform a remote registry query to see all shares (other than the defaults) which are made available at the startup of the &#8220;server&#8221; service.&nbsp; These shares are published in:<br />HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Shares<br />We will use &#8220;reg.exe&#8221; and another FOR loop to see what hidden shares exist:</p>
<blockquote><p>FOR&nbsp;/F %H in (availablehosts.txt)&nbsp;DO&nbsp;echo %H &gt;&gt; hiddenhosts.txt &amp; reg query \\<font color="#929186">%H</font>\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Shares /v /f *$ | find &#8220;$&#8221; | cut.exe -d$ -f1 &gt;&gt; hiddenhosts.txt</p>
</blockquote>
<p>We start this loop with an ECHO command so that we can insert the name of the host being investigated into our output file.&nbsp; The /v flag in REG.exe returns only values under the selected key, and /f *$ filters the output to lines containing only share names ending in &#8220;$&#8221; (in other words, hidden shares).&nbsp; Output is passed though &#8220;find&#8221; to filter out all but the lines that have the actual share name in them.&nbsp;&nbsp;Output is then sent through&nbsp;&#8221;cut&#8221;&nbsp;to trim everything but the actual share name from output, and then send the trimmed output to our final file for human analysis.</p>
<p>An industrious admin would chain these commands in a single task.&nbsp; However, I wanted to check each output file for validity before proceeding&#8230; we have some old DNS entries that were making trouble with the remote registry commands.&nbsp; If I had not removed them, the script could have taken many hours to complete.&nbsp; If you want to do this, the GnuWin32 tool &#8220;xargs&#8221; will be invaluable, as it will allow you to pass standard output into commands that do not support standard input, such as &#8220;net view&#8221;, and &#8220;reg.exe&#8221;.&nbsp; For example, we could nest the second &#8220;FOR&#8221; loop above into the first, and then pipe the output to XARGS NET VIEW&#8221;</p>
<blockquote><p>| Xargs.exe net view</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=96</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tossing Out Unresponsive Guests</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=95</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=95#comments</comments>
		<pubDate>Mon, 08 Oct 2007 14:56:53 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Virtualize your life]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=95</guid>
		<description><![CDATA[Ever have a guest you wish you could throw out of your house?&#160; The unresponsive lump of flesh that sits in your favorite chair, eating your food, using up your soap, smelling up the facilities, while contributing nothing to the household economy?&#160; I know I have, but unfortunately social decorum prevents me from acting on [...]]]></description>
			<content:encoded><![CDATA[<p>Ever have a guest you wish you could throw out of your house?&nbsp; The unresponsive lump of flesh that sits in your favorite chair, eating your food, using up your soap, smelling up the facilities, while contributing nothing to the household economy?&nbsp; I know I have, but unfortunately social decorum prevents me from acting on my base desire to toss the sponger out into the rain.  </p>
<p>Fortunately, we are not bound my the same laws of etiquette in the IT world.&nbsp; When your VM Guest cops and attitude with you, you can kill it.&nbsp; Unfortunately, VMWare does not document all of the ways in which you can&nbsp;put an end to&nbsp;pestilential guests.&nbsp; Fortunately, we have a Platinum support contract, and I was thus able to learn how to send a proper kill signal to a guest.&nbsp; Here is the drill:
<ul>
<li>Verify that ESX &#8220;thinks&#8221; your guest is still running:
<ul>
<li>vmware-cmd <tt>"&lt;pathToVmxFile&gt;/&lt;vmxfile&gt;.vmx" getstate</tt>  </li>
<li>Should return:<br />getstate() = on</li>
</ul>
</li>
<li>Scan the running VM Guest process names to find the VM &#8220;World ID&#8221; of the hung guest:
<ul>
<li><tt>cat /proc/vmware/vm/*/names</tt>  </li>
<li>Output returned should be similar to this:<tt><br />vmid=1105 pid=-1 cfgFile="/vmfs/volumes/46f13af6-27b2dd91-6873-00145e6d4c2c/hyperion11/hyperion11.vmx" uuid="50 26 41 af 30 dd cb 48-2d 9a ed 48 6e 6d db 6c" displayName="hyperion11"</tt>  </li>
<li>Take note of the &#8220;vmid&#8221; above (in this case, &#8220;1105&#8243;.&nbsp; This is the vmid of the &#8220;world&#8221;, or &#8220;cartel&#8221; of you guest OS.</li>
</ul>
</li>
<li>Send a &#8220;kill signal 9&#8243; to the discovered world ID:
<ul>
<li><tt>/usr/lib/vmware/bin/vmkload_app -k 9 &lt;vmid&gt;</tt>  </li>
<li>Output should be similar to this:<tt><br />08 09:40:43.189: Sending signal '9' to world 1104.</tt></li>
</ul>
</li>
<li><tt></tt>Verify that the guest is not running:
<ul>
<li><tt>vmware-cmd "&lt;pathToVmxFile&gt;/&lt;vmxfile&gt;.vmx" getstate</tt>  </li>
<li>Returns:<tt><br />getstate() = off</tt></li>
</ul>
</li>
<li>You should then be able to start the guest normally. </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=95</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Missing agents, vulnerable communications channels, secret principal names, and invalid names&#8230; a day in the life of an OpsMgr 2007 user.</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=94</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=94#comments</comments>
		<pubDate>Fri, 21 Sep 2007 20:58:39 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Monitoring the Zoo]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=94</guid>
		<description><![CDATA[Have you even been trying to configure an MS Operations Manager 2007 agent on a system and had it report no errors, but still have its status listed as &#8220;not monitored&#8221; in the OpsMgr console?&#160; Have you wasted countless hours doing packet captures and advanced system debugging for weeks under the incorrect assumption that this [...]]]></description>
			<content:encoded><![CDATA[<p>Have you even been trying to configure an MS Operations Manager 2007 agent on a system and had it report no errors, but still have its status listed as &#8220;not monitored&#8221; in the OpsMgr console?&nbsp; Have you wasted countless hours doing packet captures and advanced system debugging for weeks under the incorrect assumption that this was a network communications problem?&nbsp; Have you ever had your consultant change the primary DNS suffix&nbsp; on a server that you monitor without telling you, thus creating the whole problem in the first place?&nbsp; No?&nbsp; We read on anyway&#8230; if it happens to you later, you will know what to do.</p>
<p>A few months ago we had a consultant on site to set up services on two new Windows Server 2003 hosts.&nbsp; It was another one of those fun &#8220;n-tier J2EE&#8221; things.&nbsp; DNS names were requested for &#8220;hyperion10.uvm.edu&#8221; and &#8220;hyperion11.uvm.edu&#8221;.&nbsp; However, since the hyperion hosts were connected to&nbsp;our &nbsp;&#8221;campus.ad.uvm.edu&#8221; domain, their &#8220;internal&#8221; names were appended with the &#8220;campus.ad.uvm.edu&#8221; suffix.&nbsp; Thus, these servers thought of themselves as &#8220;hyperion1x.campus.ad.uvm.edu&#8221;, even though there was no legitimate DNS entry for these names.&nbsp; </p>
<p>For most services, this is not a problem.&nbsp; However, we discovered that some hyperion services advertise themselves using this internal computer name, rather than a name chosen by the application administrator.&nbsp; To work around the issue, we requested manual DNS entries be generated for &#8220;hyperion10.campus.ad.uvm.edu&#8221; and &#8220;hyperion11.campus.ad.uvm.edu&#8221;.&nbsp; Unfortunately, the decision was made to change the hyperion hosts internal computer name DNS suffixes instead of waiting for the new DNS entries.&nbsp; This solved his problem and did not create any immediate issues, so he moved on.&nbsp; Months later, this decision would make the OpsMgr admin very unhappy.</p>
<p>Here is what broke&#8230; the Hyperion systems now tried to update the &#8220;DNS Suffix&#8221; attributes of their computer objects in Active Directory.&nbsp; By default, Server 2003 AD performs &#8220;validation&#8221; on DNS suffix registrations, and disallows names that are not in the AD forest.&nbsp; Thus, the DNS suffix change was denied in AD, and a event was logged in the System event log:</p>
<blockquote><p>Source: NETLOGON<br />Event ID: 5789<br />Description:&nbsp; Attempt to update DNS Host Name of the computer object in Active Directory failed.&nbsp; The updated value was &#8216;HYPERION10.uvm.edu&#8217;. &nbsp;The following error occured: <br />The parameter is incorrect.</p>
</blockquote>
<p>This is pretty innocuous, and went unnoted.&nbsp;&nbsp;However, the mismatch of the computer&#8217;s perceived&nbsp;FQDN&nbsp;and its registered FQDN in AD completely broke Kerberos authentication on this system.&nbsp; Because AD did not know of a host called &#8220;hyperion10.uvm.edu&#8221;, it never generated a Kerberos SPN (Service Principal Name) for this host.&nbsp; A legitimate SPN is required for Kerberos auth to function.&nbsp; NTLM authentication still worked, so no one noticed the problem again.&nbsp; </p>
<p>Two months ago, we installed an Operations Manager 2007 server.&nbsp; All of our managed servers took their agents without complaint, except for the blasted Hyperion servers.&nbsp; Since these systems were on the opposite side of a firewall, we naturally blamed the firewall and spent a lot of time performing &#8220;Wireshark&#8221; packet captures, looking at &#8220;netstat&#8221; output, and running &#8220;procmon&#8221; on the management server.&nbsp;&nbsp;</p>
<p>The breakthrough finally came&nbsp;yesterday when&nbsp;I had a look at the Operations manager event logs on the hyperion servers (which were running the OpsMgr agents).&nbsp; &nbsp;The following error was found in the log several times:</p>
<blockquote><p>Source: OpsMgr Connector<br />Event ID: 21016<br />Description:&nbsp; OpsMgr was unable to set up a secure channel to &lt;fqdn of RMS&gt; and there are no failover hosts&#8230;</p>
</blockquote>
<p>I did some poking at news.microsoft.com in the operations manager groups.&nbsp; I searched for threads with &#8220;agent&#8221; and&nbsp;&#8221;monitored&#8221; (as in the &#8220;not monitored&#8221; status of the agents in the console).&nbsp; There I found the suggestion that Kerberos problems can prevent secure communications between OpsMgr agents and the RMS.&nbsp; There was a suggestion that Kerberos loggin be enabled to rule this out as a problem.&nbsp; Thus, I added the following reg values to the Hyperion servers:</p>
<blockquote><p>Key: HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters<br />Value: REG_DWORD LogLevel<br />Data: 1</p>
</blockquote>
<p>A reboot was necessary to activate logging.&nbsp; Soon we had the culprit captured in the system log:</p>
<blockquote><p>Source: Kerberos<br />Event ID: 3<br />Description:&nbsp; A Kerberos Error Message was recieved:<br />on logon session<br />&#8230;<br />Error Code: 0&#215;7 KDC_ERR_S_PRINCIPAL_UNKNOWN<br />Server Realm: CAMPUS.AD.UVM.EDU<br />Server Name: host/hyperion10.uvm.edu</p>
</blockquote>
<p>Ah!&nbsp; No principal existed for hyperion10.uvm.edu!&nbsp; And thus, the OpsMgr agent could not create a secure channel with the server using Kerberos, which is the only method implemented in OpsMgr without resorting to certificate-based authentication.</p>
<p>Now that I knew what the problem really was, fixing the problem was <em>easier</em> (although not <em>easy).&nbsp; </em>The following KB contained info on fixing DNS mismatches between the host and Active Directory:<br /><a href="http://support.microsoft.com/kb/258503">http://support.microsoft.com/kb/258503</a></p>
<p>There, we are instructed to add the required Service Principal Name directly to Active Directory.&nbsp; This was pretty easy&#8230; we just need the Windows Server 2003 Resource Kit Tools, and then we run:</p>
<blockquote><p>setspn -a host/hyperion10.uvm.edu hyperion10</p>
</blockquote>
<p>We also needed to fix the mismatch in DNS suffixes.&nbsp; The KB above suggests removing the requirement for client computer DNS suffix validation throughout the entire domain.&nbsp; This sounded like a bad idea to me, so I did some investigating, and found that you can modify the ACL a computer object in Active Directory to allow the &#8220;SELF&#8221; object to have &#8220;Write DNS Host Name Attributes&#8221; rights under the &#8220;Properties&#8221; tab in the AD Users and Computers MMC (also, there is &#8220;Write dNSHostName&#8221;&#8230; probably the same thing).&nbsp; I added this right, then rebooted the servers.&nbsp; The Event IDs discussed above all went away!&nbsp; Start the party!&nbsp; Pop the cork!&nbsp; A quick agent re-install and our bloody Hyperion systems are now being monitored.</p>
<p>I am not sure what the moral of the story is&#8230; always grant your consultants rights to your DNS server?&nbsp; Watch your consultants like a hawk 24&#215;7?&nbsp; Don&#8217;t bother with system monitoring as it is a time sink?&nbsp; Always take a nap under your desk at lunch time?&nbsp; Feel free to draw your own conclusions&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=94</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exposing VSS Shapshots as a drive letter</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=93</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=93#comments</comments>
		<pubDate>Thu, 13 Sep 2007 22:24:08 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Scripting the Windows Experience]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=93</guid>
		<description><![CDATA[Here is about the most useful bit of script magic I have seen for Windows in quite awhile:
http://blogs.msdn.com/adioltean/archive/2005/01/20/357836.aspx
The script shown here allows you to create a persistent snapshot of a Windows Server 2003 volume, and then expose it as a drive letter.  This opens up all sorts of other scripting possibilities.  Most immediately, [...]]]></description>
			<content:encoded><![CDATA[<p>Here is about the most useful bit of script magic I have seen for Windows in quite awhile:<br />
<a href="http://blogs.msdn.com/adioltean/archive/2005/01/20/357836.aspx">http://blogs.msdn.com/adioltean/archive/2005/01/20/357836.aspx</a></p>
<p>The script shown here allows you to create a persistent snapshot of a Windows Server 2003 volume, and then expose it as a drive letter.  This opens up all sorts of other scripting possibilities.  Most immediately, it allows me synchronize filesystems from a point-in-time copy on demand on in a scheduled task.  I need this for replication of Windows deployment points, and for refreshing our pre-prod ApplicationXtender server from the production environment.</p>
<p>This script uses &#8220;VSHADOW.exe&#8221;, part of the VSS SDK available here:<br />
<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0B4F56E4-0CCC-4626-826A-ED2C4C95C871&#038;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=0B4F56E4-0CCC-4626-826A-ED2C4C95C871&#038;displaylang=en</a></p>
<p>VSHADOW cannot expose existing &#8220;client accessible&#8221; shapshots that were generated by standard Volume Shadow Sopy Service scheduled tasks, but you can use this script to schedule your own snaps.  VSHADOW can even create a snap, execute arbitrary code (such as &#8220;robocopy&#8221;), and then delete the snap immediately (using &#8220;non-persistent snapshots).</p>
<p>Cool!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=93</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bulk modification of SharePoint sites</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=92</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=92#comments</comments>
		<pubDate>Thu, 16 Aug 2007 17:42:27 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Scripting the Windows Experience]]></category>
		<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=92</guid>
		<description><![CDATA[Ever need to modify all of the sites in a SharePoint web application?&#160; I never had to do this until we decided to roll out the powerful Telerik radEditor to all of our sites.&#160; In the past, radEditor was scoped &#8220;globally&#8221;, meaning that once installed to the Web App, all sites started using it.&#160; However, [...]]]></description>
			<content:encoded><![CDATA[<p>Ever need to modify all of the sites in a SharePoint web application?&nbsp; I never had to do this until we decided to roll out the powerful Telerik radEditor to all of our sites.&nbsp; In the past, radEditor was scoped &#8220;globally&#8221;, meaning that once installed to the Web App, all sites started using it.&nbsp; However, the current release is scoped &#8220;per site&#8221;.&nbsp; To activate on all sites, we have to do a few things (well, a lot of things, really):</p>
<p>Here is the blow-by-blow:</p>
<ul>
<li>Retract radEditor Lite (global scope version)</li>
</ul>
<ul>
<li>stsadm -o retractsolution -name radeditormoss.wsp</li>
</ul>
<li>Download and install radEditor Full</li>
<li>Modify the &#8220;ONET.xml&#8221; file for each site template so that future sites have radEditor pre-activated</li>
<ul>
<li>You will find one ONET.XML per site-template.&nbsp; This file is located in the &lt;Template&gt;\Xml\ subdirectory of &#8220;C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\SiteTemplates&#8221;</li>
<li>In the &lt;WebFeatures&gt; section of each ONET.xml, add the following:</li>
<blockquote><p>&lt;!&#8211; radEditor MOSS Feature &#8211;&gt;<br />&lt;Feature ID=&#8221;747755CD-D060-4663-961C-9B0CC43724E9&#8243; /&gt;<br />&lt;!&#8211; radEditor MOSS IE Feature &#8211;&gt;<br />&lt;Feature ID=&#8221;F374A3CA-F4A7-11DB-827C-8DD056D89593&#8243; /&gt;</p>
</blockquote>
</ul>
<li>obtain rights required to bulk-mod all sites</li>
<ul>
<li>See my previous post on <a href="http://www.uvm.edu/~jgm/wordpress/?p=91">Taking control of SharePoint</a></li>
</ul>
<li>enumerate all site collections, convert to a usable control file</li>
<ul>
<li>From &#8220;CMD&#8221;, run:<br /><em>stsadm -o enumsites -url [SharePointWebAppURL] &gt; [enumsitesXMLfile]</em></li>
<li>The UNIX utility &#8220;CUT&#8221; will be used to trim out all XML code from the output file.&nbsp; Sadly, there appears to be a bug in &#8220;CUT when executed from within CMD that prevents further standard output redirection or pipelining, so we now switch to a UNIX shell (cygwin &#8220;bash&#8221;, or the UnxUtils SH.exe):<br /><em>cat [enumsitesXMLfile] | cut -f2 -d\&#8221; -s &gt; [enumsitesTXTfile]<br />unix2dos [enumsitesTXTfile]<br /></em>(We are &#8220;cutting&#8221; after the first&nbsp;text delimiter&nbsp;(or &#8220;field 2&#8243;) using the quotation mark as the delimiter.&nbsp; Note that the quote character (&#8221;) needs to be escaped (\). Use of UNIX2DOS will convert the UNIX-style output file to Windows semantics.)</li>
</ul>
<li>enumerate all subwebs of all sites</li>
<ul>
<li><em>FOR&nbsp;/f %s&nbsp;IN ([enumsitesTXTfile]) DO stsadm -o enumsubwebs -url &#8220;%s&#8221; | find &#8220;&lt;Subweb&gt;&#8221; &gt; [subwebXMLfile]</em></li>
<li>In BASH:<br /><em>cat&nbsp;[subwebXMLfile] | cut -c11- | cut -f1 -d\&lt; &gt; [subwebTXTfile]<br />unix2dos [subwebTXTfile]<br /></em>(Here we use &#8220;cut&#8221; to trim after the 11th character in the source file, and then agan after the first &#8220;\&#8221; character.)</li>
<li>Consolidate sites and subwebs into single control file</li>
<li><em>type [subwebTXTfile] &gt; [masterTXTSiteList]</em></li>
<li><em>type [enumsitesTXTfile] &gt;&gt; [masterTXTSiteList]</em></li>
<li>Using GnuWin32 &#8220;sort&#8221; command:<br /><em>sort -du [masterTXTSiteList] &gt; [masterSortedTXTSiteList]</em></li>
</ul>
<li>Batch activation of radEditor features using the control file</li>
<ul>
<li><em>FOR /F %s IN ([masterSortedTXTSiteList]) DO stsadm -o activatefeature -name radEditorFeature -url &#8220;%s&#8221; &amp; stsadm -o activatefeature -name radEditorFeatureIE -url &#8220;%s&#8221;</em></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=92</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Taking Control of SharePoint</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=91</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=91#comments</comments>
		<pubDate>Thu, 16 Aug 2007 17:08:45 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=91</guid>
		<description><![CDATA[Ever since we migrated from WSS 2.0 to 3.0, I have been stymied by site collection permissions issues.&#160; Under 2.0, SharePoint server administrators had access to everything, but under 3.0 they get nothing.&#160; I was getting pretty sick of not being able to manage SharePoint site collections from the command line.&#160; Fortunately, there is a [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since we migrated from WSS 2.0 to 3.0, I have been stymied by site collection permissions issues.&nbsp; Under 2.0, SharePoint server administrators had access to <em>everything</em>, but under 3.0 they get <em>nothing</em>.&nbsp; I was getting pretty sick of not being able to manage SharePoint site collections from the command line.&nbsp; Fortunately, there is a solution&#8230; it lies in the &#8220;Policy for Web Application&#8221; in the Central Admin site (or in the &#8220;-o changepermissionpolicy&#8221; option of stsadm.exe):</p>
<p>From:</p>
<p><a href="http://msmvps.com/blogs/shane/archive/2007/01/21/become-administrator-of-the-entire-web-application.aspx">Become Administrator of the Entire Web Application &#8211; The SharePoint Farmer&#8217;s Almanac</a> </p>
<blockquote><p>To grant a user or group administrator access to a given web application do as follows.
<ol>
<li>Go to SharePoint Central Administration.  </li>
<li>Click on the Application Management tab.  </li>
<li>Under Application Security click on Policy for Web Application  </li>
<li>Click Add Users  </li>
<li>Confirm your settings on the screen (defaults should be what you want) and click Next  </li>
<li>Now enter your user or group of users  </li>
<li>Click the box beside Full Control ? Has full control.  </li>
<li>Click Finish </li>
</ol>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=91</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weyland.be &#187; Disable System Beep in Windows Vista</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=89</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=89#comments</comments>
		<pubDate>Wed, 15 Aug 2007 03:19:30 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=89</guid>
		<description><![CDATA[&#160;Thank you thank you thank you!
Weyland.be » Disable System Beep in Windows Vista
]]></description>
			<content:encoded><![CDATA[<p>&nbsp;Thank you thank you thank you!</p>
<p><a href="http://weyland.be/wrdprss/index.php/2007/02/08/disable-system-beep-in-windows-vista/">Weyland.be » Disable System Beep in Windows Vista</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=89</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changes in Windows Deployment Technology</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=88</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=88#comments</comments>
		<pubDate>Thu, 09 Aug 2007 14:12:16 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=88</guid>
		<description><![CDATA[[This article is an updated version of the "What's new in the Campus domain?" article, previously published in the Spring 2007 IT-News] 
In Spring 2007 we introduced you to two new tools in the Windows Deployment arsenal at UVM.&#160; Further work on and refinement of these tools continues.&#160; If you are interested in developing for, [...]]]></description>
			<content:encoded><![CDATA[<p>[This article is an updated version of the "What's new in the Campus domain?" article, previously published in the Spring 2007 IT-News] </p>
<p>In Spring 2007 we introduced you to two new tools in the Windows Deployment arsenal at UVM.&nbsp; Further work on and refinement of these tools continues.&nbsp; If you are interested in developing for, deploying with, or training on these tools, please contact <a href="mailto:Gregory.Mackinnon+deployment@uvm.edu">Greg Mackinnon</a>&nbsp;in the ETS Systems Architecture and Administration department. </p>
<p>A second quick overview on these new technologies follows: </p>
<p><b>Windows DS:</b> </p>
<p>With the release of Windows Vista, Microsoft replaced their venerable &#8220;Remote Installation Service&#8221; (RIS) with an entirely new product: &#8220;Windows Deployment Services&#8221; (or Windows DS).&nbsp; You can learn more about Windows DS here:<br /><a href="http://www.microsoft.com/windowsserver/longhorn/deployment/services.mspx">http://www.microsoft.com/windowsserver/longhorn/deployment/services.mspx</a><br />RIS has been in use at UVM since 2003.&nbsp; This year,&nbsp;Back-to-School systems will be deployed using Windows DS rather than&nbsp;RIS.&nbsp;  </p>
<p>At the present time, we have installed the Windows DS software on our central imaging servers, SYSIMG1 and SYSIMG2.&nbsp; We have converted all legacy Windows XP RIS images&nbsp;into the new &#8220;Windows Image Format&#8221; (WIM) used in Windows DS, and made these images available on the servers.&nbsp; Use of RIS will be phased out sometime this year. </p>
<p><b>&#8220;LiteTouch&#8221; Deployment:</b> </p>
<p>To complement the Windows DS service, Microsoft also has released a major update to their Business Desktop Deployment (BDD) toolkit.&nbsp; This toolkit includes the wonderfully handy &#8220;LiteTouch&#8221; deployment system. </p>
<p>LiteTouch is an unattended OS deployment tool.&nbsp; Unlike the image-based technologies &#8220;RIS&#8221; and &#8220;WIndows DS&#8221;, LiteTouch performs a full OS install.&nbsp; When deploying via LiteTouch, you start the target computer using special boot media (USB flash drive, CD-Rom, or NetBoot), answer a few questions about how you would like your system configured (choose your OS, applications, and configure domain-joining options), and then let LiteTouch do the rest.&nbsp; When done, you will have a fully-patched OS with most or all of the drivers and applications necessary to get your job done already installed. </p>
<p>LiteTouch has the potential to replace RIS and Windows DS for most system deployments on campus.&nbsp; In the future, we most probably use&nbsp;image-based tools&nbsp; for bulk-deployments only (i.e. for back-to-school distribution and lab deployments).&nbsp; LiteTouch also has the potential to accelerate the image-development process; in fact, all of this year&#8217;s back-to-school images were generated using the LiteTouch system as a starting point! </p>
<p>Many places on campus can start using Windows DS and LiteTouch deployment tools&nbsp;simply by &#8220;net booting&#8221; their computers.&nbsp; However, network boot can be slow and is not available to everyone.&nbsp; As an alternative, you can create a bootable CD or USB flash drive to access the servers.&nbsp; Directions are available on the Campus domain file server:<br /><a href="file://files.uvm.edu/software/Windows_Deployment_Services">\\files.uvm.edu\software\Windows_Deployment_Services</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=88</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Windows Software for Back-to-School</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=87</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=87#comments</comments>
		<pubDate>Thu, 09 Aug 2007 13:35:07 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=87</guid>
		<description><![CDATA[There are several changes in the after-market software provided on the Back-to-School systems sold by the Microcomputer Computer Depot this year.&#160; All of these new programs are available for download at the UVM Software Archive.&#160; Here is a quick run-down on the most significant changes:
New Software:

WinSCP / PuTTY:The venerable &#8220;SSH Communications Security&#8221; SSH/SFTP client provided [...]]]></description>
			<content:encoded><![CDATA[<p>There are several changes in the after-market software provided on the Back-to-School systems sold by the Microcomputer Computer Depot this year.&nbsp; All of these new programs are available for download at the <a href="https://www.uvm.edu/software/">UVM Software Archive.</a>&nbsp; Here is a quick run-down on the most significant changes:</p>
<h3><font face="Arial" color="#414141">New Software:</font></h3>
<ul>
<li><strong>WinSCP / PuTTY:</strong><br />The venerable &#8220;SSH Communications Security&#8221; SSH/SFTP client provided on Depot systems in the past has not received an update since 2004.&nbsp; As a replacement we will be using &#8220;WinSCP&#8221; (a graphical SFTP/FTP/SCP file transfer client) and &#8220;PuTTY&#8221; (a simple SSH console program).&nbsp; Both are well-regarded, active Open Source applications.</li>
<li><strong>Pidgin</strong>:<br />Pidgin is&nbsp;the free, Open Source instant messaging program formerly known as &#8220;GAIM&#8221;.&nbsp; It replaces the commercial instant messaging program &#8220;AIM&#8221;, and has the advantage of being spyware and adware free.</li>
<li><strong>UVM Wallpaper Pack 2007:<br /></strong>Our first annual (?) wallpaper pack is included on all new systems.&nbsp; This is a collection of 20 regular and wide-screen formatted images from around the UVM campus.&nbsp; These images are integrated into the &#8220;Desktop Background&#8221; control panel on Vista.</li>
<li><strong>AVG AntiVirus:</strong><br />Owing to several significant bugs in the Symantec AntiVirus software used in the past, new student systems will ship with &#8220;AVG AntiVirus Free Edition&#8221;.&nbsp; This is a temporary arrangement while replacement AntiVirus package is identified.&nbsp; Because of restrictions on &#8220;corporate&#8221; use, this software will <em>not</em> be made available at the UVM Software Archive, and its use on University-owned systems is prohibited.</li>
</ul>
<h3>Removed Software:</h3>
<p>In the interest of maintaining leaner, more stable base systems, the following applications will not be included on new computers:</p>
<ul>
<li>AOL Instant Messenger (AIM)</li>
<li>Apple iTunes/QuickTime (not supported on Vista at the time of image development)</li>
<li>DivX Codec</li>
<li>Oracle Calendar (Still available on Faculty/Staff systems)</li>
<li>Nullsoft Winamp (No longer maintained</li>
<li>RealPlayer</li>
<li>SSH Communications Security SSH</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=87</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deploying the RadEditor SharePoint feature to all existing sites</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=86</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=86#comments</comments>
		<pubDate>Fri, 27 Jul 2007 22:01:58 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Scripting the Windows Experience]]></category>
		<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=86</guid>
		<description><![CDATA[So, the RadEditor solution is not scoped globally, meaning that after you install it, it is not used on users sites unless they activate it in their site settings.  What is the way around this?  The answer (big surprise) is STSADM.
We again use:
STSADM -o enumsites to collect all existing site URLs.  We [...]]]></description>
			<content:encoded><![CDATA[<p>So, the RadEditor solution is not scoped globally, meaning that after you install it, it is not used on users sites unless they activate it in their site settings.  What is the way around this?  The answer (big surprise) is STSADM.</p>
<p>We again use:<br />
<code>STSADM -o enumsites</code> to collect all existing site URLs.  We cleverly strip out the site URLs from the (I hate) XML output.  We then save these URLs to a text file (one URL per line) and use this to feed a FOR loop on the CMD shell.</p>
<p>Use:<br />
<code>STSADM -o activatefeature -id 747755CD-D060-4663-961C-9B0CC43724E9 -url [site URL]</code><br />
To activate the RadEditor for SharePoint lists for a given site (initially this will activate the tool for Mozilla users only).<br />
Then use:<br />
<code>STSADM -o activatefeature -id F374A3CA-F4A7-11DB-827C-8DD056D89593 -url [site URL]</code><br />
To activate the RadEditor for IE users.</p>
<p>Where did we get those ID strings you ask?  Look in the &#8220;Feature.xml&#8221; file in the following locations:<br />
<code>C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\RadEditorFeature</code><br />
and<br />
<code>C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\RadEditorFeatureIE</code></p>
<p>The feature ID is listed in this document between the (big surprise) <em>Id</em> tags.</p>
<p>Now, how to I activate this feature so that it will be on for all future sites?  Perhaps the answer is &#8220;Feature Stapling&#8221;:<br />
<a href="http://blogs.msdn.com/cjohnson/archive/2006/11/01/feature-stapling-in-wss-v3.aspx">http://blogs.msdn.com/cjohnson/archive/2006/11/01/feature-stapling-in-wss-v3.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=86</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Troubleshooting the awesome &#8220;RadEditor&#8221; for SharePoint</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=85</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=85#comments</comments>
		<pubDate>Fri, 27 Jul 2007 21:40:26 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=85</guid>
		<description><![CDATA[After using the Telerik &#8220;RadEditor for SharePoint 2007 Lite&#8221; for a few months, I decided that we should purchase the full version of the product.  A piddly $350 gets you the right to run the full version of this most incredibly useful tool on all of your SharePoint sites.  When was the last [...]]]></description>
			<content:encoded><![CDATA[<p>After using the Telerik &#8220;RadEditor for SharePoint 2007 Lite&#8221; for a few months, I decided that we should purchase the full version of the product.  A piddly $350 gets you the right to run the full version of this most incredibly useful tool on all of your SharePoint sites.  When was the last time that you bought anything for your servers for $350?</p>
<p>If you have not seen RadEditor before, you need to:<br />
<a href="http://www.telerik.com/products/sharepoint/radeditor.aspx">http://www.telerik.com/products/sharepoint/radeditor.aspx</a></p>
<p>I did run into a brief hiccup in installation, though.  After installing the software and deploying it as a solution from SharePoint central admin, I found that regular users could not activate the RadEditor feature on their sites.  We get the intimidating &#8220;403 Forbidden&#8221; error&#8230;</p>
<p>After a good deal of head pounding, it is SysInternals to the rescue again:<br />
<a href="http://www.microsoft.com/technet/sysinternals/utilities/processmonitor.mspx">http://www.microsoft.com/technet/sysinternals/utilities/processmonitor.mspx</a><br />
I loaded up ProcMon, set a filter for the SharePoint service accounts, and another filter for Result = &#8220;ACCESS DENIED&#8221;.  Lo and behold, the WSS service account is getting &#8220;ACCESS DENIED&#8221; to the following files:<br />
<code>C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES\RadEditorList.ascx</code><br />
and<br />
<code>C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\RadEditorFeature\RadEditorList.ascx</code></p>
<p>Interestingly, the WSS service account actually does have R/W access to these files.  However, recall that the WSS service account actually impersonates the credentials of the user currently logged in to SharePoint.  We note in the ProcMon event details the following:<br />
<code>Desired Access:	Generic Write, Read Attributes<br />
Disposition:	OverwriteIf<br />
Options:	Sequential Access, Synchronous IO Non-Alert, Non-Directory File<br />
Attributes:	A<br />
ShareMode:	Read, Write<br />
AllocationSize:	0<br />
Impersonating:	CAMPUS\[UserID] </code></p>
<p>Eureka!  The SharePoint end user needs to be able to over-write these files!  Sounds a bit shaky from a security perspective, but if we grant the R/W access to these files to all SharePoint users, we find that problems with site feature activation disappear.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=85</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Site for OS Deployment Information</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=83</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=83#comments</comments>
		<pubDate>Tue, 29 May 2007 20:15:57 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=83</guid>
		<description><![CDATA[In working on implementing the MS BDD 2007 &#8220;LiteTouch&#8221; deployment system, I have needed to generate a ton of documentation.  Rather than blog it all here, I have created a new Sharepoint team site.  This allows for better organization of structured data, and for distributed editing of content.
Read all about our BDD infrastructure, [...]]]></description>
			<content:encoded><![CDATA[<p>In working on implementing the MS BDD 2007 &#8220;LiteTouch&#8221; deployment system, I have needed to generate a ton of documentation.  Rather than blog it all here, I have created a new Sharepoint team site.  This allows for better organization of structured data, and for distributed editing of content.</p>
<p>Read all about our BDD infrastructure, LiteTouch system, Application installation scripts, and OS patching methodology here:<br /><a href="https://sharepoint.uvm.edu/sites/ad/distribution/">https://sharepoint.uvm.edu/sites/ad/distribution/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=83</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VMWare &#8220;BootRun&#8221; Service hangs on ESX Guests</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=82</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=82#comments</comments>
		<pubDate>Fri, 11 May 2007 11:47:45 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Virtualize your life]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=82</guid>
		<description><![CDATA[I have been getting intermittant errors on Server 2003 systems that we have deployed on our ESX servers:
&#8220;The Virtual BootRun Service failed to start&#8221;.
Apparently this service is called during deployment of a VM Guest from a template, and is not needed after deployment:
http://www.vmware.com/community/thread.jspa?threadID=6007&#038;messageID=39465
Ass I had to do was run:
c:\WINDOWS\vmware_imc\bootrun -unregserver
]]></description>
			<content:encoded><![CDATA[<p>I have been getting intermittant errors on Server 2003 systems that we have deployed on our ESX servers:<br />
&#8220;The Virtual BootRun Service failed to start&#8221;.</p>
<p>Apparently this service is called during deployment of a VM Guest from a template, and is not needed after deployment:<br />
<a href="http://www.vmware.com/community/thread.jspa?threadID=6007&#038;messageID=39465">http://www.vmware.com/community/thread.jspa?threadID=6007&#038;messageID=39465</a></p>
<p>Ass I had to do was run:</p>
<blockquote><p>c:\WINDOWS\vmware_imc\bootrun -unregserver</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=82</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unattended installation of Oracle Calendar desktop client</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=81</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=81#comments</comments>
		<pubDate>Thu, 05 Apr 2007 16:48:00 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=81</guid>
		<description><![CDATA[Expect a lot of posts about silent/unattended installation of various Windows applications.  We are ramping up for BDD 2007 &#8220;LiteTouch&#8221; OS deployments, and I need to get the UVM-sanctioned application ready to go.
Oracle doc on installing OCal:
http://download-east.oracle.com/docs/cd/B25553_01/install.1012/b25463/clientinstallation.htm#CHDEJIIB
Here is how I did it:

run &#8220;cal_win_1012.exe /A&#8221; to extract the contents of the install shield application
copy the [...]]]></description>
			<content:encoded><![CDATA[<p>Expect a lot of posts about silent/unattended installation of various Windows applications.  We are ramping up for BDD 2007 &#8220;LiteTouch&#8221; OS deployments, and I need to get the UVM-sanctioned application ready to go.</p>
<p>Oracle doc on installing OCal:<br />
<a href="http://download-east.oracle.com/docs/cd/B25553_01/install.1012/b25463/clientinstallation.htm#CHDEJIIB">http://download-east.oracle.com/docs/cd/B25553_01/install.1012/b25463/clientinstallation.htm#CHDEJIIB</a><br />
Here is how I did it:</p>
<ol>
<li>run &#8220;cal_win_1012.exe /A&#8221; to extract the contents of the install shield application</li>
<li>copy the unison.ini file from a properly configured client&#8217;s Application Data directory.  Strip out the user-specific lines.  Paste it over the unison.ini in the install directory.</li>
<li>install silently using <code>msiexec /i "Oracle Calendar.msi" /qb</code> (or use the /qn switch for a fully silent install)</li>
</ol>
<p>Here is my working UNISON.INI:<br />
<code>[GENPREFS]<br />
offlineab=true<br />
[WEBLINK]<br />
mode=off<br />
[CONNECTIONS]<br />
Conn_00_Type=offline<br />
Conn_00_Name=Offline<br />
default=1<br />
Conn_01_Type=normal<br />
Conn_01_Name=UVM Calendar<br />
Conn_01_Desc=<br />
Conn_01_Serv=calendar.uvm.edu<br />
Conn_01_MNCapability=FALSE<br />
Conn_01_ConfiguredForNode=FALSE<br />
Conn_01_Nodes=10000,CIT<br />
Conn_01_Node=10000<br />
Conn_01_Auth_00_Short=cs-basic<br />
Conn_01_Auth_00_Long=CST Basic Authentication<br />
Conn_01_Auth_00_NeedsItem=TRUE<br />
Conn_01_Auth_00_ChangePassword=TRUE<br />
Conn_01_Auth_01_Short=cs-standard<br />
Conn_01_Auth_01_Long=Standard Authentication<br />
Conn_01_Auth_01_NeedsItem=TRUE<br />
Conn_01_Auth_01_ChangePassword=TRUE<br />
Conn_01_NumAuths=2<br />
Conn_01_Auth=cs-standard<br />
Conn_01_Comp_00_Short=cs-simple<br />
Conn_01_Comp_00_Long=Run Length Encoding Compression<br />
Conn_01_Comp_01_Short=none<br />
Conn_01_Comp_01_Long=None<br />
Conn_01_NumComps=2<br />
Conn_01_Comp=cs-simple<br />
Conn_01_Encr_00_Short=cs-acipher1<br />
Conn_01_Encr_00_Long=Affine Cipher<br />
Conn_01_Encr_01_Short=cs-light<br />
Conn_01_Encr_01_Long=Light Encryption<br />
Conn_01_Encr_02_Short=none<br />
Conn_01_Encr_02_Long=None<br />
Conn_01_NumEncrs=3<br />
Conn_01_Encr=cs-acipher1<br />
numConnections=2<br />
enableSingleSignIn=FALSE<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=81</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The reason children do not go through puberty until at least 12&#8230;</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=80</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=80#comments</comments>
		<pubDate>Thu, 05 Apr 2007 13:13:45 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Thoughts and Reflections]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=80</guid>
		<description><![CDATA[Oliver:  I want to grow be a grown up now.
Mom:  But Oliver, being a kid is great, too.  You should enjoying being a kid while you still can.  Why do you want to be all grown up?
Oliver:  So that I can have babies, too.
Mom:  Oh Oliver, that is so [...]]]></description>
			<content:encoded><![CDATA[<p>Oliver:  I want to grow be a grown up now.<br />
Mom:  But Oliver, being a kid is great, too.  You should enjoying being a kid while you still can.  Why do you want to be all grown up?<br />
Oliver:  So that I can have babies, too.<br />
Mom:  Oh Oliver, that is so sweet, but what would you do with a baby?<br />
Oliver: [With that mischievous look of naughty gears turning in his head]  I would&#8230; put it in a cement mixer!  And then put it on the train tracks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=80</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emulating OEM Partitions with DISKPART</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=79</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=79#comments</comments>
		<pubDate>Fri, 30 Mar 2007 12:39:35 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=79</guid>
		<description><![CDATA[Sometimes I get tired of trying to find pristine systems in our Computer Depot to test out system imaging scenarios.  The main reason I need clean, un-touched systems is that no one wants to subject their production computer to experimental re-deployment.  However, another frequent need for fresh systems is that we need computers [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes I get tired of trying to find pristine systems in our Computer Depot to test out system imaging scenarios.  The main reason I need clean, un-touched systems is that no one wants to subject their production computer to experimental re-deployment.  However, another frequent need for fresh systems is that we need computers with the OEM utility partition still in tact so that we can ensure that new images will apply consistently to different partition schemes.</p>
<p>Enter DISKPART, WinPE, and VMWare.  We now can create fake OEM partitions on virtual machines, and redeploy on demand without disrupting anyone&#8217;s routine.</p>
<p>Here is the procedure:</p>
<ul>
<li>Boot VM Guest to WinPE ISO file (you can use a WDS Discover image)</li>
<li>When WinPE is loaded (with or without WDS discovery client), press SHIFT-F10</li>
<li>At the command prompt, type <code>diskpart</code>, then follow this script:</li>
</ul>
<ul>
<li><code>select disk 0</code></li>
<li><code>clean</code></li>
<li><code>create partition primary id=DE size=78</code> (Partition ID &#8220;DE&#8221; is a Dell OEM partition.  DISKPART will hide it for you automatically.)</li>
<li><code>select partition 1</code></li>
<li><code>format fs=fat quick</code></li>
<li>To verify your partition, enter <code>display partition</code></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=79</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Repairing sites with &#8220;stsadm -o export&#8221;</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=78</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=78#comments</comments>
		<pubDate>Tue, 27 Mar 2007 20:34:32 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=78</guid>
		<description><![CDATA[We had a rather awful public relations fiasco with a Sharepoint site over the past three weeks.  Users replying to existing posts in discussion board web parts always receive &#8220;User not found&#8221; errors (their replies get posted, but they get no notification of this).  I was almost incapable of getting help from Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p>We had a rather awful public relations fiasco with a Sharepoint site over the past three weeks.  Users replying to existing posts in discussion board web parts always receive &#8220;User not found&#8221; errors (their replies get posted, but they get no notification of this).  I was almost incapable of getting help from Microsoft on this (after burining many hours trying to resolve the issue on my own).</p>
<p>Ultimately, the support engineers concluded that the site had experienced some corruption of security profiles.  They were hesitant to use their internal tool for purging security profiles from the site for fear that this would create other problems.  Ultimately, they recommended using <code>stsadm -o export</code> with the <code>-includeusersecurity</code> flag to create a backup of the site.  (&#8221;Export&#8221; is different from &#8220;Backup&#8221; in that it does not create a full backup of the site&#8230; it just backs up the content.)  We then use &#8220;import&#8221; to restore the backup file to a new, blank site.  Using this process, new security profiles are created but site content stays the same.</p>
<p>Here is the full procedure for rebuilding a site using stsadm:</p>
<ul>
<li>change the site owner to match the login ID of a user with sharepoint infrastructure admin rights.</li>
<li><code>stsadm -o export -url http://sharepoint.uvm.edu/sites/[sitename] -filename [backupfilename] -includeusersecurity</code></li>
<li>verify that the export file appears to contain all of the site data.  It may be a good idea to use <code>stsadm -o backup</code> to create a secondary backup as well.</li>
<li><code>stsadm -o deletesite -url http://sharepoint.uvm.edu/sites/[sitename]</code></li>
<li><code>stsadm -o createsite -url http://sharepoint.uvm.edu/sites/[sitename] -ownerlogin [loginID] -owneremail [email address]</code></li>
<li><code>stsadm -o import -url http://sharepoint.uvm.edu/sites/[sitename] -filename [backupfile] -includeusersecurity</code></li>
<li>Login to the site, verify content.  You may want to revert the site owner to the original user ID at this time.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=78</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CPU Smackdown!  Throttling rogue threads on Terminal Servers</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=77</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=77#comments</comments>
		<pubDate>Mon, 26 Mar 2007 15:00:10 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Terminal Boredom]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=77</guid>
		<description><![CDATA[I am most pelased today to have done something positive for our Terminal Server environment.  By using the fine freeware product &#8220;Threadmaster&#8221; I have been able to throttle back those rogue Approach.exe applications on the Terminal Servers to use no more than their fair share of the CPU.
Threadmaster can be downloaded here:
http://threadmaster.tripod.com/
Config is easy&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>I am most pelased today to have done something positive for our Terminal Server environment.  By using the fine freeware product &#8220;Threadmaster&#8221; I have been able to throttle back those rogue Approach.exe applications on the Terminal Servers to use no more than their fair share of the CPU.</p>
<p>Threadmaster can be downloaded here:<br />
http://threadmaster.tripod.com/<br />
Config is easy&#8230; run the small CMD file to install the Threadmaster service, then use REGEDIT to tune the product.  All settings are in HKLM:\SYSTEM\CurrentControlSet\Services\ThreadMaster\Parameters.  Set a default per-thread CPU threshold, and add applications that you want to have different rules to the &#8220;Applications&#8221; subkey.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=77</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Take back https://sharepoint.uvm.edu/sites/jgm!</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=76</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=76#comments</comments>
		<pubDate>Tue, 20 Feb 2007 15:41:04 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=76</guid>
		<description><![CDATA[A tribute to the Vermont gubernatorial race of 2000 in that title, for those who chare.
Anyway, what this really is about is gaining access to top-level Sharepoint sites when you have been locked out.  This never was a problem for us in the past as our &#8220;Farm Administrators&#8221; had access to all sites.  [...]]]></description>
			<content:encoded><![CDATA[<p>A tribute to the Vermont gubernatorial race of 2000 in that title, for those who chare.</p>
<p>Anyway, what this really is about is gaining access to top-level Sharepoint sites when you have been locked out.  This never was a problem for us in the past as our &#8220;Farm Administrators&#8221; had access to all sites.  However, it appears that security changes in WSS v3 have blocked this access.  Now, when people send me a note asking for assistance with their site, I often am greeted with a friendly &#8220;access denied&#8221; message.</p>
<p>If the site administrator is unable to add me to the ACLs for the site, I need to take ownership to get anything done.  It took me awhile to sort this out as documentation on WSS v3 is still a bit sketchy.</p>
<p>Here is how you take control from the command line:<br />
<code>stsadm -o siteowner -url https://sharepoint.uvm.edu/sites/[sitename] -ownerlogin [DOMAIN\netID]</code><br />
ALternatively, you can use the <code>-secondarylogin</code> switch to take ownership of the &#8220;Secondary site administrator&#8221; role.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=76</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Wit and Wisdom of Oliver</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=75</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=75#comments</comments>
		<pubDate>Mon, 19 Feb 2007 20:29:47 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Thoughts and Reflections]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=75</guid>
		<description><![CDATA[Mom:  Could you please stop taking off my shoes, Oliver?
Oliver:  No.
Mom: And why not, pray tell?
Oliver:  Don&#8217;t call me praytell.
]]></description>
			<content:encoded><![CDATA[<p>Mom:  Could you please stop taking off my shoes, Oliver?<br />
Oliver:  No.<br />
Mom: And why not, pray tell?<br />
Oliver:  Don&#8217;t call me praytell.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=75</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TSFarm &#8211; Additional Tweaks</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=73</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=73#comments</comments>
		<pubDate>Thu, 04 Jan 2007 22:32:45 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Terminal Boredom]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=73</guid>
		<description><![CDATA[I have made some additonal changes to our Terminal Services farm based on MS best practices, and on advice from net forums (mostly Brian Madden, again).

Implemented Mandatory Profiles on the Terminal Servers, using GPO.

Installed Hotfix to enable the use of a single profile for all users on a TS via GPO:http://support.microsoft.com/kb/908011
Created a Mandatory Roaming Profile [...]]]></description>
			<content:encoded><![CDATA[<p>I have made some additonal changes to our Terminal Services farm based on MS best practices, and on advice from net forums (mostly Brian Madden, again).</p>
<ol>
<li>Implemented Mandatory Profiles on the Terminal Servers, using GPO.</li>
<ul>
<li>Installed Hotfix to enable the use of a single profile for all users on a TS via GPO:<br /><a href="http://support.microsoft.com/kb/908011">http://support.microsoft.com/kb/908011</a></li>
<li>Created a Mandatory Roaming Profile following instructions on how to do this for an XP client:<br /><a href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/lsm_profile_roaming.mspx?mfr=true">http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/lsm_profile_roaming.mspx?mfr=true</a><br />I copied this profile to C:\Documents and Settings\MANDATORY on one TS, then changed the ACLs to allow Read/Execute ONLY for &quot;Authenticated Users&quot;, and used &quot;Robocopy&quot; to replicate this profile WITH PERMISSIONS to the neighboring TS.</li>
<li>We then edit the GPO for the terminal server as follows:</li>
</ul>
<ul>
<li>Computer Policy-&gt;Administrative Templates-&gt;Windows Components-&gt;Terminal Services-&gt;Set Path for Roaming TS Profiles:<br />&quot;Profile Path&quot; = &quot;C:\Documents and Settings\MANDATORY&quot;<br />&quot;Do not append the user name to the profile path&quot; = &quot;TRUE&quot;</li>
</ul>
<li>Delete all existing local user profiles on all terminal servers</li>
<li>Note that this gets us one step closer to implementing &quot;Flex Profiles&quot;:<br /><a href="http://www.brianmadden.com/content/content.asp?ID=551">http://www.brianmadden.com/content/content.asp?ID=551</a><br />There actually are lots of web resources on implementing &quot;Flex Profiles&quot; or &quot;Hybrid Profiles&quot;, which essentiall combine the speed of Mandatory profiles with the benefits of roaming/local profiles.&nbsp; I am not going to implement this at this time, as it seems more trouble than benefit.</li>
<li>Implemented Fallback Printer Drivers, as previously linked here:<br /><a href="http://www.brianmadden.com/content/content.asp?ID=438">http://www.brianmadden.com/content/content.asp?ID=438</a></li>
<ul>
<li>Used settings recommended in above article &#8211; &quot;HP DeskJet 550C&quot; for PCL printers and &quot;HP Color LaserJet 5/5M PS&quot; for PS printers.&nbsp; This seems to generate satisfactory results.&nbsp; I also tested using &quot;HP LaserJet 4&quot;, &quot;HP LaserJet 4000 Series&quot;, and &quot;HP Color LaserJet&quot; with no better/worse results.</li>
<li>Installed HP Universal Printer Driver v3.0.0 for PCL 5, PCL 6, and PS.&nbsp; Tried using this as the fallback driver with disasterous results (crashed the print spooler&#8230; yuck!).&nbsp; I have kept these drivers installed for use with the wtsuprn.inf mappings file, or if people want to print manually to the installed Universal Printer instances.</li>
</ul>
<li>Installed PDFCreator on both TS systems.&nbsp; This gives users a fallback option to print to PDF and redirect the output to their local drive via the RDP client.&nbsp; This should be useful for more sophisticated users.</li>
<li>Implemented wtsuprn.inf printer mappings file, with entries copied over from the existing &quot;Hercules&quot; MetaFrame server.</li>
<li>Grudgingly installed a driver set for the Canon iR (imageRunner) printers.&nbsp; I only did this because the drivers were WHQL qualified, and insisted that we do some testing to verify that the drivers were not destabilizing the servers.&nbsp; I do not recommend that we get in the habit of installing third-party drivers on demand, but we do have a lot of these imageRunners on campus, and this driver set should help out.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=73</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vista Security, Config, Licensing, Imaging Committee:</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=72</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=72#comments</comments>
		<pubDate>Thu, 21 Dec 2006 17:29:47 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=72</guid>
		<description><![CDATA[Ben, Harjit, Peter, Jonathan, Greg, Dean, Andy G, Phil, E. Mike  attending

Imaging:

No real progress on imaging since the last meeting.

We need to look at:


Offline image servicing

Unattended setup in &#8220;Factory Mode&#8221; of supplemental software following initial deployment

Segregation of WDS servers for Faculty/Staff vs. Student


Security:

Bitlocker

Capability to perform key escrow of TPM and Bitlocker data added to [...]]]></description>
			<content:encoded><![CDATA[<p>Ben, Harjit, Peter, Jonathan, Greg, Dean, Andy G, Phil, E. Mike  attending
</p>
<h2>Imaging:<br />
</h2>
<p>No real progress on imaging since the last meeting.
</p>
<p>We need to look at:
</p>
<ul>
<li>Offline image servicing
</li>
<li>Unattended setup in &#8220;Factory Mode&#8221; of supplemental software following initial deployment
</li>
<li>Segregation of WDS servers for Faculty/Staff vs. Student
</li>
</ul>
<h2>Security:<br />
</h2>
<h3>Bitlocker<br />
</h3>
<p>Capability to perform key escrow of TPM and Bitlocker data added to CAMPUS domain.  More testing needs to be done.  Policy decisions need to be made about:
</p>
<ol>
<li>Mode to implement (PIN vs. USB Key vs. TPM-only systems)
</li>
<li>Which systems to implement on (Laptop vs. Desktop, Student vs. Institutionally owned)
</li>
<li>How to implement (at deployment time/mandatory vs. after deployment/voluntary).
</li>
</ol>
<h2>Editions:<br />
</h2>
<h3>Enterprise<br />
</h3>
<p>Recommended (Required?) for all Faculty/Staff installs
</p>
<h3>Business<br />
</h3>
<p>Recommended (Required?) for all Students systems sold through the depot.
</p>
<h3>Ultimate<br />
</h3>
<p>Available though Campus Agreement but not recommended as not manageable though Volume License.  Keys will be made available to those who need them, managed through MS licensing web site.
</p>
<h2>Licensing:<br />
</h2>
<h3>MAK vs. KMS<br />
</h3>
<p>Both product activations are now available to us for activating Vista Business/Enterprise.  Currently only KMS is supported by ETS.  We need to establish a method for communicating MAK keys to those who need them, and criteria for when they will be disclosed.
</p>
<h3>Work-at-Home<br />
</h3>
<p>Media will be available though the depot in ~January time-frame.  This will be <em>retail</em> media, not volume license.
</p>
<h3>Ultimate Edition<br />
</h3>
<p>We are entitled to this under Campus Agreement, but it is not a volume-licensed product.  Complexity of managing licensing leads us to a recommendation that we <em>not</em> actively promote the use of Ultimate edition on campus, esp. since no systems sold though the depot are media center computers.
</p>
<h3>Retail/OEM<br />
</h3>
<p>Need to contact Dell to discuss possibility of re-imaging systems.  At present, we have permission to replace OEM-media-based installs with Volume License-media-based installs <em>provided</em> that the system was purchased with an <em>identical</em> Vista SKU (e.g. OEM install of Vista Business may be replaced with VL Vista Business).  However, doing this will decrement remaining activations on our MAK, so we will need to broker a deal with MS to provide adequate activations for student systems.  Otherwise, we should stick with the OEM-based image and let students re-activate their copy.  To pursue this option, we will need more info from Dell (i.e. does Dell use the same media as the basis for all delivered systems?  Can an image captured from one Dell system be activated with the key printed on any other Dell system?)
</p>
<h2>Committee Leadership:<br />
</h2>
<p>Phil and Greg &#8220;volunteer&#8221; to co-chair this committee.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=72</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ApplicationXtenter Infrastructure Deployment Notes</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=71</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=71#comments</comments>
		<pubDate>Mon, 11 Dec 2006 21:28:36 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Document Imaging]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=71</guid>
		<description><![CDATA[It seems that I did not take good notes on how to install and configure ApplicationXtender server components. Bah… this made for some fun when rebuilding the test environment. Here goes…


Install Windows Server 2003, Standard Edition, with IIS. 

Bring up to current patch level

Install Oracle Client software…


we used 9.2.0.4 with all patches present on the Prod [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:Times New Roman; font-size:12pt">It seems that I did not take good notes on how to install and configure ApplicationXtender server components. Bah… this made for some fun when rebuilding the test environment. Here goes…<br />
</span></p>
<ol>
<li><span style="font-family:Times New Roman; font-size:12pt">Install Windows Server 2003, Standard Edition, with IIS. <br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Bring up to current patch level<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Install Oracle Client software…<br />
</span></li>
<li>
<div><span style="font-family:Times New Roman; font-size:12pt">we used 9.2.0.4 with all patches present on the Prod servers. <br />
</span></div>
<ol>
<li><span style="font-family:Times New Roman; font-size:12pt">This requires several passes though the Oracle Universal Installer.  First a &#8220;runtime&#8221; install, then run through again to install &#8220;Windows Support Components&#8221;, which includes the ODBC drivers that are needed for AppXtender.</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Then we need to do two more passes though OUI to install patches, then drop in a few patched DLLs, and finally copy the TNSNames.ORA file from the oracle home on Prod servers to the NETWORK\Admin folder in the Oracle Home on this server.</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt"><span style="color: #ff0000;">Update for 2009 -</span> We are now using the 10.2.0.4 database client, but installation is still pretty much the same&#8230; you still need the annoying Oracle Universal Installer, you still have to run OUI two to three times.  Additionally, our DBA team has switched from use of the &#8220;TNSNames.ORA&#8221; file, to &#8220;SQLNet.ORA&#8221; and &#8220;LDAP.ORA&#8221;.  Data Source names are now retrieved from an LDAP lookup.  So, ditch the TNSNames file, drop in the new ones.  Also, you must now request a firewall exemption to the database server to make this connection.  Plan a day ahead of time to get access.<br />
</span></li>
</ol>
</li>
<li>
<div><span style="font-family:Times New Roman; font-size:12pt">Create XS_Global service account, or use existing one. <br />
</span></div>
<ol>
<li><span style="font-family:Times New Roman; font-size:12pt">Add this account to the local administrators group<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Add the additional rights &#8220;Act as part of the operating system&#8221;, &#8220;log on as a service&#8221;, and &#8220;replace a process level token&#8221; rights using the Local Security Policy MMC tool.<br />
</span></li>
</ol>
</li>
<li><span style="font-family:Times New Roman; font-size:12pt">Install Legato Licensing Server (if needed… we did not need a new one this time around<br />
</span></li>
<li>
<div><span style="font-family:Times New Roman; font-size:12pt">Install DiskXtender 2000.  Use existing licensing server if available.  You will need to create service accounts for DX.<br />
</span></div>
<ol>
<li><span style="font-family:Times New Roman; font-size:12pt">Start DX Administrator… you must be a Domain Admin or the local Administrator account.  Members of local Admins have no rights to the DX console!<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Extend the local drive that will house your images by going to service-&gt;new extended drive.  There are no additional settings that need to be configured here<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Under &#8220;Service&#8221; select &#8220;properties&#8221;, then &#8220;Settings&#8221;, and &#8220;Partition Map&#8221;.<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Click &#8220;New&#8221;, then defined mappings for &#8220;DXTEST&#8221; (or whatever name you want to give to your DX Instance).  There will ony be one option to choose from under the &#8220;Extended Drive&#8221; drop-down.<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Add another mapping to &#8220;OBJECTS&#8221;, which will be the subdirectory created by AX in the DX repository.<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">On the Prod server, we also did the following: Run RegEdit, navigate to:<br />
&#8220;HKLM:\Software\Legato\DiskXtender\RPC\DxCli2\&#8221;<br />
Then Modify &#8220;TcpIpEndpoint&#8221; from 1050 to 6252. This will force DX to use a port that can be accessed from the campus LAN.<br />
</span></li>
</ol>
</li>
<li><span style="font-family:Times New Roman; font-size:12pt">Install all AX Binaries… Includes AX Administration tools, ApplicationXtender Administrative installation, WebXtender, Rendering Server, ApplicatonXtender Web Services (IIS Mode).<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Open the &#8220;System&#8221; control panel item.  Go to &#8220;advanced&#8221;, and under &#8220;performance&#8221;, click &#8220;settings&#8221;.  Go to the &#8220;Data Execution Prevention&#8221; tab, and add an exception for %ProgramFiles%\XtenderSolutions\Content Management\Render Server\WxRender.exe.  This prevents the renderer from crashing in a Server 2003 SP1 environment.<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Create shares for &#8220;rendering&#8221; and &#8220;wxsession&#8221;.  Both shared need to be accessed Read/Write by the XS Service account.  These allow the rendering service and webXtender service, respectively, to cache files that may need to be accessible to other servers in the AX infrastructure.<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Use the &#8220;data source selector&#8221; tool in the ApplicationXtender Program Group.  Define sources for IMGX and IMGY (test and pre-prod data sources).  You will need to specify the &#8220;server name&#8221; as &#8220;IMGX.world&#8221;, and &#8220;IMGY.world&#8221;, as this is how they are defined in the TNSNames file.  Note that you MUST use the Microsoft OLE DB Provider for Oracle, not the raw Oracle ODBC driver! <br />
</span></li>
<li>
<div><span style="font-family:Times New Roman; font-size:12pt">Start XtenderSolutions Administrator (XSAdmin forthwith). <br />
</span></div>
<ol>
<li><span style="font-family:Times New Roman; font-size:12pt">Login as SYSOP user.<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">On a new install, you would need to define &#8220;Windows Security&#8221; as the Security Model in the initial &#8220;Environment-&gt;Data Sources&#8221; window.<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Under &#8220;Storage-&gt;DiskXtender&#8221;, we need to have defined:<br />
Server Name=DXTEST, Connection Type=RPC, DX Network Address=DOCIMGTEST, Network Transport=TCP/IP. Also, on the Prod server, we have defined the &#8220;end point&#8221; port as 6252.<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Under &#8220;Storage-&gt;Paths&#8221;, make sure that any defined paths are valid. It is here that we define the connection to the &#8220;rendering&#8221; and &#8220;wxsession&#8221; shares that were created earlier.<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Under &#8220;WebXtender-&gt;Setup&#8221;, you must define the service account, and under &#8220;Email&#8221; you need to specify &#8220;smtp.uvm.edu&#8221; as the email server, then define a &#8220;from&#8221; address for the service.<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Under &#8220;Services-&gt;Rendering Server&#8221;, you again need to define a service account, then provide the &#8220;rendering&#8221; share created above as the Cache &#8220;location&#8221;.<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Under &#8220;Services-&gt;XS Web Services&#8221;, define a service account.<br />
</span></li>
</ol>
</li>
<li><span style="font-family:Times New Roman; font-size:12pt">Run &#8220;User Profile Administrator&#8221; in the XtenderSolutions Program Group. We set our users to NOT use the Interactive Client by default. However, using AppGen we have given all users the ability to change this setting.<br />
</span></li>
<li><span style="font-family:Times New Roman; font-size:12pt">Run the &#8220;Component Setup Wizard&#8221; in the XtenderSolutions Program Group. Run through the wizard for each component in the infrastructure (XS Web, WebXtender, Rendering Server).</span></li>
<li><span style="font-family: Times New Roman; font-size: 12pt;"><span style="color: #ff0000;">Updated for 2009 &#8211; <span style="color: #000000;">IIS Tuning:</span></span></span>
<ol>
<li><span style="font-family: Times New Roman; font-size: 12pt;"><span style="color: #ff0000;"><span style="color: #000000;">In IIS Admin, get properties on the default web site, access the &#8220;Directory Security&#8221; tab, and install a server certificate.</span></span></span></li>
<li><span style="font-family: Times New Roman; font-size: 12pt;"><span style="color: #ff0000;"><span style="color: #000000;">Click &#8220;Edit&#8221; to require SSL for the site</span></span></span></li>
<li><span style="font-family: Times New Roman; font-size: 12pt;"><span style="color: #ff0000;"><span style="color: #000000;">Go to the &#8220;Custom Errors&#8221; tab, and add our standard JavaScript redirect html file in place of the 403.4 error page&#8230; this will force users over to the SSL version of the site using a javascript redirect, instead of displaying an ugly error page.</span></span></span></li>
<li><span style="font-family: Times New Roman; font-size: 12pt;"><span style="color: #ff0000;"><span style="color: #000000;">On the &#8220;Home Directory&#8221; tab, add a <em>permanent</em> redirect from the base web site URL to the &#8220;/AppXender&#8221; subdirectory</span></span></span></li>
<li><span style="font-family: Times New Roman; font-size: 12pt;"><span style="color: #ff0000;"><span style="color: #000000;">Get properties on the /AppXtender subdirectory.  In the &#8220;Documents&#8221; tab, add &#8220;Default.aspx&#8221; as a default content page.  Failure to do so will result in an &#8220;403.14&#8243; error page.</span></span></span></li>
</ol>
</li>
</ol>
<p><span style="font-family:Times New Roman; font-size:12pt"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=71</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PDF Integration with WSS 3.0</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=70</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=70#comments</comments>
		<pubDate>Mon, 11 Dec 2006 17:13:27 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=70</guid>
		<description><![CDATA[Installing the PDF iFilter on WSS 3.0:
http://geekswithblogs.net/sspotts/archive/2006/11/03/96045.aspx

Associating an icon with PDF files in a Sharepoint library:
http://www.sharepointblogs.com/ssa/archive/2006/10/13/13812.aspx
]]></description>
			<content:encoded><![CDATA[<p>Installing the PDF iFilter on WSS 3.0:<br />
<a href="http://geekswithblogs.net/sspotts/archive/2006/11/03/96045.aspx">http://geekswithblogs.net/sspotts/archive/2006/11/03/96045.aspx</a>
</p>
<p>Associating an icon with PDF files in a Sharepoint library:<br />
<a href="http://www.sharepointblogs.com/ssa/archive/2006/10/13/13812.aspx">http://www.sharepointblogs.com/ssa/archive/2006/10/13/13812.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=70</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preparing for the Sharepoint v3 upgrade</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=67</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=67#comments</comments>
		<pubDate>Fri, 08 Dec 2006 23:42:16 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=67</guid>
		<description><![CDATA[The following steps may be accomplished before production service outage begins:


Install OS Services in support of Sharepoint 


Install .NET 3.0 framework


ensure that ASP.NET is installed on IIS server, make sure that ASP.NET 2.0 is activated:(run C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i
				


Install WSSv3 (but cancel the configuration wizard)
		

Perform admin site config:


Configure to use NTLM authentication, NOT KERBEROS!


set incoming and outgoing email [...]]]></description>
			<content:encoded><![CDATA[<p>The following steps may be accomplished before production service outage begins:
</p>
<ul>
<li>Install OS Services in support of Sharepoint 
</li>
<li>
<div>Install .NET 3.0 framework
</div>
<ul>
<li>ensure that ASP.NET is installed on IIS server, make sure that ASP.NET 2.0 is activated:<br />(run <span style="font-family:Courier New; font-size:10pt">C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i</span>
				</li>
</ul>
</li>
<li>Install WSSv3 (but<em> cancel the configuration wizard)</em>
		</li>
<li>
<div>Perform admin site config:
</div>
<ul>
<li>Configure to use NTLM authentication, NOT KERBEROS!
</li>
<li>
<div>set incoming and outgoing email settings.
</div>
<ul>
<li>Requires SMTP server running on WSS server, mail domain set to be the same as that of the Sharepoint server config.
</li>
</ul>
</li>
</ul>
</li>
<li>configure Search Services
</li>
<li>define quota templates (create 5 and 10 Gb quotas)(cannot assign to application yet, but can create)
</li>
</ul>
<p>These procedures to be completed duing the announced service window:
</p>
<ul>
<li>Run the &#8220;prescan&#8221; tool from the &#8220;<br />C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN&gt;&#8221; directory on the wssv3 server on the production site
</li>
<li>Set the production server DB to read-only
</li>
<li>Back up the DB
</li>
<li>Restore the DB to WinDB, set to SQL v9 compatibility, restore permissions to the DB for the new production server (<em>wss content app pool</em> and <em>wss access accounts</em>)
</li>
<li>
<div>Create new &#8220;Web Application&#8221;:
</div>
<ul>
<li>Map search services to the application
</li>
<li>Add SSL redirect to the IIS site that is created (replace the 403.4 error page with a custom Java Script redirect
</li>
</ul>
</li>
<li>Replace new content DB with copied content DB on WinDB.  Use command-line &#8220;STSADM&#8221; tool as Web GUI will not work here.
</li>
<li>
<div>Extend the new application to allow for Extranet config:
</div>
<ul>
<li>Create an additional IIS web site which listens on an alternative IP address/port
</li>
<li>In Application Management, click &#8220;Create of extend web application&#8221;
</li>
<li>Click &#8220;Extend an existing web application&#8221;
</li>
<li>Choose to use an existing IIS site, select the site you just created, and select this app as being in the &#8220;Extranet&#8221; zone.
</li>
<li>
<div>return to IIS management, make sure the IIS site is configured to listen on the appropriate IP and ports, ensure SSL is enabled, and replace the 403.4 error page on this site, too.
</div>
<ul>
<li>Make sure that BOTH IIS sites have SSL bound to a <em>specific IP address, </em>otherwise port conflicts will occur!
</li>
</ul>
</li>
<li>Enter &#8220;Alternative Access Mappings&#8221; from the &#8220;Operations&#8221; page. Add a new &#8220;internal URL&#8221; for the extranet site.
</li>
<li>Enter &#8220;Authentication Providers&#8221; from &#8220;Application Management&#8221;. For the &#8220;Extranet&#8221; zone, Specify &#8220;Windows Authentication&#8221;, &#8220;enable anonymous&#8221;, &#8220;basic authentication&#8221;… may also need to disable &#8220;client integration&#8221; features.
</li>
</ul>
</li>
<li>
<div>Restore custom settings to the site:
</div>
<ul>
<li>web application general settings &#8211; set Time Zone, default quota template, increase max upload size, activate Blog API auth, turn off &#8220;send password&#8221;.
</li>
<li>Self-service site creation &#8211; activate, require secondary contact
</li>
<li>Site use confirmation and deletion (set to 365, monthly, 3 notifications)
</li>
<li>others?
</li>
<li>
<div>Do &#8220;alternative access mappings&#8221; in Operations-&gt;Global Configuration. Use FQDN of service!
</div>
<ul>
<li>Add FQDN for extranet access as well, going to extranet zone.
</li>
</ul>
</li>
</ul>
</li>
<li>
<div>Configure Search (only necessary if unable to map to an existing search service, above):
</div>
<ul>
<li>create service account
</li>
<li>run <span style="font-family:Courier New; font-size:10pt">stsadm -o spsearch -action attachcontentdatabase -databaseserver WINDB -databasename [DBname] -searchserver WSS3TEST </span>
				</li>
<li>run <span style="font-family:Courier New; font-size:10pt">stsadm -o spsearch -action start -farmserviceaccount campus\sa_wss3test_search -farm<br />servicepassword [password] -databaseserver WINDB -databasename [searchDB] </span>
				</li>
<li>install additional iFilters (?)
</li>
</ul>
</li>
<li>Install MindManager extension
</li>
<li>Perform Extranet config&#8230; have not modeled this yet so steps TBD.
</li>
<li>Fix self-service site creation link on home page, if necessary.
</li>
<li>Add announcements to sites/ad/
</li>
<li>Take down old Sharepoint server
</li>
<li>Appropriate production IP addresses
</li>
<li>Install site SSL cert from production site.
</li>
<li>
<div>Testing:
</div>
<ul>
<li>Open several sites just to see if general functionality is present
</li>
<li>
<div>Test URL redirection:
</div>
<ul>
<li>Sharepoint -&gt; <a href="https://sharepoint.uvm.edu">https://sharepoint.uvm.edu</a>
						</li>
<li>Extranet-sharepoint -&gt; <a href="https://sharepoint.uvm.edu">https://sharepoint.uvm.edu</a>
						</li>
<li>Works from off-campus?
</li>
</ul>
</li>
<li>
<div>Test incoming e-mail
</div>
<ul>
<li>Activate on a site library and discussion list, attempt to post with e-mail
</li>
</ul>
</li>
<li>
<div>Test workflow
</div>
<ul>
<li>Create a workflow, assign to library, make mods which would trigger workflow.
</li>
</ul>
</li>
<li>Test recycle bin operations.
</li>
<li>Test new site creation
</li>
<li>Test backup AND MORE IMPORTANTLY restore of a single site</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=67</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IT News Article on Vista Support at UVM…</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=66</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=66#comments</comments>
		<pubDate>Mon, 27 Nov 2006 21:46:58 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=66</guid>
		<description><![CDATA[Vista – The Road to Production at UVM

As everyone now knows, Vista has officially launched.  We don&#8217;t expect to see Vista shipping on new Dell systems until sometime in January, but that is really just around the corner.  Vista has dozens of significant new features and hundreds of smaller changes that will affect [...]]]></description>
			<content:encoded><![CDATA[<h1>Vista – The Road to Production at UVM<br />
</h1>
<p>As everyone now knows, Vista has officially launched.  We don&#8217;t expect to see Vista shipping on new Dell systems until sometime in January, but that is really just around the corner.  Vista has dozens of significant new features and hundreds of smaller changes that will affect the ways that we deploy, configure, and support Windows at UVM.  Now is the time to get ready for Vista!  The Enterprise Technology Services department has convened a new committee of the IT Standards group to ramp up IT staff at UVM for Vista support.
</p>
<p>This article will present an overview of many of the policy decision points, technology infrastructure implementation hurdles, and workstation security changes that will need to be made before we can realistically claim to support Vista at UVM.  Each section will contain an introduction to a key Vista technology, and will be followed by questions concerning its deployment and support.   Each section will conclude with links to external documentation whenever possible.
</p>
<p>Please consider how you can assist in this gargantuan effort.  The Vista support committee will be happy to accept your help with any of these tasks.
</p>
<p>The Vista support committee will continue to make information available to the UVM community though a few channels.  Email discussion will occur on the IT-Standards mailing list:<br /><a href="http://list.uvm.edu/archives/it-standards.html">http://list.uvm.edu/archives/it-standards.html</a><br />Major announcements will be posted to IT-Announce:<br /><a href="http://list.uvm.edu/archives/it-announce.html">http://list.uvm.edu/archives/it-announce.html</a><br />Notes from the IT Standards Vista task force can be found in the semi-official &#8220;UVM Wiki&#8221;:<br /><a href="https://wiki.uvm.edu/index.php?title=Windows_Vista">https://wiki.uvm.edu/index.php?title=Windows_Vista</a><br />Additional Vista work notes pertaining to support of Vista in the CAMPUS Active Directory domain can be found in the &#8220;Active Directory at UVM&#8221; Sharepoint site:<br /><a href="http://sharepoint.uvm.edu/sites/ad/">http://sharepoint.uvm.edu/sites/ad/</a>
	</p>
<h2>Vista product editions:<br />
</h2>
<p>Many people have been bewildered by the impressive array of Vista product editions.  The prospect of supporting many separate Vistas has many IT support staff concerned.  However, in practice we really will need concern ourselves only with four of the eight editions:  Home Basic, Home Premium, and Enterprise, and Ultimate.
</p>
<p>Both varieties of the &#8220;Home&#8221; editions lack corporate management features, and thus will not be deployed or supported on institutionally-owned systems.
</p>
<p>&#8220;Business&#8221; edition is the baseline managed Vista product, and it will be the default edition sold on business-class computers at retail stores.  However, Business edition will likely be a fringe product at UVM owing to the availability of the &#8220;Enterprise&#8221; edition.  Enterprise edition is available to Volume License customers (such as ourselves), and it includes the drive encryption feature known as &#8220;BitLocker&#8221;.
</p>
<p>&#8220;Ultimate&#8221; edition contains all of the features of all other editions, plus some multimedia tools not available elsewhere.  This is not likely to be seen much at UVM except perhaps in media labs, or on high-end workstations used by individuals with specialized multi-media needs.
</p>
<p>Thus it seems that &#8220;Home&#8221; editions will be fairly typical for student systems, while the vast majority of faculty/staff computers will run &#8220;Enterprise&#8221; edition.  However, we will need to verify the actual availability of the Enterprise product for Campus Agreement customers.  At this time, we still have not obtained access to all Vista products, so the seeming clarity of this decision may be called into question in a few weeks.
</p>
<p>A matrix of Vista product editions and their various features can be found at Paul Thurrott&#8217;s excellent &#8220;SuperSite for Windows&#8221;:<br /><a href="http://www.winsupersite.com/showcase/winvista_editions_final.asp">http://www.winsupersite.com/showcase/winvista_editions_final.asp</a>
	</p>
<h2>User Account Control (UAC):<br />
</h2>
<p>Under default conditions, new Vista deployments prompt the user to create a new user account with Administrator privileges.   A common criticism of Windows security has been that any user session running with Administrator-level privileges decreases the effective security of the system – a malware attack can take advantage of the rights of the current user to take complete control of the computer.
</p>
<p>However, a new feature of Vista known as User Account Control (UAC) can mitigate this vulnerability.  UAC forces administrative users to &#8220;sign-off&#8221; on any action that would require administrative access before that action occurs on the system.  This prompting occurs in a &#8220;Secure Desktop&#8221; environment that clearly delineates prompt from other running tasks.
</p>
<p>In a default installation, the user is given a simple Allow/Deny prompt any time an action taken on the system requires administrative privilege… even if the current user <em>is</em> an administrator. This mode of operations is called &#8220;admin approval mode&#8221;.   Alternatively, admin approval mode can be configured to force the user to enter his credentials for each administrative action (either in the form of a password, or an alternative authentication mechanism such as Smart Card for biometric scan).
</p>
<p>UAC also can be configured to allow non-privileged users an opportunity to enter the credentials of a privileged user when administrator rights are required.  This UAC mode of operation is called &#8220;Over-the-Shoulder Authentication&#8221;.  This functionality is similar to that of the familiar &#8220;run as&#8221; command originally introduced in Windows 2000, but it is more transparent to the end-user.
</p>
<p>Microsoft recommends that organizations restrict their users to run in standard (or non-privileged) mode, and refrain from sharing any administrative credentials with the user.  Although this seems sensible from a security perspective, this approach may not be workable from a support perspective.  If central IT does not take responsibility for the ongoing maintenance of software on end-user workstations, preventing staff from making administrator-level modifications to the computer can severely hamper user productivity.
</p>
<p><em>Unsolicited opinion alert… </em>  Microsoft put a lot of consideration into UAC.  Considerable user feedback on UAC was gathered and analyzed during the Vista beta program.  Microsoft used this feedback to refine the UAC defaults to their present state.  I think that in absence of a managed systems initiative at UVM, we should  use the UAC defaults for new Vista deployments.  Although this does mean that most users will continue to run as administrator, UAC still forces users to effectively run as standard users, and we should see corresponding improvements in session security.  Forcing departmental users to run as standard users without access to administrator credentials will put a strain on IT support staff for which they are not prepared.  And If we distribute a local Administrator password to the client, we really will see no improvement in system security over the default.  If we keep UAC running in default admin-approval mode, we also gain the freedom to disable the default &#8220;Administrator&#8221; account, this gaining some additional security from scripted attacks on that account.
</p>
<p>Given the broad impact of the UAC feature, it is unsurprisingly that Microsoft has made a mountain of UAC information available.  Below are some links that may be useful.<br />Technet has a good overview of UAC technology:<br /><a href="http://www.microsoft.com/technet/windowsvista/security/uac.mspx">http://www.microsoft.com/technet/windowsvista/security/uac.mspx</a><br />TechNet provides this article which may be of assistance to anyone attempting to understand the changes in Vista which affect users running in standard mode:
</p>
<p><a href="http://www.microsoft.com/technet/technetmag/issues/2006/11/UAC/default.aspx">http://www.microsoft.com/technet/technetmag/issues/2006/11/UAC/default.aspx</a>
	</p>
<p>Finally, the team at Microsoft which develops UAS has their own blog, which is loaded with useful links on specific UAC topics:
</p>
<p><a href="http://blogs.msdn.com/uac/">http://blogs.msdn.com/uac/</a>
	</p>
<p style="margin-left: 18pt">
<h3>Driver Installation Control</h3>
</p>
<p>Should we choose to restrict some or all users to run as &#8220;standard users&#8221;, we will need to be prepared for frequent support calls to assist in the installation of supplemental system drivers and software.  On Vista Enterprise and Ultimate editions  there is a supplemental feature of UAC which may mitigate some of these calls.  By using this &#8220;Driver Installation Control&#8221; feature,  the installation of drivers  from a &#8220;trusted store&#8221; can be delegated to standard users.  Also, whole classes of drivers (such as printers and removable media) can be flagged for installation by non-administrative users.<br />
 </p>
<p>More research needs to be conducted into the feasibility of this delegation feature.  Is the pool of hardware that our clients utilize predictable enough to make the implementation of a useful trusted driver store possible?  Also, if we delegate the ability to install whole classes of drivers to standard users, are we effectively crippling the security of the standard user session?
</p>
<p style="margin-left: 18pt">
 </p>
<p>Unfortunately, comprehensive documentation on this feature is hard to come by.  A basic overview of Driver Installation Control is available in the TechNet article previously referenced above:
</p>
<p style="margin-left: 18pt"><a href="http://www.microsoft.com/technet/technetmag/issues/2006/11/UAC/default.aspx">http://www.microsoft.com/technet/technetmag/issues/2006/11/UAC/default.aspx</a>
	</p>
<p>Hopefully, additional documentation will become available in the near future.
</p>
<h3>ActiveX  Installer Service<br />
</h3>
<p>Another supplemental feature of UAC makes it possible to delegate installation of ActiveX controls from &#8220;approved sites&#8221; to standard users.  This functaionality is made possible though the &#8220;ActiveX Installer Service&#8221;.  If we restrict many users to standard mode, we might want to consider maintaining a well-maintained list of common ActiveX controls (such as Adobe Flash and Adobe Reader) to reduce the frequency of requests for Over-the-Shoulder credential requests.
</p>
<p>As with the &#8220;Driver Installation Control&#8221; feature discussed above, research needs to be conducted into the practicality of this feature.  Maintenance of the trusted controls list will require dedication of central IT resources to the task.
</p>
<p>The UAC team blog has made this information available on the ActiveX Installer Service:<br /><a href="http://blogs.msdn.com/uac/archive/2006/09/13/752248.aspx">http://blogs.msdn.com/uac/archive/2006/09/13/752248.aspx</a><br />Unfortunately, as with the Driver Installation Control service discussed above, more technical information of the ActiveX Installer Service is hard to come by at this time.
</p>
<h2>BitLocker Volume Encryption<br />
</h2>
<p>BitLocker is a whole-volume encryption technology available in Vista Enterprise and Ultimate editions.  When activated, BitLocker will encrypt all of the contents of the system volume on a single Vista install.  By contrast, the Encrypting File System (EFS) which is available on Windows 2000 and XP encrypts only selected files and folders on an XP installation, but not the NTFS file system itself.  BitLocker effectively renders a hard unless it is loaded on its native workstation.  This feature could be extremely valuable in ensuring regulatory compliance (HIPPA, FERPA, etc.), and also could help to reduce the dangers caused by the loss or theft of institutionally-owned computers.
</p>
<p>A full discussion of the technology behind BitLocker is out of the scope of this article.  Links are provided at the end of this section for those who want to learn more about the hocus-pocus that makes BitLocker possible.
</p>
<p>In its most basic mode,  BitLocker checks OS file integrity and then allows any user to boot the operating system.  A BitLocker-protected system will not load if it has been removed from its native hardware, or if its boot files have been modified.  This level of protection is helpful, but an unauthorized user still could access data on the drive if they have physical access to the entire workstation (i.e. if the BitLocker-protected laptop computer is stolen, rather than just its hard drive).   In order to properly protect the encrypted drive data, you <em>must</em> add supplemental protection either by requiring input of a PIN number or presence of a USB key at boot time.   These supplemental protections make loading the OS a two-factor process.  You must possess both the BitLocker-protected computer <em>and </em>its USB decryption device <em>or</em> you must have knowledge of the decryption PIN.
</p>
<p>Note that BitLocker only protects the operating system volume.  Additional volumes cannot be encrypted by BitLocker, and so use of either EFS or a third-party encryption program will be required if there is a need to store sensitive data on multiple partitions.
</p>
<p>Before we can recommend or support BitLocker in the enterprise, we need to answer the following questions:
</p>
<ul>
<li>Will BitLocker impose enough of a performance penalty on older systems  that we do not want to restrict its use to current-generation systems?
</li>
<li>Will the hardware requirements of BitLocker makes its use impossible on legacy computers?
</li>
<li>What is the recovery model for lost volume encryption keys?  If a user loses his BitLocker USB key, his system will become unusable.  A Key Escrow will be required to permit system recovery in these instances.  According to BitLocker documentation, this Escrow is integrated into the product, but we will want to test the recovery process in several scenarios to ensure supportability.
</li>
<li>Given that BitLocker only protects the system volume and <em>not</em> the entire hard drive, is this an adequate technology?  Most client systems deployed at UVM have only a single partition, so this product limitation is of no consequence.  However, we will want to make sure that this will not be a problem for a significant portion of our clients, and have workarounds available of any staff who need them.
</li>
</ul>
<p>A fair high-level overview of the technology from Wikipedia:<br /><a href="http://en.wikipedia.org/wiki/BitLocker_Drive_Encryption">http://en.wikipedia.org/wiki/BitLocker_Drive_Encryption</a>
	</p>
<p>A more in-depth presentation is available on Microsoft TechNet:<br /><a href="http://www.microsoft.com/technet/windowsvista/security/bittech.mspx">http://www.microsoft.com/technet/windowsvista/security/bittech.mspx</a>
	</p>
<p>A step-by-step implementation also is available on TechNet:<br /><a href="http://www.microsoft.com/technet/windowsvista/library/c61f2a12-8ae6-4957-b031-97b4d762cf31.mspx">http://www.microsoft.com/technet/windowsvista/library/c61f2a12-8ae6-4957-b031-97b4d762cf31.mspx</a>
	</p>
<h2>Volume Licensing and Product Activation<br />
</h2>
<p>With Windows XP, Microsoft introduced the anti-piracy program known as &#8220;Windows Product Activation&#8221;.  To the great relief of system administrators everywhere, Volume License customers were not required to perform product activation.  With Vista, this has changed.  UVM will be required to activate all institutionally-owned installs of Vista from a central pool of activations.  Microsoft has made two methods of Vista product activation available to volume customers:  Multiple Activation Keys (MAK) and the Key Management Service (KMS).  Most organizations will need to use a combination of these methods.  It appears that we will want to use both methods as UVM as well.
</p>
<p>MAK activation is similar to the product activation methodology used in retail versions of XP.  The only difference is that the product key entered to allow activation can be used on more than one system.  MAK activation has the advantage of being one-time and permanent (you only need to key in the MAK into the Vista client once during the lifetime of the OS).  If we use MAK activation, we will need to closely guard our keys from casual distribution.  Any leak of our keys could cause rapid depletion of remaining available activations and a good deal of hassle in reactivating invalidated products.  Microsoft recommends that we never publically disclose the MAK to end-users, and has made a variety of tools available to allow organizations to remotely activate managed systems.  We do not yet have access to these tools, and will need time to test them before they can be implemented in production.
</p>
<p>If we choose to use KMS activation, we will need to install redundant KMS servers on campus and secure them.  Because KMS is designed to be a lightweight, easy-to-use service, it will activate any volume-licensed Vista client on the KMS network.  The advantage of KMS is that it requires intervention neither from the Vista client nor from the KMS administrator to function.   KMS activations are non-perpetual and will expire if a Vista client fails to check in for a six-month period.  This has the advantage of allowing the organization to reclaim activations for systems that have left our management jurisdiction <em>without intervention from </em>Microsoft.  It has the disadvantage that the KMS service is non-discriminatory; recall that KMS will activate <em>any </em>non-activated Vista client, even non-authorized privately-owned systems.  Thus, we will need to design a mechanism external to the KMS to limit access to the service to only those clients who are entitled to it.  We are just at the starting stages of planning this service, and do not have any coherent thoughts on how we might accomplish these service restrictions at this time.
</p>
<p>Vista Volume Activation Step-by-Step Guide:<br /><a href="http://www.microsoft.com/technet/windowsvista/plan/volact1.mspx">http://www.microsoft.com/technet/windowsvista/plan/volact1.mspx</a><br />Vista Volume Activation FAQ:<br /><a href="http://www.microsoft.com/technet/windowsvista/plan/faq.mspx">http://www.microsoft.com/technet/windowsvista/plan/faq.mspx</a><br />Webcast on Volume Activation in Higher Education environments:<br /><a href="http://sharepoint.uvm.edu/sites/ad/Vista%20support%20documentation/Vista_Activation.wmv">http://sharepoint.uvm.edu/sites/ad/Vista%20support%20documentation/Vista_Activation.wmv</a>
	</p>
<h2>IPv6<br />
</h2>
<p> All editions of Vista ship with the IPv6 protocol activated by default.  Microsoft engineers want to make sure that Vista users will be prepared for an IPv6-based Internet if and when IPv4 starts to get phased out.  Although the presence of the IPv6 stack should not create any real issues for end users, it will create some additional load on campus DNS servers, and may slow network access in some unusual circumstances.  Thus, we might want to consider deactivating IPv6 on the primary network interface of systems deployed at the University.
</p>
<h2>Application Compatibility Testing<br />
</h2>
<p>Fundamental changes in the architecture of Windows Vista make application compatibility a much greater problem than it was with Windows XP.  Many line-of-business applications used at UVM are not yet supported on Vista.  Until all supported applications are validated on Vista, central IT support of the operating system will be limited.
</p>
<p>ETS staff are maintaining a matrix of supported Windows software at UVM on the Sharepoint Active Directory site:<br /><a href="https://sharepoint.uvm.edu/sites/ad/Lists/Vista/AllItems.aspx">https://sharepoint.uvm.edu/sites/ad/Lists/Vista/AllItems.aspx</a><br />We will endeavor to keep this list up-to-date with application updates as they become available.
</p>
<h2>Image development<br />
</h2>
<p>Vista has shipped with an impressive Business Desktop Deployment (BDD) guide, which includes a powerful Automated Installation Kit (AIK).  One of the promises of these tools is the reduction of the number of images that need to be maintained by IT staff.  This is an exciting prospect as ETS maintains a library of over 80 Windows XP system images at present.  With this many images available, true image maintenance never really occurs.
</p>
<p>Many questions need to be answered before ETS will be ready to perform customized installations of Vista.  The remainder of this section will enumerate some of these questions, and some factors to be considered when answering them.
</p>
<ul>
<li>Can additional MS (i.e. Office 2007) and third-party (i.e. Antivirus, VPN) products be added as components in the Windows System Image Manager (SIM)?  If not, are these easy ways to automate the installation of additional software onto systems in the post-imaging process (i.e. using product installation command lines in the Unattended.XML file used by the Vista setup program)?
</li>
<li>How will we handle domain-joined vs. non-domain joined systems during image deployment?  The new network deployment tool known as Windows Deployment Services (WDS) automatically creates domain computer accounts at system installation time.  However, student systems are not joined to our CAMPUS domain, so this computer account never will be used.  It&#8217;s presence in the Active Directory domain creates a management problem.
</li>
<li>How will we handle deployment of systems which are not entitled to use of our Vista Volume License media (i.e. Student-owned systems)?  Can use easily deploy images based on Dell OEM media?  Should we eschew imaging in favor of a scripted installation of after-market software followed by a &#8220;reseal&#8221; operation?  Without answers to these questions, we will be blocked from re-imaging any student systems that are covered under a Volume License (i.e. all systems other than those maintained by the Business School).
</li>
<li>What software should be part of the standard configuration?  Is this software currently Vista-compatible?
</li>
<li>How will we maintain security patches on managed systems?  Our current patch management system for domain-joined computers (Windows Server Update Service, or WSUS) will not provide updates for Vista.  To maintain Vista systems we will need to upgrade to WSUSv3, which currently is available only in beta.  Another consideration is the need to provide updated drivers to Vista users.  Although the array of out-of-box drivers included in Vista is impressive, users of older hardware will need supplemental drivers immediately after installation.  Synchronizing these drivers into the WSUSv3 system will present an administrative challenge that we need to think through.
</li>
</ul>
<p>The Windows AIK contains extensive documentation on these topics, and is freely available for download at the Microsoft download site:<br /><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c7d4bc6d-15f3-4284-9123-679830d629f2&#038;DisplayLang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=c7d4bc6d-15f3-4284-9123-679830d629f2&#038;DisplayLang=en</a><br />A more lightweight download is the Windows AIK users guide for Vista, RC1.  Note that this is the <em>pre-release</em> documentation, and that it may contain differenced from the RTM documentation contained in the full AIK download:<br /><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=993c567d-f12c-4676-917f-05d9de73ada4&#038;DisplayLang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=993c567d-f12c-4676-917f-05d9de73ada4&#038;DisplayLang=en</a>
	</p>
<h2>Group Policy for Vista<br />
</h2>
<p>With the release of a new operating system, we need to deploy new operating systems management tools.  As we have previously mentioned, Vista has dozens of significant new features, many of which may need to be managed in our various Active Directory domains.
</p>
<p>Fortunately, Microsoft already has released Vista Group Policy extensions (ADMX) which, after being imported into a Windows 2003 Active Directory infrastructure, will allow very granular management of Vista features.  But as will all Group Policy changes, we will need to do extensive testing of all proposed management settings.  Improper configuration of Group policy can result in the effective crippling of all systems in a domain.
</p>
<p>A spreadsheet of ADMX Group Policy setting is available from the Microsoft download site:<br /><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=41dc179b-3328-4350-ade1-c0d9289f09ef&#038;DisplayLang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=41dc179b-3328-4350-ade1-c0d9289f09ef&#038;DisplayLang=en</a><br />Also, a Step-by-Step guide to the deployment of ADMX-based Group Policy setting can be found here:
</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=311f4be8-9983-4ab0-9685-f1bfec1e7d62&#038;DisplayLang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=311f4be8-9983-4ab0-9685-f1bfec1e7d62&#038;DisplayLang=en</a>
	</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=66</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://sharepoint.uvm.edu/sites/ad/Vista%20support%20documentation/Vista_Activation.wmv" length="7954587" type="video/x-ms-wmv" />
		</item>
		<item>
		<title>Pimp my Terminal Server</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=65</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=65#comments</comments>
		<pubDate>Tue, 14 Nov 2006 15:18:51 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Terminal Boredom]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=65</guid>
		<description><![CDATA[Brian Madden runs an awesome Blog on Terminal Services, both from MS and Citrix. I found this exceptional article which ennumerates free tools for TS management:http://www.brianmadden.com/content/content.asp?ID=466
With these most useful links:http://www.brainsys.be/default.asp?pg=15A kernel-level lockdown tool for Terminal Servershttp://threadmaster.tripod.com/A tool for throttling application threads on a TS.http://go.microsoft.com/?linkid=2606126Microsoft Print Driver redirection tool. Too COOL!
The Blog also contained these articles [...]]]></description>
			<content:encoded><![CDATA[<p>Brian Madden runs an awesome Blog on Terminal Services, both from MS and Citrix. I found this exceptional article which ennumerates free tools for TS management:<br /><a href="http://www.brianmadden.com/content/content.asp?ID=466">http://www.brianmadden.com/content/content.asp?ID=466</a></p>
<p>With these most useful links:<br /><a href="http://www.brainsys.be/default.asp?pg=15">http://www.brainsys.be/default.asp?pg=15</a><br />A kernel-level lockdown tool for Terminal Servers<br /><a href="http://threadmaster.tripod.com/">http://threadmaster.tripod.com/</a><br />A tool for throttling application threads on a TS.<br /><a href="http://go.microsoft.com/?linkid=2606126">http://go.microsoft.com/?linkid=2606126</a><br />Microsoft Print Driver redirection tool. Too COOL!</p>
<p>The Blog also contained these articles on Server 2003 &quot;fallback printer mappings&quot;: http://www.brianmadden.com/content/content.asp?ID=316 <a href="http://www.brianmadden.com/content/content.asp?ID=438 ">http://www.brianmadden.com/content/content.asp?ID=438 </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=65</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating &#8220;Casey&#8221; application to Terminal Server 2003</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=64</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=64#comments</comments>
		<pubDate>Thu, 09 Nov 2006 23:01:09 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Terminal Boredom]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=64</guid>
		<description><![CDATA[In preparing to cut-over our dying Citrix Terminal Server to modern Server 2003 R2 Terminal Servers, I have discovered an interesting application that was developed in-house called &#8220;Casey&#8221;.
The app has many external dependencies which I am trying to get functioning on the new TS boxes.
First challenge &#8211; MIT Kerberos for Windows.
Tricks here were:

Install a current [...]]]></description>
			<content:encoded><![CDATA[<p>In preparing to cut-over our dying Citrix Terminal Server to modern Server 2003 R2 Terminal Servers, I have discovered an interesting application that was developed in-house called &#8220;Casey&#8221;.</p>
<p>The app has many external dependencies which I am trying to get functioning on the new TS boxes.</p>
<p><b>First challenge &#8211; MIT Kerberos for Windows.</b><br />
Tricks here were:</p>
<ul>
<li>Install a current KFW version&#8230; old Citrix server has v2.1.1, but this will not run on Server 2003.  Current release is 3.0.0, which works fine
</li>
<li><i>but</i> I needed to make sure that an appropriately configured krb5.ini was available in the <i>application</i> install directory, and that the same file was removed from %windir% directory.
</li>
<li>Also, we needed the Kerberos app directory in the system PATH (which it is done by the installer, but requires logout/login to take effect).
</li>
</ul>
<p>Next challenge:<br />
<b>Oracle client for Windows</b><br />
We did the usual massive download of the latest Oracle client (450+ Mb), then did a runtime install.  I needed to copy the TNSNAMES.ORA from the old server to the NETWORK\ADMIN folder in the new oracle home.  ALSO, since this is a terminal server, I needed to recursively add the local &#8220;users&#8221; group to have R/X rights to the Oracle home, and I needed to grant users of the Casey app rights to &#8220;Create Global Objects&#8221; in the local security policy.<br />
<b>NOTE:</b> Currently I have a copy of tnsnames.ora in the application directory for every app that needs it&#8230; I reinstalled the Oracle client in &#8220;instant&#8221; mode&#8230; this install does not set an oracle home, so the client does not know where to search for tns information.  I need to set a home globally, then move the tnsnames.ora file out to the home&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=64</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating SQL 2000 databases to SQL 2005</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=62</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=62#comments</comments>
		<pubDate>Fri, 03 Nov 2006 18:16:28 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=62</guid>
		<description><![CDATA[So this should be fun&#8230; wehave a SQL Server, now to add databases&#8230;
MOM 2003

http://support.microsoft.com/?id=917615

Dell IT Assistant

http://www.dell.com/downloads/global/solutions/remote_sql_server_ita7.pdf

]]></description>
			<content:encoded><![CDATA[<p>So this should be fun&#8230; wehave a SQL Server, now to add databases&#8230;</p>
<p>MOM 2003</p>
<ul>
<li>http://support.microsoft.com/?id=917615</li>
</ul>
<p>Dell IT Assistant</p>
<ul>
<li>http://www.dell.com/downloads/global/solutions/remote_sql_server_ita7.pdf</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=62</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating Symantec AntiVirus management servers</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=63</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=63#comments</comments>
		<pubDate>Fri, 03 Nov 2006 18:05:58 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[AntiVirus, ProHeadache]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Virtualize your life]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=63</guid>
		<description><![CDATA[Well, it has been a fun week of migrating our Symantec AntiVirus servers from old, dying Dell 5th-gen PowerEdge servers onto bleeding-edge ESX virtual machines.  Here are some of the highlights:
Firewall changes:
In moving the servers, we had to assign new IP addresses in our protected 102.0 subnet.  Thus, I had to research the [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it has been a fun week of migrating our Symantec AntiVirus servers from old, dying Dell 5th-gen PowerEdge servers onto bleeding-edge ESX virtual machines.  Here are some of the highlights:</p>
<p><b>Firewall changes:</b><br />
In moving the servers, we had to assign new IP addresses in our protected 102.0 subnet.  Thus, I had to research the firewall exceptions required for access to the servers.  It seems the two required ports are:<br />
<b>TCP port 2967</b> (Inboud) &#8211; for Symantec AntiVirus service (RtVscan.exe), for AV definition push updates, and client monitoring<br />
<b>UDP port 38293 (Inbound)</b> &#8211; for Intel PDS service (pds.exe), allows retrieval of AV policy settings<br />
(initial rules were not correct, resulting in clients falling out of the mangement cycle)</p>
<p><b>LiveUpdate changes:</b><br />
I have been wanting to change the address of our internal LiveUpdate server for awhile&#8230; we are now using http://liveupdate.uvm.edu as the primary distribution server, with http://norton1.uvm.edu, http://norton2.uvm.edu, and http://liveupdate.symantecliveupdate.com as backups.  &#8220;liveupdate.uvm.edu&#8221; is a round-robin record that alternates between norton1 and norton2.  We are considering a load balancing implementation instead, but this probably is unnecessary given the presence of &#8220;backup servers&#8221; in the liveupdate.hst file distributed to clients.<br />
The only real problem here was that many of the file types in the LiveUpdate download directory were not of recognized &#8220;MIME Types&#8221; (i.e. they were not html, xml, zip, txt, audio/video, or MS Office files).  I had to add the following extensions to the IIS configs before clients could successfully retrieve updates:<br />
<b>.x00, .ieg, .m25, .ia64ap, .x86, .lin</b><br />
Once these MIME types were added and I had run an &#8220;iisreset&#8221;, LiveUpdate started to function normally.</p>
<p><b>Reporting Services</b><br />
Migration of reporting services is a total PIA.  I am trying to migrate the back-end database to an external SQL 2005 server from SQL 2000 in addition to re-installing the Reporting Services binaries on the new Norton2 server.  Here are the steps taken so far:</p>
<ul>
<li>detach the SymReport database from the old server, copy the files to the new server and attach
</li>
<li>change ownership of the database back to its original setting
</li>
<li>change the compatibility level of the database to &#8220;9.0&#8243; (SQL 2005)
</li>
<li>install the new SQL native client on the SAV hosts
</li>
<li>launch the Reporting services installer setup.exe.  Note: <i>do not launch from the autorun setup menu on the SAV CD!</i>  You must use the reporting services setup.exe or the advanced install options that we need will not be available.
</li>
<li>supply the credentials necessary to connect to the new SQL 2005 DB.  Also, specify <i>alternative credentials</i> for the db user, datasource name, and db name.  Use the DB name that was imported into the SQL 2005 server, and get the username that was previously used from the DB security tabs.
</li>
<li>After install, the reporting server should smoothly reconnect to the existing DB.  You can check that this is happening in the SQL activity monitor pane.
</li>
</ul>
<p>Unfortunately, ran into some problems with the Reporting Agent on the primary SAV server (it is running a remote agent).  The agent slowly hogs up all the memory on the box and is creating a CPU-bound condition (very bad news on an ESX host).  I has no success trying to troubleshoot the situation, and I was not having fun&#8230;  Using sysinternal tools I was able to watch the ReportingAgentLauncher thrash the heck out of some temp files that it was creating, but it never did anything with these files.  I believe there must have been some bad configuration information being fed to the SAV server from the reporting database, and that this was creating a loop.  So untimately I fixed the situation with the following &#8220;solution&#8221;:</p>
<ul>
<li>Uninstall reporting services
</li>
<li>Reinstall with a new database (thus abandoning old report data)
</li>
</ul>
<p>Voila&#8230; reporting services are running normall, we have our first production SQL 2005 database, and our second set of production ESX guests.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=63</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL 2005 setup on 2k3EE R2 cluster</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=61</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=61#comments</comments>
		<pubDate>Fri, 20 Oct 2006 17:57:42 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=61</guid>
		<description><![CDATA[Here are a few notes from my initial setup of SQL Server 2005, Standard Edition on our new IBM LS20 blades.
Our blades are equiped with 2x dual core AMD Opteron processors, two Qlogic FC HBAs, two Broadcom 57xx Ethernet ports, and 8Gb of RAM.  We thusly are using Server 2003 64-bit edition for the [...]]]></description>
			<content:encoded><![CDATA[<p>Here are a few notes from my initial setup of SQL Server 2005, Standard Edition on our new IBM LS20 blades.</p>
<p>Our blades are equiped with 2x dual core AMD Opteron processors, two Qlogic FC HBAs, two Broadcom 57xx Ethernet ports, and 8Gb of RAM.  We thusly are using Server 2003 64-bit edition for the install.  </p>
<p>Server install and setup:</p>
<ul>
<li>Installed OS from the BladeCenter Management Module, mounting Server 2003 ISO file from a neighboring blade&#8217;s web browser.  It is slow and ugly, but works.
</li>
<li>On first boot, we have no functioning network or FC HBA.  I downloaded the latest Broadcom application ISO from IBM, mounted via managment module, and ran the installer.  Also ran the &#8220;Broadcom Advanced Services&#8221; installer, then configured an Active/Active NIC team with VLANs for public networking (720) and the cluster heartbeat (4000).
</li>
<li>On the heartbeat network, we disable File and Print services, as well as Client for Microsoft Networks.  <b> Be sure to disable NetBIOS over TCP as well</b>.  LAN speed duplex does not appear to be configurable with this driver, but the switch ports have been set to negotiate for 1Gbps speed only, and PortFast is on to reduce port blocking time on initial NIC connect.
</li>
<li>Once networking is functional, I am able to transfer Qlogic HBA drivers to the server, and install them in the Device Manager control panel.
</li>
<li>We also transfer the DS4000 Storage Manager for Windows installer to the server (obtained from IBM.com), and then perform a client install of the software (this installs the RDAC multi-path I/O driver onto the server).
</li>
<li>Configure LUNs on the DS4800 storage server, configure LUN masking, and configure Zoning on the Brocade switches.  SAN volumes are now available on the server.
</li>
</ul>
<p>Cluster Configuration:</p>
<ul>
<li>Setup Microsoft Distributed Transaction Coordinator as a cluster resource as well.  Strictly follow instructions in MS KB301600.  Created 1Gb lun for this task &#8211; drive letter &#8220;T&#8221;
</li>
<li>Setup a cluster group for MSSQL server, add physical disk resources for MDF and LDF files (database and transaction logs) (Drives M: and L:)
</li>
</ul>
<p>SQL Setup:</p>
<ul>
<li>Ensure that you are logged on to only one node of the cluster &#8211; setup will fail if there are active RDP sessions on both cluster nodes.</li>
<li> From http://support.microsoft.com/?kbid=916760, create &#8220;Servers&#8221; and &#8220;Tools&#8221; directories for CD1 and CD2 contents, respectively.</li>
<li>Run SQL Setup from the primary node in the cluster, source files extracted to our primary file server using the base path \\<fileserver>\software\sql2005server.<br />
</fileserver></li>
<li>Start with an installation of Workstation Components only&#8230; need to run this install on each node separately
</li>
<li>Run SP1 patch on both nodes to update SQL Setup Support files.
</li>
<li>Install all remaining SQL components (Database, Analysis services, Reporting, Notification, Integration).  Select option to create failover cluster for Database and Analysis services, select drive M: as the destination for data files.
</li>
<li>Configure service accounts for <i>every service</i>
</li>
<li>Set server to &#8220;mixed&#8221; authentication mode for support of some of our apps
</li>
<li>Keep default collation settings (this uses SQL Collations for the Database service and Windows Collations (Latin_CS_AS) for Analysis Services).
</li>
<li><b>NOTE:</b>Reporting Services will have to be configured after SQL install
</li>
<li>enabled automatic error reporting but NOT usage statistics.
</li>
</ul>
<p>Next Steps:</p>
<ul>
<li>http://msdn2.microsoft.com/en-us/library/ms171338.aspx &#8211; Review use of clustering with Notification Services
</li>
<li>Review Reporting Services deployment options:
<ul>
<li>Separate Reporting Services Instance for each application that uses it?
</li>
<li> Central Reporting Services web cluster? (<i>Would require 2x additional Windows 2003 EE installs!</i>)
</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=61</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VMWare Virtual Infrastructure 3 and IBM Director</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=60</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=60#comments</comments>
		<pubDate>Wed, 13 Sep 2006 21:07:03 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Virtualize your life]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=60</guid>
		<description><![CDATA[Here are some links and notes regarding configuring VI 3 for use with IBM Director 5.10:
Good IBM Redbook on VI 3 and Director 5.10:
http://www.redbooks.ibm.com/redbooks/SG247190/wwhelp/wwhimpl/java/html/wwhelp.htm
More official guide to using ESX 2.5 with Director:
ftp://ftp.software.ibm.com/pc/pccbbs/pc_servers_pdf/managingvmware.pdf
Several management methods are available for ESX hosts.  The Redbook focuses on using the Director Agent for Linux.  The apparent reason for [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some links and notes regarding configuring VI 3 for use with IBM Director 5.10:</p>
<p>Good IBM Redbook on VI 3 and Director 5.10:<br />
http://www.redbooks.ibm.com/redbooks/SG247190/wwhelp/wwhimpl/java/html/wwhelp.htm</p>
<p>More official guide to using ESX 2.5 with Director:<br />
ftp://ftp.software.ibm.com/pc/pccbbs/pc_servers_pdf/managingvmware.pdf</p>
<p>Several management methods are available for ESX hosts.  The Redbook focuses on using the Director Agent for Linux.  The apparent reason for this are:</p>
<ul>
<li> Support for hardware alerting though the agent is becomming available with ESX3.  This was not the case with ESX2.5, so the agent did not do much for you.</li>
<li> &#8220;Level 0&#8243; agents are managed though SSH.  Under ESX 3, root login is not allowed via SSH, The linux agent relies on root access, so this agentless management method no longer works.
</li>
<li> SNMP is the only other management method, and who wants to go there?
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=60</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Road to Vista</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=59</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=59#comments</comments>
		<pubDate>Mon, 28 Aug 2006 14:43:36 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=59</guid>
		<description><![CDATA[Someone has to do it, and no one is, so I will be someone today rather than nobody&#8230;
I am developing a Vista compatability matrix for UVM-supported applications.  Hopefully others will pitch in on this effort in the not too distant future:
Vista &#8211; The Road to Production Software Matrix
]]></description>
			<content:encoded><![CDATA[<p>Someone has to do it, and no one is, so I will be someone today rather than nobody&#8230;</p>
<p>I am developing a Vista compatability matrix for UVM-supported applications.  Hopefully others will pitch in on this effort in the not too distant future:<br />
<a href="http://sharepoint.uvm.edu/sites/ad/Lists/Vista%20%20the%20Road%20to%20Production/AllItems.aspx">Vista &#8211; The Road to Production Software Matrix</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=59</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WDS &#8211; booting from UFD (USB Flash Drive)</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=58</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=58#comments</comments>
		<pubDate>Mon, 14 Aug 2006 22:32:05 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=58</guid>
		<description><![CDATA[Booting to WDS can be a bit pokey over lower-bandwidth connections.  Even over GbE, WDS boot images take significantly longer to load than the original RIS menu system.  Bummer!
I expedite loading of the &#8220;WDS Discover&#8221; boot image (this is the image that allows loading of WDS server images) I decided to try creating [...]]]></description>
			<content:encoded><![CDATA[<p>Booting to WDS can be a bit pokey over lower-bandwidth connections.  Even over GbE, WDS boot images take significantly longer to load than the original RIS menu system.  Bummer!</p>
<p>I expedite loading of the &#8220;WDS Discover&#8221; boot image (this is the image that allows loading of WDS server images) I decided to try creating a bootable &#8220;WDS Discover&#8221; image on UFD.  The Vista Beta 2 BDD (and included AIK) include instructions on generating WinPE-bootable UFDs.  However, there are two problems:</p>
<ul>
<li>The instructions do not work&#8230; the resuling UFD is not bootable!</li>
<li>The image generated results only in a standard WinPE environment, not a WDS deployment GUI</li>
</ul>
<p>Here are the missing bits fo informaiton:<br />
When formatting a UFD for WinPE, you must set the formatted partition as &#8220;active&#8221;.  To do this, plug your UFD into a Vista OS:<br />
<code>diskpart<br />
select disk 1<br />
select partition 1<br />
format fs=ntfs override quick<br />
active<br />
assign </code><br />
Failing to make the UFD partition &#8220;active&#8221; will result in an unbootable UFD.  Note that the Vista build 5472 AIK includes these updated instructions.</p>
<p>In order to make a UFD-bootable WDS Discover image, you need to use the &#8220;WDSUtil&#8221; CLI (with /new-discoverimage or /new-captureimage options) or WDS MMC GUI.<br />
Here are the steps:</p>
<ol>
<li>Use ImageX to extract the Windows Vista SETUP image from the boot.wim that ships with the Vista DVD (e.g. &#8220;imagex /apply [path to boot.wim>] 2 [path to apply image]&#8220;)
</li>
<li>Apply custom drivers (e.g. &#8220;peimg /inf: [path to driver] [path to applied image "windows" directory]&#8220;)
</li>
<li>Capture the custom image (e.g. &#8220;imagex /boot /compress maximum /capture [path to applied image] [wim file name] [image name]&#8220;)
</li>
<li>Import the image into WDS using the GUI or CLI</li>
<li>Use WDSUtil with /new-CaptureImage or /new-DiscoverImage and /Image:[image Name] to create a new capture or discovery image based on the custom WIM generated above.</li>
</ol>
<p>You can now write your image to CD (using &#8220;oscdimg&#8221;) or to UFD (using the BDD/AIK instructions).</p>
<p><b>NOTE!</b> If you expect to be able to capture using the WDS Capture image, you must first run &#8220;sysprep&#8221; on the OS in question.  The WDS Image Capture Wizard will not work without sysprep!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=58</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resetting corrupted performance counters</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=56</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=56#comments</comments>
		<pubDate>Fri, 28 Jul 2006 14:22:03 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=56</guid>
		<description><![CDATA[Performance counters on SYSIMG1 became corrupted recently.  The MS KB is full of strange and dated advice on the subject.  Here is the most recent article I could find:
http://support.microsoft.com/kb/300956/en-us
It is full of tedious and laborious steps to manually repair the performance counter object mappings.  Towards the bottom of the article, we learn [...]]]></description>
			<content:encoded><![CDATA[<p>Performance counters on SYSIMG1 became corrupted recently.  The MS KB is full of strange and dated advice on the subject.  Here is the most recent article I could find:<br />
http://support.microsoft.com/kb/300956/en-us</p>
<p>It is full of tedious and laborious steps to manually repair the performance counter object mappings.  Towards the bottom of the article, we learn that on Server 2003, the following console command will restore corrupted counters, thus obviating the need for any manual config steps:<br />
<code>LODCTR /R</code></p>
<p>This will re-read all of the perfXXX.ini files in the system32 directory and rebuild the counter data.  If you have any apps running that do not house their .ini files in &#8220;system32&#8243; you will need to load those manually.</p>
<p>In any event, the above command fixed the problem on SYSIMG1 quite nicely.  Thanks, MS!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=56</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RIS &#8211; adding &#8220;text mode&#8221; storage drivers</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=55</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=55#comments</comments>
		<pubDate>Tue, 25 Jul 2006 20:48:10 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=55</guid>
		<description><![CDATA[We had some fun adding Intel SATA drivers for the new Intel chipsets onto our RIS server.  These drivers are required in order to deploy RIPrep-generated images onto the new Gateway M285 Tablet PCs.
Here were the key steps, as outlined in this TechNet Article:
http://technet2.microsoft.com/WindowsServer/en/library/96969653-bd0f-44d7-af4f-f95c3016d2be1033.mspx?mfr=true&#8221;


In the &#8220;flat&#8221; image for the platform to be imaged (in [...]]]></description>
			<content:encoded><![CDATA[<p>We had some fun adding Intel SATA drivers for the new Intel chipsets onto our RIS server.  These drivers are required in order to deploy RIPrep-generated images onto the new Gateway M285 Tablet PCs.</p>
<p>Here were the key steps, as outlined in this TechNet Article:<br />
<a href="http://technet2.microsoft.com/WindowsServer/en/library/96969653-bd0f-44d7-af4f-f95c3016d2be1033.mspx?mfr=true">http://technet2.microsoft.com/WindowsServer/en/library/96969653-bd0f-44d7-af4f-f95c3016d2be1033.mspx?mfr=true&#8221;</a>
</p>
<ul>
<li>In the &#8220;flat&#8221; image for the platform to be imaged (in our case, the flat &#8220;Tablet PC 2005&#8243; image) create a $OEM$ directory with a &#8220;textmode&#8221; subdirectory.
</li>
<li>Copy the SATA storage driver into the textmode folder.  Make sure that the entry in the [disk] section of the TXTSETUP.OEM file in this directory does not contain a &#8220;relative path&#8221; on the end of entry. (i.e.  the line should end with a simple &#8220;\&#8221;).
</li>
<li>Copy the exact text of the driver name from the [scsi] section into the [MassStorageDrivers] section of the Flat image&#8217;s i386\templates\ntstndrd.sif file.  Also add the following lines:<br />
<code>#Added this<br />
OemPnPDriversPath=”\\%SERVERNAME%\RemInst\%INSTALLPATH%\$OEM$\textmode”;\Drivers\Nic<br />
DUDisable=no<br />
DriverSigningPolicy=ignore</p>
<p>[MassStorageDrivers]<br />
"Intel(R) 82801GBM SATA AHCI Controller (Mobile  ICH7M)"="OEM"</p>
<p></code>
</li>
<li>Also in the [unattended] section, set the OemPreinstall option to &#8220;yes&#8221;
</li>
</ul>
<p>Some interesting things that we discovered in making this work:</p>
<ol>
<li>PNP NIC drivers that are accessed during the initial NDIS driver load can be added to ANY flat image on the server.  A Tablet PC will access drivers from the &#8220;XP SP2&#8243; Flat image.  If you have more than one version of the same driver in different folders, only the first alphabetically listed driver will be made avaialble to RIS net boot clients.
</li>
<li>Text-mode setup drivers (which generally are mass storage drivers) are loaded when setup.exe starts in earnest, <i>after</i> the NIC load process.  These drivers <i>must</i> be available in the $OEM$ directory of the platform for which you are loading an image (RIPrep or Flat).  If you are loading an RIPrep image for a Tablet PC, you must have appropriate drivers available in the Tablet PC flat image.
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=55</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WDS testing &#8211; firewall requirements</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=54</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=54#comments</comments>
		<pubDate>Mon, 24 Jul 2006 19:28:58 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=54</guid>
		<description><![CDATA[I have installed an instance of WDS on our current production RIS server.  No worries, RIS functionality is still present, fully unadulterated.
However, I seem to be having problems getting a PXE boot client in my office to load.  PXE boot works, and the WIM image gets loaded onto the workstation.  However, I [...]]]></description>
			<content:encoded><![CDATA[<p>I have installed an instance of WDS on our current production RIS server.  No worries, RIS functionality is still present, fully unadulterated.</p>
<p>However, I seem to be having problems getting a PXE boot client in my office to load.  PXE boot works, and the WIM image gets loaded onto the workstation.  However, I get a &#8220;unable to communicate with the WDS server&#8221; error after the GUI loads.</p>
<p>Some Ethereal packet captures show that the client is sending a port map request to the server, and the server is telling the client to connect to port &#8220;5040&#8243;.  This value is not in our range of pre-allocated RPC ports, so I assumed that this port is hard-coded into the WDS service.  </p>
<p>Sure enough, a quick registry search reveals that this is a parameter of the WDSServer service:<br />
<code>\\HKLM\Software\System\CurrentControlSet\Services\WDSServer\Parameters\RpcPort</code><br />
The default value was &#8220;5040&#8243;.  I changed it to be within our range of excepted RPC ports, then ran:<br />
<code> net stop WDSServer<br />
net start WDSServer</code></p>
<p>Lo and behold, I can now boot to WDS and install Vista.  Cool.  Now they just need to get the bugs out and give us the RTM WIM files.  We will be ready!</p>
<p><b>Note:</b>  Net booting the install WIM is kinda pokey.  I think I will try making a bootable USB drive next.  I think this might be our best option for mass distribution.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=54</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deep Thought of the Day</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=53</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=53#comments</comments>
		<pubDate>Tue, 18 Jul 2006 20:32:19 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Thoughts and Reflections]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=53</guid>
		<description><![CDATA[&#8220;How long do we need to wait to be confident that software that isn&#8217;t
installed won&#8217;t crash?&#8221;
-Geoff Duke,
in written communication to a Dell support &#8220;engineer&#8221;
]]></description>
			<content:encoded><![CDATA[<p>&#8220;How long do we need to wait to be confident that software that isn&#8217;t<br />
installed won&#8217;t crash?&#8221;</p>
<p>-Geoff Duke,<br />
in written communication to a Dell support &#8220;engineer&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=53</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WSS v3 upgrade testing</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=52</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=52#comments</comments>
		<pubDate>Fri, 07 Jul 2006 21:22:36 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=52</guid>
		<description><![CDATA[I am attempting to model the upgrade of our existing WSS 2.0 site to 3.0 using the current &#8220;beta 2&#8243; release.  Fun so far:

The installer for WSS 3 refuses to run claiming that I need Workflow Foundation v2.2 installed and ASP.NET 2.0 enabled on my site.  Workflow foundation can be downloaded from www.microsoft.com/downloads. [...]]]></description>
			<content:encoded><![CDATA[<p>I am attempting to model the upgrade of our existing WSS 2.0 site to 3.0 using the current &#8220;beta 2&#8243; release.  Fun so far:</p>
<ul>
<li>The installer for WSS 3 refuses to run claiming that I need Workflow Foundation v2.2 installed and ASP.NET 2.0 enabled on my site.  Workflow foundation can be downloaded from www.microsoft.com/downloads.  The ASP.NET issue was a bit more puzzling, since I throught I already had .NET 2.0 installed on the test server.  A quick investigation revealed that it was installed, but not configured for or activated in IIS.  I just ran the .NET framework installer <i>again</i> and now the installer runs.</li>
<li>all of the pre-release documentation and the current &#8220;readme&#8221; file are available at http://www.microsoft.com/downloads.  Irritating that they did not come with the beta 2 download&#8230; I had to hunt them down.</li>
<li>After install, configuration failed.  I had to run the &#8220;prescan&#8221; tool manually.  The report that was generated showed that two sites were &#8220;broken&#8221;.  Interestingly, I could not find any evidence that these sites actially exist when using either &#8220;stsadm -o enumsites&#8221; or the &#8220;Sharepoint Explorer&#8221; utility.  Some googling revealed the concept of &#8220;site oprhans&#8221;:<br />
http://blogs.msdn.com/krichie/archive/2005/10/25/484889.aspx<br />
It is claimed that there is a tool available to fix this:<br />
http://support.microsoft.com/kb/918743/<br />
But as luck would have it our MS Essential Support has lapsed and Procuremetn has not processed the service renewal request.  Dang!  I will just fix the problem manually on the test server, but we will need that hotfix for Prod!  Manual fix entails removing the content database from the virtual server, then adding it back in.  This forces the Config database to remove all current entries, then recreate them.</li>
<li>next problem is vexing&#8230; I get this error during the upgrade process:<br />
An exception of type System.Runtime.InteropServices.COMException was thrown.  Additional exception information: The Indexer property in the MSSConfiguration table is not set to the name of this machine.<br />
<code>System.Runtime.InteropServices.COMException (0xC0041229): The Indexer property in the MSSConfiguration table is not set to the name of this machine.</code><br />
I just can&#8217;t figure this one yet.  Google is worthless.
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=52</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WinPE2 with BDD 3.0 beta</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=51</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=51#comments</comments>
		<pubDate>Mon, 26 Jun 2006 19:08:29 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=51</guid>
		<description><![CDATA[MS has released new builds of the Vista deployment tools with the &#8220;Business Desktop Deployment Solutions Accelerator 3.0 Beta&#8221; (AKA BDD 3.0 beta.  This pack includes the &#8220;Windows AIK&#8221; that we have looked at previously.  Good!  The last version needed a lot of improvement.  
Here are the steps that I have [...]]]></description>
			<content:encoded><![CDATA[<p>MS has released new builds of the Vista deployment tools with the &#8220;Business Desktop Deployment Solutions Accelerator 3.0 Beta&#8221; (AKA BDD 3.0 beta.  This pack includes the &#8220;Windows AIK&#8221; that we have looked at previously.  Good!  The last version needed a lot of improvement.  </p>
<p>Here are the steps that I have followed to build a new ISO, usable in VMWare Server Beta and VMWare Workstation 5.5&#8230;</p>
<ol>
<li>Install the BDD 3.0 pack
</li>
<li>from c:\program files\bdd vista\waik, install the WAIK using &#8220;startcd.exe&#8221;.
</li>
<li>Using the included CHM files, follow the &#8220;Walkthough: Create a bootable Windows PE RAM Disk on CD-ROM&#8221;:
<ol>
<li>from c:\program files\windows aik\tools\petools, run:<br /><code>copype x86 c:\winpe_x86</code>
</li>
<li>step 2 in this procedure claims that you can copy EXE files (such as ImageX.exe) to c:\winpe_x86\iso, and they will then be included in the image&#8230; <br />
<b>NOTE:</b> <i> These files show up on the &#8220;D:&#8221; drive after booting into WinPE.  The reason for putting additional tools here is to reduce the memory footprint of WinPE.  Everything in the X: drive is loaded into RAM at boot time!<br />
</i></li>
<li>before actually making the iso, apply some customizations:
<ol>
<li>Mount the WinPE WIM file:<br /><code>imagex /apply c:\winpe_x86\winpe.wim 1 c:\winpe_x86\mount</code>
</li>
<li>Install drivers: <br />
<code>peimg /inf=c:\drivers\vmware\vmxnet\win2k\vmware-nic.inf c:\winpe_x86\mount\Windows</code><br />
<code>C:\winpe_x86_2>peimg /inf=c:\drivers\vmware\vmxnet\win2k\vmxnet.inf c:\winpe_x86\mount\Windows</code>
</li>
<li>Install optional components <br />
<code>peimg /install=*srt* c:\winpe_x86\mount\windows</code><br />
<code>peimg /list c:\winpe_x86\mount\windows</code><br />(shows currently installed optional packages</li>
<li>If you want ImageX (or any other utilities) in the RAM disk, put them there now:<br />
Copy files from c:\program files\windows aik\tools\x86 to c:\winpe_x86\mount\windows\system32 <br />
(This includes the imagex.exe utility.  I suppose these really should go in the &#8220;programs&#8221; directory, to separate them from the actual OS files, but this way they are in the path so the idiot end user does not have to know where the ImageX utility is, just how to use it).</li>
<li>Prep the PE image (don&#8217;t ask me why, it is in the directions!):<br />
<code>peimg /prep c:\winpe_x86\mount\Windows </code></li>
<li>capture the mounted PE instace to a WIM:<br />
<code>imagex /append c:\winpe_x86\mount c:\winpe_x86\winpe.wim "MyWinPE" /verify</code><br />
(Actually appends this instance to an existing WIM)</li>
<li>Export the appended image to a bootable WIM file:<br />
<code>imagex /boot /export c:\winpe_x86\winpe.wim 2 c:\winpe_x86\ISO\sources\boot.wim</code><br />
(<b>NOTE:</b> the instructions on &#8220;custom images&#8221; fails to mention that you <i>must</i> use the &#8220;/boot&#8221; flag here!)</li>
<li>Create the ISO:<br />
<code>oscdimg -n –bc:\winpe_x86\etfsboot.com c:\winpe_x86\ISO c:\winpe_x86\winpe_x86.iso </code></li>
</ol>
</li>
</ol>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=51</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oliver&#8217;s self-introspection</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=50</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=50#comments</comments>
		<pubDate>Mon, 26 Jun 2006 18:18:22 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Thoughts and Reflections]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=50</guid>
		<description><![CDATA[&#8220;Moira is into dolls.  I am into money.&#8221;
The boy would do his grandfather proud.
]]></description>
			<content:encoded><![CDATA[<p>&#8220;Moira is into dolls.  I am into money.&#8221;</p>
<p>The boy would do his grandfather proud.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=50</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oliver&#8217;s profound grip on the English language</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=49</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=49#comments</comments>
		<pubDate>Fri, 23 Jun 2006 20:09:48 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Thoughts and Reflections]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=49</guid>
		<description><![CDATA[Dad:
&#8220;No Oliver, you need to have some real food for dinner.&#8221;
Oliver:
&#8220;Not plastic food?&#8221;
]]></description>
			<content:encoded><![CDATA[<p>Dad:<br />
&#8220;No Oliver, you need to have some real food for dinner.&#8221;</p>
<p>Oliver:<br />
&#8220;Not plastic food?&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=49</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live from TechEd 2006</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=48</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=48#comments</comments>
		<pubDate>Sun, 11 Jun 2006 14:05:42 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[MS TechEd 2006]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=48</guid>
		<description><![CDATA[Ha!
Anyway, here we are at the TechEd conference 2006&#8230; my first major geek convention.  Free backpacks, giveaways, freebies, and MS TechEd 2006 water bottles.  Actually, I am pretty excited.  
I am waiting for the &#8220;Scripting for IT Pros who can&#8217;t write code&#8221; class to begin.  Speaker is Corey J. Hynes of [...]]]></description>
			<content:encoded><![CDATA[<p>Ha!</p>
<p>Anyway, here we are at the TechEd conference 2006&#8230; my first major geek convention.  Free backpacks, giveaways, freebies, and MS TechEd 2006 water bottles.  Actually, I am pretty excited.  </p>
<p>I am waiting for the &#8220;Scripting for IT Pros who can&#8217;t write code&#8221; class to begin.  Speaker is Corey J. Hynes of HynesITe, Inc.</p>
<p>First interesting thing&#8230; the PPT slides on the screen were loaded from a desktop that was labeled &#8220;PPT Server&#8221;.  Is there such a thing?  Perhaps that is something we should look into for Professors and Execs.  If nothing else, we could easily sell Sharepoint as a PPT server as an initial justification.</p>
<p><b> Note: </b> It was a link to a Sharepoint Document Library, duh.  I guess it had not occured to me how convenient Sharepoint would be from a presenter&#8217;s perspective.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=48</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script &#8211; cleaning up inactive computer objects</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=47</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=47#comments</comments>
		<pubDate>Mon, 05 Jun 2006 20:54:44 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Scripting the Windows Experience]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=47</guid>
		<description><![CDATA[Here is another weenie script that I put together to clean up expired computer objects in our AD domain.&#160; Afer some experimantiation, I settled on using the &#34;oldcmp.exe&#34; tool from the excellent www.joeware.com site, rather than a combination of &#34;dequery&#34; &#34;dsrm&#34; and &#34;dsmod&#34; commands.&#160; The reason for going third-party here is that I could not [...]]]></description>
			<content:encoded><![CDATA[<p>Here is another weenie script that I put together to clean up expired computer objects in our AD domain.&nbsp; Afer some experimantiation, I settled on using the &quot;oldcmp.exe&quot; tool from the excellent <a href=www.joeware.com>www.joeware.com</a> site, rather than a combination of &quot;dequery&quot; &quot;dsrm&quot; and &quot;dsmod&quot; commands.&nbsp; The reason for going third-party here is that I could not find a particularly elegant way of handling error codes from dsmod and dsrm.&nbsp; If my &quot;dsquery&quot; returned no results, then &quot;dsmod&quot; gets upset and returns a non-zero error code.&nbsp; I then need so fancy &quot;IF&quot; statements to handle all possible error codes of interest.&nbsp; Oldcmp is just cleaner in this regard, and makes more useful output to boot.</p>
<p>Anyway, here is the code:&nbsp;</p>
<p><code>REM Inactive Computer Object Cleanup Script<br />
REM v1.0<br />
REM JGM, 2006-06-05</p>
<p>:start<br />
@ECHO off<br />
ECHO Inactive Computer Object Cleanup Script Report &gt; .\logs\inactive_cmp_cleanup.rpt<br />
ECHO= &gt;&gt; .\logs\inactive_cmp_cleanup.rpt</p>
<p>REM Each of the next six IF commands will exit the script to a line-specific error report script section.  The condition for determining that an error has occured is if the %errorlevel% variable returned by a command does not equal zero.<br />
REM Disables inactive computers using the following criteria:<br />
REM Default &quot;Workstation&quot; OU: Inactive for 26 weeks (1/2 year), &quot;RIS-Workstations&quot; OU: Inactive for 4 weeks (~1 months), all objects in &quot;Resources&quot; OU: Inactive for 26 weeks (3/4 year)<br />
oldcmp -disable -unsafe -forreal -age 183 -format csv -delim TAB -llts -nolc -b ou=workstations,dc=campus,dc=ad,dc=uvm,dc=edu -file .\logs\wksDisRpt.tsv &gt; .\logs\inactive_cmp_cleanup.log<br />
IF %ERRORLEVEL% NEQ 0 THEN goto wksDisEr<br />
oldcmp -disable -unsafe -forreal -age 30 -format csv -delim TAB -llts -nolc -b ou=ris-workstations,ou=cit,dc=campus,dc=ad,dc=uvm,dc=edu -file .\logs\risDisRpt.tsv &gt;&gt; .\logs\inactive_cmp_cleanup.log<br />
IF %ERRORLEVEL% NEQ 0 THEN goto risDisEr<br />
oldcmp -disable -unsafe -forreal -age 183 -format csv -delim TAB -llts -nolc -b ou=resources,dc=campus,dc=ad,dc=uvm,dc=edu -file .\logs\resDisRpt.tsv &gt;&gt; .\logs\inactive_cmp_cleanup.log<br />
IF %ERRORLEVEL% NEQ 0 THEN goto resDisEr</p>
<p>REM Removes inactive computers using the following criteria:<br />
REM Default &quot;Workstation&quot; OU: Inactive for 39 weeks (3/4 year), &quot;RIS-Workstations&quot; OU: Inactive for 13 weeks (~3 months), all objects in &quot;Resources&quot; OU: Inactive for 39 weeks (3/4 year)<br />
oldcmp -delete -unsafe -forreal -age 274 -format csv -delim TAB -llts -nolc -b ou=workstations,dc=campus,dc=ad,dc=uvm,dc=edu -file .\logs\wksDelRpt.tsv &gt;&gt; .\logs\inactive_cmp_cleanup.log<br />
IF %ERRORLEVEL% NEQ 0 THEN goto wksDelEr<br />
oldcmp -delete -unsafe -forreal -age 90 -format csv -delim TAB -llts -nolc -b ou=ris-workstations,ou=cit,dc=campus,dc=ad,dc=uvm,dc=edu -file .\logs\risDelRpt.tsv &gt;&gt; .\logs\inactive_cmp_cleanup.log<br />
IF %ERRORLEVEL% NEQ 0 THEN goto risDelEr<br />
oldcmp -delete -unsafe -forreal -age 274 -format csv -delim TAB -llts -nolc -b ou=resources,dc=campus,dc=ad,dc=uvm,dc=edu -file .\logs\resDelRpt.tsv &gt;&gt; .\logs\inactive_cmp_cleanup.log<br />
IF %ERRORLEVEL% NEQ 0 THEN goto resDelEr</p>
<p>goto noErr</p>
<p>REM Following six sections will append a section-specific error message to the report file, then exit to the &quot;errRpt&quot; section of the script.<br />
:wksDisEr<br />
ECHO Something went terribly wrong in the workstation OU disable process &gt;&gt; .\logs\inactive_cmp_cleanup.rpt<br />
goto errRpt<br />
:risDisEr<br />
ECHO Something went terribly wrong in the RIS-Workstations OU disable process &gt;&gt; .\logs\inactive_cmp_cleanup.rpt<br />
goto errRpt<br />
:resDisEr<br />
ECHO Something went terribly wrong in the Resources OU disable process &gt;&gt; .\logs\inactive_cmp_cleanup.rpt<br />
goto errRpt<br />
:wksDelEr<br />
ECHO Something went terribly wrong in the workstation OU deletion process &gt;&gt; .\logs\inactive_cmp_cleanup.rpt<br />
goto errRpt<br />
:risDelEr<br />
ECHO Something went terribly wrong in the RIS OU deletion process &gt;&gt; .\logs\inactive_cmp_cleanup.rpt<br />
goto errRpt<br />
:resDelEr<br />
ECHO Something went terribly wrong in the Resources OU deletion process &gt;&gt; .\logs\inactive_cmp_cleanup.rpt<br />
goto errRpt</p>
<p>:errRpt<br />
REM Append the script log to the error report, set status of the script to &quot;FAILED&quot;<br />
ECHO Errors were reported.  Analyze the logs below for clues. &gt;&gt; .\logs\inactive_cmp_cleanup.rpt<br />
SET ScriptStat=FAILED<br />
goto mailRpt</p>
<p>:noErr<br />
REM Append a 'no error' message to the report file, set script status to &quot;SUCCESS&quot;<br />
ECHO No errors were reported in the process.  Activity report follows: &gt;&gt; .\logs\inactive_cmp_cleanup.rpt<br />
SET ScriptStat=SUCCESS<br />
goto mailRpt</p>
<p>:mailRpt<br />
REM Append the reports from each &quot;oldcmp&quot; run into the consolidated report:<br />
type .\logs\inactive_cmp_cleanup.log &gt;&gt; .\logs\inactive_cmp_cleanup.rpt<br />
REM use external &quot;blat&quot; tool to mail the generated report file to concerned parties:<br />
blat .\logs\inactive_cmp_cleanup.rpt -to jgm@uvm.edu,gcd@uvm.edu,pjp@uvm.edu -subject &quot;%ScriptStat% - Inactive Computer Account Cleanup Script&quot;</p>
<p>:end<br />
ECHO All done!</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=47</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>STS v3 beta 2 now avialable for public download</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=46</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=46#comments</comments>
		<pubDate>Fri, 26 May 2006 21:38:15 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=46</guid>
		<description><![CDATA[W00t!&#160; Installing SPS as part of project server was more than a bit messy.&#160; www.microsoft.com/office/preview now has STSv3 available as an independent download.&#160; I am installing it right now (I feel like a kid in a candy shop&#8230;)
]]></description>
			<content:encoded><![CDATA[<p>W00t!&nbsp; Installing SPS as part of project server was more than a bit messy.&nbsp; www.microsoft.com/office/preview now has STSv3 available as an independent download.&nbsp; I am installing it right now (I feel like a kid in a candy shop&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=46</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sharepoint Services v3</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=42</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=42#comments</comments>
		<pubDate>Tue, 23 May 2006 21:27:49 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=42</guid>
		<description><![CDATA[In addition to looking at Project Server 2007 (which looks overly complicated&#8230; and still required IE for full-featured web access&#8230; bleagh!), I have been eyeballing STS3, the next version of Sharepoint.
Very Cool!
Here are some first impressions/highlights:

Default template for Blogs and Wikis


The Wiki resembles MediaWiki (it uses the same [[link]] syntax.&#160; The Blog looks much like [...]]]></description>
			<content:encoded><![CDATA[<p>In addition to looking at Project Server 2007 (which looks overly complicated&#8230; and still required IE for full-featured web access&#8230; bleagh!), I have been eyeballing STS3, the next version of Sharepoint.</p>
<p><em>Very Cool!</p>
<p></em>Here are some first impressions/highlights:</p>
<ul>
<li>Default template for Blogs and Wikis</li>
</ul>
<ul>
<li>The Wiki resembles MediaWiki (it uses the same [[link]] syntax.&nbsp; The Blog looks much like any other Blog, but with the in-line posting and editing features that make Sharepoint so easy to use.&nbsp; The addition of Single sign-on and Directory Services integration make the service even easier to manage.</li>
</ul>
<li>Directory lookup tool for groups and users (you no longer need to know the NetID or department group name)</li>
<li>Incoming mail support (errgh&#8230; this is going to get ugly&#8230; people will want this feature and it does not appear to work without Exchange!)</li>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=42</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WDS &#8211; Migrating images from RIS to WDS</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=32</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=32#comments</comments>
		<pubDate>Tue, 23 May 2006 19:40:12 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=32</guid>
		<description><![CDATA[WDS has a native utility for converting legacy RIS images to WIMs.  I am trying it using the Spring 2006 CAP image.
&#160;Oh look&#8230; it does not work!&#160; I have submitted a bug using the Beta reporting tool.&#160; Hopefully someone will pick it up. 
]]></description>
			<content:encoded><![CDATA[<p>WDS has a native utility for converting legacy RIS images to WIMs.  I am trying it using the Spring 2006 CAP image.</p>
<p>&nbsp;Oh look&#8230; it does not work!&nbsp; I have submitted a bug using the Beta reporting tool.&nbsp; Hopefully someone will pick it up. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=32</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Project Server 2007, Beta 2</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=40</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=40#comments</comments>
		<pubDate>Tue, 23 May 2006 19:39:26 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Project Management Tools]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=40</guid>
		<description><![CDATA[I have brought up a new test server to give Project Server 2007 a whirl.  Here are some of the gotchas in the install process:

Install required &#34;Windows Workflow Foundation, Beta2&#34;.  I downloaded v2.2 from here: http://www.microsoft.com/downloads/details.aspx?familyid=5C080096-F3A0-4CE4-8830-1489D0215877&#38;displaylang=en
Also required is ASP.NET 2.0, which is installed with the .NET Framework 2.0 components (available on Microsoft Update, [...]]]></description>
			<content:encoded><![CDATA[<p>I have brought up a new test server to give Project Server 2007 a whirl.  Here are some of the gotchas in the install process:</p>
<ul>
<li>Install required &quot;Windows Workflow Foundation, Beta2&quot;.  I downloaded v2.2 from here:<br /> http://www.microsoft.com/downloads/details.aspx?familyid=5C080096-F3A0-4CE4-8830-1489D0215877&amp;displaylang=en</li>
<li>Also required is ASP.NET 2.0, which is installed with the .NET Framework 2.0 components (available on Microsoft Update, or as a standalone installer.  Apparently my .NET 2.0 was damaged, so I ran a repair install.  After ensuring that ASP.NET was enabled in IIS, the Project Server installer now runs without complaint.</li>
<li>Project Server has an &quot;all in one box&quot; installation option.  This installs and configures Sharepoint Services 3.0 and SQL 2005 Express Edition.  It works surprisingly well!</li>
</ul>
<p>Also note that the test server performing miserably.&nbsp; I have expanded the VM memory to 1Gb, and performed the following steps to expand the virtual drive:</p>
<ul>
<li>&nbsp;<strong>execute: </strong>vmware-vdiskmanager -x 15Gb &lt;Path to.vmdk file&gt;</li>
<li>Boot to BartPE CD with Paragon Partition Manager, expanded system drive.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=40</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ximage success</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=39</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=39#comments</comments>
		<pubDate>Tue, 23 May 2006 17:54:07 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=39</guid>
		<description><![CDATA[I finally was able to generate an image of my Win2k3 VMWare reference system using Ximage (soon to be renamed &#8220;ImageX&#8221;).
In the past I had many problems, although not strictly related to the utility itself:

 Networking in VMWare workstation for the WinPE 2.0 beta in the Vista AIK will not function!  Apparently this is [...]]]></description>
			<content:encoded><![CDATA[<p>I finally was able to generate an image of my Win2k3 VMWare reference system using Ximage (soon to be renamed &#8220;ImageX&#8221;).</p>
<p>In the past I had many problems, although not strictly related to the utility itself:</p>
<ul>
<li> Networking in VMWare workstation for the WinPE 2.0 beta in the Vista AIK will not function!  Apparently this is a driver issue.  There is a bug registered in the Vista beta program, but I never did follow up on it.
</li>
<li> Networking in WinPE 1.5 did work, roughly speaking, but getting it all to function was like pulling teeth.  WinPE 1.x kinda bites (not very user friendly)
</li>
<li> BartPE networking works great!  Unfortunately, getting the &#8220;C:&#8221; drive to mount on my VMware Workstation instance was a bit more difficult.  Some forum hopping revealed that others who attempt to use Server 2003 SP1 as the source for the WinPE build also have this problem.  By changing the source to Server 2003 RTM, I am now able to mount the C: drive, and thus run XImage.exe.
</li>
</ul>
<p>XImage throughput was comperable to Ghost 8, and achieved almost identical compression ratios.  CLI syntax is pretty straightforward.  I think we have a winner&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=39</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WinSSHD software deployment &#8211; scripted</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=37</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=37#comments</comments>
		<pubDate>Tue, 16 May 2006 17:04:52 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Scripting the Windows Experience]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=37</guid>
		<description><![CDATA[The Catalyst team asked me to evaluate and install an SSH/SFTP/SCP service for them on all of the CATXXX Windows servers.  After some evaluation and testing, we settled on bitvise WinSSHD.  To &#8220;save time&#8221; I decided to try scripting the install.
Here is the process that I came up with:

for /f %%s in (catserv.txt) [...]]]></description>
			<content:encoded><![CDATA[<p>The Catalyst team asked me to evaluate and install an SSH/SFTP/SCP service for them on all of the CATXXX Windows servers.  After some evaluation and testing, we settled on bitvise WinSSHD.  To &#8220;save time&#8221; I decided to try scripting the install.</p>
<p>Here is the process that I came up with:<br /><hl><br />
<code><br />
for /f %%s in (catserv.txt) do copy /v /y c:\install\WinSSHD-Inst.exe \\%%s\c$\install\WinSSHD-Inst.exe<br />
for /f %%s in (catserv.txt) do copy /v /y c:\install\cat_config.wst \\%%s\c$\install\cat_config.wst<br />
c:\local\bin\psexec.exe @catserv.txt "c:\install\WinSSHD-Inst.exe" -site=WinSSHD -acceptEULA -activationCode=[insertCodeHere] -settings=c:\install\cat_config.wst<br />
for /f %%s in (catserv.txt) do sc \\%%s start winsshd<br />
for /f %%s in (catserv.txt) do sc \\%%s query winsshd | find /i "running" >> isrunning.txt<br />
</code><br />
</hl><hl><br />
</hl></p>
<p>Note that this script required a few files to be in place before execution:</p>
<ol>
<li>Sysinternals &#8220;psexec.exe&#8221; must be in place in &#8220;c:\local\bin&#8221;.</li>
<li>The WinSSHD installer must be located in &#8220;c:\install&#8221;</li>
<li>A WinSSHD server configuraiton file named &#8220;cat_config.wat&#8221; must be in place in &#8220;c:\install&#8221;
</li>
<li>This script and the catserv.txt file must be present in &#8220;c:\local\scripts&#8221;.  The catserv.txt file contains a simple list of the servers to which WinSSHD will be installed.
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=37</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redirecting HTTP to HTTPS, part DUH.</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=36</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=36#comments</comments>
		<pubDate>Mon, 15 May 2006 20:44:55 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=36</guid>
		<description><![CDATA[It always helps to know what you are doing&#8230;
After much head bashing and tooth gnashing, I discovered that the real reason that most people recommending a solution to this problem present a client-side redirect is pretty simple:
When browsers swith from a http:// rooted URI to a https:// rooted URI, they effectively assume that they are [...]]]></description>
			<content:encoded><![CDATA[<p>It always helps to know what you are doing&#8230;</p>
<p>After much head bashing and tooth gnashing, I discovered that the real reason that most people recommending a solution to this problem present a client-side redirect is pretty simple:</p>
<p>When browsers swith from a http:// rooted URI to a https:// rooted URI, they effectively assume that they are switching to a <i>new website</i> (which, effectively, they are).</p>
<p>So, I implemented a client-side redirect by replacing the default &#8220;https required&#8221; IIS 403.4 error page with a custom page containing this javascript code:</p>
<p><code><br />
&lt;Script language="JavaScript"&gt;<br />
&lt;!-- begin hide</code></p>
<p>function goElseWhere()<br />
{</p>
<p>var oldURL = window.location.hostname + window.location.pathname;</p>
<p>
var newURL = &#8220;https://&#8221; + oldURL;</p>
<p>query = &#8221; + window.location;<br />
position = query.indexOf(&#8217;?');<br />
if (position &gt; -1)<br />
{<br />
query = query.substring(position + 1);<br />
newURL = newURL + &#8220;?&#8221; + query;<br />
}</p>
<p>
window.location = newURL;</p>
<p>}<br />
goElseWhere();</p>
<p>// end hide &#8211;&gt;<br />
&lt;/script&gt;
</p>
<p>Unfortunately, this still does not work for MS Office programs.  Office refuses to recognize a redirect request (be it either server or client based), so anyone attempting a manual save to an http:// rooted URI will just get an error.  Nothing to be done for it&#8230; it is an office bug.  Report it to the Office team, it is not my fault.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=36</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Additional SAV installer builder instructions, updated script</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=35</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=35#comments</comments>
		<pubDate>Mon, 15 May 2006 20:02:57 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[AntiVirus, ProHeadache]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=35</guid>
		<description><![CDATA[Upon reviewing my earlier notes on building installers, it appears that I left out some useful info on how to build the darned administrative installation point that I am using to wrap up the patched installer.  Since I had the &#8220;opportunity&#8221; to work on a v10.1.0.400 installer today, I will take this opportunity to [...]]]></description>
			<content:encoded><![CDATA[<p>Upon reviewing my earlier notes on building installers, it appears that I left out some useful info on how to build the darned administrative installation point that I am using to wrap up the patched installer.  Since I had the &#8220;opportunity&#8221; to work on a v10.1.0.400 installer today, I will take this opportunity to actually document my installer builder process:</p>
<ul>
<li>open a CMD shell, CD to the SAV directory on the Symantec installation media</li>
<li>extract the MSI files to a local &#8220;administrative installation point&#8221;:<br />
<blockquote><p>msiexec /a &#8220;Symantec Antivirus.msi&#8221; </p>
</blockquote>
</li>
<li>Now, extract any patches downloaded from Symantec and CD to the directory that has the MSP patch file.  Execute the following:<br />
<blockquote><p> msiexec /p &#8220;SAVCE-[version].msp&#8221; /a [path to admin install point] </p>
</blockquote>
</li>
<li> Now, copy the setup.exe, setup.ini, msi installer files, and that .ini file with the funny name from the SAV source directory into the &#8220;administrative installation point&#8221; directory used above.</li>
<li> Edit the &#8220;setup.ini&#8221; file in your admin install point.  Modify the product version string to more closely match the version just overlayed onto the installer.</li>
<li> Copy in your custom SAV installer script.  (In our case, we use &#8220;instsav.cmd&#8221;).  Generally I just copy his out of the last production installer.  Also grab the <i>sav-managed.txt</i> and <i>sav-unmanaged.txt</i> files from the previous installer.  These just contain informational text to be pasted into the self-extracting archive prompt dialogs.</li>
<li> Now you can wrap the whole directory into a self-extracting archive, which spawns &#8220;instsav.cmd&#8221; when extraction is complete.  Of late, I have been using WinRAR.  Since the 10.0.1 builds, I have been extracting the archive to <i>&#8220;%SYSTEMDRIVE%\SAVInst&#8221;</i>, with the option to leave the extracted files in place after installation (thus creating a local installation source).  You may note that the <i>instsav.cmd</i> installation script uses this directory path to launch the <i>setup.exe</i> program.</li>
</ul>
<p>Also note that I have made some significant changes to the instsav.cmd script.  Mostly I just deleted unused sections of the script&#8230; version 10.1 does not appear to bog down the computer doing &#8220;startup scans&#8221; and &#8220;Definition scans&#8221; as earlier versions did, so I am removing the custom registry key imports that halted these scans.  Also, I changed the IF NOT ERRORLEVEL 1 clauses to use the syntax &#8220;IF %ERRORLEVEL% GEQ 1&#8243; instead, as this seems rather easier to understand from a logical perspective, IMO.  Anyway, here is the script:</p>
<blockquote><p>
:begin<br />
@ECHO OFF<br />
ECHO &#8211; Symantec Antivirus installation script for the University of Vermont<br />
ECHO &#8211; version 2.6, by JGM, 2006-05-15<br />
ECHO &#8211; This Window will close automatically when installation has completed.<br />
REM Script can be altered to allow for either managed or unmanaged client installations.<br />
REM For managed installs, UN-comment the &#8220;goto endFirewall&#8221; line below, and uncomment the appropriate &#8220;setup&#8221; command line.<br />
REM For unmanaged installs, COMMENT OUT the &#8220;goto endFirewall&#8221; line below, and uncomment the appropriate &#8220;setup&#8221; command line.</p>
<p>REM History:<br />
REM V2.3 &#8211; changed &#8220;reg import&#8221; commands to &#8220;regedit /s&#8221; commands for Windows 2000 compatibility.<br />
REM v2.5 &#8211; changed setup to generate MSI error log (/le option), and to run out of %SystemDrive%\SAVInst dir created by RAR extractor.<br />
REM v2.6 &#8211; removed the &#8220;removeStartScan.reg&#8221; procedure after the :endFirewall tag, and an experiment for v10.1.x distribution, cleaned up un-used sections, substituted &#8220;IF %errorlevel% GEQ 1&#8243; instead of &#8220;IF NOT errorlevel 1&#8243; as a experiment.</p>
<p>REM If performing an unmanaged AntiVirus client installation, uncomment the following line:<br />
GOTO endFirewall</p>
<p>:OSVer<br />
REM Determine if host is running a Windows XP build:<br />
set OSVer=notXP<br />
ver | find /i &#8220;xp&#8221; &#038;&#038; set OSVer=XP<br />
IF NOT %OSVer%==XP GOTO unsupported ELSE goto spLevel</p>
<p>:spLevel<br />
REM Determines Service Pack Version via registry query:<br />
set SPVer=0<br />
REM systeminfo |find &#8220;Service Pack 1&#8243; &#038;&#038; set SPVer=1<br />
REM systeminfo |find &#8220;Service Pack 2&#8243; &#038;&#038; set SPVer=2<br />
reg QUERY HKLM\SYSTEM\CurrentControlSet\Control\Windows /v CSDVersion | find &#8220;0&#215;200&#8243; &#038;&#038; set SPVer=2<br />
IF NOT %SPVer%==2 GOTO unsupported ELSE GOTO addRules</p>
<p>:addRules<br />
ECHO.<br />
ECHO.<br />
REM Adds firewall exceptions for Windows XP SP2 hosts:<br />
ECHO &#8211; You have Windows XP Service Pack 2!  Let&#8217;s Go&#8230;<br />
ECHO &#8211; Please wait while firewall exception rules are added&#8230;<br />
ECHO Adding exception for Symantec Realtime Virus Scan to allow managmenet of SAV Client<br />
@netsh firewall add portopening protocol = UDP port = 2967 name = &#8220;Symantec RTVScan&#8221; mode = ENABLE scope = CUSTOM addresses = LocalSubnet,127.0.0.1,132.198.0.0/16 profile = ALL<br />
IF %errorlevel% GEQ 1 (<br />
	GOTO failRuleAdd<br />
	) ELSE (<br />
	ECHO Firewall rule added successfully.<br />
	)<br />
@netsh firewall add portopening protocol = UDP port = 38293 name = &#8220;Intel PDS (Symantec AV)&#8221; mode = ENABLE scope = CUSTOM addresses = LocalSubnet,127.0.0.1,132.198.0.0/16 profile = ALL<br />
IF %errorlevel% GEQ 1 (<br />
	GOTO failRuleAdd<br />
	) ELSE (<br />
	ECHO Firewall rule added successfully.<br />
	)<br />
GOTO endFirewall</p>
<p>:unsupported<br />
ECHO.<br />
ECHO.<br />
ECHO Your system is not running XP with Service Pack 2.<br />
ECHO You do not need firewall exceptions added to your system.<br />
GOTO endFirewall</p>
<p>:endFirewall</p>
<p>ECHO.<br />
ECHO.<br />
ECHO Deleting log files from previous installations&#8230;<br />
@del /f /s /q &#8220;%ALLUSERSPROFILE%\Application Data\Symantec\Symantec AntiVirus Corporate Edition\7.5\Logs&#8221;<br />
IF %errorlevel% GEQ 0 (<br />
	ECHO No previous Symantec AV log files needed to be deleted.<br />
	) ELSE (<br />
	ECHO Symantec AV Log files successfully deleted.<br />
	)<br />
@del /f /s /q &#8220;%ALLUSERSPROFILE%\Application Data\Symantec\Norton AntiVirus Corporate Edition\7.5\Logs&#8221;<br />
IF %errorlevel% GEQ 0 (<br />
	ECHO No previous Windows 2000/XP Norton AV log files needed to be deleted.<br />
	) ELSE (<br />
	ECHO Norton 2000/XP AV Log files successfully deleted.<br />
	)<br />
ECHO.<br />
ECHO.<br />
ECHO Proceeding with SAV install&#8230;<br />
REM One of the following two &#8220;setup&#8221; lines MUST BE COMMENTED OUT!<br />
REM installation string for an UNMANAGED client install (intended for off-campus users):<br />
&#8220;%SystemDrive%\SAVInst\setup&#8221; /s /qn /V&#8221;/qb /le %SystemDrive%\SAVInst\install.err REMOVE=Pop3Smtp,NotesSnapin ADDLOCAL=SAVMain,SAVUI,SAVHelp,QClient,OutlookSnapin NETWORKTYPE=2 RUNLIVEUPDATE=0 SYMPROTECTDISABLED=1&#8243;</p>
<p>REM installation string for a MANAGED client install (intended for systems that are frequently on-campus):<br />
REM &#8220;%SystemDrive%\SAVInst\setup&#8221; /s /qn /V&#8221;/qb /le %SystemDrive%\SAVInst\install.err REMOVE=Pop3Smtp,NotesSnapin ADDLOCAL=SAVMain,SAVUI,SAVHelp,QClient,OutlookSnapin NETWORKTYPE=1 SERVERNAME=NORTON2 RUNLIVEUPDATE=0 SYMPROTECTDISABLED=1&#8243;<br />
ECHO.<br />
ECHO.<br />
ECHO Product setup complete.<br />
GOTO end</p>
<p>:failRuleAdd<br />
ECHO.<br />
ECHO.<br />
ECHO Firewall exceptions script failed!<br />
ECHO Symantec AntiVirus NOT INSTALLED.<br />
ECHO Take your system to Walk-in help.<br />
pause<br />
GOTO end</p>
<p>:end
</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=35</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redirecting HTTP traffic to HTTPS in IIS</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=34</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=34#comments</comments>
		<pubDate>Fri, 17 Mar 2006 22:59:52 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=34</guid>
		<description><![CDATA[What a pain&#8230; I shore up security in IIS I reallly will need to redirect all traffic on sharepoint to HTTPS connections.  It is easy to turn on SSL, but harder to automatically redirect traffic.  There are many approaches to this problem, which take the form of two basic solutions:

Client side redirection

 Server [...]]]></description>
			<content:encoded><![CDATA[<p>What a pain&#8230; I shore up security in IIS I reallly will need to redirect all traffic on sharepoint to HTTPS connections.  It is easy to turn on SSL, but harder to automatically redirect traffic.  There are many approaches to this problem, which take the form of two basic solutions:</p>
<ul>
<li>Client side redirection
</li>
<li> Server side redirection</li>
</ul>
<p>With the first approach, we direct the client to a custom error page that tells the browser to reconnect to the same URI, but with an HTTPS protocol.  This can be done with javascript or .asp.  Either way, the disadvantage is that form and query data likely will be lost in the dedirect.  At least with the Javascript approach, you lose browse ability from MS Office applications as well.  </p>
<p>The second approach will rewrite the URL at the server, thus preserving all URL data such as form and query info.  However, this approach requires custom code to be added to IIS in the form of either an ISAPI filter or web service extension.  These add-on programs frequently have conflicts with the STSFLTR (Sharepoint ISAPI filter).</p>
<p>I have tried a lot of junk&#8230; here are some links:<br />
http://weblogs.asp.net/pwilson/archive/2004/12/23/331455.aspx<br />
     &#8211; General how-to on using .asp custom error pages for client side redirect&#8230; includes security configuration details, but lacks specific syntax.</p>
<p>http://www.codeproject.com/aspnet/WebPageSecurity.asp<br />
     &#8211; A powerful ASP.NET module to be added to your site config files.  This allows per-directory auto-SSL redirection.  Looks promising, but it is too much for my feeble mind to precess at present.
</p>
<p>http://blog.opsan.com/archive/2005/10/19/1979.aspx<br />
     &#8211; Another ASP redirect script.<br />
     <b> Note</b> that in the feedback on this page is some excellent Javascript to accomplish client side redirection&#8230; I think this is the solution I will have to go with.</p>
<p>I also have tried (extensively) several ISAPI filters which emulate the Apache &#8220;mod_rewrite&#8221;.  This filters work great on other IIS web sites, but not with Sharepoint&#8230; GRRRR!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=34</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using BartPE for system cloning</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=33</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=33#comments</comments>
		<pubDate>Fri, 10 Mar 2006 20:04:30 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=33</guid>
		<description><![CDATA[I have come across the need image sevaral servers in preparation for migrating them to new &#8220;hardware&#8221;.  (The actual situation is that I have several systems running on VMWare Server Beta (formerly GSX Server), and I want to migrate them to ESX server.  Since the two virtual servers use different disk formats, I [...]]]></description>
			<content:encoded><![CDATA[<p>I have come across the need image sevaral servers in preparation for migrating them to new &#8220;hardware&#8221;.  (The actual situation is that I have several systems running on VMWare Server Beta (formerly GSX Server), and I want to migrate them to ESX server.  Since the two virtual servers use different disk formats, I cannot simply copy the virtual disks, I need to clone them using some other third-party tool.  Further complicating the matter is that I plan to install ESX server on the SAME HOST that is currently running GSX, and ESX wants to take control of the ENTIRE local hard drive.)</p>
<p>After exploring the options, I decided to take advantage of our existing license pool for Symantec Ghost 8.0 (I had considered using MS XImage, but I am still seeing this as a beta product, and more trouble than it is worth on this particular project).  Now the question is HOW to use Ghost.</p>
<p>I came across this excellent resource for &#8220;P2V&#8221; migrations, which also should work well for V2V (Virtual to Virtual):<br />
http://www.rtfm-ed.co.uk/docs/vmwdocs/whitepaper-ultimateP2V-QuickStart.pdf<br />
This manual comes from the following page:<br />
http://www.rtfm-ed.co.uk/?cat=10</p>
<p>So, &#8220;all I had to do&#8221; was download pebuilder (which I had already done), drop the vmxnet and vmscsi drivers into the appropriate pebuilder drivers directory (already done), then activate the additional plug-ins that they provide for the vmware tools.  I then needed to switch my pebuilder sources from the windowx XP i386 directory to a server 2003 i386 directory.  </p>
<p>Ghost configuration was really easy, as pebuilder already has a ghost 8 plug in.  I jest needed to extract the ghost files documented in the plugin help file into the pebuilder directory structure.  Voila!</p>
<p>A few minutes later I had an .iSO which I mounted on VMWare and successfully booted!  I am able to use &#8220;net use&#8221; to map a network drive, and then run ghost32.exe to dump an image to a separate workstation on the network.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=33</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WinPE: Building from the Windows Vista AIK Beta</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=31</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=31#comments</comments>
		<pubDate>Fri, 03 Mar 2006 20:30:29 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=31</guid>
		<description><![CDATA[So, workstation image capture is now performed using &#8220;XImage.exe&#8221; (soon to be renamed ImageX.exe).  Although multiple capture methods are supported, use of Windows PE 2.0 is encouraged.
I obtained the February CTP of the Windows Automated Installation Kit (AIK).  This contains several utilities for working with and creating Windows &#8220;WIM&#8221; image files, and also [...]]]></description>
			<content:encoded><![CDATA[<p>So, workstation image capture is now performed using &#8220;XImage.exe&#8221; (soon to be renamed ImageX.exe).  Although multiple capture methods are supported, use of Windows PE 2.0 is encouraged.</p>
<p>I obtained the February CTP of the Windows Automated Installation Kit (AIK).  This contains several utilities for working with and creating Windows &#8220;WIM&#8221; image files, and also includes WIMs for Windows PE 2.0.</p>
<p>Here is the process I am working on for building a bootable Windows PE image:</p>
<ol>
<li>Install the Windows AIK
</li>
<li><i>cd %ProgramFiles%\Windows AIK\Tools\x86 </i>(this directory contains all of the CLI tools for WinPE image building)
</li>
<li><i>mkdir \winpebuild\build</i>
</li>
<li><i>ximage /apply boot.wim 1 c:\winpebuild\build </i>(this extracts image index &#8220;1&#8243; from the boot.wim in the AIK directory to the specified build directory.  All of the WinPE files are now available on the local NTFS drive)
</li>
<li>To install additional network drivers to the PE build:<br />
<i>peimg /inf=[path to NIC driver INF] c:\winpebuild\build\windows</i>
</li>
<li>copied &#8220;ximage.exe&#8221; and all other .dll files from the working AIK directory to c:\winpebuild\build\windows\system32
</li>
<li> Now save a copy of the working build directory, as the next step will make irreversable changes to the build directory:<br />
<i>ximage /capture c:\winpebuild\build c:\images\winpe1.wim &#8220;Custom Base Image&#8221; /compress /max</i><br />
(this captures the build directory to a WIM file &#8220;winpe1.wim&#8221; with descriptor &#8220;Custom Base Image&#8221;, using maximum image compression to save drive space.)
</li>
<li> Now we prepare the build directoryfor capture.  This step optimizes the build, but also prevents future use of the &#8220;peimg /inf&#8221; command:<br />
<i>peimg /prep c:\winpebuild\build\windows</i>
</li>
<li>Now we generate a WIM file of our customized build:<br />
<i>ximage /capture c:\winpebuild\build c:\winpebuild\boot.wim &#8220;WinPE Image with VMWare Drivers&#8221; /boot /compress max</i>
</li>
<li>In the next steps we create a separate directory structure which from which we will build a bootable .ISO WinPE image:<br />
<i>mkdir \winpe\sources, mkdir \winpe\boot</i>
</li>
<li><i>copy bootmgr c:\winpe</i>
</li>
<li><i>xcopy /cherky .\boot c:\winpe\boot</i> (relative to the working x86 AIK directory) (these three steps add files necessary for building a bootable ISO to the directory structure)
</li>
<li><i>ximage /boot /export /compress max c:\winpebuild\boot.wim 1 c:\winpe\sources\boot.wim </i>(copies the custom WIM to the new directory scructure&#8230; I wonder if I could just use &#8220;xcopy&#8221;?)
</li>
<li><i>oscdimg /n /b.\boot\etfsboot.com c:\winpe c:\winpe.iso</i> (creates a bootable ISO from the boot.wim using the boot code in &#8220;etfsboot.com&#8221;.)
</li>
</ol>
<p><b>AARGH!  It just does not work still!  No networking is available when I boot to WinPE!!!!</b></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=31</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows Deployment Services &#8211; Installing on VMWare</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=30</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=30#comments</comments>
		<pubDate>Fri, 03 Mar 2006 14:03:52 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=30</guid>
		<description><![CDATA[Got my hands on the WDS beta from Microsoft.  Looks like a huge improvement on RIS, although the documentation really leaves something to be desitred at this point.  Key features:
 &#8211; Image-file based service.   Uses the new &#8220;WIM&#8221; image format.
 &#8211; Tools provided to edit WIM images (ie. drop in Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p>Got my hands on the WDS beta from Microsoft.  Looks like a huge improvement on RIS, although the documentation really leaves something to be desitred at this point.  Key features:<br />
 &#8211; Image-file based service.   Uses the new &#8220;WIM&#8221; image format.<br />
 &#8211; Tools provided to edit WIM images (ie. drop in Microsoft Hotfixes and service packs)<br />
 &#8211; Improved GUI and CLI tools for managing images<br />
 &#8211; Unified answer file format for all installations<br />
 &#8211; Migration tool to allow RIS file-based image to WIM image conversion!<br />
 &#8211; WinPE-based process, uses &#8220;real&#8221; network drivers, and has more client-side options for image capture (ie. capture to local image, capture to network share).  Capture can be performed independently from the WDS server.</p>
<p>Anyway, I installed WDS on a VMWare instance of 2003 SP1 server.  The procedure was fairly straightforward:<br />
 &#8211; Install Remote Installation Services from the Add/Remove Windows Components Wizard<br />
 &#8211; Install the WDS &#8220;hotfix&#8221; (this changes the name of the RIS service from &#8220;binlsvc&#8221; to &#8220;WDSServer&#8221;.<br />
 &#8211; Initialize WDS using either the CLI &#8220;WDSUtil&#8221;.  I used the CLI, but it would seem that the GUI may be better as there is more thorough prompting for installation image media.</p>
<p>Following installation, I had some trouble getting another VMWare host to net-boot to the WDS server.  I then tried isolating the hosts onto the VMWare &#8220;host-only&#8221; network with no further luck.  Eventually I read the VMWare documentation:<br />
http://www.vmware.com/support/gsx3/doc/network_host_gsx.html</p>
<p>As it turns out, VMWare runs a virtual DHCP server on the host-only and NAT virtual network adapters (this is kind of a &#8220;duh&#8221; if you think about it.  By going into the VMWare &#8220;Host&#8221; menu, then selecting &#8220;Virtual Network Settings&#8221;, I am able to disable the DHCP server.  Now my other virtual hosts boot to the WDS server promptly.  Cool!</p>
<p>Now I just have to igure out how to get some images into the system&#8230;</p>
<p>I plan to switch to NAT networking so that I can communicate with external systems where I intend to capture the WIM images.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=30</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sharepoint test server configuration</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=29</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=29#comments</comments>
		<pubDate>Tue, 28 Feb 2006 22:35:56 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=29</guid>
		<description><![CDATA[I am attempting to set up a test sharepoint server environment to deploy the current production environment.  This will contain a copy of the prod sharepoint Content DB, and will reflect the same general conrfiguration:
-Kerberos authentication
-separate service account for Sharepoint content managment and Sharepoint configuration
-SQL DB server and Sharepoint web components run on separate [...]]]></description>
			<content:encoded><![CDATA[<p>I am attempting to set up a test sharepoint server environment to deploy the current production environment.  This will contain a copy of the prod sharepoint Content DB, and will reflect the same general conrfiguration:<br />
-Kerberos authentication<br />
-separate service account for Sharepoint content managment and Sharepoint configuration<br />
-SQL DB server and Sharepoint web components run on separate OS instances<br />
-Sharepoint installed on non-default IIS site, using host headers to direct users to the secondary IP (do we really need a secondary IP???)</p>
<p>I am having some difficulties around Kerberos auth and also with prod DB import.  Here are some helpful links:<br />
http://blogs.tamtam.nl/mart/SharePointTipAuthenticationProblemsWhenChoosingKerberos.aspx</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=29</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hunting down and exterminating uncompressed TIFFs</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=28</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=28#comments</comments>
		<pubDate>Tue, 28 Feb 2006 17:51:08 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Document Imaging]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=28</guid>
		<description><![CDATA[It seems that some of our constituients have not been paying overly much attention to the settings on their scanners.  We have over 40Gb of black-and-white, text-only documents scanned at 24 BPP, uncompressed, consuming 10 Mb each!
This happened once before.  My colleague Warren licensed a product called &#8220;2TIFF&#8221; to shrink the files in [...]]]></description>
			<content:encoded><![CDATA[<p>It seems that some of our constituients have not been paying overly much attention to the settings on their scanners.  We have over 40Gb of black-and-white, text-only documents scanned at 24 BPP, uncompressed, consuming 10 Mb each!</p>
<p>This happened once before.  My colleague Warren licensed a product called &#8220;2TIFF&#8221; to shrink the files in question.  This works well, except in his case ALL of the images in an Application folder needed to be compressed.  I only need to shrink SOME of them.</p>
<p>After much fooling around and wasting of time, I was able to use a win32 port of the UNIX &#8220;find&#8221; command to hunt down all of the large files, dump the list to a file, and then use this file as a source for 2TIFF.  The big mess of images now occupies only about 30 Mb of space.</p>
<p>Here are the sommand syntax details:<br />
> find.exe &#8220;I:\OBJECTS\PURCHASE_ORDERS&#8221; -size +3M -fprint bigfiles.txt<br />
(searches the PURCHASE_ORDERS document tree for all files larger then 3 Mb, dumps results to the text file &#8220;bigfiles.txt)</p>
<p>> FOR /f %F in (bigfiles.txt) DO ( &#8220;C:\Program Files\2TIFF\2tiff&#8221; s=%F d=%~dF\shrink%~pF -namegen=&#8221;[name].[srcext]&#8221; -quantize8 -ct4 -cd4 -keepexif)<br />
(Perform a loop operation.  For each loop, set the next line in bigfiles.txt to the variable %F.  Run the 2Tiff program using %F as the source file.  Use < %F Drive Letter>\shrink< %F relative path> as the output directory (example:  when %F=&#8221;c:\objects\procurement\0\1\163.bin, the output directory will be &#8220;c:\shrinkProcurement\0\1\&#8221;).)  </p>
<p>Here is what the 2Tiff arguments mean:<br />
-namegen=&#8221;[name].[srcext]&#8221; -> The name of the destination file is the same as that of the source ([name] is a built in variable equal to the source file name. [srcext] equals the source file&#8217;s extention)<br />
-quantize=8 -> sets the &#8220;quantization&#8221; level of the TIFF.  This value effects the &#8220;sampling rate&#8221; and affects image quality.  Eight is the maximum value, for best quality.<br />
-ct4 -> Compression type &#8220;LZW&#8221; is used.  This is the default type for color scans.  We are using LZW rather than the standard &#8220;type 3&#8243; for B/W documents because tests showed that reducing these images to monochrome yielded very low quality in some cases.  We are keeping some color information to allow anti-aliasing and thus better letter quality.<br />
-cd4 -> Sets the color depth down to 4 BPP from the source 24 BPP.  CD1 would be better, but as mentioned above, this results in poor readability of the destination TIFF.<br />
-keepexif -> preserves EXIF tags in the destination file from the source.  Probably there is no EXIF info in these files, but I thought we would keep it in case I am wrong.</p>
<p>Warren had used the &#8220;dither&#8221; switch, but IMNSHO this makes the target document look worse and also results in larger files.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=28</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing the RIS image store</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=27</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=27#comments</comments>
		<pubDate>Mon, 27 Feb 2006 15:05:03 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=27</guid>
		<description><![CDATA[Our server &#8220;SYSIMG1&#8243; just does not seem to want to take on its new role of replacement RIS server.  I guess it just liked being a NetWare box and resents its lot in life.
Robocopy of the image library from \\risprime\reminst is consistently a failure.  I run out of drive space every time, and [...]]]></description>
			<content:encoded><![CDATA[<p>Our server &#8220;SYSIMG1&#8243; just does not seem to want to take on its new role of replacement RIS server.  I guess it just liked being a NetWare box and resents its lot in life.</p>
<p>Robocopy of the image library from \\risprime\reminst is consistently a failure.  I run out of drive space every time, and the Gorveler never frees up enough drive space to resume copy operations.</p>
<p>I followed MS advice from the KB and have tried using our backup software (Legato) to restore the whole image partition to SYSIMG1 from RISPRIME.  This generally caused BSOD errors on SYSIMG1.  This particular problem cleared up after I patched the iSCSI initiator from v2.0.0 to v2.0.1, set the &#8220;lanmanserver&#8221; &#8220;binlsvc&#8221; (RIS Service) and &#8220;groveler&#8221; services to be dependent on &#8220;MSiSCSI&#8221; (the iSCSI initiator service), and also disabled a misconfigured secondary NIC on the server.  Now I can restore the RISPRIME volume, but the groveler does not want to start.</p>
<p>So, I seem to have fixed that problem by &#8220;repairing&#8221; the SIS database on the volume&#8230; (where repair=deleted the damn thing, and let the Groveler start over).  The article in question is here:<br />
https://premier.microsoft.com/default.aspx?scid=kb;en-us;247611</p>
<p>And here is the key information:<br />
The SIS Groveler service database is stored in the hidden folder named SIS Common Store on each SIS managed volume. To rebuild the Groveler service database, follow these steps:<br />
1. Stop the Single Instance Storage Groveler service.<br />
2. Make a backup copy of the SIS Common Store folder contents to an alternate location.<br />
3. After a backup copy of the folder contents have been made, remove all the database files in the SIS Common Store folder EXCEPT for the *.SIS and the MAXINDEX files.<br />
4. Restart the Single Instance Storage Groveler service. </p>
<p>NOTE:  I had to run RISetup prior to successful restart of the Groveler.  All of the configuration settings for the groveler are set by RISetup.  Once this is done, the gorveler restarts, and a new .mdb gets generated in the SIS directory.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=27</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SAV 10.0.2.2020 release, and install script updates</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=26</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=26#comments</comments>
		<pubDate>Tue, 21 Feb 2006 20:33:24 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[AntiVirus, ProHeadache]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=26</guid>
		<description><![CDATA[I made some more changes to the script and installer package:
- Decided to converge on the &#8220;Administative Install&#8221; method for wrapping the patches into the installer.  This prevents the installed SAV instance from interfering with the patch portion of the install script.  Features like &#8220;autoprotect&#8221; were preventing &#8220;msiexec /p&#8221; from working.  Also, [...]]]></description>
			<content:encoded><![CDATA[<p>I made some more changes to the script and installer package:</p>
<p>- Decided to converge on the &#8220;Administative Install&#8221; method for wrapping the patches into the installer.  This prevents the installed SAV instance from interfering with the patch portion of the install script.  Features like &#8220;autoprotect&#8221; were preventing &#8220;msiexec /p&#8221; from working.  Also, msiexec /p seems just plain unpredictable if the system has not been rebooted.  I just don&#8217;t feel like injecting actions into the &#8220;RunOnce&#8221; registry key, or attempting to force a reboot.</p>
<p>- Added &#8220;AUTOPROTECT=OFF&#8221; to the msi options portion of the setup.exe line in the install script.  This will prevent the SAV autoprotect from giving us grief while installation completes.</p>
<p>- Used WinRAR options to extract archive files to a specified directory: %SystemDrive%\SAVInst.<br />
     (this will cause a local cache of the install files to be maintained on the system)<br />
     (NOTE:  We may wish to add a script line to delete the contents of this archive on reinstall)</p>
<p>- Mod the setup.ini file to contain a higher version number for the product being installed than the default (this should allow the setup.exe to install over existing SAV10 installs)</p>
<p>- Added an error logging option to the MSI options portion of the setup.exe line in the script (-le %SystemDrive%\SAVInst\install.err)</p>
<p>- Prefixed the setup.exe line with %SystemDrive\SAVinst\ to force run out of the directory created by the WinRAR extractor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=26</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disabling computer account creation in RIS</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=25</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=25#comments</comments>
		<pubDate>Fri, 13 Jan 2006 03:52:49 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=25</guid>
		<description><![CDATA[It would be nice if we had the option to deploy RIS-based images as either domain-joined or free-standing systems.  As it stands, default configuration forces all imaged systems to have a pre-staged computer account.  Since most imaging jobs are scheduled for eventual deletion, we run into a real problem with computer that we [...]]]></description>
			<content:encoded><![CDATA[<p>It would be nice if we had the option to deploy RIS-based images as either domain-joined or free-standing systems.  As it stands, default configuration forces all imaged systems to have a pre-staged computer account.  Since most imaging jobs are scheduled for eventual deletion, we run into a real problem with computer that we want to keep joined.</p>
<p>One possible work-around is to change the &#8220;Image Type&#8221; variable associated with the image (I believe this info is located in the .SIF file.  I tried this once before when attempting to generate a bootable WinPE instance on our RIS server&#8230; I think it worked for WinPE, but I am not sure if it will work for standard images.  It is worth a shot.  Details taken from:<br />
http://groups.google.com/group/microsoft.public.sms.tools/browse_frm/thread/dd1a317ccb619d6a/c19e3f99c61f5a09?lnk=st&#038;q=prevent+%22computer+account%22+RIS&#038;rnum=2&#038;hl=en#c19e3f99c61f5a09<br />
Here is the text of the newsgroup posting:</p>
<blockquote><p>Normally, you would modify the RISSTNRD.SIF file for that Windows PE image<br />
to change the &#8220;ImageType&#8221; entry from &#8220;ImageType=Flat&#8221; to &#8220;ImageType=WinPE&#8221;.<br />
This causes RIS to no longer create the computer account (to prevent &#8220;AD<br />
clutter&#8221;), which OSD is not going to use anyway.  When making this change,<br />
the Windows PE image will move from the &#8220;images&#8221; list to the &#8220;Tools&#8221; menu,<br />
so you have to have the tools menu enabled via GPO to see it.  For more<br />
information on this, see the &#8220;Zero Touch Installation Deployment Feature<br />
Team Guide&#8221; in the Solution Accelerator for Business Desktop Deployment<br />
Enterprise Edition (http://www.microsoft.com/desktopdeployment). </p></blockquote>
<p>I have downloaded the Solution Accelerator that is referenced, and will have a look though the &#8220;ZTI&#8221; section to see if it is any further help.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=25</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SAV 10 installer, redux</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=24</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=24#comments</comments>
		<pubDate>Fri, 28 Oct 2005 20:56:37 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[AntiVirus, ProHeadache]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=24</guid>
		<description><![CDATA[What a pain!  Our testers still report problems with SAV 10.0.1 installers.  High CPU, disk thrashing, scheduled scans kicking off without permission&#8230;
Several fixes.  First off, I generated a fancy new install script:

:begin
@ECHO OFF
ECHO &#8211; Symantec Antivirus installation script for the University of Vermont
ECHO &#8211; version 2.1, by JGM, 2005-10-17
ECHO &#8211; This Window [...]]]></description>
			<content:encoded><![CDATA[<p>What a pain!  Our testers still report problems with SAV 10.0.1 installers.  High CPU, disk thrashing, scheduled scans kicking off without permission&#8230;</p>
<p>Several fixes.  First off, I generated a fancy new install script:</p>
<blockquote><p>
:begin<br />
@ECHO OFF<br />
ECHO &#8211; Symantec Antivirus installation script for the University of Vermont</p>
<li>ECHO &#8211; version 2.1, by JGM, 2005-10-17<br />
ECHO &#8211; This Window will close automatically when installation has completed.<br />
REM Script can be altered to allow for either managed or unmanaged client installations.<br />
REM For managed installs, UN-comment the &#8220;goto endFirewall&#8221; line below, and uncomment the appropriate &#8220;setup&#8221; command line.<br />
REM For unmanaged installs, COMMENT OUT the &#8220;goto endFirewall&#8221; line below, and uncomment the appropriate &#8220;setup&#8221; command line.</p>
<p>REM If performing an unmanaged AntiVirus client installation, uncomment the following line:<br />
REM GOTO endFirewall</p>
<p>:OSVer<br />
REM Determine if host is running a Windows XP build:<br />
set OSVer=notXP<br />
ver | find /i &#8220;xp&#8221; &#038;&#038; set OSVer=XP<br />
IF NOT %OSVer%==XP GOTO unsupported ELSE goto spLevel</p>
<p>:spLevel<br />
REM Determines Service Pack Version via registry query:<br />
set SPVer=0<br />
REM systeminfo |find &#8220;Service Pack 1&#8243; &#038;&#038; set SPVer=1<br />
REM systeminfo |find &#8220;Service Pack 2&#8243; &#038;&#038; set SPVer=2<br />
reg QUERY HKLM\SYSTEM\CurrentControlSet\Control\Windows /v CSDVersion | find &#8220;0&#215;200&#8243; &#038;&#038; set SPVer=2<br />
IF NOT %SPVer%==2 GOTO unsupported ELSE GOTO addRules</p>
<p>:addRules<br />
ECHO.<br />
ECHO.<br />
REM Adds firewall exceptions for Windows XP SP2 hosts:<br />
ECHO &#8211; You have Windows XP Service Pack 2!  Let&#8217;s Go&#8230;<br />
ECHO &#8211; Please wait while firewall exception rules are added&#8230;<br />
ECHO Adding exception for Symantec Realtime Virus Scan to allow managmenet of SAV Client<br />
netsh firewall add portopening protocol = UDP port = 2967 name = &#8220;Symantec RTVScan&#8221; mode = ENABLE scope = CUSTOM addresses = LocalSubnet,127.0.0.1,132.198.0.0/16 profile = ALL<br />
netsh firewall add portopening protocol = UDP port = 38293 name = &#8220;Intel PDS (Symantec AV)&#8221; mode = ENABLE scope = CUSTOM addresses = LocalSubnet,127.0.0.1,132.198.0.0/16 profile = ALL<br />
IF NOT errorlevel 1 (<br />
	ECHO All firewall rules added successfully.<br />
	) ELSE (<br />
	GOTO failRuleAdd<br />
	)<br />
GOTO endFirewall</p>
<p>:unsupported<br />
ECHO.<br />
ECHO.<br />
ECHO Your system is not running XP with Service Pack 2.<br />
ECHO You do not need firewall exceptions added to your system.<br />
GOTO endFirewall</p>
<p>:endFirewall<br />
REM If installing an unmanaged AntiVirus client, installation may begin here.<br />
ECHO.<br />
ECHO.<br />
ECHO Altering registry to remove and prevent automatic system scans&#8230;<br />
reg import RemoveStartScan.reg<br />
IF NOT errorlevel 1 (<br />
	ECHO Registry settings imported successfully.<br />
	) ELSE (<br />
	GOTO failRSS<br />
	)<br />
ECHO.<br />
ECHO.<br />
ECHO Deleting log files from previous installations&#8230;<br />
del /f /q &#8220;%ALLUSERSPROFILE%\Application Data\Symantec\Symantec AntiVirus Corporate Edition\7.5\Logs\*.*&#8221;<br />
IF NOT errorlevel 1 (<br />
	ECHO Symantec AV Log files successfully deleted.<br />
	) ELSE (<br />
	ECHO No previous Symantec AV log files needed to be deleted.<br />
	)<br />
del /f /q &#8220;%ALLUSERSPROFILE%\Application Data\Symantec\Norton AntiVirus Corporate Edition\7.5\Logs\*.*&#8221;<br />
IF NOT errorlevel 1 (<br />
	ECHO Norton 200/XP AV Log files successfully deleted.<br />
	) ELSE (<br />
	ECHO No previous Windows 2000/XP Norton AV log files needed to be deleted.<br />
	)<br />
del /f /q &#8220;%PrograFiles%\Norton AntiVirus\Logs\*.*&#8221;<br />
IF NOT errorlevel 1 (<br />
	ECHO Windows 9x Log files successfully deleted.<br />
	) ELSE (<br />
	ECHO No previous Windows 9x Norton AV log files needed to be deleted.<br />
	)<br />
ECHO.<br />
ECHO.<br />
ECHO Proceeding with SAV install&#8230;<br />
REM One of the following two &#8220;setup&#8221; lines MUST BE COMMENTED OUT!<br />
REM installation string for an UNMANAGED client install (intended for off-campus users):<br />
REM setup /s /qn /V&#8221;/qr REMOVE=Pop3Smtp,NotesSnapin ADDLOCAL=SAVMain,SAVUI,SAVHelp,QClient,OutlookSnapin NETWORKTYPE=2 RUNLIVEUPDATE=1&#8243;<br />
REM **This does not work!*** IF NOT errorlevel 1 GOTO setupFail<br />
REM installation string for a MANAGED client install (intended for systems that are frequently on-campus):<br />
setup /s /qn /V&#8221;/qr REMOVE=Pop3Smtp,NotesSnapin ADDLOCAL=SAVMain,SAVUI,SAVHelp,QClient,OutlookSnapin NETWORKTYPE=1 SERVERNAME=NORTON2 RUNLIVEUPDATE=1&#8243;<br />
REM **This does not work!***  IF NOT errorlevel 1 GOTO setupFail<br />
ECHO.<br />
ECHO.<br />
ECHO Product setup complete,<br />
ECHO Now attempting registry alterations to prevent Definitions scans&#8230;<br />
reg import DefwatchQSOff.reg<br />
IF NOT errorlevel 1 (<br />
	ECHO Registry settings imported successfully.<br />
	) ELSE (<br />
	GOTO FailPDQS<br />
	)<br />
GOTO end</p>
<p>:failRuleAdd<br />
ECHO.<br />
ECHO.<br />
ECHO Firewall exceptions script failed!<br />
ECHO Symantec AntiVirus NOT INSTALLED.<br />
ECHO Take your system to Walk-in help.<br />
pause<br />
GOTO end</p>
<p>:failRSS<br />
ECHO.<br />
ECHO.<br />
ECHO &#8220;RemoveStartScan&#8221; registry import failed!<br />
ECHO Symantec AntiVirus NOT INSTALLED.<br />
ECHO Take your system to Walk-in help.<br />
pause<br />
GOTO end</p>
<p>:setupFail<br />
ECHO.<br />
ECHO.<br />
ECHO Oh No!  Symantec setup program failed to complete!<br />
ECHO Symantec AntiVirus NOT INSTALLED.<br />
ECHO Take your system to Walk-in help.<br />
pause<br />
GOTO end</p>
<p>:failPDQS<br />
ECHO.<br />
ECHO.<br />
ECHO &#8220;DefwatchQSOff&#8221; registry import failed,<br />
ECHO but Symantec AntiVirus has been installed.<br />
ECHO If you experience major system performance degradation,<br />
ECHO please take your system to Walk-in help.<br />
pause<br />
GOTO end</p>
<p>:end
</li>
</blockquote>
<p>Changes from previous scripts are:</p>
<ol>
<li>integration of managed and unmanaged installer scripts in same file &#8211; change the comments to change the install method.</li>
<li>attempts at error capturing using IF/Then/Goto</li>
<li>integration of script into one file (sans .reg import files)</li>
<li>added DefwatchQSOff.reg import to the script, moved to end of script</li>
<li>Now using &#8220;removestartscan.reg&#8221; to kill startup scans&#8230; seems to work.</li>
<li>not allowing installation of POP3SMTP plugin</li>
<li>using &#8220;setup.exe&#8221; with command line options, rather than msiexec.  This avoids the need to create separate installers for upgrade vs. new install</li>
<li>Integrated 10.0.1.1007 patch into the installer (by extracting original .MSI to an &#8220;administrative install point&#8221;, then using the msiexec patch commands on the admin install point).</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=24</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RIS Server Setup notes</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=23</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=23#comments</comments>
		<pubDate>Fri, 21 Oct 2005 14:29:45 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=23</guid>
		<description><![CDATA[I had some fun setting up RIS on the newly repurposed server &#8220;SYSIMG1&#8243;. 
One issue is that copying all of the RIS Images from the current production &#8220;RISPRIME&#8221; would not complete&#8230; I ran out of space on the target volume which is the same size as the source volume.  Why?  Because RIS runs [...]]]></description>
			<content:encoded><![CDATA[<p>I had some fun setting up RIS on the newly repurposed server &#8220;SYSIMG1&#8243;. </p>
<p>One issue is that copying all of the RIS Images from the current production &#8220;RISPRIME&#8221; would not complete&#8230; I ran out of space on the target volume which is the same size as the source volume.  Why?  Because RIS runs the &#8220;groveler.exe&#8221; service to create hardlinks for duplicate files in RIS images.  My file copy utilities just copy the hardlinks as separate files, and thus I run out of space.</p>
<p>Presumably forcing the groveler to startup on the target volume will free up the space needed to complete the transfers&#8230; but how to do this?  Groveler.exe has no command line support, and has a hard-configured schedule on which it runs (2am or some such).  I want it to run <em>now!</em>.</p>
<p>Some searching reveals the following KB article:<br />
<a href="https://premier.microsoft.com/default.aspx?scid=kb;en-us;247611">https://premier.microsoft.com/default.aspx?scid=kb;en-us;247611</a></p>
<p>I will see if I can find this grovctrl.exe utility of legend.  Sounds like just what I need.</p>
<p>Also found some good docs at MIT:<br />
<a href="http://web.mit.edu/ist/topics/windows/server/winmitedu/whatsRIS.htm">http://web.mit.edu/ist/topics/windows/server/winmitedu/whatsRIS.htm</a><br />
and berkeley:<br />
<a href="http://www-w2k.cs.berkeley.edu/admin/docs/docs/dhcpris.txt">http://www-w2k.cs.berkeley.edu/admin/docs/docs/dhcpris.txt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=23</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ADS Imaging &#8211; project catalyst</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=22</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=22#comments</comments>
		<pubDate>Thu, 08 Sep 2005 17:17:17 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=22</guid>
		<description><![CDATA[Catalyst needs us to install eight new servers for them this week.  Although it will probably take longer, I have decided to take a stab at using Microsoft ADS (automated deployment services) to roll out the systems.
Steps:

Install ADS on server &#8220;sysimg1&#8243; (reusing the host &#8220;castor&#8221; from the NetWare days).  Select &#8220;install MSDE engine [...]]]></description>
			<content:encoded><![CDATA[<p>Catalyst needs us to install eight new servers for them this week.  Although it will probably take longer, I have decided to take a stab at using Microsoft ADS (automated deployment services) to roll out the systems.</p>
<p>Steps:</p>
<ol>
<li>Install ADS on server &#8220;sysimg1&#8243; (reusing the host &#8220;castor&#8221; from the NetWare days).  Select &#8220;install MSDE engine locally&#8221; and &#8220;create self-signed certificate&#8221; options.  Did not select PXE boot server option&#8230; will need to do this later.  Also, created share &#8220;images&#8221; on the root of the c: drive&#8221; (note that local storage is rather limited&#8230; this may become an issue as time passes).</li>
<li>Created WinPE boot CD rom with ADS support, using ADS documentation as a guide.  See notes in this blog in on generating WinPE images.</li>
<li>Created reference system:
<ul>
<li>install MS Office 2003 with SP1, full install from \\files\mca.  Ran LISTool from the office 2003 resource kit to move the installation source to the C: drive where it will be imaged properly.</li>
<p> &#8211; NOTE: did not do this on subsequent system configurations!</p>
<li>Install Networker client version 7.2.1, using &#8220;Change Journal Manger&#8221; option on all local volumes (default settings&#8230; saved installer to \\files\software\Server Resources\networker).</li>
<li>Install ActiveState ActivePERL.  Latest version from activestate.com (saved to \\files\software\active perl).</li>
<li>Install Dell OpenManage Server Administrator &#8211; v4.4, with sp1 patch (from \\files\software\server resources\dell).</li>
<li>Install SSH communication Security SSH client &#8211; latest version, default settings.</li>
<li>Install 2003 server resource kit, support tools, &#8220;adminpak.msi&#8221; for 2003 with sp1.</li>
<li>Re-install Intel ProSet utility, using &#8220;modify&#8221; MSI option, then adding all components (advanced services, Intel WMI agent) &#8211; allows for NIC teaming.</li>
<li>Install GVim and Notepad++ text editors (deselect &#8220;use as default html viewer&#8221; for Notepad++).</li>
<li>Install &#8220;runtime&#8221; version of Oracle 10g client v10.2.0.1 to the &#8220;c&#8221; drive.  Added tnsnames.ora file provided by catalyst staff to the %oracle_home%\network\admin directory.  Per instructions from Nancy Snow, add &#8220;TNS_ADMIN&#8221; system environment variable pointing to the same directory containing the TNSNAMES.ora file.</li>
<li>add &#8220;psadm&#8221; CAMPUS directory group to local administrators group.</li>
<li>create c:\sysprep directory.  Add sysprep.exe, setupcl.exe from Server 2003 sp1 &#8220;deploy.cab&#8221; file (support tools directory on the 2003 cd).  copy sample sysprep.inf file from &#8220;\\sysimg\c$\program files\microsoft ads\samples\sysprep&#8221; directory.  Add minor tweaks, copy back to source directory.</li>
<li>run chkdsk and defrag a  few times for good measure.</li>
</ul>
</li>
<li>run &#8220;sysprep /reboot&#8221; on the reference system.  Boot to WinPE CD.
</li>
<li>from the PE console, cd to the &#8220;tools&#8221; directory. Run:<br />
<blockquote><p>imgdeploy /capture /p c: d:\<imagename>.img &#8220;<image description>&#8220;</image></imagename></p></blockquote>
<p>Then &#8220;exit&#8221; when the image is complete.<br />
<strong>Note:</strong>networking still not working in PE image.  Aargh!  Well, I guess I will just have to upload the image manually.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=22</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows PE</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=21</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=21#comments</comments>
		<pubDate>Fri, 26 Aug 2005 14:09:54 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=21</guid>
		<description><![CDATA[Since we are now on Campus Agreement, we have access to &#8220;Windows PE&#8221;, the Microsoft bootable 32-bit OS for system installation and maintenance.
Lots of work to get everything going.  Let us start with a 2k3-ee WinPE install:
note: turns out my 2k3ee sources are corrupted&#8230; bummer!  Switched to SE, since it really makes no [...]]]></description>
			<content:encoded><![CDATA[<p>Since we are now on Campus Agreement, we have access to &#8220;Windows PE&#8221;, the Microsoft bootable 32-bit OS for system installation and maintenance.</p>
<p>Lots of work to get everything going.  Let us start with a 2k3-ee WinPE install:<br />
<strong>note:</strong> turns out my 2k3ee sources are corrupted&#8230; bummer!  Switched to SE, since it really makes no difference&#8230;</p>
<ol>
<li>Download Windows PE, 2005 edtion from microsoft licensing site (Password ID and login info provided by Nicole Chittenden, former manager of CA at UVM).</li>
<li>Extract PE package.  In my case, to F:\WinPE</li>
<li>Extract Server 2k3 EE to local hard drive &#8211; slipstream SP1 into the directory</li>
<li>at shell, cd to F:\winpe\winpe, run<br />
<blockquote><p>mkimg.cmd d:\2k3-ee-sp1 c:\winpe-2k3-ee</p></blockquote>
<p>(this builds a WinPE installation using the 2k3 server source to the directory specified.)</li>
<li>Now, add Microsoft ADS support files to the WinPE image:  Add the files Adssupport.dll, Imglib.dll, and Imgdeploy.exe to a directory of the Windows PE build folder. These files can be found in the \Program Files\Microsoft ADS\Bin and C:\Program Files\Microsoft ADS\nbs\repository\DeploymentAgent directories where the ADS imaging tools are installed.  (note that the MS documentation is a bit off on the location of these files).</li>
<li><strong>note:</strong>  If networking will be required when booting to a subnet without DHCP support, a static address will need to be configured in the winbom.ini files of the WinPE image.  I added the following to assist in the generation of the Catalyst images:<br />
<blockquote><p>[WinPE.Net]<br />
Gateway = 132.198.113.129<br />
IPConfig = 132.198.113.220<br />
StartNet = Yes<br />
SubnetMask = 255.255.255.128<br />
WinPEFirewall = On</p>
</blockquote>
</li>
<li>Finally, create an ISO to burn to CD.  Again at the F:\winpe\winpe shell, run:<br />
<blockquote><p>oscdimg -betfsboot.com -n d:\winpe-2k3-ee d:\winpex86-2k3-ee.iso</p></blockquote>
</li>
</ol>
<p>Now let&#8217;s build a WinPE for XP Pro.  </p>
<ol>
<li>Extract XP Pro CD (SP2 integrated) files to the local hard drive.</li>
<li>at shell, cd to F:\winpe\winpe, run<br />
<blockquote><p>mkimg.cmd d:\xppro-sp2 c:\winpe-xppro-sp2</p></blockquote>
<p>(this builds a WinPE installation using the XP Pro  source to the directory specified.)</li>
<li>Note that for XP, we will want to perform the additional step of adding some NIC drivers.  We have a bunch of these alrady available on our RIS server.  Start by copying our current XP NIC drivers from the production RIS server to a local directory (in our case, D:\drivers-xp):<br />
<blockquote><p>\\risprime\reminst\Setup\English\Images\XPPro-SP2\$oem$\$1\drivers\nic</p></blockquote>
<p>Again at the F:\WinPE\WinPE shell, perform the following:</p>
<blockquote><p>drvinst.exe /inf:d:\drivers-xp d:\Winpe-xppro-sp2</p></blockquote>
<p>Note that this procedure will only work for non-PNP drivers, UNLESS we do a special WinPE build enabling it (mkimg /PNP)</li>
<li>Finally, create an ISO to burn to CD.  Again at the F:\winpe\winpe shell, run:<br />
<blockquote><p>oscdimg -betfsboot.com -n d:\winpe-xppro-sp2 d:\winpex86-xppro-sp2.iso</p></blockquote>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=21</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Norton1 LiveUpdate server complaints</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=20</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=20#comments</comments>
		<pubDate>Thu, 04 Aug 2005 16:09:18 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[AntiVirus, ProHeadache]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=20</guid>
		<description><![CDATA[LiveUpdate complaints from the end-users&#8230; cannot run LiveUpdate, LiveUpdate logs indicate a specific file was &#8220;unavailable on the server&#8221;.
FTP into Norton1.uvm.edu does reveal that the file is not actually there.  The quick fix here is to resynch the LiveUpdate directory from SYmantec.  To do this:

On Norton1, Launch &#8220;LiveUpdate Administration Utility&#8221;.
Go to Tools>Options, then [...]]]></description>
			<content:encoded><![CDATA[<p>LiveUpdate complaints from the end-users&#8230; cannot run LiveUpdate, LiveUpdate logs indicate a specific file was &#8220;unavailable on the server&#8221;.</p>
<p>FTP into Norton1.uvm.edu does reveal that the file is not actually there.  The quick fix here is to resynch the LiveUpdate directory from SYmantec.  To do this:</p>
<ol>
<li>On Norton1, Launch &#8220;LiveUpdate Administration Utility&#8221;.</li>
<li>Go to Tools>Options, then select &#8220;Retrieve new and previously downloaded updates&#8221;, then &#8220;ok&#8221;.</li>
<li>Click &#8220;retrieve&#8221;, wait for the process to complete.</li>
<li>Change the previously set option back to &#8220;New updates only&#8221;.</li>
</ol>
<p>Now test out LiveUpdate to see if the missing file has been restored.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=20</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Frank&#8217;s Deep Thought of the Day</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=19</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=19#comments</comments>
		<pubDate>Wed, 27 Jul 2005 17:46:35 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Thoughts and Reflections]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=19</guid>
		<description><![CDATA[Men die earlier than women because they want to.
]]></description>
			<content:encoded><![CDATA[<p>Men die earlier than women because they want to.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=19</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing WX Client Modes</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=18</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=18#comments</comments>
		<pubDate>Mon, 25 Jul 2005 21:31:35 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Document Imaging]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=18</guid>
		<description><![CDATA[WebXtender has two modes:  Interactive (IRC), or &#8220;Thin Client&#8221;.  Interactive requires IE 6 with ActiveX controls, wheras &#8220;Thin&#8221; does not, but has fewer features.
To set the mode for users, you must enter the &#8220;User Profile Administrator&#8221; program that installs with XS Admin.  You can change the global default, and/or the default for [...]]]></description>
			<content:encoded><![CDATA[<p>WebXtender has two modes:  Interactive (IRC), or &#8220;Thin Client&#8221;.  Interactive requires IE 6 with ActiveX controls, wheras &#8220;Thin&#8221; does not, but has fewer features.</p>
<p>To set the mode for users, you must enter the &#8220;User Profile Administrator&#8221; program that installs with XS Admin.  You can change the global default, and/or the default for specific users (but not for Groups???!!!).  Without further configuration, this option becomes fixed, and the user cannot change it.</p>
<p>However, in App Gen (part of a Full ApplicationXtender install), you can set a global option per-user or per-group called &#8220;Configure WS&#8221;.  Once set, this allows the user to change ALL WebXtender user-configurable options, including the client mode.</p>
<p><strong>Note:</strong> Setting this option in AppGen does not enable it for the user automatically!  You must restart the WX service in order for the change to take effect!  AARGH!  (Recommended approach is to run the &#8220;Component Setup Wizard&#8221; which ships with XS Admin).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=18</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Instant Client, continued</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=17</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=17#comments</comments>
		<pubDate>Mon, 18 Jul 2005 18:31:48 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Document Imaging]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=17</guid>
		<description><![CDATA[To simplify installation of the OC, I wrapped the files into a MSI using &#8220;Advanced Installer&#8221; v2.6.4 from Caphyon Software.
To accomplish this, I just needed to follow the previously documented manual installation routine, and take note of what changed on the system (specifically, I had a look at the REG text files generated by the [...]]]></description>
			<content:encoded><![CDATA[<p>To simplify installation of the OC, I wrapped the files into a MSI using &#8220;Advanced Installer&#8221; v2.6.4 from Caphyon Software.</p>
<p>To accomplish this, I just needed to follow the previously documented manual installation routine, and take note of what changed on the system (specifically, I had a look at the REG text files generated by the ODBC installation script).<br />
Advanced Installer lets to specify source files from ANY location, to be installed to a specified Program Files target.  You also can specify Environment variables and Registry settings that you want performed during the install.</p>
<p>I just shipped the Install Directory to &#8220;University of Vermont\Oracle 10g Client&#8221;, and added an &#8220;admin&#8221; subdirectory for the TNSNAMES.ORA file.  Then I set the PATH, SQLPath, and TNS_Admin environment variables.  Finally, I specified the required ODBC registry changes, and built the MSI.</p>
<p>Since doing the build, a new version of OC 10g Instant Client has become available (v10.1.0.4).  I have updated the installer to use these files instead.  Making this change is fairly simple.  All you have to do is open the original Adv Installer package specification file (.AIP), take note of the location of the source files, then drop the updated files into that location.  If there are any new files, or files that are no longer present, you need to update the AIP to reflect these changes.  Change the package version number, then rebuild&#8230; easy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=17</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Packaging ApplicationXtender</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=16</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=16#comments</comments>
		<pubDate>Mon, 18 Jul 2005 18:13:09 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Document Imaging]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=16</guid>
		<description><![CDATA[After some fine head-banging, I have figured out how to package the ApplicationXtender 5.25 .MSP (patch) file into the original 5.20 installer.  We just need to follow the standard &#8220;administrative installation point&#8221; routine:

At the command line, go to the AX 5.20 installation directory.
Run
msiexec /a AxSetup.msi TARGETDIR=[working directory]
Assuming the MSP file is in the same [...]]]></description>
			<content:encoded><![CDATA[<p>After some fine head-banging, I have figured out how to package the ApplicationXtender 5.25 .MSP (patch) file into the original 5.20 installer.  We just need to follow the standard &#8220;administrative installation point&#8221; routine:</p>
<ol>
<li>At the command line, go to the AX 5.20 installation directory.</li>
<li>Run<br />
<code>msiexec /a AxSetup.msi TARGETDIR=[working directory]</code></li>
<li>Assuming the MSP file is in the same directory, run<br />
<code>"msiexec /p <ax Patch file> /a [working directory]\AxSetup.msi"</ax></code></li>
<li>Now just zip the working directory into a single file.</li>
</ol>
<p>We do have some other options that may help with deployment:</p>
<ol>
<li>The &#8220;XSCM.Config&#8221; file from &#8220;\Documents and Settings\All Users&#8221; into the final archive directory, along with a script that drops this file into place on the target system.  This will save installation staff the need to locate the setup file on first run of the application</li>
<li>The  install directory can be added to a self-extracting zip, which calls the SETUP.EXE.</li>
<li>SETUP.EXE has command-line support, documented in the AX Installation guide.  Essentially, we would run<br />
<code>SETUP MsiExec.exe /i "AxSetup.msi" /QB INSTALLLEVEL=[install_level]</code><br />
 where [install_level] is a number from 1 to 3.  1=Retrieval install, 2=Scan, and 3=admin install.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=16</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SAV 10.0.1 &#8211; building client installers</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=15</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=15#comments</comments>
		<pubDate>Thu, 07 Jul 2005 19:08:58 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[AntiVirus, ProHeadache]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=15</guid>
		<description><![CDATA[Symantec just extended us the honor of downloading SAV v10.0.1 (Maintenance Release 1 for SAV 10).  This build is supposed to fix a bunch of performance complaints.  Now that we have it, I suppose we should think in earnest about getting clients to install the new version.
I have been concerned about the apparent [...]]]></description>
			<content:encoded><![CDATA[<p>Symantec just extended us the honor of downloading SAV v10.0.1 (Maintenance Release 1 for SAV 10).  This build is supposed to fix a bunch of performance complaints.  Now that we have it, I suppose we should think in earnest about getting clients to install the new version.</p>
<p>I have been concerned about the apparent need to provide two installers&#8230; one for upgrades, and one for new installations.  This is an issue that came up with SAV 9, mp2.  Fortunately, I was able to find a decent thread on installation techniques at Novell &#8220;Cool Solutions&#8221;:<br />
<a href="http://www.novell.com/coolsolutions/tip/15090.html">http://www.novell.com/coolsolutions/tip/15090.html</a></p>
<p>I have changed our installed to run the installer using &#8220;setup.exe&#8221; (an install shield program), instead of &#8220;msiexec&#8221;.  When using setup.exe, the installer appear to deal well with existing installations.</p>
<p>I have also added an additional .bat to the installer script&#8230; RemoveStartupScan.bat.  This runs &#8220;reg.exe&#8221; to import a .reg file obtained from Symantec.  The reg settings included disable the startup &#8220;quick scan&#8221; (DoScan.exe) that has been irritating Symantec clients since the release of 10.0.  Symantec says that DoScan has been &#8220;fixed&#8221; with 10.0.1, but I still do not like it.</p>
<p>Finally, I am allowing installation of the Pop3Smtp component, although I suspect that we will just have to rip it out again in the near future.  I thought we might give it a chance for now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=15</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Filesystem reports</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=14</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=14#comments</comments>
		<pubDate>Wed, 01 Jun 2005 22:20:08 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Scripting the Windows Experience]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=14</guid>
		<description><![CDATA[Doug asked me to let him know how many Lotus Approach DBF and APR files are present on our file servers at present.  He was hoping that the report might be something that he could &#8220;save to file&#8221;.
After a lot of mucking around with gnuwin32 tools, I decided that the best &#8220;quick fix&#8221; was [...]]]></description>
			<content:encoded><![CDATA[<p>Doug asked me to let him know how many Lotus Approach DBF and APR files are present on our file servers at present.  He was hoping that the report might be something that he could &#8220;save to file&#8221;.</p>
<p>After a lot of mucking around with gnuwin32 tools, I decided that the best &#8220;quick fix&#8221; was to do the following.  The Windows Server Recource Kit is required:</p>
<ol>
<li>As someone with read access to the entire filesystem, run:<br />
dir /s /t:c \\files\shared | qgrep /y -E &#8220;.dbf .apr&#8221; > dbreport.txt<br />
alternatively, one could use the gnu &#8220;ls&#8221; command to get similar output in a slightly ritcher format.<br />
the /t:c switch forces dir to display the last-changed timestamp rather than the default last-accessed.  The /y performs a case insensitive grep. -E parses results on the end of the line only.<br />
<strong>note</strong> as a fun side project, I had to disable viewing of the ~snapshot directories on our NetApp filer while the query was running, as the dir command insisted on parsing through all of the snapshot directories.  Aargh!</li>
<li>next, I import the txt file into excel.  I used the &#8220;Data->Filter->Advanced Filter&#8221; menu to mask the many duplicate records in the sheet, then past the filtered view into a new sheet.</li>
<li>To get a better grip on the actual number of production Approach databases, I saved the filtered sheet to a new text file then ran the following command:<br />
type dbreport-filt.txt | qgrep -y -E &#8220;.apr&#8221; > dbreport-apronly.txt<br />
this generates a list of only the *.apr records in the file.  I then re-import into a new Excel sheet.  All three sheets have been shipped off to Doug for digestion.</li>
</ol>
<p><hl><br />
<b>UPDATE:</b><br />
Doug has asked for a new report.  I thought I would try doing it with &#8220;POWERSHELL&#8221; this time:</p>
<p><code> gci \\files\shared -recurse -include *.apr,*.mdb -exclude ~snap* | Select-Object LastWriteTime,Length,Name | export-csv dbhunt.csv </code></p>
<p>We are using the &#8220;get-childobject&#8221; (alias &#8220;dir&#8221; or &#8220;gci&#8221;) to get a recursive (-recurse) directory listing of \\files\shared.  We are excluding those pesky ~snapshot directories (-exclude ~snap*), and filtering for only APR and DBF files (-include *.apr,*.mdb &#8211; (NOTE: I got the expression via trial-and-error&#8230; I cannot find a good reference on PowerShell regular expressions and wild card matching.  I would have thought &#8220;$\.apr|$\.dbf&#8221; would work, but it did not.)).  We the pipe (|) to select-object and choose only the LastWriteTime, Length, and Name attributes of the listed files.  Finally we pipe to &#8220;export-csv&#8221; to sent the search results to a csv file.</p>
<p>I am using the PowerShell 1.0 RC1 refresh for this report.  Note that I am able to catch both APR and MDB file types in a single pass, and also I am able to filter the output to include only the attributes that I want.  Finally, I can export directly to a CSV file for import into a spreadsheet.  I suppose I could also have used the &#8220;sort&#8221; features in the pipeline to segregate the APR and MDB files to the top and bottom of the output file, but I will just do that in the spreadsheet.  Another sort option would be to &#8220;remove duplicates&#8221;, but this could result in some data loss as many DBs may have the same name, but with different content.  Somthing I could not figure out how to do in the time available how to auto-format the &#8220;Length&#8221; data in Megabytes&#8230; I know I saw this in a PowerShell demo, but I cannot find my notes, and I can&#8217;t glean this from the online documentation).</p>
<p></hl><hl><br />
Ooh!  Even better:<br />
<code>gci \\files\shared -recurse -include *.apr,*.dbf,*.mdb -exclude ~snap* | Select-Object DirectoryName,Name,Extension,Length,CreationTime,LastWriteTime | sort DirectoryName | Export-Csv \\files\flex1$\qtree-home10\d\dsv\winhome\dbhunt.csv</code></p>
<p>In this pass, I have added additional properties to the &#8220;select-object&#8221; command which I want exported to my CSV report.  These properties are the &#8220;DirectoryPath&#8221; to the file, in addition to it&#8217;s creation time.  Also, I have a separate field for &#8220;extension&#8221; to ease in reporting later on.  I also have added a &#8220;sort&#8221; command to the pipeline so that the output file will already be sorted by DirectoryName.</p>
<p>I think this will take about 3 hours to run, so I am just going to dump the report straight to Doug&#8217;s home directory.  Huzzah! </hl></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=14</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SAV10 migration steps</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=13</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=13#comments</comments>
		<pubDate>Wed, 01 Jun 2005 14:48:21 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[AntiVirus, ProHeadache]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=13</guid>
		<description><![CDATA[Starting the SAV10 server infrastructure process&#8230;

Download and install LU Admin v1.5.4, required to fetch SAV10 updates for our internal LiveUpdate FTP server.  Installed over existing version, purged and re-downloaded alll current SAV/NAV related files, and also updates for Symantec products commonly used at UVM. note: needed to set the LU Admin tool to &#8220;download [...]]]></description>
			<content:encoded><![CDATA[<p>Starting the SAV10 server infrastructure process&#8230;</p>
<ol>
<li>Download and install LU Admin v1.5.4, required to fetch SAV10 updates for our internal LiveUpdate FTP server.  Installed over existing version, purged and re-downloaded alll current SAV/NAV related files, and also updates for Symantec products commonly used at UVM. <strong>note:</strong> needed to set the LU Admin tool to &#8220;download previously retrieved updates&#8221; during the initial download&#8230; otherwise it refuses to get new definitions!</li>
<li>Uninstall Quarantine, Quarantine Console, and Symantec System Center on Norton1, Norton2.</li>
<li>Attempt to run SAV installer by running setup.exe at the root of the SAV10 CD&#8230; setup appears to run, but all it actually does is remove files from the server!  Aargh!  Attempt to use the &#8220;Server Deployment&#8221; tool to push updates to Norton1 and Norton2&#8230; the wizard forces me to re-create the &#8220;UVM Antivirus 1&#8243; group, and to specify a username/password for the group&#8230; I do this.  The wizard then copies installer files to the hosts, and then hangs for half an hour.  I am forced to cancel the installation.</li>
<li>reboot both systems, then attempt to run the regualr installer again.  This time, the installer works (although SAV is now installed in the default &#8220;%systemdrive%\program files\Symantec AntiVirus&#8221; folder, instead of the original folder from the SAV 9 install.  Hmmm&#8230;.</li>
<li>install Central Quarantine on Norton1.  Install system center and quarantine console on norton1 and norton2</li>
<li>Upon launching SSC, there are now <em>two</em> &#8220;UVM AntiVirus 1&#8243; groups, each with one of the NORTON parent servers.  The group with NORTON1 is non-functional, as it reports that NORTON1 is DOWN (even though Norton1 appears to be running all of its Symantec services).  Aargh!</li>
<li>Fix hangs when attempting to view NORTON1 history files by archiving old (and probably corrupt log files.  To do this, I stop the SAV service, then remove all files from c:\documents and settings\all users\application data\symantec\symantec antivirus corporate edition\7.5\logs.</li>
<li>SSC listing of NORTON1 system status as &#8220;down&#8221; could be the result of server overload&#8230; see symantec KB article: <br /> <br />
http://service1.symantec.com/SUPPORT/ent-security.nsf/529c2f9adcf33a1088256e22005026f1/6a0fbf5fc81a6c9588256d6c0060fa5e?OpenDocument&#038;prod=Symantec%20AntiVirus%20Corporate%20Edition&#038;ver=9.0&#038;src=ent&#038;pcode=sav_ce&#038;dtype=corp&#038;svy=&#038;prev=&#038;miniver=savce_9.0<br />
<br /> nope&#8230; that did not help at all&#8230;
</li>
<li>called Symantec tech support.  They speculated that the upgrade of the &#8220;UVM AntiVirus 1&#8243; server group was botched.  The workaround was to first move the functioning &#8220;Norton2&#8243; server to a new, separate server group.  Next, we remove the HKLM\software\intel\landesk\virusprotect6\domaindata registry key (after backing up the registry).  This effectively lobotomizes Norton1, and makes it forget that it is the primary server in the AV group.  After a reboot, the UVM AV 1 group is again accessible via SSC.  We re-promote NORTON1 to primary server of the group, and move Norton2 back in.  Our AV group policies are totally shot, so I need to rebuild all policies.  Joy.</li>
<li>Scheduled tasks on the operating systems have stopped running.  Reason is that path to .exe files changed with the upgrade.  I have updated all of the executable paths.</li>
<li>Roaming services have been implemented&#8230; this will allow SAV 9+ clients to load balance between NORTON1 and NORTON2 parent servers.</li>
<li>Important SAV10 server settings&#8230; new feature is &#8220;performance tuning&#8221;&#8230; I needed to activate management of back-level SAV clients.  Also, I set options to skip over clients that are not checking in with the parent server.  This will allow faster push of updated definitions as they become avialable.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=13</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Norton1 &#8211; service crash&#8230; fixes and post-crash changes</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=12</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=12#comments</comments>
		<pubDate>Tue, 31 May 2005 14:35:47 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[AntiVirus, ProHeadache]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=12</guid>
		<description><![CDATA[Norton1 shut itself off late last week.  Stefanie had a look at it and managed to get it back on it&#8217;s feet:

SYSTEM volume was almot full on Norton1.  Stef found scads of MSFTPSVC log files and deleted them.
SAV service would not restart&#8230; apparently due to corrupt virus definitions.  Repaired by following advice [...]]]></description>
			<content:encoded><![CDATA[<p>Norton1 shut itself off late last week.  Stefanie had a look at it and managed to get it back on it&#8217;s feet:</p>
<ul>
<li>SYSTEM volume was almot full on Norton1.  Stef found scads of MSFTPSVC log files and deleted them.</li>
<li>SAV service would not restart&#8230; apparently due to corrupt virus definitions.  Repaired by following advice at Symantec KB:<br />
http://service1.symantec.com/SUPPORT/ent-security.nsf/docid/2002102209110448?Open&#038;src=ent&#038;docid=2002080708594148&#038;nsf=ent-security.nsf&#038;view=docid&#038;dtype=corp&#038;prod=Symantec%20AntiVirus%20Corporate%20Edition&#038;ver=9.0&#038;osv=&#038;osv_lvl= </li>
<li>We set the IIS service to keep it&#8217;s logs on the D: (vol1) drive instead of SYSTEM.  Geoff will work on a script to purge logs >1 week old</li>
<li>We set the FTP service idle connection timeout from 900 seconds to 120 seconds to cut down on hacker locking FTP service connections.</li>
</ul>
<p><strong>RESOLVED</strong> that we need to look at changes to services on Norton1/2:</p>
<ul>
<li>auto purging to old quarantine files</li>
<li>auto purging of AV service events for faster loading of log viewers</li>
<li>load balancing of client across Norton1/2 for better performance/reliability</li>
<li>potential benefits of upgrade to SAV 10.0</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=12</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Legato License Service:  RPC Port</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=11</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=11#comments</comments>
		<pubDate>Mon, 16 May 2005 21:50:09 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Document Imaging]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=11</guid>
		<description><![CDATA[I wonder if port of the problem I have been having connecting to the AX applications on IMGX owing to some sort of Firewall problem.
The only service that has been installed on any of the imaging servers that appears to be of any potential relevance is the &#8220;Legato Licensing Server&#8221; on DOCIMG1.  Netstat -ano [...]]]></description>
			<content:encoded><![CDATA[<p>I wonder if port of the problem I have been having connecting to the AX applications on IMGX owing to some sort of Firewall problem.</p>
<p>The only service that has been installed on any of the imaging servers that appears to be of any potential relevance is the &#8220;Legato Licensing Server&#8221; on DOCIMG1.  Netstat -ano reveals that this service is listening at port 9152&#8230; this port is not available through the internal firewall. </p>
<p>I will switch this server to port 6252 (currently port of the 100-port range for RPC&#8217;s made available through our internal firewall).  This setting is made in the registry at:<br />
HKLM:\SOFTWARE\Legato\License Server\RPC\<br />
REG_SZ Value: TcpIpEndPoint<br />
After restarting the service and running another Netstat -ano, I now see that the license service is listening at port 6252.  Yeah!</p>
<p><strong>Update</strong>:  Last week our WX instance broke&#8230; EMC support blames this on the port change.  I have reverted to port 9152, and will need to get this exempted on the firewall. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=11</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unattended 2k3 server setup</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=10</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=10#comments</comments>
		<pubDate>Mon, 16 May 2005 20:39:09 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=10</guid>
		<description><![CDATA[Geoff wants to configure Unattended to allow for scripted installed of 2k3 servers.
Our thoughts are to provide a script that will:

Create regular fixed system partition sizes
Install standard system components:  Backup, Power, Management, SNMP
What else?  Std. local admin password?

??? What about the Dell partition, with Utils???  Is it worth it?
Some discovered resources:
Unattended.txt -> [...]]]></description>
			<content:encoded><![CDATA[<p>Geoff wants to configure Unattended to allow for scripted installed of 2k3 servers.</p>
<p>Our thoughts are to provide a script that will:</p>
<ol>
<li>Create regular fixed system partition sizes</li>
<li>Install standard system components:  Backup, Power, Management, SNMP</li>
<li>What else?  Std. local admin password?</li>
</ol>
<p>??? What about the Dell partition, with Utils???  Is it worth it?</p>
<p>Some discovered resources:<br />
Unattended.txt -> When running the windows setup &#8216;.exe&#8217; files, you can use a /unattended=<file> argument to use different answer files for different workgroups.  The &#8220;Setup Manager&#8221; tool can be used to generate a &#8220;Uniqueness Database File&#8221; (UDF) which can be user to define computer names, and apparently to link different answer files to these defined machines as well&#8230; I will need to look into how this is done.</file></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=10</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle 10g Instant Client</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=9</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=9#comments</comments>
		<pubDate>Fri, 13 May 2005 20:12:10 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Document Imaging]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=9</guid>
		<description><![CDATA[Did some work on AX client installation today.  I wanted to see how hard it will be to do a Oracle 10g Instant client install&#8230; looks pretty easy, although I don&#8217;t see why those $%#$%$# at Oracle can&#8217;t be bothered to make a light-weight MSI installer for the 10g client&#8230; it is the messy [...]]]></description>
			<content:encoded><![CDATA[<p>Did some work on AX client installation today.  I wanted to see how hard it will be to do a Oracle 10g Instant client install&#8230; looks pretty easy, although I don&#8217;t see why those $%#$%$# at Oracle can&#8217;t be bothered to make a light-weight MSI installer for the 10g client&#8230; it is the messy Java &#8220;Universal Installer&#8221;, or the installer-free &#8220;instant client&#8221;.  Bah!</p>
<p>anyway, here is what I did&#8230;</p>
<p>-Go to oracle.com, downloads, database, 10g Instant Client, log in, fetch the Instant Client Base package, and the SQLPlus files.  also grabbed the ODBC files, even though I do not really need them at this time.<br />
-Extract all of these .ZIP files to C:\Program Files\Oracle InstantClient\<br />
-SET the System Variable PATH to include the instantclient_<ver> subdirectory of the above path<br />
-SET the new System variable SQLPATH to the same value just appended to PATH, above<br />
-SET the new System variable TNS_ADMIN to the same as SQLPATH, but append &#8220;admin&#8221;.<br />
-Create a new folder &#8220;admin&#8221; in the instant client directory<br />
-Create a TNSNAMES.ORA file in this location, past required entries into it (copied from the %ORACLE_HOME%\network\admin directory on the server &#8220;DOCIMG1&#8243;).<br />
-Run the ODBC Installer .BAT file in the instant client directory<br />
-Log out, then log in again to initialize the newly set variables.<br />
-Test connectivity to the IMG databases using SQLPlus.exe:<br />
C:\> sqlplus <user>@imgy.world</p>
<p>Now I can install XSAdmin and ApplicationXtender applications.  Connecting meerly requires that I select the correct Data Source provider (Microsoft OLE provider for Oracle).</user></ver></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=9</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deep Thoughts, #2</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=8</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=8#comments</comments>
		<pubDate>Fri, 13 May 2005 19:41:24 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Thoughts and Reflections]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=8</guid>
		<description><![CDATA[I do believe the &#8220;A&#8221; in &#8220;Type A Personality&#8221; should stand for &#8220;asshole&#8221;.
These also should be a &#8220;Type J Personality&#8221; for &#8220;jerk&#8221;.
(Throught attributed to Steve Cavrak)
]]></description>
			<content:encoded><![CDATA[<p>I do believe the &#8220;A&#8221; in &#8220;Type A Personality&#8221; should stand for &#8220;asshole&#8221;.</p>
<p>These also should be a &#8220;Type J Personality&#8221; for &#8220;jerk&#8221;.</p>
<p>(Throught attributed to Steve Cavrak)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=8</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deep Thoughts, #1</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=7</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=7#comments</comments>
		<pubDate>Fri, 13 May 2005 19:40:04 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Thoughts and Reflections]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=7</guid>
		<description><![CDATA[Somedays, your arteries just need hardening.
]]></description>
			<content:encoded><![CDATA[<p>Somedays, your arteries just need hardening.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=7</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Citrix Printing</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=6</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=6#comments</comments>
		<pubDate>Thu, 12 May 2005 16:10:23 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Terminal Boredom]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=6</guid>
		<description><![CDATA[Some discovered information on how Citrix prints (that is, when it actually prints at all&#8230;)
Citrix performs &#8220;automatic printer creation&#8221; for ICA client sessions.  When a client uses ICA to connect, the Citrix server creates a &#8220;local&#8221; printer that points back down the ICA pipe to the client&#8217;s locally defined printers.   The Server [...]]]></description>
			<content:encoded><![CDATA[<p>Some discovered information on how Citrix prints (that is, when it actually prints at all&#8230;)</p>
<p>Citrix performs &#8220;automatic printer creation&#8221; for ICA client sessions.  When a client uses ICA to connect, the Citrix server creates a &#8220;local&#8221; printer that points back down the ICA pipe to the client&#8217;s locally defined printers.   The Server must have a driver which matches the client&#8217;s.  If I have a Canon IR2300 printer defined locally, the Citrix server must have this same driver loaded and ready.  Applications on the server will format print jobs using it&#8217;s own driver, and then send them back to the client.</p>
<p>Exceptions to this client/server driver 1:1 driver mapping can be made in the wtsuprn.inf file:<br />
%System Root%\system32\wtsuprn.txt<br />
Here, you can assign specific driver names to a different driver already present on the server.  Most commonly, we map printers to a relatively generic PCL driver such as the HP LJ 4000 or LJ4.  This is a Good Thing, because it allows the sysadmin to avoid loading untested/unstable drivers (think &#8220;Savin&#8221;) on the terminal server.</p>
<p>Unfortunately, this does not always work.  Some printers, such as most Savin printers we have worked with, simply refuse to map, and they do not even have the courtesy of logging errors on client connect.</p>
<p>Citrix recommends using the &#8220;Universal Printer Driver&#8221; for troublesome printers.  Unfortunately, the UPD is not available under MetaFrame 1.8 (which is what we are using).  So, the short answer to the question &#8220;why is my Savin printer not working with Citrix&#8221; is &#8220;because it is not supported&#8221;.</p>
<p>Additional discoveries:<br />
You can see which printers were autogenerated for a client by looking in the registry.<br />
HKU:/<sid>/Printers/Citrix/<br />
shows all of the printers mapped for a currently logged-in user.  Note that </sid><sid> reg keys are loaded at user login time.<br />
You can determine a user SID by issuing the following command line:<br />
dsquery user -samid <netid> | dsget user -sid</p>
<p>If you want to see the user hive for a non-logged in user, you will have to import it from:<br />
<system Drive>:\Documents and Settings\<samid>\USER.DAT</samid></system></netid></sid></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=6</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DiskXtender installation and configuration</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=5</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=5#comments</comments>
		<pubDate>Thu, 12 May 2005 16:07:21 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Document Imaging]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=5</guid>
		<description><![CDATA[Well, we finally got DiskXtender from the IKON folks.  Unfortunately, we do not yet have a license code for the product, which we will need soon if we expect the service to run for more than 30 days&#8230; regardless&#8230;
I uploaded the installer .zip to d:\install, then extracted.  There are documentation PDF files in [...]]]></description>
			<content:encoded><![CDATA[<p>Well, we finally got DiskXtender from the IKON folks.  Unfortunately, we do not yet have a license code for the product, which we will need soon if we expect the service to run for more than 30 days&#8230; regardless&#8230;</p>
<p>I uploaded the installer .zip to d:\install, then extracted.  There are documentation PDF files in this folder.  Following the instructions there, I have created a service account for the &#8220;Data Manager&#8221; (or primary DiskXtender) service.  The account is CAMPUS\sa_dx-DataMngr.  The account has been added to the local administrators group, as per the documentation.</p>
<p>Outside of that, all I have done is run the main DX setup.exe.  The oply two options that I set were 1)  the name of the service account to be used for the service and 2) the name/location of the Legato Licensing server.  (The installer notes that the license sever on DOCIMG1 does NOT have a license for DX at this time, as noted above).</p>
<p>Note that I did NOT install the MediaStor application.  This component does not appear to be required in our case as we will not be managing removable storage devices with our installation of DX.</p>
<p>After the install, I started up the DiskXtender Administrator program.  I then ran the Service->New Extended drive wizard, and added the &#8220;I:&#8221; drive (mounted iSCSI LUN on &#8220;blocks.uvm.edu&#8221;).  It is requested that you configure a number of options for the &#8220;Extended drive&#8221; at this time.  I accepted the defaults for most options, other than &#8220;drive scan&#8221;, which I changed from &#8220;disabled&#8221; to instead run once a week on Saturday at 2:00 am.</p>
<p>The wizard also requests that you setup a &#8220;media folder&#8221; for the extended volume.  I quickly added &#8220;hr_images&#8221;&#8230; I will wade through the documentation to see if I really need separate media folders for the whole volume.  I would rather avoid touching this interface in the future&#8230; certainly I do not want to make setting up new media folders a prerequisite for new AX applications, if at all possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=5</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Feeling Down</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=4</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=4#comments</comments>
		<pubDate>Tue, 10 May 2005 14:21:25 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Thoughts and Reflections]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=4</guid>
		<description><![CDATA[Despite having gotten my orthodonture off last week,
despite the beautiful loving wife,
despite being the pround parent of a devastatingly cute 2 year old boy and a beautiful 2 month old girl,
despite making a livable wage,
despite owning my own home,
despite not being hungry, at war, in danger&#8230;
I am feeling a bit down today.  It seems [...]]]></description>
			<content:encoded><![CDATA[<p>Despite having gotten my orthodonture off last week,<br />
despite the beautiful loving wife,<br />
despite being the pround parent of a devastatingly cute 2 year old boy and a beautiful 2 month old girl,<br />
despite making a livable wage,<br />
despite owning my own home,<br />
despite not being hungry, at war, in danger&#8230;</p>
<p>I am feeling a bit down today.  It seems we never make any real headway here in CIT.  I am wondering how we can be more effective?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=4</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PXE Config for RIS/Unattended Dual-boot</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=3</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=3#comments</comments>
		<pubDate>Tue, 10 May 2005 14:19:37 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=3</guid>
		<description><![CDATA[Microsoft RIS and &#8220;Unattened&#8221; both have support for network-boot installation.  With RIS, this is the only supported configuration.  With Unattended, this is one of several supported configurations.
A little work needs to be done to get the two system to co-habitate on the same server.
Initially, I had throught to use the &#8220;PXELINUX&#8221; boot system [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft RIS and &#8220;Unattened&#8221; both have support for network-boot installation.  With RIS, this is the only supported configuration.  With Unattended, this is one of several supported configurations.</p>
<p>A little work needs to be done to get the two system to co-habitate on the same server.</p>
<p>Initially, I had throught to use the &#8220;PXELINUX&#8221; boot system which ships with Unattended as the primary boot system, adding additional entries to the default.cfg file in the TFTP boot directory.  However, I have been unable to find any &#8220;how to&#8217;s&#8221; for this configuration.</p>
<p>Instead, we will attempt to use RIS for the primary boot image.  We will then add Unattened&#8217;s PXELINUX boot files as a &#8220;Tool&#8221; in the RIS setup menu.  This was done following instructions at:<br />
http://syslinux.zytor.com/ris.php<br />
(we omit the step that suggests altering the .osc file).<br />
Note that the &#8220;Unattened&#8221; tool now shows up under the &#8220;RIS Service&#8221; tab in the DSA.msc MMC console (AKA &#8220;Active Directory Users and Computers&#8221;).</p>
<p>Since I had previously requested special DHCP configuration options for the 104.0 subnet where our pre-prod RIS/Unattended box resides, I have had to request these options be altered.  They were:<br />
next-server 132.198.104.170<br />
filename &#8220;pxelinux.0&#8243;  (note the quotes)</p>
<p>For RIS, the filename option needs to be changed to &#8220;/OSChooser/i386/startrom.com&#8221;. (note again the very important quotes)</p>
<p>Now we need to enable the &#8220;Tools&#8221; menu on the RIS server.  Through near-random web searching, I discover that this is a group policy setting.  For starters, I make a new GPO called &#8220;CIT &#8211; RIS Policy&#8221;.  This policy is linked to the &#8220;PEOPLE&#8221; OU with NO FILTERING (at present&#8230; probably need to change that&#8230;  probably make it part of the &#8220;Windows Services&#8221; user policy).  I disable COMPUTER side processing, then under &#8220;Windows Settings->Remote Installation Services&#8221;, I enable &#8220;custom&#8221; and &#8220;Tools&#8221; options.  NOTE that using loopback processing and linking the policy to the server&#8217;s OU does NOT work&#8230; apparently GP processing in the CIW (AKA the RIS Client Installation Wizard) is not that sophisticated.</p>
<p>When we netboot to the RIS server and login, we now get a TOOLS option&#8230; Huzzah!!!!  When we select Tools, then Unattended, Unattended starts right up!  Double Huzzah!</p>
<p>Interesting to note that MS maintains that OEMs will provide Tools snapins for firmware updates and the like.  I will have to see if Dell makes these available.</p>
<p>Also consider emSoft&#8217;s RIS menu editor:<br />
http://www.emboot.com/FREE_RIS_Menu_Editor.shtml<br />
(This is a free download of the 1.0 version&#8230; 2.0 is a cheap pay-ware app).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=3</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deployment Introduction</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=2</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=2#comments</comments>
		<pubDate>Tue, 10 May 2005 14:18:21 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[System Imaging and Deployment]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=2</guid>
		<description><![CDATA[I have been working on expanding the features on our Desktop system distribution servers.
Currently, CIT uses a Microsoft RIS on three servers to deploy MS operating systems to computers purchased through the Depot.  
One system, &#8220;RISPrime&#8221;, is installed permanently in the Depot.  This system is located at IP 132.198.115.115 and is joined to [...]]]></description>
			<content:encoded><![CDATA[<p>I have been working on expanding the features on our Desktop system distribution servers.</p>
<p>Currently, CIT uses a Microsoft RIS on three servers to deploy MS operating systems to computers purchased through the Depot.  </p>
<p>One system, &#8220;RISPrime&#8221;, is installed permanently in the Depot.  This system is located at IP 132.198.115.115 and is joined to the production &#8220;CAMPUS&#8221; Active Directory domain.</p>
<p>Two security groups control access to the RIS server (beyond &#8220;authenticated users&#8221;, all of whom are allowed access to RIS-boot and pull down disk images).<br />
First, &#8220;CIT &#8211; Workstation Join&#8221; is used to grant rights to populate computer objects into the RIS-Workstations,CIT,Resources,campus,ad,uvm,edu container.  These are the users who will be able to auto-generate computer objects when running RIS.<br />
Second, &#8220;CIT-RISImageMakers&#8221; are granted the rights to add disk images to the &#8220;RemInst&#8221; share on RISPrime, under the Setup->English->Images folder.</p>
<p>The two remaining RIS systems are not in active use except during back-to-school system deployment and port-deployment help-fairs.  These systems each run self-contained Active Directory environments (complete with DHCP and DNS services), and have a separate mirrors of the RISPrime disk images.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=2</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A test</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=45</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=45#comments</comments>
		<pubDate>Thu, 01 Jan 1970 03:59:59 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=45</guid>
		<description><![CDATA[This is a test.

 
]]></description>
			<content:encoded><![CDATA[<p>This is a test.
</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=45</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blah!</title>
		<link>http://www.uvm.edu/~jgm/wordpress/?p=43</link>
		<comments>http://www.uvm.edu/~jgm/wordpress/?p=43#comments</comments>
		<pubDate>Thu, 01 Jan 1970 03:59:59 +0000</pubDate>
		<dc:creator>J. Greg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.uvm.edu/~jgm/wordpress/?p=43</guid>
		<description><![CDATA[
 

James_S_Davis@dell.com  Dell  Professional Services

www.learndell.com


 
 

 
 
 

 
 
 
 
 

 
 
 

 
 
 
do Adding packages to software repositories


 

1390° to support dell. cm

ideate&#8221; vi sure &#8220;so



is 4.4 _




 

1&#62;2400 series and higher

can auto-run update all



firmware



		 
]]></description>
			<content:encoded><![CDATA[<p>
 </p>
<p><span style="font-family:Verdana">
<p><span style="font-size:10">James_S_Davis@dell.com  Dell  Professional Services<br />
</span></p>
<p><span style="font-size:17">www.learndell.com<br />
</span></p>
<p></span>
<p> <br />
 </p>
<p>
 </p>
<p> <br />
 </p>
<p>
 </p>
<p> <br />
 </p>
<p> <br />
 </p>
<p>
 </p>
<p> <br />
 </p>
<p>
 </p>
<p> <br />
 </p>
<p><span style="font-family:Verdana; font-size:16">do Adding packages to software repositories<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Verdana">
<p><span style="font-size:16">1390° to support dell. cm<br />
</span></p>
<p><span style="font-size:16">ideate&#8221; vi sure &#8220;so<br />
</span></p>
<blockquote></blockquote>
<blockquote></blockquote>
<blockquote><p><span style="font-size:16">is 4.4 _<br />
</span></p>
</blockquote>
<p></span>
<p>
 </p>
<p><span style="font-family:Verdana"></span><span style="font-size:16">
<p>1&gt;2400 series and higher
</p>
<p>can auto-run update all
</p>
<p></span><br />
<blockquote></blockquote>
<blockquote><p><span style="font-size:16">firmware<br />
</span></p>
</blockquote>
<p><span style="font-family:Times New Roman; font-size:12"><br />
		</span> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.uvm.edu/~jgm/wordpress/?feed=rss2&amp;p=43</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
