PowerShell and Property Value
In “PowerShell 101, Lesson 3” (April 2008, InstantDoc ID 98177), the command

get-process |
  where \{($_.handles -gt 100) `
  -and -not ($_.company -eq `
  “Microsoft Corporation”)\}
is supposed to return all non-Microsoft processes. But three of the listed process names (i.e., CSRSS, SYSTEM, and WINLOGON) look a little out of place. When I use PowerShell to query them for their Company property value, all three return nothing. Microsoft obtained the CSRSS process from Citrix a few years ago, so the recoding is most likely an oversight. But I’m still wondering about the SYSTEM and WINLOGON processes.

—Mike Piontkowski

You bring up an important concern. You’re getting these results because the Company property value is null for those processes. (PowerShell is indifferent to ownership history and cares only about the property value itself!) You can write your code to take this fact into account, as in:

get-process |
  where \{($_.handles -gt 100) `
  -and -not ($_.company -eq `
  “Microsoft Corporation” -or `
  $_.company -eq $null)\}
Now, only processes whose Company value isn’t Microsoft Corporation (or isn’t null) are returned.

The problem with this approach is that it assumes that only Microsoft uses null for the company name, so you must determine how you want to handle such situations. Whenever you’re using properties to create these Boolean expressions, be aware of the possible values for those properties. Write your expressions accordingly, and take into account the possibility of null values.

—Robert Sheldon

DNS Wisdom
I read the IT Pro Hero story, “Tried-and-True DNS Wisdom” by Caroline Marwitz (April 2008, InstantDoc ID 98330). In the sidebar, “A Sysadmin’s DNS Best Practices,” Apostolos Fotakelis writes, “Get rid of NetBIOS over TCP and WINS.” Every time I’ve ever attempted to do that, I’ve lost mapped drives and have been unable to connect to any servers. What am I doing wrong? Also, if I disable NetBIOS over TCP from the Local Area Connection window, will it affect my WatchGuard VPN?

—Tony Sergi

Actually, in my article, I was referring to disabling NetBIOS over TCP via the Local Area Connection window. Disabling NetBIOS from Device Manager is a more drastic, problematic procedure that requires a reboot. Unfortunately, I have no experience with the WatchGuard VPN. However, disabling NetBIOS over TCP shouldn’t have any side effects on firewalls or VPN connections. That being said, you should always be aware of potential consequences. (See the article “How can I configure TCP/IP networking while NetBIOS is disabled in Windows 2000/XP/2003?” at www.petri.co.il/disable_netbios_in_w2k_xp_2003.htm for more information.) And, of course, be sure to test the change before effecting it in your environment.

—Apostolos Fotakelis

PC vs. Mac
I loved Mark Minasi’s Web-exclusive “No XP? Say It Ain’t So, Ray!” (www.windowsitpro.com, InstantDoc ID 99284). I, too, am a big fan of XP, and I haven’t found Microsoft Vista all that interesting. I did make the choice Mark talks about. When it was time to replace my Dell laptop (which was happily running XP), I went for a shiny MacBook Pro running Tiger (now Leopard). I have to say, I like my new computer so much that I plan to replace my five-year-old HP desktop system (happily running XP) with a new iMac running— yep—Leopard! And courtesy of VMware Fusion, I’ll pull the HP system’s XP installation so that I can still run XP in its own little virtual machine (VM) on the iMac. XP is a beautiful thing, and forcing people to upgrade will only help Microsoft’s competitors!

—Dan York

Server Core Commando
I just read Mark Minasi’s Windows Power Tools column, “Go Commando with Windows Server 2008’s Server Core” (June 2008, InstantDoc ID 98715). At the end of the article, Mark states that the only option for adding the DNS suffix from the command line is to modify the registry. However, you can also use the Windows Management Instrumentation Command Line (WMIC). First, find the adapter you want:

wmic nicconfig list Next, add the DNS suffix. If the adapter’s index is 1, you’d type something like
wmic nicconfig 1 call setdnsdomain
  bigfirm.com
You can even perform this procedure remotely, as follows:
wmic /node:Server1 nicconfig 1 call
  setdnsdomain bigfirm.com
When Server Core gets PowerShell support, you’ll be able to use
Get-WmiObject Win32_NetworkAdapter
  Configuration -ComputerName
  Server1 |Where-Object\{$_.IPEnabled -eq “TRUE”\}
The object returned by this statement (System.Management.ManagementObject) supports the SetDNSDomain method.

—Aleksandar Nikolic