<?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>(iBoyd) &#187; ITS</title>
	<atom:link href="http://iboyd.net/index.php/category/its/feed/" rel="self" type="application/rss+xml" />
	<link>http://iboyd.net</link>
	<description></description>
	<lastBuildDate>Tue, 29 Jun 2010 16:46:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Windows 7 is Missing NETDOM.EXE</title>
		<link>http://iboyd.net/index.php/2009/10/23/windows-7-is-missing-netdom-exe/</link>
		<comments>http://iboyd.net/index.php/2009/10/23/windows-7-is-missing-netdom-exe/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 01:49:45 +0000</pubDate>
		<dc:creator>Boyd</dc:creator>
				<category><![CDATA[ITS]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[active directory]]></category>
		<category><![CDATA[join domain]]></category>
		<category><![CDATA[netdom]]></category>
		<category><![CDATA[powershell]]></category>

		<guid isPermaLink="false">http://iboyd.net/?p=224</guid>
		<description><![CDATA[UPDATE: I discovered that there is a working NETDOM.EXE for Windows 7. Here&#8217;s what you need to do (on a Windows 7 machine) to get it: Install the Remote Server Administration Tools (RSAT). Go to Control Panel -&#62; Programs and Features -&#62; Turn Windows features on or off In the treeview, go to Remote Server [...]]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration: underline;"><strong>UPDATE:</strong></span> I discovered that there is a working NETDOM.EXE for Windows 7. Here&#8217;s what you need to do (on a Windows 7 machine) to get it:</p>
<ol>
<li>Install the <a title="Download Remote Server Administration Tools" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7D2F6AD7-656B-4313-A005-4E344E43997D&amp;displaylang=en" target="_blank">Remote Server Administration Tools (RSAT)</a>.</li>
<li>Go to <strong>Control Panel -&gt; Programs and Features -&gt; Turn Windows features on or off</strong></li>
<li>In the treeview, go to <strong>Remote Server Administration Tools -&gt; Role Administration Tools -&gt; AD DS and AD LDS Tools</strong> and select <strong>AD DS Tools</strong>. Click OK.</li>
</ol>
<p>NETDOM should be located in your SYSTEM32 folder. If would rather use Powershell to join the domain, since it&#8217;s included with the Windows 7 RTM, then please continue reading. I apologize for any confusion.</p>
<p><em>(Begin Original Post)</em></p>
<p>Now that the title of this post has your attention, I can tell you that Windows 7 isn&#8217;t really missing this important tool that joins a machine to an Active Directory Domain in an automated fashion. Instead, this command-line utility has been superseded by a new command that&#8217;s included in Microsoft&#8217;s love-it-or-hate-it command line shell: Windows Powershell. Why? Well, Powershell is certainly more powerful than the standard command prompt. But more importantly, Windows 7 is the first version to include Windows Powershell in the RTM build. With Powershell built into Windows 7, perhaps Microsoft saw no reason to continue including and supporting our old pal, NETDOM.</p>
<h4>Joining a Domain with Add-Computer</h4>
<p>When you&#8217;re finished grieving over the loss of our beloved NETDOM, which has joined countless computers to countless Windows Domains (or far inferior Workgroups), it&#8217;s time to roll up your sleeves and start working with the successor command: Add-Computer. This command will <span style="text-decoration: underline;">only</span> run in a Windows Powershell command prompt. The good news, however, is that you can easily run Add-Computer inside Powershell through a normal command prompt (or batch file). To do so, open a command prompt (with elevated privileges) and run this command:</p>
<pre style="padding: 10px 0px; overflow: auto; width: 100%; background-color: #e3e3e3;">powershell Add-Computer -DomainName "YOURDOMAIN"</pre>
<p>See? That wasn&#8217;t so bad now was it? If you don&#8217;t mind entering credentials to join the domain on every single computer, that&#8217;s all you need. But unfortunately, some of us need to automate the process of joining the domain. For that, it gets more complex, and we&#8217;ll need a bit more Powershell to make it work.</p>
<div id="attachment_225" class="wp-caption alignright" style="width: 310px"><a href="http://iboyd.net/wp-content/uploads/2009/10/powershell-add-computer.jpg" rel="lightbox[224]"><img class="size-medium wp-image-225" title="powershell-add-computer" src="http://iboyd.net/wp-content/uploads/2009/10/powershell-add-computer-300x152.jpg" alt="Screenshot: Add-Computer -?" width="300" height="152" /></a><p class="wp-caption-text">Screenshot: Add-Computer -?</p></div>
<h4>How to Use Add-Computer</h4>
<p>From a command prompt, you can get more detailed usage instructions for Add-Computer by using this command:</p>
<pre style="padding: 10px 0px; overflow: auto; width: 100%; background-color: #e3e3e3;">powershell Add-Computer -?</pre>
<p>In the syntax section, you&#8217;ll find syntax switches that can be used to specify the domain name, OU path, and credentials.  For a more details and examples on Add-Computer, you can also use this command:</p>
<pre style="padding: 10px 0px; overflow: auto; width: 100%; background-color: #e3e3e3;">powershell get-help Add-Computer -detailed</pre>
<p>The first thing you should notice is that, unlike NETDOM, there aren&#8217;t syntax switches to specify the username and password. Instead, there is a switch called &#8220;-Credential&#8221; that takes in a PSCredential object. Therefore, we need to create a PSCredential object with the credentials that will be used to join the computer to the domain before we can actually use the Add-Computer command in an automated way. To do this, we&#8217;ll need to create a Powershell script.</p>
<p>If you have never used Powershell before, you&#8217;ll probably say to yourself, &#8220;PSCredential object? What is that!?&#8221;  I&#8217;ll give you this very brief explanation: PSCredential is an object that can securely store Windows credentials. Furthermore, Powershell is  more like full-blown Object-Oriented scripting language than a shell language. Like DOS, it has a command prompt. However, the differences usually end there.  Anyway, this article isn&#8217;t about Powershell, but if you want to know more about it, <a title="Google Search for Powershell" href="http://www.google.com/search?q=powershell" target="_blank">start Googling</a>. Or you can just continue on to get the Powershell script.</p>
<h4>A Powershell Script to Join the Domain</h4>
<p>The Powershell script needed to join the domain contains only two commands.  Create a new text file named &#8220;joinDomain.ps1&#8243; and put the following powershell code into it:</p>
<pre style="padding: 10px 0px; overflow: auto; width: 100%; background-color: #e3e3e3;">$credential = New-Object System.Management.Automation.PsCredential("MY.DOMAIN.COM\user", (ConvertTo-SecureString "mypassword" -AsPlainText -Force))
Add-Computer -DomainName "MY.DOMAIN.COM" -Credential $credential -OUPath ("OU=Computers,DC=MY,DC=DOMAIN,DC=COM")</pre>
<p>The first line of the script creates a new <a title="MSDN: PsCredential" href="http://msdn.microsoft.com/en-us/library/system.management.automation.pscredential.pscredential%28VS.85%29.aspx" target="_blank">System.Management.Automation.PsCredential</a> object. PsCredential takes in two parameters: a string containing a username and a <a title="Technet: ConvertTo-SecureString" href="http://technet.microsoft.com/en-us/library/dd347656.aspx" target="_blank">secure string</a> containing the password.  You should change &#8220;MY.DOMAIN.COM\user&#8221; to the user that will join the computer to the domain. Change &#8220;mypassword&#8221; to the password of that account.</p>
<p>The second line is the Add-Computer command. &#8220;MY.DOMAIN.COM&#8221; should be changed to the domain that the computer is joining.  Change OUPath to the OU String that points to the OU container that the computer object should be placed in.</p>
<h4>Running the Script</h4>
<p>To run the Powershell script above, you need to open an elevated command prompt. To run it, type <strong>powershell ./joinDomain.ps1</strong> and press enter. In many cases, you will find that you&#8217;re not allowed to run the script, despite running the command as an administrator:</p>
<pre style="padding: 10px 0px; overflow: auto; width: 100%; background-color: #e3e3e3;">&gt;powershell ./joinDomain.ps1
<span style="color: #ff0000;">File joinDomain.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details.</span></pre>
<p>The funny part about Powershell is that, by default, it is configured to only allow the execution of signed scripts. This is a security feature so that unauthorized or malicious scripts that could compromise the system can&#8217;t be executed. After all, Powershell is quite power-ful. Unfortunately, this really tends to confuse and frustrate people. To get around this, you can temporarily change the execution policy, and then change it back:</p>
<pre style="padding: 10px 0px; overflow: auto; width: 100%; background-color: #e3e3e3;">powershell Set-ExecutionPolicy Unrestricted
powershell ./joinDomain.ps1
powershell Set-ExecutionPolicy Restricted</pre>
<p>You can also change the execution policy to allow only signed scripts and scripts created by you. For more information about the Powershell execution policy, <a title="Running Windows Powershell" href="http://www.microsoft.com/technet/scriptcenter/topics/winpsh/manual/run.mspx#E5B" target="_blank">check out this article</a>.</p>
<h3>Final Thoughts</h3>
<p>Now that you are able to automate a domain join with Powershell instead of NETDOM, there is one final thing that I want to mention. In the script above,  the password String was converted to a SecureString by using the &#8220;-AsPlainText -Force&#8221; arguments. Using SecureString in this way is generally discouraged as it defeats the whole purpose of having a secure string. Furthermore,  having account credentials in plain text with in the script is insecure and generally a bad idea. I&#8217;m guessing that this is the reason why Microsoft left out the &#8220;/userD&#8221; and &#8220;/passwordD&#8221; parameters from the NETDOM command and made it more slightly difficult to include the credentials in plain text. You should limit the rights of the account you&#8217;re using to automatically join the domain so that it cannot be used to delete Active Directory objects, access network shares, etc. You should also consider other methods of storing the credentials. <a title=" Using Get-Credential to Store Passwords “securely” in a file" href="http://bsonposh.com/archives/338" target="_blank">This article</a> has an alternative method for storing credentials used in Powershell that may meet your needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://iboyd.net/index.php/2009/10/23/windows-7-is-missing-netdom-exe/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Windows PE 3.0 and the Missing WMI Class</title>
		<link>http://iboyd.net/index.php/2009/10/12/windows-pe-3-0-and-the-missing-wmi-class/</link>
		<comments>http://iboyd.net/index.php/2009/10/12/windows-pe-3-0-and-the-missing-wmi-class/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 14:46:07 +0000</pubDate>
		<dc:creator>Boyd</dc:creator>
				<category><![CDATA[ITS]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Sysprep]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Windows PE]]></category>
		<category><![CDATA[WinPE]]></category>
		<category><![CDATA[WMI]]></category>

		<guid isPermaLink="false">http://iboyd.net/?p=221</guid>
		<description><![CDATA[Since I maintain the Windows XP Image for our lab machines, I was tasked with doing the same thing with Windows 7. When I rewrote our imaging tools last Spring, I created a WinPE 2.0 image that included the WMI package so that the imaging application could perform WMI queries in PE. I used WMI [...]]]></description>
			<content:encoded><![CDATA[<p>Since I maintain the Windows XP Image for our lab machines, I was tasked with doing the same thing with Windows 7. When I rewrote our imaging tools last Spring, I created a WinPE 2.0 image that included the WMI package so that the imaging application could perform WMI queries in PE. I used WMI only to get basic information about the machine (Such as the Manufacturer, Model, Serial Number, and Disk Information).</p>
<p>While upgrading the WinPE image from 2.0 to 3.0 in anticipation of deploying Windows 7, I discovered that the Windows PE 3.0 base image (the same one that comes with the Windows AIK) was missing Win32_DiskPartition. I use this class to retrieve the number of partitions on the system disk so that I can make sure that each partitition (and its volume) has been assigned a drive letter so that I can search each drive for a preexisting configuration file. But why would Microsoft remove this class!? On a standard Windows 7 machine, the command &#8220;WMIC.EXE PARTITION&#8221; returned a list of partitions on the system, confirming that I wasn&#8217;t losing my mind. However, the command returned nothing when I tried it in Windows PE 3.0.</p>
<p>After lots of searching, I finally came across a <a title="Microsoft Technet Forums" href="http://social.msdn.microsoft.com/Forums/en-US/windowsgeneraldevelopmentissues/thread/83defbc5-1cdb-470f-b5f1-f1fe6a61fc74" target="_blank">post on Microsoft Technet </a>where another developer ran into the same issue. Fortunately, he found a simple, but somewhat obscure, solution:</p>
<ol>
<li> On a fully-installed Windows 7 machine, copy the contents of C:\Windows\System32\wbem</li>
<li>Mount the Windows PE 3.0 image and replace the contents of &lt;mountdir&gt;\Windows\System32\wbem with the wbem folder from the previous step</li>
</ol>
<p>Using the Windows 7 wbem folder in your WinPE 3.0 image will make it several Megabytes larger, but at least you will be able to get to the missing WMI class(es) that you need!</p>
<p><span style="text-decoration: underline;"><strong>Update 3/11/2010</strong></span><strong>: </strong>After upgrading to the latest version of the Microsoft WAIK, I was unable to overwrite existing files in the WBEM folder (Access Denied). For some reason, the permissions are different on this folder now. Here is the workaround:</p>
<ol>
<li>To take ownership of the existing WBEM folder and files, run this command: TAKEOWN /F &lt;mountdir&gt;\windows\system32\wbem /A /R</li>
<li>To grant administrators full control of the existing WBEM folder and files, run this command: ICACLS &lt;mountdir&gt;\windows\system32\wbem /grant Administrators:F /T</li>
</ol>
<p>Once the permissions are updated, you will be able to overwrite files in the WBEM folder.</p>
]]></content:encoded>
			<wfw:commentRss>http://iboyd.net/index.php/2009/10/12/windows-pe-3-0-and-the-missing-wmi-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SCCM 2007</title>
		<link>http://iboyd.net/index.php/2008/10/07/sccm-2007/</link>
		<comments>http://iboyd.net/index.php/2008/10/07/sccm-2007/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 17:37:33 +0000</pubDate>
		<dc:creator>Boyd</dc:creator>
				<category><![CDATA[ITS]]></category>
		<category><![CDATA[operating system deployment]]></category>
		<category><![CDATA[vista]]></category>

		<guid isPermaLink="false">http://iboyd.net/?p=77</guid>
		<description><![CDATA[At work I have been assigned the task of creating an automated Windows Vista deployment using Microsoft System Center Configuration Manger 2007. With Windows XP, we manually created an automated deployment using BartPE and batch files. After the operating system was installed and the machine was joined to the domain, group policy would handle software [...]]]></description>
			<content:encoded><![CDATA[<p>At work I have been assigned the task of creating an automated Windows Vista deployment using Microsoft System Center Configuration Manger 2007. With Windows XP, we manually created an automated deployment using BartPE and batch files. After the operating system was installed and the machine was joined to the domain, group policy would handle software deployment via MSI files.</p>
<p>Why are we looking to use SCCM when there is an additional per-machine cost? Well, we see several advantages that we need in order to be able to continue to expand out Computer Management project:</p>
<ul>
<li><strong>No MSIs required &#8211; </strong>SCCM will hopefully allow us to deploy software without needing an expensive packaging application such as WISE. Not to mention, there are a lot of applications that work very poorly when packaged with MSIs, such as Office 2007 and Adobe Creative Suite). Furthermore, there are some MSI packages that conflict with others and can inevitably make a machine build fail.</li>
<li><strong>Better software deployment management &#8211; </strong>Hopefully, SCCM will allow us to be more granular when it comes to choosing which computers get what software.</li>
<li><strong>Machine Inventory/Queries</strong> &#8211; Currently, we use applications developed in-house to perform WMI queries against machines for Inventory purposes. Inventory is stored in a SQL database and queries can be performed using a web page. Quite frankly, this is code we would rather not maintain in the future. The SCCM Configmgr interface should allow us to inventory machines while also to grant access to are partners to that they can query their machines. In other words, we no longer have to reinvent the wheel. Inventory should also be more reliable.</li>
<li><strong>Offsite deployment</strong> &#8211; Currently, any machines in CLM must be connected to the Penn State network in order to be managed and receive software. This makes managing offsite devices, such as laptops, impossible. SCCM has functionality that could allow us to manage and deploy software to offsite systems through HTTPS.</li>
<li><strong>Streamlined Operating System Deployments &#8211; </strong>Thanks to the Operating System Deployment (OSD) portion of SCCM, we will hopefully be able to rapidly create, configure, and deploy Windows to machines using a variety of distribution mechanisms including PXE, USB Drives, and DVD Media. We hope to incorporate all of the features of our current imaging process into this. SCCM OSD also uses ImageX to create images similar in the way that Symantec Ghost does. This should eliminate our dependency on Ghost licensing.</li>
</ul>
<p>We&#8217;re still investigating SCCM and there are several experiments under way. One thing that I have found is SCCM does not support OS deployments via a restore partition on the physical disk. This is a requirement for us because we have a lab environmment where an entire lab of 50+ machines may need rebuilt over. Pushing out the OS over the network could eat up a lot more bandwidth than is necessary. We will have to find a way to work around this, which probably means throwing out the native SCCM boot shell (TSBootShell.exe) and writing a simple one that meets our needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://iboyd.net/index.php/2008/10/07/sccm-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ResCom Increases Bandwidth Limit to 4GB</title>
		<link>http://iboyd.net/index.php/2008/03/17/rescom-increases-bandwidth-limit-to-4gb/</link>
		<comments>http://iboyd.net/index.php/2008/03/17/rescom-increases-bandwidth-limit-to-4gb/#comments</comments>
		<pubDate>Mon, 17 Mar 2008 17:32:24 +0000</pubDate>
		<dc:creator>Boyd</dc:creator>
				<category><![CDATA[ITS]]></category>
		<category><![CDATA[School]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[rescom]]></category>
		<category><![CDATA[residence halls]]></category>

		<guid isPermaLink="false">http://iboyd.net/index.php/2008/03/17/rescom-increases-bandwidth-limit-to-4gb/</guid>
		<description><![CDATA[For some time now, I have been a supporter of improving the ResCom service for students living in the residence halls. This is partly because I was formerly the ResCom student supervisor at Penn State Mont Alto and saw firsthand the shortcomings of internet service in University residence halls. With help and support on behalf [...]]]></description>
			<content:encoded><![CDATA[<p>For some time now, I have been a supporter of improving the ResCom service for students living in the residence halls. This is partly because I was formerly the ResCom student supervisor at Penn State Mont Alto and saw firsthand the shortcomings of internet service in University residence halls. With help and support on behalf of students from CCSG, I have advocated for both an increase in bandwidth restrictions as well as improvements to the registration process.</p>
<p>On Friday, an announcement was made that beginning this week, bandwidth limits will increase from 2GB/week to 4GB/week. Additionally, network throughput during the day would increase 120%. This is a major improvement for the residence halls. However, it should not make us forget about improving the service in the long-term. Here are my suggestions for ResCom, which I presented to University administrators 2 weeks ago in a formal letter:<span id="more-42"></span></p>
<blockquote>
<p class="MsoNormal"><strong>Increasing Bandwidth Limits<o:p></o:p></strong></p>
<p class="MsoNormal">In the immediate future, I believe that the weekly commodity bandwidth limit for students should be increased to 6GB/download and 4GB/upload per week. The download limit should be set higher than upload limits because, in my opinion, it is more important than upload bandwidth. In my experience, users that have exceeded the 2GB upload limit typically have file sharing applications running in the background that are abusing bandwidth and often sharing copyright material. These limits also meet the minimum of what I believe are the next-lowest bandwidth limits in the Big Ten. Wisconsin-Madison permits users 10GB total of off-campus bandwidth over any seven-day period.</p>
<p class="MsoNormal">Since a large number of students in the residence halls have received bandwidth violations at the current limits, I recommend that one or two violations be removed from their semester count if new limits are set in the middle of this semester. This would give them a fair opportunity to obey the new and more reasonable limits.<span>  </span></p>
<p class="MsoNormal"><strong>Allocating More Bandwidth to the Residence Halls<o:p></o:p></strong></p>
<p class="MsoNormal">In order to increase the amount of bandwidth allocated to the residence halls, I recommend that Auxiliary and Business Services purchase additional internet commodity bandwidth for use in the residence halls. In my opinion, the residence halls should not be entitled to use commodity internet bandwidth that is paid for with the Information Technology Fee. This fee should support all students, and since the ResCom service is only available to students living in University residence halls, I believe it is unfair to students with off-campus housing that pay this fee.</p>
<p class="MsoNormal">Additionally, I have discovered that many students are confused by the differences between bandwidth limits and bandwidth caps on commodity internet connectivity. In the future, it may be clearer to define bandwidth caps as throughput caps since speed is what seems to be what this cap is limiting, not the amount that can be downloaded or uploaded in a week.</p>
<p class="MsoNormal"><strong>Annually Reviewing Bandwidth Limits and Policies<o:p></o:p></strong></p>
<p class="MsoNormal">According to an archived copy of the ResCom bandwidth FAQ, Housing and Residence Life should have implemented a formal policy that would govern residence hall network bandwidth usage. ARHS and CCSG were to be consulted in the development of this policy. However, I am not aware of this policy ever being created or implemented. I would like to see this policy created or re-evaluated in order to create an annual review process for residence hall bandwidth limits. Things that should be included in the process are statistical data on bandwidth use as well as feedback from students. I believe that implementing an annual review committee that consists of staff from both Auxiliary &amp; Business Services and Telecommunications &amp; Networking Services, as well as student representation from organizations such as ARHS and CCSG, would be helpful to consistently analyze internet connectivity needs in the residence halls.</p>
<p class="MsoNormal">An online survey may also be useful for getting feedback from students regarding the ResCom service. This may help determine general satisfaction with ResCom customer service, bandwidth limits, and connection speeds. While I cannot guarantee that there would be a high volume of responses, I still think it is important to give students the opportunity to supply feedback.</p>
<p class="MsoNormal"><strong>Dealing with Repeat Bandwidth Violations<o:p></o:p></strong></p>
<p class="MsoNormal">Although there may be little excuse for someone to receive three bandwidth violations under higher limits, I realize that these users still have legitimate work to do. While there should be a throttle for repeat offenders, I think it should be raised to something reasonable, such as 256Kb/s or 384Kb/s. Also, I do not believe that this throttle should affect access to sites on the Penn State network. This would make most web services that are vital to a student’s education at the University usable.</p>
<p class="MsoNormal"><strong>Improving the User Experience<o:p></o:p></strong></p>
<p class="MsoNormal">While the issue of the moment seems to be bandwidth, I believe that several other processes within ResCom need to be improved in order to offer a service comparable to that of other Universities. As the former ResCom Student Supervisor at Penn State Mont Alto, I have seen the confusion caused by computers that have multiple Ethernet Addresses and IP Configurations. Implementing DHCP was a step in the right direction. However, the process would be much more efficient if more responsibility was taken out of the user’s hands. Additionally, allowing students to register with ResCom over their inactive connection would save them the hassle of finding another computer with internet access. I have seen examples from other Universities that automatically redirect students to a “remediation zone” prior to registering that only allows them to access the registration website. Automatically redirecting the user to this site after they plug in their network cable could further improve the experience.</p>
<p class="MsoNormal">Network Access Controls (NAC) will also need to be updated to improve both the registration and network security aspects of ResCom. Newer Network Access Protection (NAP) solutions could proactively help provision student computers by making sure they have the latest operating system updates and antivirus definitions. This would improve network security and, in my opinion, potentially cut costs by working to reduce the number of compromised machines on the network that ResCom and Security Operations Services must support.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://iboyd.net/index.php/2008/03/17/rescom-increases-bandwidth-limit-to-4gb/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Save Bandwidth: Use Penn State’s WSUS Server for Windows Updates</title>
		<link>http://iboyd.net/index.php/2007/11/26/save-bandwidth-use-penn-state%e2%80%99s-wsus-server-for-windows-updates/</link>
		<comments>http://iboyd.net/index.php/2007/11/26/save-bandwidth-use-penn-state%e2%80%99s-wsus-server-for-windows-updates/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 08:03:32 +0000</pubDate>
		<dc:creator>Boyd</dc:creator>
				<category><![CDATA[ITS]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[rescom]]></category>
		<category><![CDATA[wsus]]></category>

		<guid isPermaLink="false">http://server2.fusednetwork.com/~boyd/?p=16</guid>
		<description><![CDATA[At the last SACITS meeting, someone brought up an interesting idea for saving commodity internetbandwidth in the residence halls. Because ResCom counts all internet traffic outside of Penn State against a student’s bandwidth limit, any Windows Updates also get counted against this limit. The reality is that there doesn’t seem to be any way to [...]]]></description>
			<content:encoded><![CDATA[<p>At the last SACITS meeting, someone brought up an interesting idea for saving commodity internetbandwidth in the residence halls. Because ResCom counts all internet traffic outside of Penn State against a student’s bandwidth limit, any Windows Updates also get counted against this limit. The reality is that there doesn’t seem to be any way to exclude the Windows Updates website from counting against bandwidth limits. This is where the Windows Server Update Service (WSUS) may be able to fix the problem. WSUS allows client computers to download updates from a server on the LAN instead of windowsupdate.microsoft.com. If a WSUS server were placed on the Penn State network for students living in the residence halls to use, it would allow them to download Windows Updates without facing the possibility of bandwidth penalties.</p>
<p><span id="more-16"></span><br />
WSUS has a lot of great features that System Administrators can take advantage of. More information on it is available at this address:  http://technet.microsoft.com/en-us/wsus/default.aspx</p>
<p>One of the interesting outcomes of the SACITS meetings was that ITS has already looked at providing this service to users. In fact, the service is already being offered: http://aset.its.psu.edu/docs/windows/windows_sus . So why isn’t it advertised to students? The answer at the meeting seemed to be that there wasn’t a easy, foolproof way for students to configure their machine to use the Penn State WSUS server. Additionally, there wasn’t an easy way to set the update configuration such that when students took their machines off the Penn State network, the configuration would automatically revert back to Microsoft’s servers. I disagree.</p>
<p>In fact, I’m pretty sure that all of this can be configured easily using a few registry tweaks and a batch file, maybe two.</p>
<p><em><strong>IMPORTANT: I haven&#8217;t confirmed that all of  this works flawlessly yet, mainly because I don&#8217;t live in a residence hall. If you try it and run in to problems, please post them in the comments. This will only work in Windows XP/Vista</strong></em></p>
<p><strong>DISCLAIMER: How to Break Your Computer</strong><br />
It’s no secret that improperly making changes to the system registry can really mess things up on your computer. While making registry changes is normally straightforward, it isn’t foolproof. However, a small application or batch file can be written that helps automate the registry changes that need to be done to configure WSUS. An example is below. If you decide to make any changes manually, please do so at your own risk.</p>
<p>Also, if you decide to use any text or files from this article, please do so at your own risk. I take no responsibility for any problems you encounter with this information. By using the batch files on this page, you agree that I hold no responsibility for unintentional damage caused. You also agree that I am not obligated to provide technical support regarding this article or any files included in it. Sorry, had to get that out there.</p>
<p><strong>We Don’t Need No GPO</strong><br />
For system administrators that manage computers through an Active Directory environment, configuring clients to use a WSUS server involves creating a fairly simple Group Policy Object (GPO). However, users in the residence halls aren’t joined to a domain, for better or worse. Fortunately, machines can still be manually configured to use a WSUS server by modifying the registry: http://technet2.microsoft.com/windowsserver/en/library/75ee9da8-0ffd-400c-b722-aeafdb68ceb31033.mspx?mfr=true. Once the needed registry settings are applied, the Automatic updates service needs to be restarted.</p>
<p><strong>The Building Blocks</strong><br />
For this task, writing a small batch file is quicker (but also dirtier) than writing an actual program.  We can use commands that are readily available in DOS to make changes to the registry. The REG ADD command makes adding/updating registry entries easily scriptable.</p>
<blockquote style="border-left: 2px solid #000000; padding-left: 5px"><p> NET STOP wuauserv</p>
<p>REG ADD HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v ElevateNonAdmins /t REG_DWORD /d 0 /f</p>
<p>REG ADD HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v TargetGroupEnabled /t REG_DWORD /d 0 /f</p>
<p>REG ADD HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUServer /t REG_SZ /d http://windowsupdate.aset.psu.edu /f</p>
<p>REG ADD HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUStatusServer /t REG_SZ /d http://windowsupdate.aset.psu.edu /f</p>
<p>REG ADD HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer /t REG_DWORD /d 1 /f</p>
<p>NET START wuauserv</p></blockquote>
<p>The last REG ADD command adds (or updates) the UseWUServer value. When this value is set to 1, the Automatic Updates service should use WSUS servers (if they have been specified). When set to 0, Microsoft Windows Update servers should be used. Finally, for the configuration to take effect, the Automatic Updates service (wuauserv) needs to be restarted using the NET STOP and NET START commands as shown above. The above code would be great if we wanted to always use the Penn State WSUS server. However, we want to use microsoft&#8217;s servers when we aren&#8217;t on campus. Also, Penn State may decide to block internet traffic from using the WSUS server in the future. This could potentially lead to a lot of missed updates. Alright, this will makes it a bit more complicated.</p>
<p><strong>A Bit More Thorough</strong><br />
The above commands are probably the easiest way to do a one-time configuration of WSUS. However, if we want a &#8220;set it and forget it&#8221; approach that uses Windows Update when off-campus, things need to be a bit more advanced. The plan: write a batch file will “install” a scheduled task that checks to see if we’re in or out of the Penn State network. This one batch file should take care of installation and configuration:<br />
<em><strong>Note: to use the code below, copy it and then paste it into blank notepad file. Save the file with a .BAT extension (ex: PSUWSUS.BAT). Then, browse to the file and double click it. </strong></em></p>
<blockquote style="border-left: 2px solid #000000; padding-left: 5px"><p>@ECHO OFF</p>
<p>ECHO WSUS Config Check Installer<br />
ECHO Creating batch file in C:\WSUSCHECK.BAT<br />
ECHO ping udrive.win.psu.edu &gt; C:\WSUSCHECK.BAT<br />
ECHO IF %%ERRORLEVEL%% NEQ 0 GOTO OFFCAMPUS &gt;&gt; C:\WSUSCHECK.BAT<br />
ECHO IF %%ERRORLEVEL%% EQU 0 GOTO ONCAMPUS &gt;&gt; C:\WSUSCHECK.BAT<br />
ECHO. &gt;&gt; C:\WSUSCHECK.BAT<br />
ECHO :OFFCAMPUS &gt;&gt; C:\WSUSCHECK.BAT<br />
ECHO NET STOP wuauserv &gt;&gt; C:\WSUSCHECK.BAT<br />
ECHO REG ADD HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer /t REG_DWORD /d 0 /f &gt;&gt; C:\WSUSCHECK.BAT<br />
ECHO NET START wuauserv &gt;&gt; C:\WSUSCHECK.BAT<br />
ECHO GOTO END &gt;&gt; C:\WSUSCHECK.BAT<br />
ECHO. &gt;&gt; C:\WSUSCHECK.BAT<br />
ECHO :ONCAMPUS &gt;&gt; C:\WSUSCHECK.BAT<br />
ECHO NET STOP wuauserv &gt;&gt; C:\WSUSCHECK.BAT<br />
ECHO REG ADD HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer /t REG_DWORD /d 1 /f &gt;&gt; C:\WSUSCHECK.BAT<br />
ECHO NET START wuauserv &gt;&gt; C:\WSUSCHECK.BAT<br />
ECHO GOTO END &gt;&gt; C:\WSUSCHECK.BAT</p>
<p>ECHO :END &gt;&gt; C:\WSUSCHECK.BAT</p>
<p>ECHO Creating a Scheduled Task&#8230;<br />
schtasks /create /tn WSUSCheck /tr c:\WSUSCHECK.BAT /sc hourly /mo 8 /ru SYSTEM</p>
<p>ECHO Applying WSUS Settings&#8230;</p>
<p>NET STOP wuauserv</p>
<p>REG ADD HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v ElevateNonAdmins /t REG_DWORD /d 0 /f</p>
<p>REG ADD HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v TargetGroupEnabled /t REG_DWORD /d 0 /f</p>
<p>REG ADD HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUServer /t REG_SZ /d http://windowsupdate.aset.psu.edu /f</p>
<p>REG ADD HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUStatusServer /t REG_SZ /d http://windowsupdate.aset.psu.edu /f</p>
<p>REG ADD HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer /t REG_DWORD /d 1 /f</p>
<p>NET START wuauserv</p>
<p>ECHO Installation Complete. Please look through the script for errors and report them if necessary.<br />
pause</p></blockquote>
<p>To summarize, this script outputs text to C:\WSUSCHECK.BAT. This text, when executed, is what actually checks to see if the machine is on campus or off campus. The check is done by pinging udrive.win.psu.edu. This is a server uses a private, non-routable IP address that should only respond to ping when the machine is connected to the Penn State network. The script adds the Penn State WSUS server to the registry and creates scheduled task that runs C:\WSUSCHECK.BAT every 8 hours.</p>
<p><strong>A Few Notes</strong><br />
There is one caveat to this batch file: If for some reason the &#8216;udrive.win.psu.edu&#8217; stops responding to ping requests, the batch file will always think that it is off the Penn State network. This is not the perfect solution but instead a working example of how one might approach the problem. If you have a better method, please post it in the comments. Ping was just the first thing to come to mind.</p>
<p>Another thing I don’t like about this batch file is that it restarts the Automatic Update service every 8 hours regardless of whether or not settings are modified. I debated trying to make the batch file smarter by checking if the UseWUServer is actually being set to a different value and then restarting the service if it is. However, I couldn’t find any reason why restarting the Automatic Update service periodically would be a bad thing. Feel free to convince me otherwise in case I missed something.</p>
]]></content:encoded>
			<wfw:commentRss>http://iboyd.net/index.php/2007/11/26/save-bandwidth-use-penn-state%e2%80%99s-wsus-server-for-windows-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding WebAccess to your club website</title>
		<link>http://iboyd.net/index.php/2007/08/11/adding-webaccess-to-your-club-website/</link>
		<comments>http://iboyd.net/index.php/2007/08/11/adding-webaccess-to-your-club-website/#comments</comments>
		<pubDate>Sat, 11 Aug 2007 21:07:15 +0000</pubDate>
		<dc:creator>Boyd</dc:creator>
				<category><![CDATA[ITS]]></category>

		<guid isPermaLink="false">http://server2.fusednetwork.com/~boyd/?p=15</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>Using these guidlines you can easily add WebAccess authentication to your club web space. This document will guide you through the process and reasoning behind using WebAccess authentication.</p>
<p><span id="more-15"></span><br />
<strong><br />
<h2>What is WebAccess?</h2>
<p> (via https://webaccess.psu.edu/help.html)</strong><br />
<em>“The WebAccess system, which uses the University of Michigan&#8217;s Cosign technology (a development effort that is funded by the National Science Foundation&#8217;s National Middleware Initiative-Enterprise and Desktop Technologies program), provides an environment in which users authenticate/login once with their respective Access Account userids and password to a central server in order to access multiple services protected with WebAccess without needing to re-authenticate. For example, a user can authenticate via Penn State WebAccess and then access services such as the Penn State Portal, Penn State WebMail, and a variety of other WebAccess-enabled, without needing to authenticate again to those services.”</em><br />
<strong><br />
<h2>In a Nutshell:</h2>
<p> </strong><br />
WebAccess allows those with Penn State Access Accounts (or Friends of Penn State accounts) to use the same username and password for multiple websites. This document will help explain how you can incorporate WebAccess into your websites <strong>to help protect content that you want or need to limit access to.</strong><br />
<strong><br />
<h2>Reasons for using WebAccess</h2>
<p></strong><br />
If you need a way to protect content on your club website you should consider using Penn State WebAccess for some of the following reasons:<br />
•	<strong>Secure</strong> – WebAccess is a secure way for your users to authenticate and access content on your club site. Additionally, passwords are sent over the internet in encrypted form using <a href="http://en.wikipedia.org/wiki/Transport_Layer_Security ">Secure Sockets Layer (SSL)</a>.<br />
•	<strong>Liability</strong> – Storing user credentials could potentially make you liable if your club website were compromised. With WebAccess, user credentials are never stored in your club web space and no one (including yourself) has access to those credentials.<br />
•	<strong>Easy</strong> – Using WebAccess for authentication is usually much easier than trying to implement a secure login program for you club website on your own.<br />
•	<strong>Improved User Experience</strong> – WebAccess is part of Penn State’s Single Sign-on Solution (SSO) which means users don’t need to register or log in with a different username and password before they gain access to protected content. As long as the user has a Penn State (or Friends of Penn State) access account they will be able to log in.<br />
<strong><br />
<h2>Reasons for NOT using WebAccess</h2>
<p></strong><br />
Of course, WebAccess shouldn’t be used for everything. Here are some examples:<br />
•	<strong>Public Information</strong> – If there is information on your club website that you want the general public to see, you may not want to use WebAccess since guests as well as search engines will not be able to access it. However, if there is certain information on your site that you would like to restrict access to, you may want to try keeping it in a separate folder that you can apply WebAccess authentication to. Deciding what should be public and private content is an important consideration when designing your club site.<br />
•	<strong>Integration</strong> – Integrating WebAccess into an existing web script (such as a discussion forum) can sometimes be difficult and may require programming knowledge. If you’re looking to replace an application’s preexisting registration/login mechanism, prepare to dive into some code. However, if you just need to restrict access to a specific folder on your website, WebAccess is still the way to go and relatively easy.<br />
<strong><br />
<h2>Requirements</h2>
<p></strong><br />
Currently, the only way to enable WebAccess is through php.scripts.psu.edu. Therefore, you must forward all traffic to this server. If you’re already writing your site in PHP, you can skip this step since files ending in ‘.php’ are automatically redirected to the php.scripts server.<br />
<strong><br />
<h2>Installation Steps</h2>
<p></strong><br />
1.	Put all of the content you want to protect in a subfolder on your website.<br />
2.	Send an e-mail to dbadmin@aset.psu.edu with the url to the folder that you want webaccess enabled on.<br />
3.	You’ll receive a reply with the new URL to that folder. You’ll probably also be given the option to either continue to allow access to the folder from the old URL (unauthenticated) or disable that access. In most cases, you want to disable this access otherwise it sort of defeats the purpose.<br />
<strong><br />
<h2>Limiting Access to Certain Penn State Users</h2>
<p></strong><br />
In many cases, you may want to grant access to private content to only a few Penn State users. This can be done quickly and easily using .htaccess.  In the folder that’s protected by WebAccess, create a new file named .htaccess. Open .htaccess and paste the following:</p>
<blockquote><p>AuthType Cosign<br />
require user abc000 def548 ghi984</p></blockquote>
<p>Replace the fake usernames in the second line with the names of the users that you want to grant access. You may add as many users as needed to that line.</p>
]]></content:encoded>
			<wfw:commentRss>http://iboyd.net/index.php/2007/08/11/adding-webaccess-to-your-club-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
