<?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>alt-92 - blogIT &#187; Server 2003</title>
	<atom:link href="http://blog.alt-92.net/index.php/category/server-2003/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.alt-92.net</link>
	<description>Const ForReading =1 - personal brainstorms, items, and other random webstuff</description>
	<lastBuildDate>Wed, 10 Feb 2010 22:18:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Managing DFS namespaces from the command line</title>
		<link>http://blog.alt-92.net/index.php/2010/02/10/managing-dfs-namespaces-from-the-command-line/</link>
		<comments>http://blog.alt-92.net/index.php/2010/02/10/managing-dfs-namespaces-from-the-command-line/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 22:15:04 +0000</pubDate>
		<dc:creator>alt-92</dc:creator>
				<category><![CDATA[Server 2003]]></category>
		<category><![CDATA[Server 2008]]></category>
		<category><![CDATA[Storage]]></category>

		<guid isPermaLink="false">http://blog.alt-92.net/index.php/2010/02/10/managing-dfs-namespaces-from-the-command-line/</guid>
		<description><![CDATA[Last year, I posted about the&#160; DFS Modlink utility which you need if you want to manipulate DFS link states against DFS-N&#160; &#8211; Windows 2003 didn’t have any non-GUI tooling to do that, except for the Win32_DFSnode WMI properties.
Windows XP however does not support that particular interface, which leaves only modlink as a way to [...]]]></description>
			<content:encoded><![CDATA[<p>Last year, I posted about the&nbsp; <a title="DFS Modlink utility" href="http://blog.alt-92.net/index.php/2008/06/14/dfs-modlink-utility/">DFS Modlink utility</a> which you need if you want to manipulate DFS link states against DFS-N&nbsp; &#8211; Windows 2003 didn’t have any non-GUI tooling to do that, except for the Win32_DFSnode WMI properties.<br />
Windows XP however does not support that particular interface, which leaves only modlink as a way to disable or enable a DFS link.</p>
<p>From Windows 2008 onward, that sorely missing functionality is available in the revamped dfsutil commandline tool. And as an added bonus, changing the TTL for a link is also possible.<br />
Even more, dfsutil in 2008R2 (and therefore Windows 7 clients with RSAT installed) lets you set the Access Based Enumeration property.</p>
<p>Below are the property commands:</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum1">   1:</span> E:\>dfsutil property</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum2">   2:</span>&nbsp; </pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum3">   3:</span> DESCRIPTION:</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum4">   4:</span> Displays or modifies the properties of a folder target (link target) or</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum5">   5:</span> namespace server (root target).</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum6">   6:</span>&nbsp; </pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum7">   7:</span> ------ PROPERTY Commands Supported ------</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum8">   8:</span>&nbsp; </pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum9">   9:</span> Sitecosting           Displays or modifies site costing <span style="color: #0000ff">for</span> a namespace.</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum10">  10:</span> RootScalability       Displays or modifies the namsespace polling mode.</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum11">  11:</span> ABE                   Enable/Disable/View ABE property of a namespace.</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum12">  12:</span> Insite                Displays or modifies the <span style="color: #0000ff">in</span>-site property.</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum13">  13:</span> TargetfailBack        Displays or modifies client fail back.</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum14">  14:</span> SD                    Set/Get Security Information on the folder.</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum15">  15:</span> State                 Displays or modifies a folder target or namespace server.</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum16">  16:</span> TTL                   Displays or changes client referral caching.</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum17">  17:</span> PriorityRank          Displays or changes the ordering method (priority rank).</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum18">  18:</span> PriorityClass         Displays or changes the target priority.</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum19">  19:</span> Comment               Sets or displays the comment <span style="color: #0000ff">for</span> a namespace or link.</pre><br />
<!--CRLF--></div>
</div>
<p>&nbsp;</p>
<p>So, what do we do with this? Let’s say you’re migrating your DFS-Namespace enabled* Datashares to a newer fileserver with more storage capacity.</p>
<p>*no DFS-R , in case you’re wondering, because the original server might be a Windows 2003 non-R2 install.</p>
<p>A default link timeout is 7200 seconds or 2&#215;60x 60 seconds = 2 hours, meaning your DFS client will check for changes in state after that time. During your migration window, you’ll want to ensure that any changes are picked up within a shorter time.</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum1">   1:</span> E:\>dfsutil property ttl <a href="file://\\alt-92.net\data\share1">\\alt-92.net\data\share1</a></pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum2">   2:</span> The timeout <span style="color: #0000ff">for</span> <a href="file://\\alt-92.net\data\share1">\\alt-92.net\data\share1</a> is 7200</pre><br />
<!--CRLF--></div>
</div>
<p>First, we’ll change the timeout setting to a 5 minute setting:</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum1">   1:</span> E:\>dfsutil property ttl set <a href="file://\\alt-92.net\data\share1">\\alt-92.net\data\share1</a> 300</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum2">   2:</span>&nbsp; </pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum3">   3:</span> Done processing this command.</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum4">   4:</span>&nbsp; </pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum5">   5:</span> E:\>dfsutil property ttl <a href="file://\\alt-92.net\data\share1">\\alt-92.net\data\share1</a></pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum6">   6:</span> The timeout <span style="color: #0000ff">for</span> <a href="file://\\alt-92.net\data\share1">\\alt-92.net\data\share1</a> is 300</pre><br />
<!--CRLF--></div>
</div>
<p>Then, using both dfscmd and dfsutil, we’ll add our new fileshare to the link AND set it offline:</p>
<p>&nbsp;</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum1">   1:</span> dfscmd /add \\alt-92.net\data\share1 <a href="file://\\newserver\data\share1">\\newserver\data\share1</a></pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum2">   2:</span> dfsutil property state offline \\alt-92.net\data\share1 <a href="file://\\newserver\data\share1">\\newserver\data\share1</a></pre><br />
<!--CRLF--></div>
</div>
<p>After syncing the content with robocopy (be sure to check the /MT switch for multithreading on Windows 2008R2 or Windows 7) we now flip the link state on both shares and restore the timeout value to its former setting:</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum1">   1:</span> dfsutil property state offline \\alt-92.net\data\share1 \\oldserver\data\share1</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum2">   2:</span> dfsutil property state online \\alt-92.net\data\share1 \\newserver\data\share1</pre><br />
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum3">   3:</span> dfsutil property ttl set \\alt-92.net\data\share1 7200</pre><br />
<!--CRLF--></div>
</div>
<p>After that, we’ll decommission the old fileserver, by taking the shares offline and removing the old links from the DFS Namespace with dfscmd:</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #606060" id="lnum1">   1:</span> dfscmd /remove \\alt-92.net\data\share1 \\oldserver\data\share1</pre><br />
<!--CRLF--></div>
</div>
<p>Et voila: we’ve migrated our DFS enabled fileshares to a new server with minimal downtime.</p>
<p>Fully scripted, its now feasible to migrate a DFS Namespace root with hundreds of links in just a few hours (including the final replication with robocopy – the bulk copy we’ve started a couple of days in advance) .</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alt-92.net/index.php/2010/02/10/managing-dfs-namespaces-from-the-command-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DFS namespace query tool</title>
		<link>http://blog.alt-92.net/index.php/2009/07/29/dfs-namespace-query-tool/</link>
		<comments>http://blog.alt-92.net/index.php/2009/07/29/dfs-namespace-query-tool/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 21:10:58 +0000</pubDate>
		<dc:creator>alt-92</dc:creator>
				<category><![CDATA[Server 2003]]></category>
		<category><![CDATA[Server 2008]]></category>
		<category><![CDATA[Storage]]></category>

		<guid isPermaLink="false">http://blog.alt-92.net/?p=167</guid>
		<description><![CDATA[For quick lookups to find out where DFS links are pointing to, I&#8217;ve built dfsquery.exe in C++.
standalone executable, 64bits support and works on NT5.1 and up (including Windows 7).
Based on MSDN code sample from http://msdn.microsoft.com/en-us/library/bb524791(VS.85).aspx
#define UNICODE#include &#60;stdio.h&#62;#include &#60;windows.h&#62;#include &#60;lm.h&#62;#include &#60;lmdfs.h&#62;&#160;void wmain&#40;int argc, wchar_t *argv&#91; &#93;&#41;&#123;&#160;&#160; PDFS_INFO_4 pData;&#160;&#160; PDFS_STORAGE_INFO ps;&#160;&#160; DWORD er=0, tr=0, res, j;&#160;&#160;&#160; //&#160;&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>For quick lookups to find out where DFS links are pointing to, I&#8217;ve built dfsquery.exe in C++.<br />
standalone executable, 64bits support and works on NT5.1 and up (including Windows 7).</p>
<p>Based on MSDN code sample from <a href="http://msdn.microsoft.com/en-us/library/bb524791(VS.85).aspx" target="_blank">http://msdn.microsoft.com/en-us/library/bb524791(VS.85).aspx</a></p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title=""><div class="devcodeoverflow"><ol><li></li><li>#define UNICODE</li><li>#include &lt;stdio.h&gt;</li><li>#include &lt;windows.h&gt;</li><li>#include &lt;lm.h&gt;</li><li>#include &lt;lmdfs.h&gt;</li><li>&nbsp;</li><li>void wmain<span class="br0">&#40;</span>int argc, wchar_t *argv<span class="br0">&#91;</span> <span class="br0">&#93;</span><span class="br0">&#41;</span></li><li><span class="br0">&#123;</span></li><li>&nbsp;&nbsp; PDFS_INFO_4 pData;</li><li>&nbsp;&nbsp; PDFS_STORAGE_INFO ps;</li><li>&nbsp;&nbsp; DWORD er=0, tr=0, res, j;</li><li>&nbsp;</li><li>&nbsp;&nbsp; //</li><li>&nbsp;&nbsp; // Check command line arguments.</li><li>&nbsp;&nbsp; //</li><li>&nbsp;&nbsp; if <span class="br0">&#40;</span>argc&lt;2<span class="br0">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wprintf<span class="br0">&#40;</span>L&quot;Syntax: %s DfsEntryPath\n&quot;, argv<span class="br0">&#91;</span>0<span class="br0">&#93;</span><span class="br0">&#41;</span>;</li><li>&nbsp;&nbsp; else</li><li>&nbsp;&nbsp; <span class="br0">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Call the NetDfsGetInfo function, specifying level 4.</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res = NetDfsGetInfo<span class="br0">&#40;</span>argv<span class="br0">&#91;</span>1<span class="br0">&#93;</span>, NULL, NULL,&nbsp;&nbsp;4, <span class="br0">&#40;</span>LPBYTE *<span class="br0">&#41;</span> &amp;pData<span class="br0">&#41;</span>;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// If the call succeeds, print the data.</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if<span class="br0">&#40;</span>res==0<span class="br0">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="br0">&#123;</span></li><li> printf<span class="br0">&#40;</span>&quot;Report for: %-30S\nStorages: %u\nComment: %S\n&quot;,pData-&gt;EntryPath, pData-&gt;NumberOfStorages, pData-&gt;Comment, pData-&gt;Timeout<span class="br0">&#41;</span>;</li><li> printf<span class="br0">&#40;</span>&quot;Timeout: %u\n&quot;,pData-&gt;Timeout<span class="br0">&#41;</span>;</li><li> ps = pData-&gt;Storage;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Loop through each target.</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for<span class="br0">&#40;</span>j=<span style="">1</span>;j&lt;=pData-&gt;NumberOfStorages;j++<span class="br0">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="br0">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Print the status <span class="br0">&#40;</span>Offline/Online<span class="br0">&#41;</span> and the name </li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// of each target referenced by the DFS link.</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//</li><li> printf<span class="br0">&#40;</span>&quot;Target %S&nbsp;&nbsp;&quot;, <span class="br0">&#40;</span>ps-&gt;State == DFS_STORAGE_STATE_OFFLINE<span class="br0">&#41;</span> ? TEXT<span class="br0">&#40;</span>&quot;Offline:&quot;<span class="br0">&#41;</span>: TEXT<span class="br0">&#40;</span>&quot;Online :&quot;<span class="br0">&#41;</span><span class="br0">&#41;</span>;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf<span class="br0">&#40;</span>&quot;\\\\%S\\%S\n&quot;,ps-&gt;ServerName,ps-&gt;ShareName<span class="br0">&#41;</span>;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps++;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="br0">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Free the allocated memory.</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NetApiBufferFree<span class="br0">&#40;</span>pData<span class="br0">&#41;</span>;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="br0">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf<span class="br0">&#40;</span>&quot;Error: %u\n&quot;, res<span class="br0">&#41;</span>;</li><li>&nbsp;&nbsp; <span class="br0">&#125;</span></li><li>&nbsp;&nbsp; return;</li><li><span class="br0">&#125;</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>It&#8217;s quick, it&#8217;s probably dirty, but it works just fine (and no admin privileges needed as it does the same as your average DFS client code).</p>
<p>Sample output:</p>
<blockquote><p>D:\>dfsquery \\alt-92.net\files\0054<br />
Report for: \\ALT-92\files\0054<br />
Storages: 2<br />
Comment:Department 54 data store<br />
Timeout: 300<br />
Target Online :  \\ENDEAVOUR\data\0054<br />
Target Offline:  \\Equinoxe\data\0054</p></blockquote>
<p>It shows timeout value, comments (description field in DFS console) the number of link targets and their individual link state.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alt-92.net/index.php/2009/07/29/dfs-namespace-query-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IIS 6.0 running PHP 5.2.10 / FastCGI on Windows 2003 R2</title>
		<link>http://blog.alt-92.net/index.php/2009/07/13/iis-60-running-php-5210-fastcgi-on-windows-2003-r2/</link>
		<comments>http://blog.alt-92.net/index.php/2009/07/13/iis-60-running-php-5210-fastcgi-on-windows-2003-r2/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 19:10:46 +0000</pubDate>
		<dc:creator>alt-92</dc:creator>
				<category><![CDATA[Server 2003]]></category>

		<guid isPermaLink="false">http://blog.alt-92.net/index.php/2009/07/13/iis-60-running-php-5210-fastcgi-on-windows-2003-r2/</guid>
		<description><![CDATA[This server is now running PHP 5.2.10 using FastCGI.
FastCGI is a high-performance alternative to the Common Gateway Interface (CGI), a standard way of interfacing external applications such as PHP with Web servers.    Compared to the ISAPI PHP module, PHP and FastCGI are much faster and definitely the way to go.
FastCGI is available [...]]]></description>
			<content:encoded><![CDATA[<p>This server is now running PHP 5.2.10 using FastCGI.</p>
<p>FastCGI is a high-performance alternative to the Common Gateway Interface (CGI), a standard way of interfacing external applications such as PHP with Web servers.    <br />Compared to the ISAPI PHP module, PHP and FastCGI are much faster and definitely the way to go.</p>
<p>FastCGI is available from IIS.NET ( <a title="http://www.iis.net/downloads/default.aspx?tabid=34&amp;i=1521&amp;g=6" href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;i=1521&amp;g=6">http://www.iis.net/downloads/default.aspx?tabid=34&amp;i=1521&amp;g=6</a> ) and takes very little configuration. A good installation instruction is at <a title="http://learn.iis.net/page.aspx/247/using-fastcgi-to-host-php-applications-on-iis-60/" href="http://learn.iis.net/page.aspx/247/using-fastcgi-to-host-php-applications-on-iis-60/">http://learn.iis.net/page.aspx/247/using-fastcgi-to-host-php-applications-on-iis-60/</a> including a manual setup.     <br />As always, you’ll need to properly secure the application directories and don’t forget to tweak the php.ini settings file as well.    <br />I prefer to do a manual PHP setup in a custom path. That way, all the binaries and extensions are in a self-contained environment which allows for easy version upgrading, switching between versions or running <a href="http://ruslany.net/2008/07/per-site-php-configuration-with-iis-fastcgi/" target="_blank">differrent versions side by side for compatibility reasons.</a></p>
<p><a href="http://blog.alt-92.net/wp-content/2009/07/phpversioning.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="phpversioning" border="0" alt="phpversioning" src="http://blog.alt-92.net/wp-content/2009/07/phpversioning-thumb.png" width="244" height="200" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alt-92.net/index.php/2009/07/13/iis-60-running-php-5210-fastcgi-on-windows-2003-r2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mounting VHD files in Vista</title>
		<link>http://blog.alt-92.net/index.php/2009/07/09/mounting-vhd-files-in-vista/</link>
		<comments>http://blog.alt-92.net/index.php/2009/07/09/mounting-vhd-files-in-vista/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 10:00:00 +0000</pubDate>
		<dc:creator>alt-92</dc:creator>
				<category><![CDATA[Server 2003]]></category>
		<category><![CDATA[Server 2008]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://blog.alt-92.net/index.php/2009/07/09/mounting-vhd-files-in-vista/</guid>
		<description><![CDATA[Windows 7 features include attaching and detaching Virtual Harddrive files (.VHD) via Disk Management.
This allows you to mount and dismount your Complete PC Backup .vhd file to restore a single item from backup or prestage a Virtual PC/Server diskfile,  or even your HyperV disks.
Vista does not have this feature, but there is a workaround [...]]]></description>
			<content:encoded><![CDATA[<p>Windows 7 features include attaching and detaching Virtual Harddrive files (.VHD) via Disk Management.<br />
This allows you to mount and dismount your Complete PC Backup .vhd file to restore a single item from backup or prestage a Virtual PC/Server diskfile,  or even your HyperV disks.</p>
<p>Vista does not have this feature, but there is a workaround available. Installing the VHDMount utility from Virtual Server 2005R2 SP1 lets you use the VHD storage driver and the vhdmount utility.</p>
<ol>
<li>Download the Virtual Server 2005 R2 SP1 setup from <a title="http://www.microsoft.com/windowsserversystem/virtualserver/downloads.aspx" href="http://www.microsoft.com/windowsserversystem/virtualserver/downloads.aspx">http://www.microsoft.com/windowsserversystem/virtualserver/downloads.aspx</a> .</li>
<li>Run setup and choose Custom Setup type:
<p><a href="http://blog.alt-92.net/wp-content/2009/07/vhdmount1.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="vhdmount1" src="http://blog.alt-92.net/wp-content/2009/07/vhdmount1-thumb.png" border="0" alt="vhdmount1" width="243" height="253" /></a><br />
<a href="http://blog.alt-92.net/wp-content/2009/07/vhdmount2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="vhdmount2" src="http://blog.alt-92.net/wp-content/2009/07/vhdmount2-thumb.png" border="0" alt="vhdmount2" width="244" height="186" /></a></li>
<li>Verify the default selection for VHD Mount is marked:
<p><a href="http://blog.alt-92.net/wp-content/2009/07/vhdmount3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="vhdmount3" src="http://blog.alt-92.net/wp-content/2009/07/vhdmount3-thumb.png" border="0" alt="vhdmount3" width="244" height="186" /></a></p>
<p>Click Next to install and finish the setup.      </p>
<p><a href="http://blog.alt-92.net/wp-content/2009/07/vhdmount4.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="vhdmount4" src="http://blog.alt-92.net/wp-content/2009/07/vhdmount4-thumb.png" border="0" alt="vhdmount4" width="244" height="186" /></a></li>
<li>You can use the command line vhdmount utility to attach a .VHD file, or alternatively, use these registry entries to create a context menu for the four actions.
<p>      <!--DEVFMTCODE--><pre class="devcodeblock" title=""><div class="devcodeoverflow"><ol><li>Windows Registry Editor Version <span style="">5.00</span></li><li>&nbsp;</li><li><span class="br0">&#91;</span>HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD<span class="br0">&#93;</span></li><li>@=&quot;Virtual Machine Hard Drive Image&quot;</li><li>&nbsp;</li><li><span class="br0">&#91;</span>HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\DefaultIcon<span class="br0">&#93;</span></li><li>@=&quot;C:\\Program Files\\Microsoft Virtual PC\\Virtual PC.exe,-<span style="">327</span>&quot;</li><li>&nbsp;</li><li><span class="br0">&#91;</span>HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell<span class="br0">&#93;</span></li><li>@=&quot;Mount&quot;</li><li>&nbsp;</li><li><span class="br0">&#91;</span>HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Commit<span class="br0">&#93;</span></li><li>&nbsp;</li><li><span class="br0">&#91;</span>HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Commit\command<span class="br0">&#93;</span></li><li>@=&quot;\&quot;C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\&quot; /c \&quot;%1\&quot;&quot;</li><li>&nbsp;</li><li><span class="br0">&#91;</span>HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Discard<span class="br0">&#93;</span></li><li>&nbsp;</li><li><span class="br0">&#91;</span>HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Discard\command<span class="br0">&#93;</span></li><li>@=&quot;\&quot;C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\&quot; /d \&quot;%1\&quot;&quot;</li><li>&nbsp;</li><li><span class="br0">&#91;</span>HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Dismount<span class="br0">&#93;</span></li><li>&nbsp;</li><li><span class="br0">&#91;</span>HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Dismount\command<span class="br0">&#93;</span></li><li>@=&quot;\&quot;C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\&quot; /u /d \&quot;%1\&quot;&quot;</li><li>&nbsp;</li><li><span class="br0">&#91;</span>HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Mount<span class="br0">&#93;</span></li><li>&nbsp;</li><li><span class="br0">&#91;</span>HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Mount\command<span class="br0">&#93;</span></li><li>@=&quot;\&quot;C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\&quot; /p \&quot;%1\&quot;&quot;</li></ol></div></pre><!--END_DEVFMTCODE-->  The result is a context menu on right-clicking a .VHD file like this.        </p>
<p><a href="http://blog.alt-92.net/wp-content/2009/07/vhdmount5.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="vhdmount5" src="http://blog.alt-92.net/wp-content/2009/07/vhdmount5-thumb.png" border="0" alt="vhdmount5" width="244" height="211" /></a>        </p>
<p>Mounting your disk file is now as easy as a right-click away, and the VHD will show up as a new disk in Explorer.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.alt-92.net/index.php/2009/07/09/mounting-vhd-files-in-vista/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Technet Direct Plus 3 month trial &#8211; update</title>
		<link>http://blog.alt-92.net/index.php/2009/02/26/technet-direct-plus-3-month-trial-is-back/</link>
		<comments>http://blog.alt-92.net/index.php/2009/02/26/technet-direct-plus-3-month-trial-is-back/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 21:15:21 +0000</pubDate>
		<dc:creator>alt-92</dc:creator>
				<category><![CDATA[Server 2003]]></category>
		<category><![CDATA[Server 2008]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://blog.alt-92.net/index.php/2009/02/26/technet-direct-plus-3-month-trial-is-back/</guid>
		<description><![CDATA[Dutch Technet enthusiasts once again can register for a free 3 month trial of Technet Direct Plus.
[update] The offer period has expired and new entries are no longer available.   Normal subscriptions are of course still possible .

Just klick http://technet.microsoft.com/nl-nl/dd491981.aspx and enter your data, wait a couple of days for confirmation and you’ll get [...]]]></description>
			<content:encoded><![CDATA[<p>Dutch Technet enthusiasts once again can register for a free 3 month trial of Technet Direct Plus.</p>
<p>[update] The offer period has expired and new entries are no longer available.   <br />Normal subscriptions are of course still possible .</p>
<p><img class="alignnone size-full wp-image-127" title="header_technet_plus" height="100" alt="header_technet_plus" src="http://blog.alt-92.net/wp-content/2009/02/header_technet_plus.jpg" width="600" /></p>
<p>Just klick <a title="http://technet.microsoft.com/nl-nl/dd491981.aspx" href="http://technet.microsoft.com/nl-nl/dd491981.aspx">http://technet.microsoft.com/nl-nl/dd491981.aspx</a> and enter your data, wait a couple of days for confirmation and you’ll get access to all the latest and greatest Server operating systems &amp; software.</p>
<p>Prices are 370 € (ex VAT/BTW) for a full year, renewals are 270 € (ex VAT/BTW).    <br />Technet Plus Direct means online access to the software library (download only – no CD shipments), two support calls (worth 299 €) and free e-learning courses.     </p>
<p>For a list of available software, <a title="See a complete list" href="http://technet.microsoft.com/en-us/subscriptions/downloads/default.aspx">See the complete list</a> on the TechNet Plus Subscriptions home page.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alt-92.net/index.php/2009/02/26/technet-direct-plus-3-month-trial-is-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diskspace checks and trend analysis</title>
		<link>http://blog.alt-92.net/index.php/2009/02/22/diskspace-checks-and-trend-analysis/</link>
		<comments>http://blog.alt-92.net/index.php/2009/02/22/diskspace-checks-and-trend-analysis/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 22:09:00 +0000</pubDate>
		<dc:creator>alt-92</dc:creator>
				<category><![CDATA[Server 2003]]></category>
		<category><![CDATA[Server 2008]]></category>
		<category><![CDATA[Storage]]></category>

		<guid isPermaLink="false">http://blog.alt-92.net/index.php/2009/02/22/diskspace-checks-and-trend-analysis/</guid>
		<description><![CDATA[Simple Diskspace monitoring tools for home use.
Tools: VBscript &#038; MS Access database
The script:
On Error Resume NextConst HARD_DISK = 3Const adOpenStatic = 3Const adLockOptimistic = 3&#160;strNamespace = &#34;root\cimv2&#34;strDomain = &#34;domain&#34;&#160;strDate = FormatDateTime&#40;Now&#40;&#41;, 2&#41;strTime = FormatDateTime&#40;Now&#40;&#41;, 4&#41;Set objNetwork = CreateObject&#40;&#34;Wscript.Network&#34;&#41;' =====================================================================arrComputers = Array&#40;&#34;Server1&#34;,&#34;Server2&#34;,&#34;Server3&#34;&#41;&#160;For Each strComputer In arrComputersSet objWMIService = GetObject&#40;&#34;winmgmts:&#34; &#38;amp; strComputer &#38;amp; &#34;root\CIMV2&#34;&#41;Set colDisks = objWMIService.ExecQuery [...]]]></description>
			<content:encoded><![CDATA[<p>Simple Diskspace monitoring tools for home use.<br />
Tools: VBscript &#038; MS Access database</p>
<p>The script:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title=""><div class="devcodeoverflow"><ol><li></li><li>On Error Resume Next</li><li>Const HARD_DISK = 3</li><li>Const adOpenStatic = 3</li><li>Const adLockOptimistic = 3</li><li>&nbsp;</li><li>strNamespace = &quot;root\cimv2&quot;</li><li>strDomain = &quot;domain&quot;</li><li>&nbsp;</li><li>strDate = FormatDateTime<span class="br0">&#40;</span>Now<span class="br0">&#40;</span><span class="br0">&#41;</span>, 2<span class="br0">&#41;</span></li><li>strTime = FormatDateTime<span class="br0">&#40;</span>Now<span class="br0">&#40;</span><span class="br0">&#41;</span>, 4<span class="br0">&#41;</span></li><li>Set objNetwork = CreateObject<span class="br0">&#40;</span>&quot;Wscript.Network&quot;<span class="br0">&#41;</span></li><li>' =====================================================================</li><li>arrComputers = Array<span class="br0">&#40;</span>&quot;Server1&quot;,&quot;Server2&quot;,&quot;Server3&quot;<span class="br0">&#41;</span></li><li>&nbsp;</li><li>For Each strComputer In arrComputers</li><li>Set objWMIService = GetObject<span class="br0">&#40;</span>&quot;winmgmts:&quot; &amp;amp; strComputer &amp;amp; &quot;root\CIMV2&quot;<span class="br0">&#41;</span></li><li>Set colDisks = objWMIService.ExecQuery _</li><li><span class="br0">&#40;</span>&quot;SELECT * FROM Win32_LogicalDisk Where DriveType = &quot; &amp;amp; HARD_DISK &amp;amp; &quot;&quot;,,48<span class="br0">&#41;</span></li><li>&nbsp;</li><li>Set objConnection = CreateObject<span class="br0">&#40;</span>&quot;ADODB.Connection&quot;<span class="br0">&#41;</span></li><li>Set objRecordSet = CreateObject<span class="br0">&#40;</span>&quot;ADODB.Recordset&quot;<span class="br0">&#41;</span></li><li>&nbsp;</li><li>objConnection.Open _</li><li>&quot;Provider = Microsoft.Jet.OLEDB.4.0; &quot; &amp;amp; _</li><li>&quot;Data Source = c:\scripts\diskspace_database.mdb&quot;</li><li>&nbsp;</li><li>objRecordSet.Open &quot;SELECT * FROM tbldiskspace&quot; , _</li><li>objConnection, adOpenStatic, adLockOptimistic</li><li>For Each objDisk in colDisks</li><li>objRecordSet.AddNew</li><li>&nbsp;</li><li>objRecordSet<span class="br0">&#40;</span>&quot;server&quot;<span class="br0">&#41;</span> = strComputer</li><li>objRecordSet<span class="br0">&#40;</span>&quot;domain&quot;<span class="br0">&#41;</span> = strDomain</li><li>objRecordSet<span class="br0">&#40;</span>&quot;disk&quot;<span class="br0">&#41;</span> = objDisk.VolumeName</li><li>objRecordSet<span class="br0">&#40;</span>&quot;drive&quot;<span class="br0">&#41;</span> = objDisk.DeviceID</li><li>objRecordSet<span class="br0">&#40;</span>&quot;totalspace&quot;<span class="br0">&#41;</span> = round<span class="br0">&#40;</span>objDisk.Size /<span style="">1024</span>/<span style="">1024</span>,<span style="">2</span><span class="br0">&#41;</span></li><li>objRecordSet<span class="br0">&#40;</span>&quot;freespace&quot;<span class="br0">&#41;</span> = round<span class="br0">&#40;</span>objDisk.FreeSpace /<span style="">1024</span>/<span style="">1024</span>,<span style="">2</span><span class="br0">&#41;</span></li><li>objRecordSet<span class="br0">&#40;</span>&quot;percentage&quot;<span class="br0">&#41;</span> = <span class="br0">&#40;</span>objDisk.Freespace /objDisk.Size<span class="br0">&#41;</span>*<span style="">100</span></li><li>objRecordSet<span class="br0">&#40;</span>&quot;date&quot;<span class="br0">&#41;</span> = strDate</li><li>objRecordSet<span class="br0">&#40;</span>&quot;time&quot;<span class="br0">&#41;</span> = strTime</li><li>&nbsp;</li><li>objRecordSet.Update</li><li>&nbsp;</li><li>Next</li><li>Next</li><li>&nbsp;</li><li>objRecordSet.Close</li><li>objConnection.Close</li><li>' =====================================================================</li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Access DB has a simple table layout, and a couple of queries and comboboxes.<br />
Table:<br />
<img src="http://blog.alt-92.net/wp-content/2009/02/table.png" alt="table" title="table" width="370" height="281" class="alignnone size-full wp-image-116" /></p>
<p>Form:<br />
<img src="http://blog.alt-92.net/wp-content/2009/02/form1.png" alt="form1" title="form1" width="530" height="416" class="alignnone size-full wp-image-117" /></p>
<p>Using the queries and by generating a PivotTable view, it&#8217;s easy to spot growth trends on disks.<br />
Graph showing available free space:<br />
<img src="http://blog.alt-92.net/wp-content/2009/02/graph-300x180.png" alt="graph" title="graph" width="450" height="270" class="alignnone size-medium wp-image-118" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alt-92.net/index.php/2009/02/22/diskspace-checks-and-trend-analysis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opening .CHM files from network drives &#8211; the GPO way</title>
		<link>http://blog.alt-92.net/index.php/2008/12/11/opening-chm-files-from-network-drives-the-gpo-way/</link>
		<comments>http://blog.alt-92.net/index.php/2008/12/11/opening-chm-files-from-network-drives-the-gpo-way/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 00:44:33 +0000</pubDate>
		<dc:creator>alt-92</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Server 2003]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://blog.alt-92.net/?p=33</guid>
		<description><![CDATA[Trying to read non-local HTML Help files since  Security Bulletin MS05-026 has always been a very frustrating process.
First, there is the common &#8216;Oh oh, you&#8217;re opening a potentially dangerous file&#8217; popup:

Well, yes. I want to, it&#8217;s already stored on my network. I put it there. In fact, I already unblocked the content when I [...]]]></description>
			<content:encoded><![CDATA[<p>Trying to read non-local HTML Help files since <a href="http://www.microsoft.com/technet/security/bulletin/ms05-026.mspx"> Security Bulletin MS05-026</a> has always been a very frustrating process.<br />
First, there is the common &#8216;Oh oh, you&#8217;re opening a potentially dangerous file&#8217; popup:</p>
<p><a href="http://blog.alt-92.net/wp-content/chmwarning.png"><img class="size-medium wp-image-34 alignleft" title="chm warning note" src="http://blog.alt-92.net/wp-content/chmwarning-300x211.png" alt="" width="270" height="190" /></a></p>
<p>Well, yes. I want to, it&#8217;s already stored on my network. I put it there. In fact, I already unblocked the content when I downloaded the file.</p>
<p><a href="http://blog.alt-92.net/wp-content/chm_unblock.png"><img class="size-medium wp-image-37 alignnone" title="chm_unblock" src="http://blog.alt-92.net/wp-content/chm_unblock-220x300.png" alt="" width="220" height="300" /></a></p>
<p>But still I get a blank page in the Helpfile:<br />
<a href="http://blog.alt-92.net/wp-content/chm_content.png"><img class="size-medium wp-image-35 alignnone" title="chm_content" src="http://blog.alt-92.net/wp-content/chm_content-300x208.png" alt="" width="300" height="208" /></a></p>
<p>So let&#8217;s go check the <a href="http://support.microsoft.com/kb/896358" target="_blank">KB Article page</a> to see what we can do.</p>
<p>Ah. While there is a helpful section explaining the registry keys needed to Make Things Work again regeditting manually is not everyones favourite pastime:</p>
<blockquote><p><code><br />
Windows Registry Editor Version 5.00</code><br />
<code><br />
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions]<br />
"MaxAllowedZone"=dword:00000001<br />
"UrlAllowList"="\\\\alt-92.net"<br />
</code><code><br />
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]<br />
"MaxAllowedZone"=dword:00000001<br />
"UrlAllowList"="\\\\alt-92.net"<br />
</code></p></blockquote>
<p>No, the double \\ are no mistake. You need to escape backslashes.</p>
<p>Now repeat for every computer. Wash, rinse, repeat.</p>
<p>Time to get busy.<br />
Using GPOs seems a likely solution. In fact, the KB article references GPO&#8217;s but in a very nasty way.<br />
So why not use Vista&#8217;s new GPO Preferences?</p>
<p>To start off, create a new GPO (appropriately named GP_HTMLHelpFix ).<br />
Dig down into the Computer Configuration tree, until you reach Preferences&gt; Windows Settings &gt; Registry.</p>
<p><a href="http://blog.alt-92.net/wp-content/chm_gppref0.png"><img class="alignnone size-medium wp-image-45" title="chm_gppref0" src="http://blog.alt-92.net/wp-content/chm_gppref0-300x271.png" alt="" width="300" height="271" /></a></p>
<p>Create new entries for the values needed:</p>
<p><a href="http://blog.alt-92.net/wp-content/chm_gppref2.png"><img class="size-medium wp-image-47 alignnone" title="chm_gppref2" src="http://blog.alt-92.net/wp-content/chm_gppref2-270x300.png" alt="" width="270" height="300" /></a></p>
<p>You can use the UrlAllowList setting to enter DFS roots or local intranet domain.</p>
<p><a href="http://blog.alt-92.net/wp-content/chm_gppref1.png"><img class="size-medium wp-image-46 alignnone" title="chm_gppref1" src="http://blog.alt-92.net/wp-content/chm_gppref1-270x300.png" alt="" width="270" height="300" /></a></p>
<p>After linking the Computer GPO to the proper OU and doing a gpupdate, you should see the results in the Registry Editor:</p>
<p><a href="http://blog.alt-92.net/wp-content/chmreg_manual.png"><img class="alignnone size-medium wp-image-52" title="chmreg_manual" src="http://blog.alt-92.net/wp-content/chmreg_manual-300x118.png" alt="" width="300" height="118" /></a></p>
<p>The above approach works in most cases. Except.. it&#8217;s still not working.<br />
<a href="http://blog.alt-92.net/wp-content/chm_content.png"><img class="size-medium wp-image-35 alignnone" title="chm_content" src="http://blog.alt-92.net/wp-content/chm_content-300x208.png" alt="" width="300" height="208" /></a></p>
<p>As it turns out, I not only need to configure the registry keys, but also need to <strong>properly </strong> configure Internet Options to include the namespace in the local Intranet Zone.<br />
Apparently, there is a problem in IE7 listed <a href="http://support.microsoft.com/kb/941001"> in MSKB article 941001</a>.</p>
<blockquote><p>If you configure a policy setting to a value other than the default value, a local site may appear as &#8220;Local Intranet&#8221; even though you expect it to appear as &#8220;Internet,&#8221; or vice versa.</p></blockquote>
<p>The default settings which should work but don&#8217;t:</p>
<p><a href="http://blog.alt-92.net/wp-content/chm_iesettings.png"><img class="alignnone size-medium wp-image-48" title="chm_iesettings" src="http://blog.alt-92.net/wp-content/chm_iesettings-242x300.png" alt="" width="242" height="300" /></a></p>
<p>So let&#8217;s tick off Autodetect, tick &#8220;Include all Network paths (UNCs)&#8221; since a drivemapping is also UNC..<br />
<a href="http://blog.alt-92.net/wp-content/chm_iesettings2.png"><img class="alignnone size-medium wp-image-50" title="chm_iesettings2" src="http://blog.alt-92.net/wp-content/chm_iesettings2-300x167.png" alt="" width="300" height="167" /></a></p>
<p>Click Advanced, and enter the domain as a file://-based UNC path..<br />
<a href="http://blog.alt-92.net/wp-content/chm_iesettings3.png"><img class="alignnone size-medium wp-image-51" title="chm_iesettings3" src="http://blog.alt-92.net/wp-content/chm_iesettings3-300x263.png" alt="" width="300" height="263" /></a></p>
<p>Re-tick autodetect, <em>with the settings enabled</em> and &#8216;Ok&#8217; your way though.<br />
<a href="http://blog.alt-92.net/wp-content/chm_iesettings4.png"><img class="alignnone size-medium wp-image-64" title="chm_iesettings4" src="http://blog.alt-92.net/wp-content/chm_iesettings4-300x167.png" alt="" width="300" height="167" /></a></p>
<p>Import these settings in the appropriate GPO object to control IE settings if you have them.</p>
<p>Bonus: Use a WMI filter to exclude or include the operating systems you wish to apply these settings to.  The Filter shown ensures the GPO only applies to XP desktops and Vista RTM or SP1 desktop machines, and not to any 2000 Pro or 2003 Server machines that inadvertently stray out of their OU.</p>
<p><a href="http://blog.alt-92.net/wp-content/chm_gpofilter1.png"><img class="alignnone size-medium wp-image-75" title="chm_gpofilter1" src="http://blog.alt-92.net/wp-content/chm_gpofilter1-300x173.png" alt="" width="300" height="173" /></a></p>
<p>By the way:</p>
<p>It worked!</p>
<p><a href="http://blog.alt-92.net/wp-content/chm_positive.png"><img class="alignnone size-medium wp-image-67" title="chm_positive" src="http://blog.alt-92.net/wp-content/chm_positive-300x170.png" alt="" width="300" height="170" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alt-92.net/index.php/2008/12/11/opening-chm-files-from-network-drives-the-gpo-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smart-resizing Remote Desktop connections?</title>
		<link>http://blog.alt-92.net/index.php/2008/11/21/smart-resizing-remote-desktop-connections/</link>
		<comments>http://blog.alt-92.net/index.php/2008/11/21/smart-resizing-remote-desktop-connections/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 11:18:46 +0000</pubDate>
		<dc:creator>alt-92</dc:creator>
				<category><![CDATA[Server 2003]]></category>
		<category><![CDATA[Server 2008]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://blog.alt-92.net/?p=30</guid>
		<description><![CDATA[Guess you can learn something new every day.
http://blogs.msdn.com/ts/archive/2008/08/07/smart-sizing-the-ts-client.aspx
Since the Windows XP timeframe, the TS Client has had the ability to run in “smart-sized” mode (users of Remote Assistance will be familiar with this mode). Smart-sized mode means that the entire remote desktop is always visible in the client window, with no scrollbars being necessary. In [...]]]></description>
			<content:encoded><![CDATA[<p>Guess you can learn something new every day.</p>
<p><a href="http://blogs.msdn.com/ts/archive/2008/08/07/smart-sizing-the-ts-client.aspx" target="_blank">http://blogs.msdn.com/ts/archive/2008/08/07/smart-sizing-the-ts-client.aspx</a></p>
<blockquote><p>Since the Windows XP timeframe, the TS Client has had the ability to run in “smart-sized” mode (users of Remote Assistance will be familiar with this mode). Smart-sized mode means that the entire remote desktop is always visible in the client window, with no scrollbars being necessary. In effect, for the same size client window, smart-sizing shows you more graphic data, while a non-smart-sized client window has to use scrollbars and shows much less.</p></blockquote>
<p>Which means by adding</p>
<p><code>smart sizing:i:1</code></p>
<p>to a .rdp file (which is a textfile after all) you can get resizing Remote desktop windows too <img src='http://blog.alt-92.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alt-92.net/index.php/2008/11/21/smart-resizing-remote-desktop-connections/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Link Layer Topology Discovery driver on Windows 2003</title>
		<link>http://blog.alt-92.net/index.php/2008/08/16/link-layer-topology-discovery-driver-on-windows-2003/</link>
		<comments>http://blog.alt-92.net/index.php/2008/08/16/link-layer-topology-discovery-driver-on-windows-2003/#comments</comments>
		<pubDate>Sat, 16 Aug 2008 17:50:39 +0000</pubDate>
		<dc:creator>alt-92</dc:creator>
				<category><![CDATA[Server 2003]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://blog.alt-92.net/?p=24</guid>
		<description><![CDATA[Vista (and Server 2008) introduced the Network Map feature ( as discussed here ).
This feature shows you a Diagram with all LLTD-capable hosts in your home network and you can start it from the Network and Sharing Center Control Panel applet by clicking View Full Map:

Your Network Map would look something like this:

Now, only Vista [...]]]></description>
			<content:encoded><![CDATA[<p>Vista (and Server 2008) introduced the Network Map feature ( as discussed <a href="http://research.microsoft.com/~rjblack/Topology/" target="_blank">here</a> ).</p>
<p>This feature shows you a Diagram with all LLTD-capable hosts in your home network and you can start it from the Network and Sharing Center Control Panel applet by clicking View Full Map:</p>
<p><a href="http://blog.alt-92.net/wp-content/map1.jpg"><img class="alignleft size-full wp-image-25" title="NetSharingCenter" src="http://blog.alt-92.net/wp-content/map1.jpg" alt="" width="500" height="289" /></a></p>
<p>Your Network Map would look something like this:</p>
<p><a href="http://blog.alt-92.net/wp-content/map2.jpg"><img class="alignnone size-full wp-image-26" title="Network Map pre-fix" src="http://blog.alt-92.net/wp-content/map2.jpg" alt="" width="500" height="186" /></a></p>
<p>Now, only Vista has this on by default, and the only other Windows version for which LLTD is available is XP.</p>
<p>Shuttle is a WIndows XP MCE2005 machine and has the LLTD Responder installed as provided from <a href="http://support.microsoft.com/kb/922120" target="_blank">MSKB article 922120</a> (Validation is required to get the download).</p>
<p>My network however also features some 2003 Servers, how do we get these to show?<br />
Installing the driver on Windows 2003 Server does not work, since the updater checks your Windows buildnumber. The update_SP2QFE.inf and  update_SP2GDR.inf files  contain  this  entry:</p>
<p><code>[Version]<br />
Signature                 = "$Windows NT$"<br />
LanguageType              = %LangTypeValue%<br />
NtBuildToUpdate           = 2600<br />
NtMajorVersionToUpdate    = 5<br />
NtMinorVersionToUpdate    = 1<br />
MaxNtBuildToUpdate        = 2600<br />
MaxNtMajorVersionToUpdate = 5<br />
MaxNtMinorVersionToUpdate = 1<br />
MinNtServicePackVersion   = 512<br />
MaxNtServicePackVersion   = 512<br />
ThisServicePackVersion    = 512<br />
CatalogFile               = %SP_SHORT_TITLE%.cat<br />
</code><br />
Editing the MaxNtMinorVersionToUpdate to 2 (NT 5.2 meaning 2003 Server) might seem like an option, but this invalidates the signature with which all Microsoft updates are signed to prevent tampering.</p>
<p>Turns out there is a very simple way to install the LLTD responder.<br />
First, extract the hotfix to a directory:<br />
<code><br />
.\WindowsXP-KB922120-v5-x86-ENU.exe /X:D:\temp\kb922120<br />
</code><br />
Move the files into your preferred location. In my case, I&#8217;m using a DFS network share for AD software deployments.<br />
Create a batchfile, vbscript or whatever you like, and let it perform the following actions:<br />
<code><br />
copy "\\yourserver\appinstall\lltd_2k3\SP2QFE\rspndr.sys" %windir%\system32\drivers<br />
copy "\\yourserver\appinstall\lltd_2k3\SP2QFE\rspndr.exe" %windir%\system32<br />
copy "\\yourserver\appinstall\lltd_2k3\SP2QFE\ip\rspndr.inf" %windir%\inf<br />
start %windir%\system32\rspndr.exe -i<br />
exit<br />
</code><br />
This obviously copies the files in their corresponding target locations and then starts the Responder Service.<br />
Deploy the files in the way that suits you best,</p>
<p>Now, check your Network Map again and you will see your Windows 2003 Server:</p>
<p><a href="http://blog.alt-92.net/wp-content/map3.jpg"><img class="alignnone size-full wp-image-27" title="NetworkMap post-fix" src="http://blog.alt-92.net/wp-content/map3.jpg" alt="" width="500" height="242" /></a></p>
<p>And since the Responder can be started and stopped as a regular Service, you can influence the behaviour from whatever mechanism you prefer (MOM Tasks, startup/logon scripts, SMS, System Center) .</p>
<p>Note:<br />
If you&#8217;re using VMware products, and both Host and Guest OS have the Responder installed, you&#8217;ll notice that VMware Bridging is represented as a Network Hub connection.</p>
<p><a href="http://blog.alt-92.net/wp-content/map4.jpg"><img class="alignnone size-full wp-image-28" title="NetworkMap VMware" src="http://blog.alt-92.net/wp-content/map4.jpg" alt="" width="345" height="269" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alt-92.net/index.php/2008/08/16/link-layer-topology-discovery-driver-on-windows-2003/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DFS Modlink utility</title>
		<link>http://blog.alt-92.net/index.php/2008/06/14/dfs-modlink-utility/</link>
		<comments>http://blog.alt-92.net/index.php/2008/06/14/dfs-modlink-utility/#comments</comments>
		<pubDate>Sat, 14 Jun 2008 10:00:53 +0000</pubDate>
		<dc:creator>alt-92</dc:creator>
				<category><![CDATA[Server 2003]]></category>
		<category><![CDATA[Server 2008]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://blog.alt-92.net/index.php/2008/05/14/dfs-modlink-utility/</guid>
		<description><![CDATA[If you add a new target ( DFSCMD /ADD \\dfsroot\link \\server\share ) the default behaviour is to enable the DFS link state.
Based on code found on MSDN for  DFS_INFO_101 Structure (Windows) , this command line utility enables or disables the DFS target link state.

]]></description>
			<content:encoded><![CDATA[<p>If you add a new target ( DFSCMD /ADD \\dfsroot\link \\server\share ) the default behaviour is to enable the DFS link state.<br />
Based on code found on MSDN for  <a href="http://msdn.microsoft.com/en-us/library/bb524780(VS.85).aspx" target="_blank">DFS_INFO_101 Structure (Windows)</a> , this command line utility enables or disables the DFS target link state.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="430" height="345" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/KDcW6NhSElM&amp;hl=en&amp;rel=0&amp;border=1" /><embed type="application/x-shockwave-flash" width="430" height="345" src="http://www.youtube.com/v/KDcW6NhSElM&amp;hl=en&amp;rel=0&amp;border=1" wmode="transparent"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alt-92.net/index.php/2008/06/14/dfs-modlink-utility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
