<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!--Generated by Squarespace Site Server v5.11.5 (http://www.squarespace.com/) on Mon, 11 Jul 2011 03:47:07 GMT--><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"><title>Project84.net</title><subtitle>Blog</subtitle><id>http://blog.project84.net/blog/</id><link rel="alternate" type="application/xhtml+xml" href="http://blog.project84.net/blog/" /><updated>2011-07-11T03:35:18Z</updated><generator uri="http://www.squarespace.com/" version="Squarespace Site Server v5.11.5 (http://www.squarespace.com/)">Squarespace</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Project84" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="project84" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>-27.496132</geo:lat><geo:long>152.966359</geo:long><entry><title>Policy Based QoS on Windows 7 in a workgroup</title><category term="Networking" /><id>http://blog.project84.net/blog/2011/7/11/policy-based-qos-on-windows-7-in-a-workgroup.html</id><link rel="alternate" type="text/html" href="http://blog.project84.net/blog/2011/7/11/policy-based-qos-on-windows-7-in-a-workgroup.html" /><author><name>Jacob</name></author><published>2011-07-11T03:29:36Z</published><updated>2011-07-11T03:29:36Z</updated><content type="html" xml:lang="en-AU">&lt;p&gt;If you happen to be using Policy Based QoS on a Windows 7 machine in a workgroup you might find that it doesn't work. Turns out you need to add the following registry key to make it work. File this one under the "Only wasted hours" category.&lt;/p&gt;

&lt;pre class="brush: text; toolbar: false; auto-links: false;"&gt;
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\QoS]&lt;br /&gt;"Do not use NLA"="1"
&lt;/pre&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Project84?a=1GhMssOKySQ:5r0dxIOhqQM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Project84?a=1GhMssOKySQ:5r0dxIOhqQM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?i=1GhMssOKySQ:5r0dxIOhqQM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content></entry><entry><title>Lync 2010 Visio Resources</title><category term="Lync 2010" /><category term="Lync 2010" /><category term="Visio" /><id>http://blog.project84.net/blog/2011/6/1/lync-2010-visio-resources.html</id><link rel="alternate" type="text/html" href="http://blog.project84.net/blog/2011/6/1/lync-2010-visio-resources.html" /><author><name>Jacob</name></author><published>2011-06-01T00:52:47Z</published><updated>2011-06-01T00:52:47Z</updated><content type="html" xml:lang="en-AU">&lt;p&gt;Recently I've found myself doing a lot more work with Microsoft Lync 2010.&amp;nbsp;Microsoft supply some really good guidance on Lync topologies by way of reference architctures,&amp;nbsp;which are available on &lt;a class="offsite-link-inline" title="http://technet.microsoft.com/en-us/library/gg412898.aspx" href="http://technet.microsoft.com/en-us/library/gg412898.aspx" target="_blank"&gt;TechNet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The diagrams included as part of the reference architectures are very impressive. Have a look &lt;a class="offsite-link-inline" title="http://technet.microsoft.com/en-us/library/gg399001.aspx" href="http://technet.microsoft.com/en-us/library/gg399001.aspx" target="_blank"&gt;here&lt;/a&gt;. Happily you can download these architecture diagrams in Visio. When doing a Lync design in Visio the follow are a must have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="offsite-link-inline" title="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=5E951393-3838-42B3-AB1E-8A37D5D59ED5&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=5E951393-3838-42B3-AB1E-8A37D5D59ED5&amp;amp;displaylang=en" target="_blank"&gt;Reference Architecture Diagrams&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="offsite-link-inline" title="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=65b5a396-2c87-445d-be23-d324727d19cb&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=65b5a396-2c87-445d-be23-d324727d19cb&amp;amp;displaylang=en" target="_blank"&gt;Lync 2010 Visio Stencil&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Project84?a=kRVlbt-zvAI:RxTmwFnyb18:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Project84?a=kRVlbt-zvAI:RxTmwFnyb18:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?i=kRVlbt-zvAI:RxTmwFnyb18:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content></entry><entry><title>Duplicate Computer Records In SCCM</title><id>http://blog.project84.net/blog/2010/11/19/duplicate-computer-records-in-sccm.html</id><link rel="alternate" type="text/html" href="http://blog.project84.net/blog/2010/11/19/duplicate-computer-records-in-sccm.html" /><author><name>Jacob</name></author><published>2010-11-19T04:48:17Z</published><updated>2010-11-19T04:48:17Z</updated><content type="html" xml:lang="en-AU">&lt;p&gt;Have you ever wondered why when rebuilding a machine in SCCM you end up with another computer record? Quite often I am ask why this is the case and if it can be fixed. Now it turns out that the answer isn’t completely straight forward so I endeavour to explain here what is happening and how to get better control of duplicate computer records.&lt;/p&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h2&gt;&lt;font size="4"&gt;Client Installation and Discovery&lt;/font&gt;&lt;/h2&gt;  &lt;p&gt;For things to work in SCCM and SCCM GUID is generated by the client so that the computer can be uniquely identified by SCCM. When a client is installed (actually each time ccmexec.exe starts) 3 values are check to determine identification information. These 3 values are:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;SMBIOS &lt;/li&gt;    &lt;li&gt;Machine SID &lt;/li&gt;    &lt;li&gt;Hardware ID – HardwareID is made up of 10 hardware attributes of a machine that are hashed and combined together. See &lt;a title="http://support.microsoft.com/kb/837374" href="http://support.microsoft.com/kb/837374"&gt;http://support.microsoft.com/kb/837374&lt;/a&gt; for more information about these hardware attributes. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;If any of these values change or if the client does not yet have a GUID a new SCCM GUID is generated. You can see this process in the ClientIDManagerStartup.log. &lt;/p&gt;  &lt;p&gt;Once an SCCM GUID is generated it is sent, along with other information, as part of a DDR(Data Discovery Record) to the SCCM server. The SCCM server uses this information to determine if a new record should be created.&lt;/p&gt;  &lt;h2&gt;&lt;font size="4"&gt;Conflicting Records&lt;/font&gt;&lt;/h2&gt;  &lt;p&gt;When a machine is rebuilt a new SCCM GUID is created by the client but the HardwareID is the same. When this information is sent to the SCCM server the server identifies that en existing record with a matching HardwareID already exists. As a result a new record is created and the existing record is set to obsolete. Information about this process can be found on the new resource record under the properties PreviousSMSUUID and SMSUUIDChangeDate. &lt;/p&gt;  &lt;p&gt;The default behaviour for SCCM is to create a new resource record when conflicts are detected. This behaviour can be handled manually allowing an administrator to merge the records rather than creating a new one. Information on this process is available at &lt;a title="http://technet.microsoft.com/en-us/library/bb693963.aspx" href="http://technet.microsoft.com/en-us/library/bb693963.aspx"&gt;http://technet.microsoft.com/en-us/library/bb693963.aspx&lt;/a&gt;. &lt;/p&gt;  &lt;h2&gt;&lt;font size="4"&gt;An Example&lt;/font&gt;&lt;/h2&gt;  &lt;p&gt;I have a freshly built Windows 7 machine deployed by an MDT Task Sequence in SCCM. I’ve run the following Powershell command to get all the attributes of the machine.&lt;/p&gt;  &lt;pre class="brush: powershell; toolbar: false; auto-links: false;"&gt;Get-WmiObject -Computer SCCMServer -Namespace root\sms\Site_000 -Query &amp;quot;SELECT * FROM SMS_R_System WHERE NetbiosName='VM-JBH-MOE01'&amp;quot;&lt;/pre&gt;

&lt;p&gt;The important attributes: &lt;/p&gt;



&lt;pre class="brush: text; toolbar: false; auto-links: false;"&gt;HardwareID: 2:68FB352A952243E79D938BE6EBA1B293DFA6E6E5 
SMSUniqueIdentifier: GUID:9DBFD114-9B37-48A0-9747-EB15FA277DFE&lt;/pre&gt;

&lt;p&gt;After PXE booting the machine and running the Task Sequence again I see a new record with the following: 
  &lt;br /&gt;&lt;/p&gt;

&lt;pre class="brush: text; toolbar: false; auto-links: false;"&gt;HardwareID: 2:68FB352A952243E79D938BE6EBA1B293DFA6E6E5
SMSUniqueIdentifier: GUID:467FBD75-6341-4D9C-8E7E-1FD227A081B0
PreviousSMSUUID: GUID:9DBFD114-9B37-48A0-9747-EB15FA277DFE
SMSUUIDChangeDate: 20101119042938.000000+***&lt;/pre&gt;

&lt;p&gt;Notice the PreviousSMSUUID matches the SMSUniqueIdentifier above.&lt;/p&gt;

&lt;p&gt;Also of note is this line in Ddm.log on the site server: 
  &lt;br /&gt;&lt;/p&gt;

&lt;pre class="brush: text; toolbar: false; auto-links: false;"&gt;1 records with Hardware ID 2:68FB352A952243E79D938BE6EBA1B293DFA6E6E5 were obsoleted by VM-JBH-MOE01.&lt;/pre&gt;

&lt;h2&gt;&lt;font size="4"&gt;A Final Note&lt;/font&gt;&lt;/h2&gt;

&lt;p&gt;So why doesn’t this happen all the time? Well SCCM does try and match up there records if it can and when rebuilding using a “Refresh” scenarios the SCCM GUID is saved and reused. In a later post I’ll show you how to reuse the SCCM GUID when using MDT in SCCM. 
  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;See the following for some more information:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a title="http://technet.microsoft.com/en-us/library/bb693963.aspx" href="http://technet.microsoft.com/en-us/library/bb693963.aspx"&gt;http://technet.microsoft.com/en-us/library/bb693963.aspx&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a title="http://kristianfthomsen.spaces.live.com/blog/cns!59A30145A64F8A9F!156.entry" href="http://kristianfthomsen.spaces.live.com/blog/cns!59A30145A64F8A9F!156.entry"&gt;http://kristianfthomsen.spaces.live.com/blog/cns!59A30145A64F8A9F!156.entry&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a title="http://elmunjo.blogspot.com/2010/01/managing-conflicting-records-and.html" href="http://elmunjo.blogspot.com/2010/01/managing-conflicting-records-and.html"&gt;http://elmunjo.blogspot.com/2010/01/managing-conflicting-records-and.html&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a title="http://support.microsoft.com/kb/837374" href="http://support.microsoft.com/kb/837374"&gt;http://support.microsoft.com/kb/837374&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Project84?a=Y7foPkwK6JE:9SDAjEpjqmU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Project84?a=Y7foPkwK6JE:9SDAjEpjqmU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?i=Y7foPkwK6JE:9SDAjEpjqmU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content></entry><entry><title>Output SCCM Task Sequence Variables</title><category term="SCCM" /><id>http://blog.project84.net/blog/2010/11/19/output-sccm-task-sequence-variables.html</id><link rel="alternate" type="text/html" href="http://blog.project84.net/blog/2010/11/19/output-sccm-task-sequence-variables.html" /><author><name>Jacob</name></author><published>2010-11-19T02:23:49Z</published><updated>2010-11-19T02:23:49Z</updated><content type="html" xml:lang="en-AU">&lt;p&gt;When debugging Task Sequences it is often crucial to know the exact value of Configuration Manager&amp;rsquo;s built-in task sequence variables. There variables are available during the execution of a task sequence using the Microsoft.SMS.TSEnvironment COM object. There is a great post on the &lt;a href="http://blogs.technet.com/b/deploymentguys/archive/2008/08/29/outputting-all-the-configuration-manager-task-sequence-variables.aspx"&gt;Deployment Guys site&lt;/a&gt; that explains how to use the above COM object and provides a script to use for debugging during a Task Sequence.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Project84?a=ZN0SgDLeYGA:eRwAnaOeFVk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Project84?a=ZN0SgDLeYGA:eRwAnaOeFVk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?i=ZN0SgDLeYGA:eRwAnaOeFVk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content></entry><entry><title>Transparent Powershell Window</title><category term="SCCM" /><id>http://blog.project84.net/blog/2010/10/11/transparent-powershell-window.html</id><link rel="alternate" type="text/html" href="http://blog.project84.net/blog/2010/10/11/transparent-powershell-window.html" /><author><name>Jacob</name></author><published>2010-10-11T03:48:04Z</published><updated>2010-10-11T03:48:04Z</updated><content type="html" xml:lang="en-AU">&lt;p&gt;Want to set your Powershell Window to be a little see through?? Try this:&lt;/p&gt;
&lt;p&gt;&lt;pre class="brush: powershell; toolbar: false; auto-links: false;"&gt;## Set-WindowTransparent.ps1
## 
##
Add-Type -Type @"
using System;
using System.Runtime.InteropServices;
using System.Text;

namespace TE
{
  public static class Win32Methods
  {
  
    internal const int GWL_EXSTYLE = -20;
    internal const int WS_EX_LAYERED = 0x80000;
    internal const int LWA_ALPHA = 0x2;
    internal const int LWA_COLORKEY = 0x1;
     
    [DllImport("user32.dll")]
    internal static extern bool SetLayeredWindowAttributes(IntPtr hwnd, uint crKey, byte bAlpha, uint dwFlags);
    
    [DllImport("user32.dll")]
    internal static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
    
    [DllImport("user32.dll")]
    internal static extern int GetWindowLong(IntPtr hWnd, int nIndex);
    
    public static void SetWindowTransparent(IntPtr hWnd)
    {
      SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) ^ WS_EX_LAYERED);
      SetLayeredWindowAttributes(hWnd, 0, 230, LWA_ALPHA);
    }
    
   }
}

"@

$hwnd = (Get-Process -Id $pid).MainWindowHandle
[TE.Win32Methods]::SetWindowTransparent($hwnd)&lt;/pre&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Project84?a=_fSqMpv9S7c:cf4wjPYJhwM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Project84?a=_fSqMpv9S7c:cf4wjPYJhwM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?i=_fSqMpv9S7c:cf4wjPYJhwM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content></entry><entry><title>What Port am I plugged into??</title><category term="Networking" /><id>http://blog.project84.net/blog/2010/9/28/what-port-am-i-plugged-into.html</id><link rel="alternate" type="text/html" href="http://blog.project84.net/blog/2010/9/28/what-port-am-i-plugged-into.html" /><author><name>Jacob</name></author><published>2010-09-28T06:08:17Z</published><updated>2010-09-28T06:08:17Z</updated><content type="html" xml:lang="en-AU">&lt;p&gt;Something that&amp;rsquo;s always handy to know is what switch port you&amp;rsquo;re plugged into. What&amp;rsquo;s even better is being able to find out without getting out of your chair.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re on a nix based system with tcpdump then just turn the following:&lt;br/&gt;
&lt;pre class="brush: text; toolbar: false; auto-links: false;"&gt;tcpdump -nn -v -i eth0 -s 1500 -c 1 'ether[20:2] == 0x2000'&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;On Windows you&amp;rsquo;ll need to grab WinDump and WinPCap from &lt;a href="http://www.winpcap.org"&gt;http://www.winpcap.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Once installed run&lt;br/&gt;
&lt;pre class="brush: text; toolbar: false; auto-links: false;"&gt;windump -D&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;To list the interfaces on your system. Then just run the same as above but with windump:&lt;br/&gt;
&lt;pre class="brush: text; toolbar: false; auto-links: false;"&gt;windump -nn -v -i eth0 -s 1500 -c 1 'ether[20:2] == 0x2000'&lt;/pre&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Project84?a=yjJryVHf53c:0o6mkEIv4sg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Project84?a=yjJryVHf53c:0o6mkEIv4sg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?i=yjJryVHf53c:0o6mkEIv4sg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content></entry><entry><title>7Zip with Powershell</title><id>http://blog.project84.net/blog/2010/9/27/7zip-with-powershell.html</id><link rel="alternate" type="text/html" href="http://blog.project84.net/blog/2010/9/27/7zip-with-powershell.html" /><author><name>Jacob</name></author><published>2010-09-27T03:13:35Z</published><updated>2010-09-27T03:13:35Z</updated><content type="html" xml:lang="en-AU">&lt;p&gt;&lt;a href="http://www.7-zip.org/"&gt;7-Zip&lt;/a&gt; is something I use on a daily basis not only for creating or extracting various archive formats but for extracting ISOs. I love this feature of 7-Zip.&lt;/p&gt;
&lt;p&gt;Something I've wanted to do for a while was figure out if it was possible to use 7-Zip from Powershell and indeed it is.&lt;/p&gt;
&lt;p&gt;There is a C# wrapper for 7-Zip available at &lt;a href="http://sevenzipsharp.codeplex.com/"&gt;http://sevenzipsharp.codeplex.com/&lt;/a&gt;&amp;nbsp;that makes this all a lot easier. You'll need to download the SevenZipSharp.dll as well as the native 7-Zip dlls (they're in the Other Available Downloads section).&lt;/p&gt;
&lt;p&gt;I've extracted SevenZipSharp.dll, 7z.dll and 7z64.dll to a directory called SevenZipSharp.&lt;/p&gt;
&lt;p&gt;First up you'll need to load the Assembly:&lt;br /&gt;
&lt;pre class="brush: powershell; toolbar: false; auto-links: false;"&gt;Add-Type -Path "D:\Tools\Assemblies\SevenZipSharp\SevenZipSharp.dll"&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;Then simply create an extractor and extract the archive, simply:&lt;br /&gt;
&lt;pre class="brush: powershell; toolbar: false; auto-links: false;"&gt;
$extractor = New-Object SevenZip.SevenZipExtractor('D:\Data\BigArchive.zip')
$extractor.ExtractArchive('D:\tmp')&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note for x64 users&lt;br /&gt;&lt;/strong&gt;When I first tried this I got an error when attempting to create an SevenZip.SevenZipExtractor object: New-Object : Exception calling ".ctor" with "1" argument(s): "Can not load 7-zip library or internal COM error! Message: failed to load library."&lt;/p&gt;
&lt;p&gt;This is because the SevenZipSharp.dll looks for 7z.dll in the same directory and the 7z.dll in that directory is the x86 Dll. You have two options, rename 7z64.dll to 7z.dll or run the following after loading the assembly:&lt;br /&gt;

&lt;pre class="brush: powershell; toolbar: false; auto-links: false;"&gt;


[SevenZip.SevenZipExtractor]::SetLibraryPath('D:\Tools\Assemblies\SevenZipSharp\7z64.dll')


&lt;/pre&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Project84?a=QjzgRcrhj78:o203if_HLcs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Project84?a=QjzgRcrhj78:o203if_HLcs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?i=QjzgRcrhj78:o203if_HLcs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content></entry><entry><title>FTP 7 for IIS 7</title><category term="Web" /><id>http://blog.project84.net/blog/2010/9/8/ftp-7-for-iis-7.html</id><link rel="alternate" type="text/html" href="http://blog.project84.net/blog/2010/9/8/ftp-7-for-iis-7.html" /><author><name>Jacob</name></author><published>2010-09-08T00:38:21Z</published><updated>2010-09-08T00:38:21Z</updated><content type="html" xml:lang="en-AU">&lt;p&gt;When trying to add an FTP component to an IIS 7 website I got lost looking for how to add a new FTP site. Turns out there is new FTP service available as an extension to IIS 7 that boasts enhanced functionality and several new features. Some summary points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Built as an extension to IIS 7 and integrates into the IIS Manager.&lt;/li&gt;
&lt;li&gt;Supports FTP over SSL as well as UTF8 and IPv6.&lt;/li&gt;
&lt;li&gt;Adds new membership based authentication system.&lt;/li&gt;
&lt;li&gt;Allows for users to enable an existing website for FTP without the need to create a separate FTP site.&lt;/li&gt;
&lt;li&gt;Virtual hostname support (Host headers but for ftp).&lt;/li&gt;
&lt;li&gt;And much, much more.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Head on over to &lt;a title="http://www.iis.net/download/FTP" href="http://www.iis.net/download/FTP"&gt;http://www.iis.net/download/FTP&lt;/a&gt; for a deeper look. Or download using the &lt;a href="http://go.microsoft.com/?linkid=9655652"&gt;Web Platform Installer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have the Windows Firewall enabled (and you should) it is worth looking at &lt;a href="http://learn.iis.net/page.aspx/309/configuring-ftp-firewall-settings/"&gt;Configuring FTP Firewall Settings&lt;/a&gt; to ensure you have the correct firewall settings.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Project84?a=YpMrBfdssUg:Y2O0MM_Q4I8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Project84?a=YpMrBfdssUg:Y2O0MM_Q4I8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?i=YpMrBfdssUg:Y2O0MM_Q4I8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content></entry><entry><title>Editing Powershell in Visual Studio</title><category term="Powershell" /><id>http://blog.project84.net/blog/2010/8/30/editing-powershell-in-visual-studio.html</id><link rel="alternate" type="text/html" href="http://blog.project84.net/blog/2010/8/30/editing-powershell-in-visual-studio.html" /><author><name>Jacob</name></author><published>2010-08-30T00:22:50Z</published><updated>2010-08-30T00:22:50Z</updated><content type="html" xml:lang="en-AU">&lt;p&gt;Looking for Powershell support in Visual Studio 2010?? Check out &lt;a href="http://powerguivsx.codeplex.com/"&gt;PowerGUI VSX&lt;/a&gt;! Essentially you get the great features of PowerGUI inside the Visual Studio IDE. Well worth downloading.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Project84?a=Un-dGfBJVSU:H_DGIGVw7mY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Project84?a=Un-dGfBJVSU:H_DGIGVw7mY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?i=Un-dGfBJVSU:H_DGIGVw7mY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content></entry><entry><title>Powershell Prompt</title><id>http://blog.project84.net/blog/2010/8/30/powershell-prompt.html</id><link rel="alternate" type="text/html" href="http://blog.project84.net/blog/2010/8/30/powershell-prompt.html" /><author><name>Jacob</name></author><published>2010-08-30T00:09:21Z</published><updated>2010-08-30T00:09:21Z</updated><content type="html" xml:lang="en-AU">&lt;p&gt;Customising my Powershell prompt was something that I never really thought I'd do. After all surely the out of the box prompt tells me where I am and making a new one seems like a bit of work. Well actually it's not and I kept getting my x86 and x68, admin and non-admin prompts confused. So I altered my prompt to inlucde this information.&lt;/p&gt;

&lt;p&gt;Firstly, to change your prompt you just need to write your own prompt function as this is what generates the prompt each time the prompt is printed to the screen. To see the default promtp try the following:&lt;br/&gt;
&lt;pre class="brush: powershell; toolbar: false; auto-links: false;"&gt;(Get-Item Function:\prompt).Definition&lt;/pre&gt;&lt;br/&gt;
You'll get back something like this:&lt;br/&gt;
&lt;pre class="brush: powershell; toolbar: false; auto-links: false;"&gt;$(if (test-path variable:/PSDebugContext) { '[DBG]: ' } else { '' }) + 'PS ' +
$(Get-Location) + $(if ($nestedpromptlevel -ge 1) { '&gt;&gt;' }) + '&gt; '&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;So the first thing that I wanted to change was adding [Admin] in red to the start of the prompt if I'm running as an administrator. I have a global variable in my profile called $IsAdmin that tells me if I'm an admin or not. So the code below uses write-host to output '[Admin]' in red if I'm an Administrator.
&lt;pre class="brush: powershell; toolbar: false; auto-links: false;"&gt;
	if( ([System.Environment]::OSVersion.Version.Major -gt 5) -and ($IsAdmin) )
   {
			write-host '[Admin]' -NoNewLine -Fore 'red'
   }
&lt;/pre&gt;
&lt;/P&gt;
&lt;p&gt;Next, I wanted to show if I was running x86 or x64. Which simply involved creating a string with the right architecture type and adding that to the prompt.
&lt;pre class="brush: powershell; toolbar: false; auto-links: false;"&gt;
	$bitness = ''
  if ([IntPtr]::Size -eq 8) {
		$bitness = '(x64)'
	}
	elseif ($Pscx:IsWow64Process) {
		$bitness = '(x86)'
	}
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;I added a few other bits but here's the end result:
&lt;pre class="brush: powershell; toolbar: false; auto-links: false;"&gt;## Set My Prompt 
## . Set-Prompt.ps1 in profile.
function prompt {

	## If this is Vista or higher and we're an admin change the prompt
	$adminPrompt=''
	if( ([System.Environment]::OSVersion.Version.Major -gt 5) -and ($IsAdmin) )
   {
			#$adminPrompt='[Admin]'
			write-host '[Admin]' -NoNewLine -Fore 'red'
   }
	## Get the commmand ID for Get-History/Invoke-History
	$nextCommandId = (Get-History -count 1).Id + 1

	#was there an error in the last thing we did??
	$err = !$?
	
	#Totally stole this from somewhere, finds the architecture
	$bitness = ''
  if ([IntPtr]::Size -eq 8) {
		$bitness = '(x64)'
	}
	elseif ($Pscx:IsWow64Process) {
		$bitness = '(x86)'
	} 
	
	if($err) { $fg = "Red" } else { $fg = "Cyan" }
	write-host "PS$bitness [$nextCommandId]$(Get-Location)&gt;" -NoNewLine -Fore $fg

	return " "
}&lt;/pre&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Project84?a=_PzS1GUU3bw:_1-3ZfoZAPQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Project84?a=_PzS1GUU3bw:_1-3ZfoZAPQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Project84?i=_PzS1GUU3bw:_1-3ZfoZAPQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content></entry></feed>

