Sunday, April 20, 2008

Last week I was configuring a lab server with Hyper-V RC0 when I came across this error after creating a Virtual Switch with VLAN ID enabled:

Switch set up failed, name='3742d220-e73d-4ae5-bf0c-429ca168dc41', external port='d02dcb9e-76d4-496a-9c17-ea808e5ce125', internal port='375e5f91-b1fb-415d-8717-cd3ea36c9753', NIC='{165929BF-5BA2-4887-BC54-1D52C1A6BE61}', internal name='07b53c30-5d56-4a2d-a542-146773d39299', internal friendly name='Virtual Network Connection (VLAN Trunk)', error=2147749896, mof code=0.

Located in the Hyper-V application log this error resulted in a failed switch configuration and without a supported way to remove Virtual Switches (doesn’t seem right does it?) prevents you from creating any other network using that interface.


Turns out that this error occurs if you are creating a new network (with VLAN ID enabled) on a physical interface that doesn’t have a default VLAN ID specified, see example image below.


Hyper-V Networking
Hyper-V provides many networking improvements and the Virtual PC Guy’s has put together a great blog post explaining the changes, worth while reading for those making the move from Virtual Server.
Understanding Networking with Hyper-V

Sunday, April 20, 2008 7:26:05 PM (E. Australia Standard Time, UTC+10:00)
 Sunday, February 17, 2008
I love my media center and for some time now it has been playing/pausing/recording all my media without major issue (especially after moving too Vista Ultimate). Now I did say major issue! Since day dot I have had one problem; 1+ second delay on key presses with my Terratec remote control.

The explanation is simple; the Terratec remote has programmed keys, and it requires that you install a hardware application to capture the incoming signal, and then process them as actions in whatever application you happen to be using, making it one of the most versatile remotes available. It’s just unfortunate that the user experience and general design are so crap, just look at it, what were they thinking?

Until recently there haven’t been many other options just a lot of promises (and more promises) that there will be a new remote available for Vista MCE although nothing ever appeared on the Microsoft Hardware site. :(

Well here they are... turns out that Microsoft has left it to hardware manufactures to take up the fight and conform to the new IR RC6 and Windows Logo Program.

    

Now all that is left is deciding which one to buy :)

Sunday, February 17, 2008 12:20:45 AM (E. Australia Standard Time, UTC+10:00)
 Tuesday, February 05, 2008

 

Today Microsoft announced the release of Windows Server 2008 to the public, and for the sake of blogging and adding another new tag to my collection I decided to tell you all!

For those with TechNet or MSDN subscriptions the 64-bit edition is now available for download, the 32-bit edition and WAIK will be available in the next few days.

Happy downloading

Tuesday, February 05, 2008 9:22:51 AM (E. Australia Standard Time, UTC+10:00)
 Friday, February 01, 2008

Jeffrey Snover has posted a fantastic PowerShell Scripting presentation he did late last year on the PowerShell Team Blog.

The session is aimed at people who have had experience with PowerShell and is pitched as a deep dive - includes lots of examples and chewy detail. Topics covered include:

Forms and styles of scripting
Scriptblocks
Switch
V2 Script Cmdlets
V2 PSJobs

This is presentation definatly makes installing the Silverlight plugin worth while.

Thanks Jeffrey :)

Friday, February 01, 2008 5:49:25 PM (E. Australia Standard Time, UTC+10:00)
 Thursday, January 10, 2008

It has been announced that there is only one last lone Windows 2003 Server at Microsoft.com and in celebration (if you call it that) MS have created a skit which is definatly worth watching.

Check out this Technet Australia Blog.

Thursday, January 10, 2008 11:48:29 AM (E. Australia Standard Time, UTC+10:00)
 Sunday, December 23, 2007
Last week I had the "pleasure" of configuring a Dell PowerConnect switch. Not a bad piece of kit, just not a Cisco, the PC6224 is a Layer 3 switch with 24 x GB Ethernet (GBe) ports and 4 x GB Interface (GBIC) ports.

Once racked and powered the real fun started – CONFIG....

> en
> sh run
Oops apparently I meant
> show running-config
> conf t
Again, oops I apparently meant
> configure
....
> wr mem
Doh - I mean
> write memory
No, humm
> save
Where is that !@#$ing command line reference manual!@!@!

The commands are fairly similar to those on a Cisco and with tab complete and in-line help it doesn’t take much to work out the differences. But beware there are a few gottya’s that I found and decided to share:

  • Trying to wr mem maybe you should try copy running-config startup-config. What are we five! At least let me save my changes easily.
  • The PowerConnect IOS doesn’t use alias, anywhere. Be sure to use that TAB button to complete your command before you execute it.
  • No VTP, instead PowerConnect switches use GRVP (same thing just a different standard), so if you have to trunk between a Cisco and PowerConnect you have to enable GRVP on the Cisco first.
  • It is only a 24 port switch. By purchasing the optional SFPs and installing them in the any of the GBIC ports you lose one of the GBe ports.
  • No way to manually set the time and date on the switch. Clock is only configurable via an NPT server.
  • Unable to set management IP on a routable VLAN. If you try and set the management interface to a routable VLAN you receive and error; luckily I managed to find this article which details the work-around.
Sunday, December 23, 2007 1:23:06 AM (E. Australia Standard Time, UTC+10:00)

When I started blogging there was one thing I didn't want to happen; write two or three posts then let the site lay dormant whilst the hosting plan expired then rack up more traffic on WebArchive than the original site.

And after nearly two months since my last post, all excuses aside, I figured it was time to get back into the swing of things. In case you have been under a rock during this time, some highlights include:

Sunday, December 23, 2007 12:46:22 AM (E. Australia Standard Time, UTC+10:00)
 Thursday, November 01, 2007

I’m in the market for a new workstation and with the latest release of the 3 series chipsets from Intel the market has been flooded with a magnitude of new and exciting options, but be careful, as I found not all seems as it appears.

After checking several manufacture website and reviews I found this little beauty, ABIT IP35 Pro. The IP35 Pro is ABIT’s top line motherboard built around the Intel P35 chipset, which supports today’s latest processors and has the ability to address 8 GB of memory (about time really, Windows x64 here I come), sure to keep any enthusiast happy… Well that’s what I thought until reading this review.
"...a few corners cut, for example while the board does offer dual Gigabit LAN controllers both use the PCI bus."

First off, PCI should be taken out the back and shot! The devices I am interested in are all available on PCI Express interfaces. I consider PCI to be an obsolete architecture and, short of the backwards compatibility argument, the only reason we keep it around is because the devices are cheap.

So why is PCI (in particular PCI revision 2.3 – 32bit, 33MHz, as found on the Intel ICH9) dead to me? Bandwidth - with HD DVD/TV, Dolby 7.1, DirectX 10 Graphics cards and Gigabit demanded for the media rich experience on computers these days device interconnectors limited to 133MB/s just seems daft!  The math is simple – there just isn’t enough room to move all that data around, look at the diagram below?

You could argue that bottlenecks on other interfaces would be reached, disk transfer speeds, before you see limits on PCI devices, however with the ability to address 8 GB of RAM and high-performance SATA RAID controllers coming down in price the limiting factor in system performance is already PCI devices.

What are your options if you ‘must’ keep that SLI Voodoo2 setup in your system? PCI-X. PCI-X is an enhanced version of PCI, it has a 64bit bus and supports speeds of 133MHz giving it a total bandwidth of 1064MB/s. PCI-X has backwards compatibility for most 3.3Volt PCI cards but don’t think you will get any higher frame rates due to the 64bit bus or increase speed of the bus, you will still be limited by the PCI card. Currently the only 3 series Intel chipset available with PCI-X is the Supermicro C2SBX which is built around the Intel X38 chipset and only supports DDR3 memory.

The ABIT board I have attacked in this post is not alone. Really the issue here is with the chip ABIT and other manufacturers use to provide on-board controller network, the Realtek RTL8110SC. This chip is designed to only connect to a PCI bus which means that, not only does the existing P35 offering from ABIT suffer from this problem, but the new ABIT IX38-Max, ‘workstation’ class motherboard, the will have the same problem, along with other manufactures such as ASUS, Gigabyte and Foxconn.

For the moment I am still undecided which motherboard I will finally purchase for my new rig, hopefully I will find one with no PCI interfaces at all, somewhat of a pipe dream I feel.

Thursday, November 01, 2007 10:05:19 AM (E. Australia Standard Time, UTC+10:00)
 Sunday, October 14, 2007

I hate drawing Visio diagrams. I’m no Picasso and, for me, drawing a network diagram is one of these necessary evils that I avoid doing as long as humanly possible.

Not anymore, the good people at Microsoft have released the Microsoft Active Directory Topology Diagrammer which dynamically creates Visio diagrams for your Windows infrastructure. The topology tool reads your AD configuration, including domains, sites, servers, administrative groups, routing groups and connectors (for those with Exchange) and outputs a detailed library of diagram for you to manipulate as required.

Impressed with this release I spent some time google’ing other Visio automation tools, chasing that illusive magic bullet to cure all my Visio pains, I found an abundance of information and samples on MSDN. One such sample, How to use OLE automation in Visio, is a VBA macro that did most of the grunt work, loading and created a new Visio diagram, drawing a shape with a label, saving the changes and closing Visio. Apart from being a macro it performed the key functionality that would be required for any tool. To obtain the flexibility I was looking for I have transposed the macro code to a Powershell script which we can expand on later.

# ' Create an instance of Visio and create a document based on the
# ' Basic Diagram template. It doesn't matter if an instance of
# ' Visio is already running, CreateObject will run a new one.
# Set AppVisio = CreateObject("visio.application")
$AppVisio = New-Object -ComObject Visio.Application

# Set docsObj = AppVisio.Documents
$docsObj = $AppVisio.Documents

# ' Create a document based on the Basic Diagram template that
# ' automatically opens the Basic Shapes stencil.
# Set DocObj = docsObj.Add("Basic Diagram.vst")
$DocObj = $docsObj.Add("Basic Diagram.vst")

# Set pagsObj = AppVisio.ActiveDocument.Pages
$pagsObj = $AppVisio.ActiveDocument.Pages

# ' A new document always has at least one page, whose index in the
# ' Pages collection is 1.
# Set pagObj = pagsObj.Item(1)
$pagObj = $pagsObj.Item(1)

# Set stnObj = AppVisio.Documents("Basic Shapes.vss")
$stnObj = $AppVisio.Documents.Add("Basic Shapes.vss")

# Set mastObj = stnObj.Masters("Rectangle")
$mastObj = $stnObj.Masters.Item("Rectangle")

# ' Drop the rectangle in the approximate middle of the page.
# ' Coordinates passed with the Drop method are always inches.
# Set shpObj = pagObj.Drop(mastObj, 4.25, 5.5)
$shpObj = $pagObj.Drop($mastObj, 4.25, 5.5)

# ' Set the text of the rectangle.
# shpObj.Text = "This is some text."
$shpObj.Text = "This is some text."

# ' Save the drawing and quit Visio. The message pauses the program
# ' so you can see the Visio drawing before the instance closes.
# DocObj.SaveAs "MyDrawing.vsd"
$DocObj.SaveAs("C:\MyDrawing.vsd")
# MsgBox "Drawing finished!", , "AutoVisio (OLE) Example"

# ' Quit Visio.
# AppVisio.Quit

$AppVisio.Quit()

# ' Clear the variable from memory.
# Set AppVisio = Nothing

In an effort to make it that little bit easier to understand I have commented all the sample code and incorporated the Powershell equivalents. Remember that Powershell, unlike VB 6, doesn’t support default properties. So when we are calling a method (e.g. $stnObj.Masters) we have to define the property we are setting (e.g. Item).

So great I have a rectangle with some text in the middle of a blank Visio, not very useful, but after a few changes we have something that will dynamically generate stencils for all computers in a domain.

# Zero initial drop coordinates
$x = 0
$y = 1.20

# Create an instance of Visio and create a document based on the Basic Diagram template.
$AppVisio = New-Object -ComObject Visio.Application
$docsObj = $AppVisio.Documents
$DocObj = $docsObj.Add("Basic Diagram.vst")

# Set the active page of the document to page 1
$pagsObj = $AppVisio.ActiveDocument.Pages
$pagObj = $pagsObj.Item(1)

# Load a set of stencils and select one to drop
$stnObj = $AppVisio.Documents.Add("SERVER_M.vss")
$mastObj = $stnObj.Masters.Item("Server")

# Retrieve a list of computer accounts from Active Directory
#
http://www.microsoft.com/technet/scriptcenter/resources/qanda/nov06/hey1109.mspx

$strCategory = "computer"

$objDomain = New-Object System.DirectoryServices.DirectoryEntry

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.Filter = ("(objectCategory=$strCategory)")

$colProplist = "name"
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}

$colResults = $objSearcher.FindAll()

foreach ($objResult in $colResults)
{
  $objComputer = $objResult.Properties; $objComputer.name
  
  # Set coordinates for drop
  $x = $x + 1.30
  
  # Loop to the next line
  if($x -ge 8)
  {
   $x = 1.30
   $y = $y + 1.20
  }
  
  # Drop the selected stencil on the active page, with the coordinates x, y
  $shpObj = $pagObj.Drop($mastObj, $x, $y)
  
  # Enter text for the object
  $shpObj.Text = $objComputer.name
 }

# Save the diagram
$DocObj.SaveAs("C:\CMDBREAK_MyDrawing.vsd")

# Quit Visio
$AppVisio.Quit()

Lost?

Highlighted above in each of the colours is the following:
Yellow – What we started with, only modified to select and drop the Server stencil.
Red – Controls where we drop each stencil, so as they are not on top of each other.
Blue - Enumerates all computer accounts in the local domain. Detailed explanation is available at Hey, Scripting Guy! How Can I Use Windows PowerShell to Get a List of All My Computers?

Now we have a script that will retrieve all the computer accounts in an AD domain and draw shapes for each, one of the monotonous tasks required for any network diagram.

To recap we have converted a VBA macro to a Powershell script and after a few additions we can generate a set of Server stencils labelled with the hostnames of all computers connected to an AD domain. This is just a start, with some more modifications it would be easy to select a different stencil based on the services running or have the script modify existing shapes in a drawing to create a dynamic network diagram.

Happy Visio Automagic.

Sunday, October 14, 2007 9:59:08 PM (E. Australia Standard Time, UTC+10:00)
Navigation
Search
On this page....
Archives
<April 2008>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910
Categories
Blogroll
Contact me
Send mail to the author(s) E-mail
Powered by

newtelligence dasBlog 2.0.7226.0.