<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://share.intelliem.com/cs/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Dan Holme</title><subtitle type="html" /><id>http://share.intelliem.com/cs/blogs/danholme/atom.aspx</id><link rel="alternate" type="text/html" href="http://share.intelliem.com/cs/blogs/danholme/default.aspx" /><link rel="self" type="application/atom+xml" href="http://share.intelliem.com/cs/blogs/danholme/atom.aspx" /><generator uri="http://communityserver.org" version="4.0.30417.1769">Community Server</generator><updated>2008-12-08T08:46:28Z</updated><entry><title>Why Service Applications?</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2009/10/19/why-service-applications.aspx" /><id>/cs/blogs/danholme/archive/2009/10/19/why-service-applications.aspx</id><published>2009-10-19T22:56:06Z</published><updated>2009-10-19T22:56:06Z</updated><content type="html">&lt;p&gt;One of the big structural changes in SharePoint 2010 are Service Applications, the successor to the Shared Service Provider model in SP2007. Now, service applications are part of SharePoint Foundation 2010 (successor to Windows SharePoint Services). And, there is a many-to-many relationship between service apps and web apps.&amp;#160; That means that a web app can consume one or more service apps, and a service app can be consumed by one or more web apps.&amp;#160; The easiest way to understand this would be some examples:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Managed Metadata service app, which manages taxonomy and content types across sites, collections, apps, and farms.&amp;#160; You might have an enterprise term store with the enterprise taxonomy, managed by IT. Another term store may contain taxonomy for Finance, and perhaps a select group of users or managers in Finance manage that term store. The finance team site can consume both the enterprise and the finance term stores.&lt;/li&gt;    &lt;li&gt;Search.&amp;#160; You might have an intranet search service with search scopes that include Exchange public folders and file shares, as well as all of your SharePoint sites; and another search service that indexes a subset of SharePoint sites. Your extranet sites for partners may consume the SharePoint-only search service, but your intranet team sites may consume both the extranet and intranet search service apps.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Pretty cool, eh?&amp;#160; Can you see how interesting this might get?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=3837" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry><entry><title>What a difference three years makes: SharePoint 2010 revealed</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2009/10/19/what-a-difference-three-years-makes-sharepoint-2010-revealed.aspx" /><id>/cs/blogs/danholme/archive/2009/10/19/what-a-difference-three-years-makes-sharepoint-2010-revealed.aspx</id><published>2009-10-19T19:26:55Z</published><updated>2009-10-19T19:26:55Z</updated><content type="html">&lt;p&gt;Today at the SharePoint Conference in Las Vegas, Microsoft unveiled SharePoint 2010 with an impressive display of functionality and confidence. The SPC was shrouded in secrecy--attendees arrived not knowing, exactly, what they would see--and Microsoft&amp;#39;s big gamble worked, as more than 7000 IT Pros, developers, users, and decision makers packed the Mandalay Bay hotel. Moments ago, Tom Rizzo, Microsoft Senior Director of SharePoint, welcomed the enthusiastic crowd and the Non-Disclosure Agreement that&amp;#39;s been hamstringing the MVP community was lifted, which means that you who are not attending the event will now benefit from a deluge of information about SharePoint 2010, which you&amp;#39;ll be able to get your hands on in November when the public beta is released.&lt;/p&gt;  &lt;p&gt;What impresses me more than anything (and there is a lot to be impressed with) is just how astronomical the growth of this product, and the &amp;quot;ecosystem&amp;quot; that surrounds it, has grown. This event is twice as big as last year&amp;#39;s, and is actually bigger than some recent TechEds, even though this is dedicated to one product. Walking into the Expo hall last night, I was overwhelmed with the depth, diversity, and maturity of the products that enhance the capabilities of the SharePoint platform. The size of the SharePoint wave, and what has happened in a mere three years, is mind-boggling.&lt;/p&gt;  &lt;p&gt;Today, you will experience a tsunami of information about SharePoint 2010. There is no lack of surprises and announcements. The list is so long that all I can do is list right now--hopefully this will help you spot the features and value propositions that are meaningful to your enterprise.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The user interface and experience has been completely overhauled. &amp;quot;Peppy&amp;quot; and &amp;quot;impressive&amp;quot; are the right adjectives. The Ribbon has been injected into every aspect of SharePoint. AJAX enhances performance. The number of &amp;quot;clicks&amp;quot; it takes to do everything has been minimized throughout. And everything renders in compliant, accessible (WCAG 2.0) XHTML for browsers including IE, Firefox, Safari (good news for Macs) and mobile browsers.&lt;/li&gt;    &lt;li&gt;Shared services are no more, replaced by Service Applications that offer incredible flexibility and power. One of my favorite new service applications manages content types and taxonomy across sites, collections, web apps, and farms… yes! (Huge applause at the SPC)&lt;/li&gt;    &lt;li&gt;Social networking and knowledge networking are unleashed, for real this time. SharePoint 2010 fills the big gaps in 2007, with managed taxonomies and folksonomies, expertise finding, content rating, and commenting. I&amp;#39;m looking forward to sharing the technology and enterprise value of these technologies at SharePoint Connections.&lt;/li&gt;    &lt;li&gt;Search rocks. The performance, the user experience, the refiners, the relevance algorithms. Wow. That&amp;#39;s just Standard search. The full integration of FAST search gives SharePoint best of class enterprise search capabilities. One particularly cool feature is previews of Word, Excel and PowerPoint search results thanks to integration with Office Web Apps.&lt;/li&gt;    &lt;li&gt;Records management is now integrated into every document library. Records (which, by definition, are official documents that are locked for changes) can live alongside normal documents, and now have a multistage lifecycle.&lt;/li&gt;    &lt;li&gt;SharePoint Workspace 2010, the successor to Groove, is a fully integrated, rich client that supports offline experience including InfoPath forms, and custom composite applications.&lt;/li&gt;    &lt;li&gt;Even more disconnected? SharePoint&amp;#39;s mobile rendering is nice!&lt;/li&gt;    &lt;li&gt;Access and Visio Services join Excel Services which itself is significantly updated. Now, those mission critical Access applications and Visio diagrams can be hosted by SharePoint. And the Access applications are particularly feature rich.&lt;/li&gt;    &lt;li&gt;Office Web Applications (Excel, PowerPoint and Word) are part of SharePoint 2010, supporting simultaneous multiuser editing with shared visibility of real time changes.&lt;/li&gt;    &lt;li&gt;&amp;quot;Composites&amp;quot; are the new word for code-free and code-lite applications that integrate with and are supported by Office client applications, most importantly Access Services and an improved (and still free) SharePoint Designer.&lt;/li&gt;    &lt;li&gt;Sites are now made up of pages in a library, and each can be edited inline, much like a wiki. Wow. This will make it so much easier for teams and users to really make their sites work for them. &lt;/li&gt;    &lt;li&gt;Theming and branding have been enhanced in some big ways&lt;/li&gt;    &lt;li&gt;Identity services extend the capability to authenticate users&lt;/li&gt;    &lt;li&gt;KPIs are available in all sites, so a team site can use KPIs to keep track of project status.&lt;/li&gt;    &lt;li&gt;Business Connectivity Services (BCS), the successor to the BCD, provides read and write access to back end services. Tom Rizzo did a simple but effective demonstration that hooked a SQL database into a SharePoint list into Outlook and provided both read and write capability, in about 1 minute. Read it, write it, take it offline. Cool!&lt;/li&gt;    &lt;li&gt;A lot of improvement for developers, starting with enhancements to Visual Studio, which completely integrates SharePoint, finally. Unfortunately, the improvements in Visual Studio 2010 cannot be used to develop on SharePoint 2007.&lt;/li&gt;    &lt;li&gt;You can now develop on a Windows 7 or Vista client running SharePoint (yes!)&lt;/li&gt;    &lt;li&gt;A beautiful deployment and debugging capability, featuring the Developer Dashboard which helps identify performance and code problems on each page&lt;/li&gt;    &lt;li&gt;Sandbox solutions allow custom code within a site collection, buffered from other sites, giving developers the ability to deploy solutions within the governance of the web application, including throttling to confine runaway applications&lt;/li&gt;    &lt;li&gt;Sandbox solutions, by the way, allows you to run custom code on SharePoint online!&lt;/li&gt;    &lt;li&gt;SharePoint Online (Microsoft&amp;#39;s hosted &amp;quot;cloud-based&amp;quot; SharePoint offering) will gain all kinds of functionality, thanks to Sandbox Solutions. You&amp;#39;ll get almost all of the end user capabilities of SharePoint 2010 in the cloud, as well. &lt;/li&gt;    &lt;li&gt;Two new products: SharePoint Server for Internet Sites (a standard and enterprise edition) and FAST Search Server 2010 for Internet Business, as well as SharePoint Online for Internet Sites. That&amp;#39;s right, Microsoft SharePoint Online can now host your public internet-facing site!&lt;/li&gt;    &lt;li&gt;An improved text editor throughout for page editing, wikis, blogs, and content, with live preview, wiki syntax support, branding and slick image management&lt;/li&gt;    &lt;li&gt;Better features for standard and enterprise wikis (including syntax and templates) and blogs&lt;/li&gt;    &lt;li&gt;Expertise finding and a Silverlight-based organizational browser that leverages tagging and Outlook/Exchange integration, as well as Active Directory and improved user profiles. People search has some ooh-aah-wow features including phonetic and nickname synonyms for names.&lt;/li&gt;    &lt;li&gt;Streamlined access to content, profile, and feeds from areas of expertise and colleagues in MySites&lt;/li&gt;    &lt;li&gt;The Web Content Management story is solid, with better end user editing experience and improved manageability for IT, as well as rich media (e.g. videos) through a skinnable Silverlight media player and streaming right from the SharePoint store.&lt;/li&gt;    &lt;li&gt;SharePoint Foundation 2010 replaces Windows SharePoint Services, providing the core plumbing for SharePoint, including sites, deployment, and administration.&lt;/li&gt;    &lt;li&gt;Some of the governance issues that were too &amp;quot;top-down&amp;quot; (e.g. Records Management) and some that were too &amp;quot;bottom-up&amp;quot; (e.g. SharePoint Designer customizations) have been extended the other direction&lt;/li&gt;    &lt;li&gt;Big improvements in scalability: no more 2000-item limits or other crazy, artificially low scalability problems. Million-plus item lists, and ten-million item libraries. That got one of the biggest rounds of applause at the SPC.&lt;/li&gt;    &lt;li&gt;A metadata-everywhere model, with taxonomy management and the ability to drive metadata into documents automatically (based on folder, for example) as well as a cool feature to automatically route documents into the right library&lt;/li&gt;    &lt;li&gt;A feature called document sets, which creates a collection of documents with shared metadata&lt;/li&gt;    &lt;li&gt;Insights--the latest iteration of Business Intelligence. I&amp;#39;ve complained in the past that BI in 2007 was a swimming pool without water (a quote from a fellow MVP). I&amp;#39;m happy to say that Microsoft has indeed added a lot of water to the pool. Interactions with PivotTables, sparklines, slicers--even the terms are cool :-) And of course, as expected, Performance Point Services integrates Performance Point into the Insights capability of SharePoint.&lt;/li&gt;    &lt;li&gt;An in-memory database server capability that can run on the server or the client to sift through data: SQL Server PowerPivot for Excel (the client) or for SharePoint (for the server). Together with Excel&amp;#39;s newfound capability to rock with hundreds of millions of rows of data… yikes!&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I know this is quite a laundry list. It was tough to consolidate the multi-page SharePoint 2010 overview documentation and the content of the keynotes, but I hope you spot more than a few new features that will rock your world. It&amp;#39;s hard to believe you won&amp;#39;t! We&amp;#39;ll continue our exploration of What&amp;#39;s New in SharePoint 2010 next week. Until then, you can follow me on Twitter @danholme, and I&amp;#39;ll do my best to post blog entries to &lt;a href="http://www.sharepointproconnections.com"&gt;www.sharepointproconnections.com&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=3835" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry><entry><title>Rhonda's FRS Video</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2009/09/16/rhonda-s-frs-video.aspx" /><id>/cs/blogs/danholme/archive/2009/09/16/rhonda-s-frs-video.aspx</id><published>2009-09-16T21:45:00Z</published><updated>2009-09-16T21:45:00Z</updated><content type="html">&lt;p&gt;Our little &amp;quot;fire alarm&amp;quot; interrupted the presentation of FRS/DFS-R guru Rhonda Layfield.&lt;/p&gt;
&lt;p&gt;Right-click this &lt;a href="http://www.intelliem.com/files/media/image/ITP_WIN_LAYFIELD_FRS_0903.wmv" class="null"&gt;&amp;quot;DOWNLOAD HERE&amp;quot; &lt;/a&gt;link and choose Save Target As.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=3833" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry><entry><title>Duplicate SIDs – finally nabbed</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2009/07/21/duplicate-sids-finally-nabbed.aspx" /><id>/cs/blogs/danholme/archive/2009/07/21/duplicate-sids-finally-nabbed.aspx</id><published>2009-07-22T07:48:08Z</published><updated>2009-07-22T07:48:08Z</updated><content type="html">&lt;p&gt;For, oh, 15 years I’ve been telling people to be aware of duplicate SIDs; and over the years we’ve had different tools—most recently, sysprep—to help ensure that each machine has a unique SID.&lt;/p&gt;  &lt;p&gt;Today I finally got nabbed.&amp;#160; I recycled a virtual machine image without thinking about the fact that it had not been sysprepped.&amp;#160; And I learned some things about the strangeness that happens!&lt;/p&gt;  &lt;p&gt;The VM started as a workgroup server, let’s call it SERVER01.&amp;#160; I promoted it to a domain controller, renaming it along the way HQDC01.&amp;#160; Today, I took a copy of the SERVER01 VM—pre promotion—booted it up and joined the domain.&amp;#160; Seemed to work—no worries no fuss.&amp;#160; &lt;/p&gt;  &lt;p&gt;Then strange things started happening.&amp;#160; I couldn’t open Event Viewer remotely to SERVER01, even though I was using Domain Admins level credentials.&amp;#160; When I logged on to SERVER01, I couldn’t open Event Viewer (or much of anything, administrative) using domain credentials—I kept getting “access denied” type errors.&amp;#160; But I could open Server Manager (including Event Viewer inside it!).&amp;#160; I saw event messages about the clock not being synched with the DC, but I knew it had been.&amp;#160; I also saw some big Group Policy application failures.&lt;/p&gt;  &lt;p&gt;I got confused about credentials and checked the local Administrators group and, sure enough, Domain Admins was &lt;em&gt;not&lt;/em&gt; a member!&lt;/p&gt;  &lt;p&gt;Then, buried in the logs, I saw an insidious little error—something along the lines of “this server has the same SID as the domain.”&amp;#160; AHA!&amp;#160; That was the problem.&amp;#160; Which was interesting also because I thought a new SID was generated during DCPROMO *and* I thought a new SID was generated when a workgroup machine joined a domain!&amp;#160; Wrong on both counts I guess!!&lt;/p&gt;  &lt;p&gt;So “weirdness” is the symptom, duplicate SIDs is the cause, and stupid “only-after-15-years-how-could-I-forget-to-sysprep” is the &lt;em&gt;root &lt;/em&gt;cause.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=3813" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry><entry><title>TechMentor 2009</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2009/06/25/techmentor-2009.aspx" /><id>/cs/blogs/danholme/archive/2009/06/25/techmentor-2009.aspx</id><published>2009-06-25T20:35:42Z</published><updated>2009-06-25T20:35:42Z</updated><content type="html">&lt;p&gt;Thanks so much for attending TechMentor!&lt;/p&gt;  &lt;p&gt;The demos (tools &amp;amp; scripts) for my FILE SERVER SECURITY session are here:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://cid-b78bfd2f7244f635.skydrive.live.com/self.aspx/TechMentor/File%20Server%20Demos.zip" href="http://cid-b78bfd2f7244f635.skydrive.live.com/self.aspx/TechMentor/File%20Server%20Demos.zip"&gt;http://cid-b78bfd2f7244f635.skydrive.live.com/self.aspx/TechMentor/File%20Server%20Demos.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The demos (tools &amp;amp; scripts) and slides for my USER EXPERIENCE session are here:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://cid-b78bfd2f7244f635.skydrive.live.com/self.aspx/TechMentor/User%20Experience%200906.zip" href="http://cid-b78bfd2f7244f635.skydrive.live.com/self.aspx/TechMentor/User%20Experience%200906.zip"&gt;http://cid-b78bfd2f7244f635.skydrive.live.com/self.aspx/TechMentor/User%20Experience%200906.zip&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=3802" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry><entry><title>TechEd North America 2009</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2009/05/14/teched-north-america-2009.aspx" /><id>/cs/blogs/danholme/archive/2009/05/14/teched-north-america-2009.aspx</id><published>2009-05-14T19:22:57Z</published><updated>2009-05-14T19:22:57Z</updated><content type="html">&lt;p&gt;Thank you all for attending my sessions on SharePoint Governance (OFC302) and Administrative Brilliance (WSV401).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cid-b78bfd2f7244f635.skydrive.live.com/self.aspx/TechEd%2020009/TechEdNA2009%7C_AdminIdol.zip" target="_blank"&gt;The scripts and documentation for WSV401 can be downloaded here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;* EVALUATIONS *&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Please do be sure to &lt;em&gt;fill in an evaluation &lt;/em&gt;for the sessions!&amp;#160; Your ratings are important in determining our participation in future events, and your comments are crucial to my efforts to continue to provide practical, value-laden solution sessions!&lt;/li&gt;    &lt;li&gt;To fill in an evaluation, just open your “Schedule Builder” from &lt;a href="http://www.msteched.com"&gt;www.msteched.com&lt;/a&gt;, look for my sessions in the catalog or in your calendar, and you’ll see the evaluation “e” icon.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;* SESSION TITLE *&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Several folks suggested that the session needed a better title, because they felt “everyone at TechEd should have been there.”&amp;#160; What do you think?&amp;#160; Any suggestions?&amp;#160; In the past I’ve used:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Reimagining Administration&lt;/li&gt;      &lt;li&gt;Administration Extreme Makeover&lt;/li&gt;      &lt;li&gt;Administrator’s Idol&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Give me more ideas!&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;* RECORDING * of the session&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;I will be posting a recording of the session that will be available on a pay-to-watch basis.&amp;#160; It won’t be expensive—just enough to help me cover the streaming/downloading infrastructure.&amp;#160; If you’re interested, email me at dan h att intelliem dott com and I’ll let you know when it’s available!&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Thank you!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=3786" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry><entry><title>SharePoint Summit London 07 May</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2009/05/11/sharepoint-summit-london-07-may.aspx" /><id>/cs/blogs/danholme/archive/2009/05/11/sharepoint-summit-london-07-may.aspx</id><published>2009-05-11T13:57:38Z</published><updated>2009-05-11T13:57:38Z</updated><content type="html">&lt;p&gt;Greetings!&amp;#160;&amp;#160; My flight on Friday was at 7am, not 11am as I expected, so I didn’t get the slides posted in my rush out the door.&amp;#160; Thank you so much for attending, and for your fantastic questions!&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://cid-b78bfd2f7244f635.skydrive.live.com/self.aspx/SharePoint%20Summit/SharePoint%20Summit%7C_090507.zip" target="_blank"&gt;Slides can be downloaded here.&lt;/a&gt;&lt;/p&gt;  &lt;div&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=3785" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry><entry><title>Seminario SharePoint</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2009/05/06/seminario-sharepoint.aspx" /><id>/cs/blogs/danholme/archive/2009/05/06/seminario-sharepoint.aspx</id><published>2009-05-06T09:03:00Z</published><updated>2009-05-06T09:03:00Z</updated><content type="html">&lt;p&gt;NOTE: I apologize that the link was incorrect.&amp;nbsp; It is now correct.&lt;/p&gt;
&lt;p&gt;OBRIGADO for attending the Seminario SharePoint at Microsoft on 5 May!&amp;nbsp; I am grateful that you spent the day with me, and hope that you took away some useful guidance, tips and tricks, as well as a vision for how to drive adoption and success of SharePoint in your enterprise!&lt;/p&gt;
&lt;p&gt;I have posted my slides.&amp;nbsp; &lt;a href="http://cid-b78bfd2f7244f635.skydrive.live.com/self.aspx/SharePoint%20Summit/Seminario%7C_SharePoint%7C_090505.zip" class="null"&gt;CLICK HERE TO DOWNLOAD SLIDES&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I look forward to returning to Lisboa soon.&amp;nbsp; Best wishes!&lt;/p&gt;
&lt;p&gt;Dan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=3782" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry><entry><title>Windows Connections Orlando 2009</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2009/03/17/windows-connections-orlando-2009.aspx" /><id>/cs/blogs/danholme/archive/2009/03/17/windows-connections-orlando-2009.aspx</id><published>2009-03-17T13:33:37Z</published><updated>2009-03-17T13:33:37Z</updated><content type="html">&lt;p&gt;Thank you so much for taking the time to join us for Windows Connections in Orlando.&amp;#160; We are &lt;em&gt;truly&lt;/em&gt; grateful for your attendance, and we hope you enjoyed yourself and learned a &lt;em&gt;lot&lt;/em&gt;.&amp;#160; Below are slides and scripts from my sessions.&amp;#160; Don’t hesitate to email me at dan h at intelliem dot top-level-commercial-domain.&amp;#160; ALL THE BEST to you!&lt;/p&gt;  &lt;p&gt;Dan&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;SharePoint Governance: Do or Die&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://share.intelliem.com/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/danholme.Connections0903/WSH03-_2D00_-Holme-_2D00_-Governance.pptx" target="_blank"&gt;Slides&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/office/sharepointserver/bb507202.aspx" target="_blank"&gt;Microsoft SharePoint Governance center on TechNet&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;SharePoint Document Libraries&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://share.intelliem.com/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/danholme.Connections0903/WSH02-_2D00_-Holme-_2D00_-Document-Libraries.pdf" target="_blank"&gt;Slides&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Administrator’s Idol&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://share.intelliem.com/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/danholme.Connections0903/WWS03-_2D00_-Holme-_2D00_-Administrators-Idol.zip" target="_blank"&gt;Slides and Scripts&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Link to &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=CE90D6D7-7B96-47BF-A22F-A7E8C5D40647&amp;amp;displaylang=en" target="_blank"&gt;Help Desk SharePoint template&lt;/a&gt; – you can use it with Windows SharePoint Services (the free one).&amp;#160; READ THE README on the download page—there’s another download (the “core” that you need)&lt;/li&gt;    &lt;li&gt;The &lt;a href="http://share.intelliem.com/cs/r.ashx?=2" target="_blank"&gt;WINDOWS ADMINISTRATION RESOURCE KIT&lt;/a&gt; has all of these tools and more.&lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=2220" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry><entry><title>Connections Preconference: Extreme Admin Makeover</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2009/03/15/connections-preconference-extreme-admin-makeover.aspx" /><id>/cs/blogs/danholme/archive/2009/03/15/connections-preconference-extreme-admin-makeover.aspx</id><published>2009-03-15T12:39:00Z</published><updated>2009-03-15T12:39:00Z</updated><content type="html">&lt;p&gt;Thanks to those of you who attended the “Extreme Admin Makeover” preconference in Orlando!&lt;/p&gt;  &lt;p&gt;You can download the sample files here:&lt;/p&gt;  &lt;p&gt;&lt;a title="090314 Admin Precon.zip" href="http://share.intelliem.com/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/danholme.Connections0903/090314-Admin-Precon.zip"&gt;090314 Admin Precon.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Stay in touch and let me know if you have any questions.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=2193" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry><entry><title>SPBC Feb 09 Slides</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2009/02/02/spbc-feb-09-slides.aspx" /><id>/cs/blogs/danholme/archive/2009/02/02/spbc-feb-09-slides.aspx</id><published>2009-02-03T04:49:54Z</published><updated>2009-02-03T04:49:54Z</updated><content type="html">&lt;p&gt;If you attended the SharePoint Best Practices Conference in San Diego, and came to my sessions, &lt;em&gt;thank you&lt;/em&gt;!&lt;/p&gt;  &lt;p&gt;You can download the slides here:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;em&gt;&lt;a href="http://cid-b78bfd2f7244f635.skydrive.live.com/self.aspx/SharePoint%20BPC/Holme%7C_ITP219%7C_GovernanceNutsAndBolts%7C_rev%7C_Attendees.pptx" target="_blank"&gt;Governance Nuts and Bolts&lt;/a&gt;&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://cid-b78bfd2f7244f635.skydrive.live.com/self.aspx/SharePoint%20BPC/Holme%7C_PM328%7C_BizIntelLite.pptx" target="_blank"&gt;&lt;/a&gt;&lt;em&gt;&lt;a href="http://cid-b78bfd2f7244f635.skydrive.live.com/self.aspx/SharePoint%20BPC/Holme%7C_PM328%7C_BizIntelLite.pptx" target="_blank"&gt;Business Intelligence Lite&lt;/a&gt;&lt;/em&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The three governance white papers I wrote with Microsoft are here:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=92895&amp;amp;clcid=0x409"&gt;Windows SharePoint Services manageability controls&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=92896&amp;amp;clcid=0x409"&gt;Supporting information architecture with Windows SharePoint Services manageability controls&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=92897&amp;amp;clcid=0x409"&gt;Implementing Windows SharePoint Services governance&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Remember: WSS Governance is a (big) subset of SharePoint Server Governance!&lt;/p&gt;  &lt;p&gt;All of these resources can also be found at the &lt;a href="http://technet.microsoft.com/en-us/office/sharepointserver/bb507202.aspx" target="_blank"&gt;SharePoint Governance Resource Center on TechNet&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Please stay in touch, and hunt me down during the event to say “hi!”&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=283" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry><entry><title>HTA to provision a user</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2009/01/22/hta-to-provision-a-user.aspx" /><id>/cs/blogs/danholme/archive/2009/01/22/hta-to-provision-a-user.aspx</id><published>2009-01-23T06:45:56Z</published><updated>2009-01-23T06:45:56Z</updated><content type="html">&lt;p&gt;The following script, saved as “User_Provision.hta” (make sure you don’t get a .txt extension after that) will create an HTML Application (HTA)—a GUI tool—that will provision a user.&lt;/p&gt;  &lt;p&gt;The script was designed to demonstrate how easy it is to enforce business logic during the creation and modification of objects in Active Directory.&lt;/p&gt;  &lt;p&gt;You will need to change values in the CONFIGURATION BLOCK to match your environment.&amp;#160; You may also need to change the ‘logic’ for how names are built—for example, the HTA generates a &lt;strong&gt;display name &lt;/strong&gt;in the &lt;strong&gt;Last, First &lt;/strong&gt;format to make searching the global address list (GAL) easier, but the &lt;strong&gt;common name &lt;/strong&gt;remains &lt;strong&gt;First Last&lt;/strong&gt; because having commas in common names is a bad practice.&lt;/p&gt;  &lt;p&gt;Details about this script, and many others like it, can be found in the &lt;em&gt;&lt;a href="http://share.intelliem.com/cs/r.ashx?id=2"&gt;Windows Administration Resource Kit&lt;/a&gt;&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;* NOTE THIS IS AN UPDATE (bug fix) TO THE SCRIPT IN THE BOOK *&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;lt;html&amp;gt;    &lt;br /&gt;&amp;lt;head&amp;gt;     &lt;br /&gt;&amp;lt;!--     &lt;br /&gt;Created with SAPIEN Technologies PrimalScript 2007 &lt;/p&gt;  &lt;p&gt;NAME: User_Provision.hta &lt;/p&gt;  &lt;p&gt;AUTHOR: Dan Holme, Intelliem    &lt;br /&gt;DATE&amp;#160; : 12/16/2007 &lt;/p&gt;  &lt;p&gt;Provisions a user account, demonstrating business logic in the    &lt;br /&gt;determination of name properties &lt;/p&gt;  &lt;p&gt;Neither Microsoft nor Intelliem guarantee the performance    &lt;br /&gt;of scripts, scripting examples or tools. &lt;/p&gt;  &lt;p&gt;See www.intelliem.com/resourcekit for updates to this script &lt;/p&gt;  &lt;p&gt;(c) 2007 Intelliem, Inc    &lt;br /&gt;--&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;lt;title&amp;gt;Provision a user&amp;lt;/title&amp;gt;    &lt;br /&gt;&amp;lt;HTA:APPLICATION     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ID=&amp;quot;oHTA&amp;quot;/&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;lt;!-- Note this HTA can be called from a command line    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; HTANAME.hta ObjectName     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Where     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; HTANAME.hta is the filename of this HTA     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ObjectName is     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; the Pre-Windows 2000 Logon Name, DN or ADsPath     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; of an object --&amp;gt;     &lt;br /&gt;&amp;lt;style&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; body, tr, td, table, p, input {font-family: arial; font-size: 9pt;}     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .trodd {background-color: #cccccc;}     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .treven {background-color: #ffffff;}     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .tdlabel {width: 30%}     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .tdvalue {width: 70%}     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .StatusInfo&amp;#160; {font-color: black; font-size: 80%; margin: 3 3 3 3;}     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .StatusError {font-color: black; font-size: 80%; background-color: #FF9999; margin: 3 3 3 3;}     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .Instructions {font-color: black; font-size: 80%; background-color: #EEEEEE;}     &lt;br /&gt;&amp;lt;/style&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;lt;script language=&amp;quot;vbscript&amp;quot;&amp;gt;    &lt;br /&gt;Option Explicit     &lt;br /&gt;Dim sDomainDNS, sDomainNetBIOS, sDomainDN     &lt;br /&gt;Dim iPasswordLength, sUPNSuffix     &lt;br /&gt;Dim sSAM, sUPN, sCN, sDisplay, sUser     &lt;br /&gt;Dim sFirst, sInit, sMiddle, sLast     &lt;br /&gt;Dim sDescription, sTargetOU     &lt;br /&gt;Dim sProfileNamespace, sProfilePath &lt;/p&gt;  &lt;p&gt;&amp;#39; ============================================================================    &lt;br /&gt;&amp;#39; CONFIGURATION BLOCK     &lt;br /&gt;sDomainDNS = &amp;quot;contoso.com&amp;quot;     &lt;br /&gt;sDomainDN = &amp;quot;dc=contoso,dc=com&amp;quot;     &lt;br /&gt;sDomainNetBIOS = &amp;quot;CONTOSO&amp;quot;     &lt;br /&gt;sUPNSuffix = &amp;quot;contoso.com&amp;quot;     &lt;br /&gt;sProfileNamespace = &amp;quot;\\contoso.com\users\%username%\profile&amp;quot;     &lt;br /&gt;iPasswordLength = 15     &lt;br /&gt;&amp;#39; ============================================================================ &lt;/p&gt;  &lt;p&gt;Sub MainRoutine()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Dim oUser, oTargetOU     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; clear out any existing text in the status area     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; divStatus.innerText = &amp;quot;&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Call Arguments()     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Call BusinessLogic()     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If Not Validate() Then Exit Sub     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Connect to OU     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Set oTargetOU = GetObject(&amp;quot;LDAP://&amp;quot; &amp;amp; sTargetOU)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Create user and properties     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Set oUser = oTargetOU.Create(&amp;quot;user&amp;quot;,&amp;quot;cn=&amp;quot; &amp;amp; sCN)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WriteProperty oUser,&amp;quot;userPrincipalName&amp;quot;, sUPN     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WriteProperty oUser,&amp;quot;sAMAccountName&amp;quot;, sSAM     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WriteProperty oUser,&amp;quot;givenName&amp;quot;, sFirst     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WriteProperty oUser,&amp;quot;initials&amp;quot;, sInit     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WriteProperty oUser,&amp;quot;middleName&amp;quot;, sMiddle     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WriteProperty oUser,&amp;quot;sn&amp;quot;, sLast     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WriteProperty oUser,&amp;quot;description&amp;quot;, sDescription     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WriteProperty oUser,&amp;quot;displayName&amp;quot;, sDisplay     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WriteProperty oUser,&amp;quot;profilePath&amp;quot;, sProfilePath     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; oUser.SetInfo     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Generate random password     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Dim sTempPassword, iCase, i     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Start with an upper, a lower, and a numeric character     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; to ensure complexity requirements are met     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sTempPassword = RandomLetter(1)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sTempPassword = RandomLetter(2)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sTempPassword = RandomLetter(3)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Now fill the remaining length with random characters     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; For i=1 To iPasswordLength - 3     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; randomize()     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; iCase = int(3*rnd())     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sTempPassword = sTempPassword &amp;amp; RandomLetter(iCase)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Next     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; oUser.SetPassword sTempPassword     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Enable account     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; oUser.AccountDisabled = False     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; oUser.SetInfo     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; divStatus.innerText = &amp;quot;User &amp;quot; &amp;amp; sCN &amp;amp; &amp;quot; created.&amp;quot;     &lt;br /&gt;End Sub &lt;/p&gt;  &lt;p&gt;Sub&amp;#160;&amp;#160;&amp;#160; Arguments()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sFirst = txtFirstName.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sInit = txtInitial.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sMiddle = txtMiddleName.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sLast = txtLastName.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sSAM = txtSAMAccountName.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sDescription = txtDescription.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sTargetOU = cboTargetOU.value     &lt;br /&gt;End Sub &lt;/p&gt;  &lt;p&gt;Sub BusinessLogic()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Call CalculateNames()     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sProfilePath = Replace(sProfileNamespace, &amp;quot;%username%&amp;quot;, sSAM)     &lt;br /&gt;End Sub &lt;/p&gt;  &lt;p&gt;Sub CalculateNames()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Dim sName, sNamePart     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; COMMON NAME     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sName = &amp;quot;&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sNamePart = txtFirstName.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If sNamePart &amp;gt; &amp;quot;&amp;quot; Then sName = sName &amp;amp; sNamePart &amp;amp; &amp;quot; &amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sNamePart = txtMiddleName.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If sNamePart &amp;gt; &amp;quot;&amp;quot; Then sName = sName &amp;amp; sNamePart &amp;amp; &amp;quot; &amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sNamePart = txtLastName.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If sNamePart &amp;gt; &amp;quot;&amp;quot; Then sName = sName &amp;amp; sNamePart &amp;amp; &amp;quot; &amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Trim off the last space     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sName = Trim(sName)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; txtCommonName.value = sName     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sCN = sName     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; DISPLAY NAME     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sName = &amp;quot;&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sNamePart = txtLastName.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If sNamePart &amp;gt; &amp;quot;&amp;quot; Then sName = sName &amp;amp; sNamePart     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If txtFirstName.Value &amp;gt; &amp;quot;&amp;quot; Or txtMiddleName.Value &amp;gt; &amp;quot;&amp;quot; Then     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sName = sName &amp;amp; &amp;quot;, &amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; End If     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sNamePart = txtFirstName.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If sNamePart &amp;gt; &amp;quot;&amp;quot; Then sName = sName &amp;amp; sNamePart &amp;amp; &amp;quot; &amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sNamePart = txtMiddleName.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If sNamePart &amp;gt; &amp;quot;&amp;quot; Then sName = sName &amp;amp; sNamePart &amp;amp; &amp;quot; &amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Trim off the last space     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sName = Trim(sName)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; txtDisplayName.value = sName     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sDisplay = sName     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; USER PRINCIPAL NAME (email: first.middle.last)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sName = &amp;quot;&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sNamePart = txtFirstName.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If sNamePart &amp;gt; &amp;quot;&amp;quot; Then sName = sName &amp;amp; sNamePart &amp;amp; &amp;quot; &amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sNamePart = txtMiddleName.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If sNamePart &amp;gt; &amp;quot;&amp;quot; Then sName = sName &amp;amp; sNamePart &amp;amp; &amp;quot; &amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sNamePart = txtLastName.value     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If sNamePart &amp;gt; &amp;quot;&amp;quot; Then sName = sName &amp;amp; sNamePart &amp;amp; &amp;quot; &amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Trim off the last space     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sName = Trim(sName)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Replace spaces with periods     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sName = Replace(sName, &amp;quot; &amp;quot;, &amp;quot;.&amp;quot;)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Add UPN suffix     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sName = sName &amp;amp; &amp;quot;@&amp;quot; &amp;amp; sUPNSuffix     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; txtUPN.value = sName     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sUPN = sName     &lt;br /&gt;End Sub &lt;/p&gt;  &lt;p&gt;Function Validate()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If (sUPN=&amp;quot;&amp;quot;) Or (sSAM=&amp;quot;&amp;quot;) Or (sCN=&amp;quot;&amp;quot;) Or (sDisplay=&amp;quot;&amp;quot;) Or (sTargetOU=&amp;quot;&amp;quot;) Then     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; divStatus.innerText = &amp;quot;Required arguments are missing.&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Validate = False     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Else     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Validate = True     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; End If     &lt;br /&gt;End Function &lt;/p&gt;  &lt;p&gt;Sub WriteProperty(oDirectoryEntry, sPropertyName, sPropertyValue)    &lt;br /&gt;&amp;#160;&amp;#160; If sPropertyValue&amp;gt;&amp;quot;&amp;quot; then     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; oDirectoryEntry.Put sPropertyName,sPropertyValue     &lt;br /&gt;&amp;#160;&amp;#160; End If     &lt;br /&gt;End Sub &lt;/p&gt;  &lt;p&gt;Function RandomLetter(iCase)    &lt;br /&gt;&amp;#160; &amp;#39; Returns a random letter or number     &lt;br /&gt;&amp;#160; &amp;#39; icase = 0 (UPPER), 1 (lower) or 2 (numeric)     &lt;br /&gt;&amp;#160; Dim iMax, iMin     &lt;br /&gt;&amp;#160; randomize()     &lt;br /&gt;&amp;#160; Select Case iCase     &lt;br /&gt;&amp;#160; Case 0     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; iMin=65     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; iMax=26     &lt;br /&gt;&amp;#160; Case 1     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; iMin=97     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; iMax=26     &lt;br /&gt;&amp;#160; Case 2     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; iMin=48     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; iMax=10     &lt;br /&gt;&amp;#160; End Select     &lt;br /&gt;&amp;#160; RandomLetter=chr( int( iMax*rnd() + iMin) )     &lt;br /&gt;End Function &lt;/p&gt;  &lt;p&gt;&amp;#39; ============================================================================    &lt;br /&gt;&amp;#39; HTA Functions &lt;/p&gt;  &lt;p&gt;Sub Window_Onload    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Call CenterMe(500,460)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Disable the fields that will be driven with business logic     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; txtDisplayName.disabled = True     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; txtCommonName.disabled = True     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; txtUPN.disabled = True     &lt;br /&gt;End Sub &lt;/p&gt;  &lt;p&gt;Sub txtFirstName_OnChange()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Call CalculateNames()     &lt;br /&gt;End Sub &lt;/p&gt;  &lt;p&gt;Sub txtLastName_OnChange()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Call CalculateNames()     &lt;br /&gt;End Sub &lt;/p&gt;  &lt;p&gt;Sub txtMiddleName_OnChange()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Call CalculateNames()     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; txtInitial.Value = Left(txtMiddleName.value, 1)     &lt;br /&gt;End Sub &lt;/p&gt;  &lt;p&gt;Sub CenterMe(iSizeH, iSizeV)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#39; VERSION 070709     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Repositions the window to be centered and sized     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#39; INPUTS:&amp;#160;&amp;#160;&amp;#160; iSizeH:&amp;#160;&amp;#160;&amp;#160; The desired horizontal size of the window     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#39;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; iSizeV:&amp;#160;&amp;#160;&amp;#160; The desired vertical size of the window     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#39; NOTE:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Windows Server 2008 does not expose the     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#39;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; display resolution, by default, so the routine     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#39;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; will only size the window in the event that the     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#39;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; resolution is not available     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Dim sComputer, oWMIService, cItems, oItem     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Dim iResolutionH, iResolutionV, iPositionH, iPositionV     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Get this computer&amp;#39;s display resolution     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sComputer = &amp;quot;.&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Set oWMIService = GetObject(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; sComputer &amp;amp; &amp;quot;\root\cimv2&amp;quot;)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Set cItems = oWMIService.ExecQuery(&amp;quot;Select * From Win32_DesktopMonitor&amp;quot;)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; For Each oItem in cItems     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; iResolutionH = oItem.ScreenWidth     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; iResolutionV = oItem.ScreenHeight     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Windows Server 2008 does not provide the ScreenHeight &amp;amp; ScreenWidth by default     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#39; so, below, we have to provide for this possibility     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Next     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Calcultate the &amp;quot;centered&amp;quot; position     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; iPositionH = (iResolutionH - iSizeH) / 2     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; iPositionV = (iResolutionV - iSizeV) / 2     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#39; Resize and reposition the window     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; window.resizeTo iSizeH, iSizeV     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; If iResolutionH &amp;gt;0 and iResolutionH &amp;gt; 0 Then     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; window.moveTo iPositionH, iPositionV     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; End If     &lt;br /&gt;End Sub &lt;/p&gt;  &lt;p&gt;&amp;lt;/script&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;lt;/head&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;lt;body&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;lt;table&amp;#160; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-size: 14pt;&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!--&amp;lt;img src=&amp;quot;HTALogo.gif&amp;quot; /&amp;gt;--&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;span id=&amp;quot;spnTitle&amp;quot;&amp;gt;Provision a user&amp;lt;/span&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tr&amp;gt;     &lt;br /&gt;&amp;lt;/table&amp;gt;     &lt;br /&gt;&amp;lt;hr/&amp;gt;     &lt;br /&gt;&amp;lt;table&amp;#160; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdlabel&amp;quot;&amp;gt;First name&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdvalue&amp;quot;&amp;gt;&amp;lt;INPUT type=&amp;quot;text&amp;quot; name=&amp;quot;txtFirstName&amp;quot; id=&amp;quot;txtFirstName&amp;quot; size=&amp;quot;30&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdlabel&amp;quot;&amp;gt;Middle name&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdvalue&amp;quot;&amp;gt;&amp;lt;INPUT type=&amp;quot;text&amp;quot; name=&amp;quot;txtMiddleName&amp;quot; id=&amp;quot;txtMiddleName&amp;quot; size=&amp;quot;30&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdlabel&amp;quot;&amp;gt;Initial&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdvalue&amp;quot;&amp;gt;&amp;lt;INPUT type=&amp;quot;text&amp;quot; name=&amp;quot;txtInitial&amp;quot; id=&amp;quot;txtInitial&amp;quot; size=&amp;quot;30&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdlabel&amp;quot;&amp;gt;Last name&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdvalue&amp;quot;&amp;gt;&amp;lt;INPUT type=&amp;quot;text&amp;quot; name=&amp;quot;txtLastName&amp;quot; id=&amp;quot;txtLastName&amp;quot; size=&amp;quot;30&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdlabel&amp;quot;&amp;gt;Pre-Windows 2000 logon name&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdvalue&amp;quot;&amp;gt;&amp;lt;INPUT type=&amp;quot;text&amp;quot; name=&amp;quot;txtSAMAccountName&amp;quot; id=&amp;quot;txtSAMAccountName&amp;quot; size=&amp;quot;30&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdlabel&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdvalue&amp;quot;&amp;gt;&amp;lt;INPUT type=&amp;quot;text&amp;quot; name=&amp;quot;txtDescription&amp;quot; id=&amp;quot;txtDescription&amp;quot; size=&amp;quot;30&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdlabel&amp;quot;&amp;gt;Create user in&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdvalue&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;select name=&amp;quot;cboTargetOU&amp;quot; /&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;option value=&amp;quot;&amp;quot;&amp;gt;User type&amp;lt;/option&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;option value=&amp;quot;ou=Employees,ou=People,dc=contoso,dc=com&amp;quot;&amp;gt;Employee&amp;lt;/option&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;option value=&amp;quot;ou=Contractors,ou=People,dc=contoso,dc=com&amp;quot;&amp;gt;Contractor&amp;lt;/option&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/select&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdlabel&amp;quot;&amp;gt;Display name&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdvalue&amp;quot;&amp;gt;&amp;lt;INPUT type=&amp;quot;text&amp;quot; name=&amp;quot;txtDisplayName&amp;quot; id=&amp;quot;txtDisplayName&amp;quot; size=&amp;quot;30&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdlabel&amp;quot;&amp;gt;Common name&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdvalue&amp;quot;&amp;gt;&amp;lt;INPUT type=&amp;quot;text&amp;quot; name=&amp;quot;txtCommonName&amp;quot; id=&amp;quot;txtCommonName&amp;quot; size=&amp;quot;30&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdlabel&amp;quot;&amp;gt;User principal name&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td class=&amp;quot;tdvalue&amp;quot;&amp;gt;&amp;lt;INPUT type=&amp;quot;text&amp;quot; name=&amp;quot;txtUPN&amp;quot; id=&amp;quot;txtUPN&amp;quot; size=&amp;quot;20&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tr&amp;gt;     &lt;br /&gt;&amp;lt;/table&amp;gt;     &lt;br /&gt;&amp;lt;hr/&amp;gt;     &lt;br /&gt;&amp;lt;table&amp;#160; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;INPUT type=&amp;quot;button&amp;quot; name=&amp;quot;btnCommand&amp;quot; value=&amp;quot;CREATE USER&amp;quot; style=&amp;quot;width:100;&amp;quot; onclick=&amp;quot;MainRoutine()&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;     &lt;br /&gt;&amp;lt;/table&amp;gt;     &lt;br /&gt;&amp;lt;hr/&amp;gt;     &lt;br /&gt;&amp;lt;div id=&amp;quot;divStatus&amp;quot; name=&amp;quot;divStatus&amp;quot; class=&amp;quot;StatusInfo&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;     &lt;br /&gt;&amp;lt;hr/&amp;gt;     &lt;br /&gt;&amp;lt;div id=&amp;quot;divInstructions&amp;quot; name=&amp;quot;divInstructions&amp;quot; class=&amp;quot;Instructions&amp;quot;&amp;gt;     &lt;br /&gt;&amp;lt;/div&amp;gt;     &lt;br /&gt;&amp;lt;/body&amp;gt;     &lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=266" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry><entry><title>Windows 7 Little Changes</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2009/01/15/windows-7-little-changes.aspx" /><id>/cs/blogs/danholme/archive/2009/01/15/windows-7-little-changes.aspx</id><published>2009-01-16T06:51:03Z</published><updated>2009-01-16T06:51:03Z</updated><content type="html">&lt;ul&gt;   &lt;li&gt;You can’t right-click the Start button and choose “Open”, “Explore” or “Open All Users” or “Explore All Users.”&amp;#160; This was an easy shortcut into the Start Menu, but I can forgive Microsoft for this one, as the Start Menu itself becomes less and less important as the ability to search improves.&lt;/li&gt;    &lt;li&gt;Scheduled defragmentation of a disk drive is ON.&amp;#160; This is not a good default for virtual machines (particularly those with snapshots) or SSD drives.&amp;#160; Rumor has it that Win7 will disable defrag on SSD drives—I’ve not yet had time to confirm whether this build does, or does not do that, and for which models of drives.&amp;#160; I believe it will require the drive to “report” correctly.&lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=188" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry><entry><title>Slides for SharePoint Virtual Event December 2008</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2008/12/08/slides-for-sharepoint-virtual-event-december-2008.aspx" /><id>/cs/blogs/danholme/archive/2008/12/08/slides-for-sharepoint-virtual-event-december-2008.aspx</id><published>2008-12-08T22:56:19Z</published><updated>2008-12-08T22:56:19Z</updated><content type="html">&lt;p&gt;Thanks for attending the SharePoint workshop on December 9, 2008!&lt;/p&gt;  &lt;p&gt;Slides can be downloaded here: &lt;a title="SharePoint-081209" href="http://cid-b78bfd2f7244f635.skydrive.live.com/browse.aspx/SharePoint-081209"&gt;SharePoint-081209&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I’m guessing we won’t be able to answer all questions during the time allotted for Q&amp;amp;A, so I;’m planning to post blog entries related to questions &amp;amp; answers submitted during the event. Return to this blog for additional “scoop”!&lt;/p&gt;  &lt;p&gt;Thanks again for spending part of your day with me, have a happy holiday season, and ALOHA!&lt;/p&gt;  &lt;p&gt;Dan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=160" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry><entry><title>DNS and DFS</title><link rel="alternate" type="text/html" href="/cs/blogs/danholme/archive/2008/12/08/dns-and-dfs.aspx" /><id>/cs/blogs/danholme/archive/2008/12/08/dns-and-dfs.aspx</id><published>2008-12-08T18:46:28Z</published><updated>2008-12-08T18:46:28Z</updated><content type="html">&lt;p&gt;There is a lot of outdated and unclear documentation about configuring DFS Namespaces with the fully qualified name (host.company.com) versus the NetBIOS name (HOST).&amp;#160; I have some authoritative guidance that arose as part of a client troubleshooting effort, and I wanted to share it with you.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;You can use either format (DNS FQDN or NetBIOS Hostname) for the target of a DFS-N folder (aka “link”).&lt;/em&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;When a client requests a referral from DFS, DFS passes the referral in whatever format you’ve used, and the client does not modify it.&amp;#160; The client uses the standard Windows name resolution processes to resolve the referral to an IP address, which typically will use DNS. If a hostname-only referral was passed, the client will use either domain name devolution (where it takes it’s DNS suffix and appends it to the hostname, then removes each “subdomain” from the suffix until it reaches a top-level domain), &lt;em&gt;or&lt;/em&gt; a DNS suffix search order.&lt;/p&gt;  &lt;p&gt;The potential for timeouts and other name resolution problems using a host-only name for &lt;em&gt;any &lt;/em&gt;network path are huge.&amp;#160; So the rule is &lt;em&gt;always use FQDNs&lt;/em&gt;.&amp;#160; &lt;em&gt;Always&lt;/em&gt;, not just for DFS.&amp;#160; For mapped drives, for redirected folder &amp;amp; roaming profile configurations… &lt;em&gt;always&lt;/em&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;Therefore, by ‘transitive properties’ :-), you should always use FQDNs for your DFS folder target referrals.&amp;#160; You don’t &lt;em&gt;have&lt;/em&gt; to, but you should.&lt;/p&gt;  &lt;p&gt;The documentation on the ‘net related to hostname-only vs. FQDN paths is for the &lt;em&gt;DFS namespace root referral targets only.&lt;/em&gt; You can use &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=f4db40af-1e08-4a21-a26b-ec2f4dc4190d&amp;amp;displaylang=en&amp;amp;tm" target="_blank"&gt;Network Monitor&lt;/a&gt; to watch the root referral process.&amp;#160; Once the namespace server has been located, links are links (FQDN or host).&amp;#160; So &lt;a href="http://support.microsoft.com/kb/244380" target="_blank"&gt;KB244380&lt;/a&gt; and other documentation referring to the DfsDnsConfig registry entry are about the root and only the root, so that clients without solid DNS can find a DFS namespace server (root target).&amp;#160; Why Microsoft continued the behavior of hostname only root referrals after DFS became tightly integrated with Active Directory (which of course requires a solid DNS infrastructure)… who knows… but that’s the deal.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://share.intelliem.com/cs/aggbug.aspx?PostID=158" width="1" height="1"&gt;</content><author><name>danholme</name><uri>http://share.intelliem.com/cs/members/danholme/default.aspx</uri></author></entry></feed>