Couple tools that I’ve recently discovered that were useful

I’ve been doing some proof of concept recently trying a few different tools. 

Vmware 2.0

Allows me to run 64 bit guest OS’s on my 64 bit host machine.  My host machine doesn’t support Hyper-V.   It’s running Windows Server 2008 standard 64 bit.  I can test Windows Server 2008 R2

Folder2Iso –

I was slipstreaming the December 2008 Sharepoint update into our MOSS 2007 SP1 setup process.  I needed to create a ISO with the MOSS w/SP1 and December 2008.  I tried a few products and ran across Folder2ISO



IIS – Web platform installer v1 has been released


The Web Platform Installer (Web PI) is a simple tool that installs Microsoft’s entire Web Platform, including IIS, Visual Web Developer 2008 Express Edition, SQL Server 2008 Express Edition and the .NET Framework. Using the Web Platform Installer’s user interface, you can choose to install either specific products or the entire Microsoft Web Platform onto your computer. The Web PI also helps keep your products up to date by always offering the latest additions to the Web Platform.

List Local administrators on a machine using Powershell, ADSI

I need to audit our local administrators group.  I wanted to convert my script to Powershell that I’ve used for years. I found the magic post here that shows the core syntax.  I wouldn’t have guessed the syntax in a dozen years. 

Here is the VBScript.

Set objGroup = GetObject(“WinNT://./Administrators,group”)

    For Each objUser In objGroup.Members
        WScript.Echo “Member found: ” & objUser.Name

set objGroup = Nothing

Here is the Powershell syntax.

function LogToFile ([string]$strFileName, [string]$strComputer)
 Add-Content $strFileName $strComputer

$strComputer = “.”
$computer = [ADSI](“WinNT://” + $strComputer + “,computer”)
$Group = $computer.psbase.children.find(“Administrators”)
$members= $Group.psbase.invoke(“Members”) | %{$_.GetType().InvokeMember(“Name”, ‘GetProperty’, $null, $_, $null)}

ForEach($user in $members)

Write-Host $user
$a = $strComputer + “!” + $user.ToString()
LogToFile “C:ss.txt” $a

Thanks to Ying Li!



First usergroup meeting and win a Sharepoint 2007 Best practices book

I attended a Sharepoint user group meeting on Tuesday 1/6 (  Becky Bertram presented a interesting topic I knew nothing about.  (I’m a Sharepoint newbie).  Here is a link to her site.   The cool thing they had some decent swag and I won a MS Press book

If I have other Sharepoint information, I’ll definitely pass it along.

Take care,


Writing out computer list retrieved from Active Directory and output to a text file using Add-Content

Hope this helps someone, it took me a bit to get the syntax down and understand why. (Yes, I’m still a PoSh newbie) I discovered when I was trying to write out a computer list retrieved from Active Directory, the output in the file was System.DirectoryServices.ResultPropertyValueCollection.   After I added explicitly [String] $a in the code below, when the value was added to the file I specified, the actual ASCII value showed up.  thought I would pass this alongQ

$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; $
 [String]$a = $
 Add-Content ss.txt $a


Steve Schofield

Powershell 1.0 script to update Active Directory FTP User isolation attributes (msIIS-FTPDir, msIIS-FTPRoot)

I recently posted an article how to setup FTP User Isolation and Active Directory together.  Here is the article.  In the post, I mentioned you’ll need to engage your AD administrator to update the two attributes.  Here is a script using Powershell 1.0.  You could expand the script to take parameters (domain controller, distinguishedName and the two attributes).  The user account that runs the script needs the proper permissions in Active Directory.

$objUser = [ADSI]”LDAP://,OU=People,DC=SteveSchofield,DC=local“
$objUser.Put(“msIIS-FTPDir”, “UserNameHere”)
$objUser.Put(“msIIS-FTPRoot”, “\ServerShare”)

I tested the script on a w2k8 domain controller and from my Windows XP machine (I used the Runas command)


Steve Schofield
Microsoft MVP – IIS