Welcome to TechNet Blogs Sign in | Join | Help

Great news following a very busy week for SQL Server with the PASS Community Summit: The new SQL Server 2008 R2 November CTP is now available for MSDN and TechNet subscribers.This download is expected to be available as a general download in a couple of days.

Title: SQL Server 2008 R2 Enterprise Evaluation November CTP (x86, x64, ia64) - DVD (English)
Size: 4,011.88 (MB)
File Name: en_sql_server_2008_r2_enterprise_evaluation_november_ctp_x86_x64_ia64_dvd_455348.iso 
Date Posted: 11/9/2009

SQL Server 2008 R2 Nov CTP

I'm already downloading... :-)

Additional details at
http://www.microsoft.com/presspass/press/2009/nov09/11-03pass09pr.mspx

I came across some interesting tips on things to consider in a virtualized environment by Greg Shields (Consultant and Microsoft MVP). 
They are non-issues (or settled issues) on physical environments and you might overlook them when making the transition to virtual machines.

Here's a summary to get you interested:

  • Screensavers
  • Managing from the console
  • AV on VM disk files
  • Power options
  • Cluster Failback
  • RAM availability
  • Backup for CSV
  • Number of processors

Here are the links to the actual articles:

This post mixes the spirit of Halloween and the passion for SQL Server :-)

 

Have you noticed how SQL Server has a number of things that seem right out of a horror movie?

As a test of your SQL Server expertise and for a fun Halloween trivia game, try to describe the items in the list below in the context of SQL Server.

If you can’t, follow the links to figure them out:

And, of course, there’s a number of Wizards all over the place.

If you know any other good ones, please do share in the post comments.

 

P.S.: I was also reminded by Kalen Delaney of the classic "Halloween Problem" which can cause pretty scary results, as described at http://en.wikipedia.org/wiki/Halloween_Problem. Not specific to SQL Server, but there was a related issue with SQL Server 7 : http://support.microsoft.com/kb/248441.

 

Happy Halloween!

SQL Halloween

There's a new 77-page white paper covering the use of Folder Redirection and Offline Files in a very practical way.

Here's an excerpt:

"The objective of this white paper is to show through a case study how to use different Microsoft products and technologies to put in place a comprehensive solution satisfying the needs of a mid-sized organization around users’ file data management. The study was conducted by the Quality Assurance group of the Storage Solutions Division (SSD) at Microsoft, a division that focuses on enabling customers of all sizes to store, manage, and reliably access their file data."

Download from http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=d8541618-5c63-4c4d-a0fd-d942cd3d2ec6

Jeff Teper (Corporate Vice President, SharePoint Server) and Steve Ballmer (CEO) shared SharePoint Server 2010 feature details and announced the November beta during the SharePoint Conference today in Las Vegas.

Jeff also posted a long and revealing blog, outlining 8 categories and 40 feature areas:

  • Sites
    • SharePoint Web Experience
    • Office Client
    • SharePoint Workspace
    • Office Web Apps
    • SharePoint Mobile Access
  • Communities
    • Collaborative Content
    • Social Feedback and Organization
    • User Profiles
    • MySites
    • People Connections
  • Content
    • Large Lists and Libraries
    • Enterprise Metadata
    • Document Sets
    • Web Publishing including Digital Asset Management
    • Governance and Records Management
  • Search
    • Interactive Search Experience
    • Relevance
    • People Search
    • Connectivity
    • Scale and Platform Flexibility 
  • Insights
    • Excel Services
    • Performance Point Services
    • SQL Server
    • “Gemini”
    • Visio Services
  • Composites
    • SharePoint Designer
    • InfoPath Forms Service
    • Access Services
    • Sandbox Solutions
    • Business Connectivity Services
  • Administration
    • Improved Upgrade
    • Throttling, Health Monitoring, Analytics
    • Web and PowerShell Admin
    • Scalability and Availability
    • Identity Management and Security
  • Development
    • New SharePoint APIs
    • Application Lifecycle
    • Visual Studio 2010 Support
    • Developer Dashboard View
    • Development on Windows 7

Jeff did an amazing job summarizing the upcoming SharePoint Server 2010 in a single blog post that includes additional information on each of the 48 bullets above, plus 8 screenshots (one per category). Absolute must read!!!  

Check the blog post at

Recorded keynote from the SharePoint Conference available from

Also, documentation and learning resources on SharePoint 2010 are available starting today for both Developers and IT Professionals:

SharePoint 2010

Version 1.0 of the File Server Capacity Tool (FSCT) was announced yesterday during a presentation by Jian Yan and  Bartosz Nyczkowski at SNIA’s Storage Developer Conference in Santa Clara, CA. The presentation covered a number of details about FSCT and included a demo running FSCT with the HomeFolders workload.

If you are not familiar with FSCT, the download page offers this overview: “File server capacity planning and performance troubleshooting are critical aspects of high-level network administration. Central file servers and distributed client workstations are now the norm in most corporate networks. This structure reduces storage capacity requirements, centralizes backup, increases the availability of files, and simplifies the document revision and review process. However, because data storage and access are centralized, performance limitations impact the entire network population. Accurately projecting the number of users that hardware can support under a specific workload, and understanding when and where bottlenecks occur, are critical to making efficient improvements to the server configuration. File server capacity planning tools can be valuable in choosing new hardware for purchase, identifying the capacity of existing hardware, locating existing bottlenecks, and planning for resource expansion in advance of resource exhaustion. The throughput capacity of a file server can be expressed either as the maximum number of operations per second or a maximum number of users supported by the configuration. These values are influenced by several factors, some of which include processor speed, available memory, disk speed, network throughput and latency, and the speed with which SMB requests are processed.”

The final version is available for download in both 32-bit (x86) and 64-bit (x64) versions. It is supported on  Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Vista and  Windows 7 (with the latest service pack applied).

Downloads are available now:
x64: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=b20db7f1-15fd-40ae-9f3a-514968c65643
x86: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=0b212272-1884-4af1-972d-42ef1db9f977

A white paper is also included in the download packages, with detailed description of the tool, step-by-step instructions on how to use it and reference of the command line interface.

For questions about FSCT and how to use it, please use the forum at
http://social.technet.microsoft.com/Forums/en-US/fsct/threads

Also check some details on FSCT on these previous posts (from the release of the beta last year and the release candidate back in July):
http://blogs.technet.com/josebda/archive/2009/07/08/file-server-capacity-tool-fsct-release-candidate-available-for-download.aspx
http://blogs.technet.com/josebda/archive/2008/10/06/fsct-a-cifs-smb-smb2-file-server-tool-for-capacity-planning-and-performance-troubleshooting.aspx

This is a major milestone in the two-year journey to offer this tool publicly, which included efforts from a number of people from different teams at Microsoft, including the File Server Team and the Windows Performance Team.

I recently bought a used TI-55-II on eBay. This is an old (early 80’s) Texas Instruments calculator, one the first programmable ones. I got it mostly for sentimental value, since I used to own one back in Brazil in 1983, my last year in high school.

Looking back, the fact that I got this specific programmable calculator exactly at that moment in my life was probably an important contributing factor to my choice of Computer Science when I joined the Federal University of Ceara in Brazil in 1984. Before that, I had my eyes set on Architecture. And not Computer or Systems Architecture, I should say, since back then we did not associate Architecture with Computer Science careers.

The TI-55-II is actually a pretty limited device by today’s standards. You have a 10-digit LCD display, 8 “memories” and 56 “programming steps”. Programming the calculator basically meant storing a sequence of keystrokes and you had no conditional statements, just one RST command to go back to step 0. Even with that, I remember being quite impressed with the ability to create a program, use multiple variables and display data on the screen (there is a PAUSE instruction to let you see a number on the screen before moving to the next step).

The calculator I used back in high school was actually manufactured in the city of Manaus in Brazil ("Produzida na Zona Franca de Manaus") by a subsidiary of Texas Instruments. I found some information about it on the internet: http://www.datamath.org/Sci/Slanted/TI-55-II-AA.htm. In fact, there is even a soft copy of the manual in PDF format: http://www.datamath.net/Manuals/TI-55-II_QR_US.pdf.

My used TI-55-II I got from eBay (shown on the right) was made in the US in 1982. It's almost the same as the Brazilian model except for the type of battery it uses. Details at http://www.datamath.org/Sci/Slanted/TI-55-II.htm. Mine is actually working fine and I even managed to remember how to create simple programs with it. Interesting how your brain can retain that kind of information decades later…

See also a previous blog post on CP/M and the TRS-80, which I used a few years after that: http://blogs.technet.com/josebda/archive/2009/08/07/the-good-old-days-of-cp-m-2-2-on-a-trs-80-with-an-8-bit-z80-cpu.aspx

 TI-55-II

The DFS-N test team has completed some extensive Performance and Scalability testing and we wanted to share some of the results.

It includes results on standalone namespaces, "2000 mode" domain namespaces and "2008 mode" domain namespaces, under Windows Server 2003, Windows Server 2008 and Windows Server 2008 R2. 

Check the post by Marcello Hasegawa at http://blogs.technet.com/filecab/archive/2009/08/22/windows-server-dfs-namespaces-performance-and-scalability.aspx.

Introduction

In this blog post, we’ll showcase the flexibility you have with DFS-N by showing three distinct ways that you could design a namespace.

Note: If you’re not familiar with DFS-N, please read this blog post first:
http://blogs.technet.com/josebda/archive/2009/03/10/the-basics-of-the-windows-server-2008-distributed-file-system-dfs.aspx

Scenario

The scenario here is simple: you have three file servers in different locations: S1 is in New York, S2 is in Amsterdam and S3 is in Hong Kong. Each server has a unique set of data (Proposals, Marketing information and Engineering documents for each geography) and you want to expose this under a single namespace. Here’s the structure on each file server:

Server S1 in New York:

  • F:\AMER\PROPOSAL – Proposals for the AMER (Americas) region
  • F:\AMER\MARKETING – Marketing information for the AMER region
  • F:\AMER\ENGINEERING – Engineering documents for the AMER region

Server S2 in Amsterdam:

  • F:\EMEA\PROPOSAL – Proposals for the EMEA (Europe, Middle East and Africa) region
  • F:\EMEA\MARKETING – Marketing information for the EMEA region
  • F:\EMEA\ENGINEERING – Engineering documents for the EMEA region

Server S3 in Hong Kong:

  • F:\APAC\PROPOSAL – Proposals for the APAC (Asia and Pacific) region
  • F:\APAC\MARKETING – Marketing information for the APAC region
  • F:\APAC\ENGINEERING – Engineering documents for the APAC region

Please note that this specific scenario does not include replication. Each server each has completely an independent set of files. For instance, a proposal for an EMEA customer would exist only in the F:\EMEA\PROPOSALS folder in S2 and it would not exist in servers S1 or S3. Replication across these servers could be accomplished using DFS-R, but I am purposely avoiding it in this example to focus specifically on DFS-N design.

Creating the folders and shares

First of all, I am providing the scripts to create the folder structure and the shares. These are 3 distinct scripts and each one needs to be run on a specific server (S1, S2 or S3). We could actually do this all remotely, but I’m keeping it simple.

CREATE-S1.CMD

REM ## RUN THIS SCRIPT in S1, the file server in New York
MD F:\AMER\PROPOSALS
MD F:\AMER\MARKETING
MD F:\AMER\ENGINEERING
NET SHARE AMER=F:\AMER

CREATE-S2.CMD

REM ## RUN THIS SCRIPT in S2, the file server in Amsterdam
MD F:\EMEA\PROPOSALS
MD F:\EMEA\MARKETING
MD F:\EMEA\ENGINEERING
NET SHARE EMEA=F:\EMEA

CREATE-S3.CMD

REM ## RUN THIS SCRIPT in S3, the file server in Hong Kong
MD F:\APAC\PROPOSALS
MD F:\APAC\MARKETING
MD F:\APAC\ENGINEERING
NET SHARE APAC=F:\APAC

Please note that the shares will end up with read-only permissions using the commands above. In your real-world deployment you will need to properly plan your NTFS and file share permissions and implement them properly with CACLS or ICACLS.EXE (for NTFS) and the /GRANT option in NET SHARE (for the file shares). The focus of this post is not on permissions but on the structure of the shares, folders and namespaces.

Namespace option 1 – Simple mapping of shares

The first option I will cover is a simple mapping at the root share on each server. This is simpler because it requires a namespace with only three folders (or links). Assuming we use a fourth server (S4) as the namespace server (or target) and NS1 as the name of the namespace (or root), users would basically use \\S4\NS1 as the UNC path to the entire set of data from all three file servers.

Note 1: You could host the namespace in one of the file servers, see details at  http://blogs.technet.com/josebda/archive/2009/06/26/how-many-dfs-n-namespaces-servers-do-you-need.aspx
Note 2: We’re using a standalone namespace here, but you could just as easily use a domain namespace instead.
Note 3: We’re not adding any fault tolerance for the namespace or the file servers in these scenarios. This could be accomplished with Failover Clustering for standalone namespaces or with multiple targets for a domain namespace.

Here’s a script to create the namespace, which should be run on S4:

CREATE-NS1.CMD

REM ## scenario 1 - Simple mapping of shares
REM ## RUN THIS SCRIPT in S4, the namespace server
MD F:\NS1
NET SHARE NS1=F:\NS1
DFSUTIL ROOT ADDSTD \\S4\NS1
DFSUTIL LINK ADD \\S4\NS1\AMER \\S1\AMER
DFSUTIL LINK ADD \\S4\NS1\EMEA \\S2\EMEA
DFSUTIL LINK ADD \\S4\NS1\APAC \\S3\APAC
DIR \\S4\NS1 /S /B
DFSUTIL ROOT EXPORT \\S4\NS1 F:\NS1EXPORT.XML VERBOSE

From an end-user perspective, the folder structure under \\S4\NS1 would look like this:

DFS NSD 1

At the end of this script, an XML export of the namespace is created. Here’s what it looks like:

NS1EXPORT.XML

<?xml version="1.0"?>
<Root xmlns = "http://schemas.microsoft.com/dfs/2007/03/dfsutil" majorVersion = "2" minorVersion = "0"
    Name="\\S4\NS1" State="OK" Timeout="300" >
    <Target State="ONLINE" >\\S4\NS1</Target>
    <Link Name="AMER" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S1\AMER</Target>
    </Link>
    <Link Name="EMEA" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S2\EMEA</Target>
    </Link>
    <Link Name="APAC" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S3\APAC</Target>
    </Link>
</Root>

Namespace option 2 – Flattening out the tree in the namespace

This second options shows the flexibility of DFS-N by creating a flat list of folders from the three servers and their folder structures. Users might find convenient to see a long list of folders without any nesting of folders. This shows how you can point your folder targets (or link targets) to a folder inside the share, not only the root of the file share. Again we’ll use that fourth server (S4) as the namespace server (or target), but now with NS2 as the name of the namespace (or root). Users would use \\S4\NS2 as the UNC path to the entire set of data from all three file servers.

Here’s a script to create the namespace, which should be run on S4:

CREATE-NS2.CMD

REM ## scenario 2 - Flattening out the tree in the namespace
REM ## RUN THIS SCRIPT in S4, the namespace server
MD F:\NS2
NET SHARE NS2=F:\NS2
DFSUTIL ROOT ADDSTD \\S4\NS2
DFSUTIL LINK ADD \\S4\NS2\AMERPROP \\S1\AMER\PROPOSALS
DFSUTIL LINK ADD \\S4\NS2\AMERMARK \\S1\AMER\MARKETING
DFSUTIL LINK ADD \\S4\NS2\AMERENGI \\S1\AMER\ENGINEERING
DFSUTIL LINK ADD \\S4\NS2\EMEAPROP \\S2\EMEA\PROPOSALS
DFSUTIL LINK ADD \\S4\NS2\EMEAMARK \\S2\EMEA\MARKETING
DFSUTIL LINK ADD \\S4\NS2\EMEAENGI \\S2\EMEA\ENGINEERING
DFSUTIL LINK ADD \\S4\NS2\APACPROP \\S3\APAC\PROPOSALS
DFSUTIL LINK ADD \\S4\NS2\APACMARK \\S3\APAC\MARKETING
DFSUTIL LINK ADD \\S4\NS2\APACENGI \\S3\APAC\ENGINEERING
DIR \\S4\NS2 /S /B
DFSUTIL ROOT EXPORT \\S4\NS2 F:\NS2EXPORT.XML VERBOSE

From an end-user perspective, the folder structure under \\S4\NS2 would be flat, like this:

DFS NSD 2

At the end of this script, an XML export of the namespace is created. Here’s what it looks like:

NS2EXPORT.XML

<?xml version="1.0"?>
<Root xmlns = "http://schemas.microsoft.com/dfs/2007/03/dfsutil" majorVersion = "2" minorVersion = "0"
    Name="\\S4\NS2" State="OK" Timeout="300" >
    <Target State="ONLINE" >\\S4\NS2</Target>
    <Link Name="EMEAMARK" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S2\EMEA\MARKETING</Target>
    </Link>
    <Link Name="APACENGI" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S3\APAC\ENGINEERING</Target>
    </Link>
    <Link Name="APACMARK" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S3\APAC\MARKETING</Target>
    </Link>
    <Link Name="AMERMARK" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S1\AMER\MARKETING</Target>
    </Link>
    <Link Name="AMERENGI" State="OK" Timeout="300" >
       <Target State="ONLINE" >\\S1\AMER\ENGINEERING</Target>
    </Link>
    <Link Name="AMERPROP" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S1\AMER\PROPOSALS</Target>
    </Link>
    <Link Name="APACPROP" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S3\APAC\PROPOSALS</Target>
    </Link>
    <Link Name="EMEAPROP" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S2\EMEA\PROPOSALS</Target>
    </Link>
    <Link Name="EMEAENGI" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S2\EMEA\ENGINEERING</Target>
    </Link>
</Root>

Namespace option 3 -  Namespace reversing the original tree structure on each file server

Last but not least, the most interesting exhibit of the flexibility of DFS-N. In this case we’ll create a namespace showing the collection of folders group by type instead of geography. DFS-N makes it easy, since we can basically restructure the shares as we create the namespace. This shows how you can also use a tree structure on the DFS folder (or link) side of the equation, which can do a lot when you combine with what we did in option 2 above. Again we’ll use that fourth server (S4) as the namespace server (or target), but now with NS3 as the name of the namespace (or root). Users would use \\S4\NS3 as the UNC path to the entire set of data from all three file servers.

Here’s a script to create the namespace, which should be run on S4:

CREATE-NS3.CMD

REM ## scenario 3 –  Namespace reversing the original tree structure on each file server
REM ## RUN THIS SCRIPT in S4, the namespace server
MD F:\NS3
NET SHARE NS3=F:\NS3
DFSUTIL ROOT ADDSTD \\S4\NS3
DFSUTIL LINK ADD \\S4\NS3\PROPOSALS\AMER \\S1\AMER\PROPOSALS
DFSUTIL LINK ADD \\S4\NS3\MARKETING\AMER \\S1\AMER\MARKETING
DFSUTIL LINK ADD \\S4\NS3\ENGINEERING\AMER \\S1\AMER\ENGINEERING
DFSUTIL LINK ADD \\S4\NS3\PROPOSALS\EMEA \\S2\EMEA\PROPOSALS
DFSUTIL LINK ADD \\S4\NS3\MARKETING\EMEA \\S2\EMEA\MARKETING
DFSUTIL LINK ADD \\S4\NS3\ENGINEERING\EMEA \\S2\EMEA\ENGINEERING
DFSUTIL LINK ADD \\S4\NS3\PROPOSALS\APAC \\S3\APAC\PROPOSALS
DFSUTIL LINK ADD \\S4\NS3\MARKETING\APAC \\S3\APAC\MARKETING
DFSUTIL LINK ADD \\S4\NS3\ENGINEERING\APAC \\S3\APAC\ENGINEERING
DIR \\S4\NS3 /S /B
DFSUTIL ROOT EXPORT \\S4\NS3 F:\NS3EXPORT.XML VERBOSE

From an end-user perspective, the folder structure under \\S4\NS3 is shown below. It examplifies how DFS-N can completely mask the physical infrastructure behind the namespace:

DFS NSD 3

Note that \\S4\NS3\ENGINEERING, \\S4\NS3\MARKETING and \\S4\NS3\PROPOSALS don’t actually exist as DFS folders (or links) at all. They are basically abstract constructs shown only in the UI, which don’t map to any specific target. You can confirm this when you look at the export of the namespace:

NS3EXPORT.XML

<?xml version="1.0"?>
<Root xmlns = "http://schemas.microsoft.com/dfs/2007/03/dfsutil" majorVersion = "2" minorVersion = "0"
    Name="\\S4\NS3" State="OK" Timeout="300" >
    <Target State="ONLINE" >\\S4\NS3</Target>
    <Link Name="MARKETING\APAC" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S3\APAC\MARKETING</Target>
    </Link>
    <Link Name="MARKETING\AMER" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S1\AMER\MARKETING</Target>
    </Link>
    <Link Name="ENGINEERING\EMEA" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S2\EMEA\ENGINEERING</Target>
    </Link>
    <Link Name="MARKETING\EMEA" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S2\EMEA\MARKETING</Target>
    </Link>
    <Link Name="ENGINEERING\AMER" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S1\AMER\ENGINEERING</Target>
    </Link>
    <Link Name="PROPOSALS\AMER" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S1\AMER\PROPOSALS</Target>
    </Link>
    <Link Name="PROPOSALS\APAC" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S3\APAC\PROPOSALS</Target>
    </Link>
    <Link Name="PROPOSALS\EMEA" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S2\EMEA\PROPOSALS</Target>
    </Link>
    <Link Name="ENGINEERING\APAC" State="OK" Timeout="300" >
        <Target State="ONLINE" >\\S3\APAC\ENGINEERING</Target>
    </Link>
</Root>

Conclusion

I hope this helped you understand how DFS-N folder (or links) and folder targets (link targets) work. Please note that we could create this all using the DFS Management graphical user interface (or MMC). We did this in the command line because it’s easier to document that way. Here’s a view from the MMC of all the three namespaces we created:

DFS NSD 4

Please note that you do not want to create all three namespaces simultaneously. I did this just for showing it here. You would choose the option that best fits your purpose. The goal here is to simplify things for the users, not to confuse them :-)

I also did not cover replication here at all. In fact, this example uses only DFS-N and can even be run without the DFS-R role service installed. We could certainly design a namespace that takes replication into account, but that’s a topic for another blog post…

Links

For more information about DFS-Namespaces, see also the following links from TechNet:

As I continue to experiment with PowerShell v2 in Windows Server 2008 R2, I will share some of what I learn here on the blog. This time I am focusing on Cmdlets, Snap-ins and Modules. 

Cmdlets

Windows PowerShell introduced the notion of a “cmdlet” (you pronounce it “commandlet”). These are like tools or commands that are typically very simple and to the point (although most have properties or parameters). For instance, there is one to restart a computer (Restart-Computer), one to list the hotfixes installed on a computer (Get-Hotfix) and one to invoke a WMI method (Invoke-WmiMethod). You can get a list of cmdlets using a cmdlet called Get-Command. You can also learn more about a cmdlet by using a cmd-let called Get-Help.

Try these:

  • Get-Command
  • Get-Command -CommandType cmdlet
  • Get-Command | ?{$_.Commandtype -eq "Cmdlet"}
  • Get-Help Get-Command

Verbs and Nouns

You probably noticed that the name of the cmdlets are always divided into two parts, separated by a dash. The first part describes the type of action (called the “Verb”) and the second part describes the object where the action is performed (called the “Noun”). You will notice that the way verbs and nouns are used are quite consistent. You will see some verbs being frequently used, like “Get”, “Set”, “New” and “Remove”. Common nouns include “Item”, “Object”, “Service”, “EventLog”, “Computer” or “Job”. Not every combination of verb and noun is implemented though, you can use Get-Command and Get-Help to find more.

Try these:

  • Get-Command -CommandType cmdlet | Select Name, Verb, Noun
  • Get-Command | ?{$_.Noun -eq "Computer"}
  • Get-Command | ?{$_.Verb -eq "New"}

Parameters

Cmdlets also commonly include parameters. As with the regular command prompt in Windows and with most command-line tools, these will inform the cmdlet details about what to do. They are many times optional. There is usually a default parameter that can be provided right after the cmdlet name. Others must be explicitly declared by the parameter name starting with a dash. The Get-Help cmdlet, for instance, can be provided with a default parameter to indicate what cmdlet you need help on. You can also specify optional parameters like -examples or -detailed. Parameters vary widely between cmdlets. You can use Get-Help to learn more about the parameters for a specific cmdlet.

Try these:

  • Get-Help command
  • Get-Help Get-Command -examples
  • Get-Help about_parameters

Snap-ins

PowerShell can be extended in a number of ways and one of them is to add more cmdlets. The built-in cmdlets, for example, come from some PowerShell Snap-ins. A number of those snap-ins are loaded by default. By default, in Windows Server 2008 R2, the following snap-ins are loaded. You can get a list with Get-PSSnapin:

  • Microsoft.PowerShell.Diagnostics
  • Microsoft.WSMan.Management
  • Microsoft.PowerShell.Core
  • Microsoft.PowerShell.Utility
  • Microsoft.PowerShell.Host
  • Microsoft.PowerShell.Management
  • Microsoft.PowerShell.Security

The Get-Command and Get-Help cmdlets, for instance, come from Microsoft.PowerShell.Core Snap-in. You can load addition snap-in (with Add-PSSnapin). Snap-ins are basically .NET program compiled into DLL files and they can also include (in addition to cmdlets), providers and functions. The snap-in definition includes

Try these:

  • Get-Help snapin
  • Get-PSSnapin
  • Get-Command -CommandType cmdlet | Select ModuleName | Sort ModuleName –Unique
  • Get-Command -Module Microsoft.PowerShell.Core

Modules

With PowerShell v2, cmdlets can also be defined in another type of extension called Modules. By default, Windows Server 2008 R2 PowerShell will not import any modules, but there are a number of modules available for importing. These modules are described in files you can find under the c:\Windows\System32\WindowsPowerShell\v1.0\Modules\ folder, including files with a "psd1" extension that contain details about the module in plain text. Here is a list of the modules available in Windows Server 2008 R2:

  • ActiveDirectory
  • ADRMS
  • AppLocker
  • BestPractices
  • BitsTransfer
  • GroupPolicy
  • PSDiagnostics
  • ServerManager
  • TroubleshootingPack

The ServerManager module, for instance, provides cmdlets that can be use to manage Roles, Role Services and Features in Windows (they replace the deprecated ServerManagerCmd.exe tool).

Try these:

  • Get-Help Module
  • Get-Module -ListAvailable
  • Get-ChildItem C:\Windows\System32\WindowsPowerShell\v1.0\Modules -Recurse
  • Get-ChildItem C:\Windows\System32\WindowsPowerShell\v1.0\Modules -Recurse -Filter *.psd1 | Select Name, Length
  • Get-Content c:\Windows\System32\WindowsPowerShell\v1.0\Modules\ServerManager\ServerManager.psd1
  • Import-Module ServerManager
  • Get-Module
  • Get-Command -Module ServerManager
  • Get-WindowsFeature
  • Remove-Module ServerManager

I hope this helped you understand a bit more about cmdlets in PowerShell. Try the sample commands (for Windows Server 2008 R2) and keep on learning...

The Storage Networking Industry Association (SNIA) is hosting the 6th Storage Developer Conference (SDC) in the Hyatt Regency in beautiful Santa Clara, CA (Silicon Valley) on the week of September 14th. This event is also co-located with the CIFS/SMB/SMB2 Plugfest. For those working with storage technologies, this event gathers a unique crowd and includes a rich agenda that you can find at http://www.snia.org/events/storage-developer2009/agenda2009.

Looking at the agenda, you can see it includes presentations and/or panels with key industry players like Amazon, Brocade, EMC, Emulex, Google, HP, IBM, Intel, Isilon, The Linux Foundation, LSI, Microsoft, NetApp, The Samba Team, Sun, Symantec, Tata, Ubiqx, Western Digital and Wipro, just to mention a few names you should readily recognize.

Microsoft is the CIFS/SMB/SMB2 Plugfest Underwriter and the presentations from Microsoft include topics like BranchCache, Green Technologies, Data Classification on File Servers, Windows File System Transactions, SMB version 2.1, Storage in Virtual Machine Manager, SMB2 Model Based Testing, File Server Capacity Tool (FSCT), DFS-Namespaces Scalability, Storage Management and Delete Notifications in Windows 7. Microsoft is also participating in the panel on Cloud Storage. I am helping deliver the presentations on FSCT and DFS-N, along with a few colleagues, and I will also spend time at the PlugFest.

On last thing about the SDC and probably one of the most important ones is that the presentations are usually delivered to developers by the actual product teams and frequently the actual developer of the technology is either delivering the presentation or is in the room to take questions. That kind of deep insight is not common in every conference out there. For instance, I remember last year when there was a discussion (during Q&A) about something related to both NTFS and SMB. It was great to see senior developers from both teams in the room (one was the presenter and one was in the audience), discussing with attendees a specific topic that spanned both the local file system and the remote file serving protocol.

Registration is open at  http://www.snia.org/events/storage-developer2009/ and you should definitely plan to be there. If you are attending, leave a comment and let’s plan to meet when we get there!

SDC Banner 2009

I was reading the news on the release of Windows 7 and stopped to think of the early days of my IT career and what an OS looked like then. I thought way back to one of the first microcomputer disk operating systems I ever used: CP/M. I actually remembered the few resident commands we had back then in CP/M: DIR, ERA, REN, TYPE, SAVE and USER. I remember that clearly because, back in the 1980s, I taught some classes on CP/M (while still attending college) and even wrote a little booklet (in Portuguese) on it.

That was back in Brazil and we used a clone of the TRS-80 Model III computer called CP 500 from Micrologica, running on an 8-bit Z80 CPU at 2MHz, 48KB of RAM and a 5 1/4" floppy drive (holding less than 400KB of data). I first used the CP 500 at the school where I taught those classes and ended up owning one later on. Back then, we used applications like  Wordstar, SuperCalc and DBase II, and it all used to fit in a single floppy (leaving some free space for some documents).

It’s amazing how these days there are online references to pretty much anything you can remember. I found Wikipedia pages on:

For those that can read Portuguese, I also found:

To my amazement, I also found copies of old CP/M manuals dating back to 1976, including the CP/M 2.2 manual from 1983 at http://www.cpm.z80.de/manuals/cpm22-m.pdf. That trip down memory lane reminded me of the BASIC interpreters we used on those machines (both the resident basic for the TRS-80 and the MBASIC interpreter for CP/M). I also looked at some of my old archives on DVD and found some old MBASIC code I wrote for that computer.

I also stumbled upon a series of recent videos on the history of Microsoft at  http://channel9.msdn.com/shows/History/. This includes an episode about the year 1977 when Microsoft released their the first Z80 BASIC interpreter and has Bill Gates talking about the launch of the TRS-80 computer: http://channel9.msdn.com/shows/History/The-History-of-Microsoft-1977/.  That was also the year Elvis died and the first Star Wars movie was released.

Yeah… I guess I am getting old :-)

I spent some more time experimenting with PowerShell v2 and here goes my second post about it.

This time around I am focusing on how to define variables, use expressions and create functions.

 

The "problem" we're solving :-)

 

To make it fun, I decided to create a little script that creates some random syllables, words and sentences using a set of rules. This will come out as some nonsense sentences, but they should be pronounceable. I wrote this little program in several languages before and it generally exercises a number of concepts around manipulating arrays and strings. It uses random numbers and sets of consonants and vowels, plus some logic around the number of syllables per word, words per sentence, etc.

 

Here are a few sample sentences created by the program:

  • Inepirula beicmicso phosa.
  • Ci muesit sacoipae naepdave opeefane.
  • Kikipor sofestrysu crasha browohocyn.
  • De dyczershaco kurensataer mexi trerememee.
  • Cie he cho cyuba lio goabryntune.
  • Quiaphe breiepco henureme sopoche.
  • Pychurmabie osipi leberoi.
  • Ne trirorce auencuep je sucootoi yeelneer.
  • Uchekepian rinsi reypbar.
  • Oeciurgo vacra go.

It’s gibberish, I know, but you should be able to pronounce it. In fact, I went one step further and used the Speech API in Windows to actually have the computer say them out loud.

P.S.: Due to its random nature, it is possible (although somewhat unlikely) that the program might spit out some bad words in some real language. I apologize in advance :-)

 

What I learned

 

PowerShell proved quite capable of creating this program. In fact, due to its interesting abilities to turn strings into arrays, rich expressions and loop constructs, it was no problem at all.

I did learn a few details that always vary from language to language:

·         PowerShell uses a $ sign before the name of variables

·         When creating variables, you can specify the type in [], but that is optional

·         Common types include int32, array, string and object

·         Get-Random(n) will give you a random integer between 0 and (n-1).

·         Strings are arrays of characters starting at item number 0

·         The -split operator can turn a string into an array, splitting the string using a specified delimiter

·         Substring is the function to get a piece of a string

·         Length is the function to get the number of characters in a string (or items in an array)

·         Some operators are a bit tricky and it doesn’t use the regular "<", ">", "<=", ">=", "!=" and "==" operators. You need to use "-lt", "-gt", "-le", "-ge", "-ne" and "-eq" instead (there are many more). You get used to it.

·         You can use the “+=”, “-=”, “*=” assignment syntax as you have in C++, C#

·         You will sometimes need to enclose an expression in ( ) so that it is not confused with a statement

·         You can use the multiply operator to repeat a string. For instance (“-“ * 5) yields “-----“. This is one of those cases where you must use the ().

·         You can create COM objects with the ‘New-Object -ComObject “name”’ syntax

·         In loops and conditional statements, you use () to specify the conditions and { } to group the statements

·         The default execution policy will not let you run an unsigned script. You can bypass this using “Set-ExecutionPolicy Unrestricted -scope process”. Note that this will only apply for the running process, due to the –scope parameter. You can set this at a wider scope, but you probably shouldn’t, for security reasons.

 

Closing comments

 

Last but not least, find the code below. I tested this on Windows Server 2008 R2. Try it only on a test machine.

You should probably save it in a file called sentences.ps1 (for instance) and run it from there using “.\sentences.ps1”.  

Consider using the Powershell ISE, which includes a debugger.

Use CTRL-C to stop it before it says all 10 sentences. You might have to wait for it to end saying a sentence before it actually stops.

 

The code

 

[array] $Vowels = "a;a;a;a;e;e;e;e;i;i;i;o;o;o;u;u;y" -split ";"
[array] $Consonants = "b;b;br;c;c;c;ch;cr;d;f;g;h;j;k;l;m;m;m;n;n;p;p;ph;qu;r;r;r;s;s;s;sh;t;tr;v;w;x;z" -split ";"
[array] $Endings = "r;r;s;r;l;n;n;n;c;c;t;p" -split ";"
[object] $Voice = New-Object -ComObject "SAPI.SPVoice"

 

function Get-RandomVowel
{ return $Vowels[(Get-Random($Vowels.Length))] }

 

function Get-RandomConsonant
{ return $Consonants[(Get-Random($Consonants.Length))] }

 

function Get-RandomEnding
{ return $Endings[(Get-Random($Endings.Length))] }

 

function Get-RandomSyllable ([int32] $PercentConsonants, [int32] $PercentEndings)

   [string] $Syllable = ""
   if ((Get-Random(100)) -le $PercentConsonants)
   { $Syllable+= Get-RandomConsonant }
   $Syllable+= Get-RandomVowel
   if ((Get-Random(100)) -le $PercentEndings)
   { $Syllable+= Get-RandomEnding }
   return $Syllable
}

 

function Get-RandomWord ([int32] $MinSyllables, [int32] $MaxSyllables)

   [string] $Word = ""
   [int32] $Syllables = ($MinSyllables) + (Get-Random(($MaxSyllables - $MinSyllables + 1)))
   for ([int32] $Count=1; $Count -le $Syllables; $Count++)
   { $Word += Get-RandomSyllable 70 20 } <# Consonant 70% of the time, Ending 20% #>
   return $Word
}

 

function Get-RandomSentence ([int32] $MinWords, [int32] $MaxWords)

   [string] $Sentence = ""
   [int32] $Words = ($MinWords) + (Get-Random($MaxWords - $MinWords + 1))
   for ([int32] $Count=1; $Count -le $Words; $Count++)
   {
      $Sentence += Get-RandomWord 1 5 <# Word with 1 to 5 syllables #>
      $Sentence += " "
   }
   $Sentence = $Sentence.substring(0,1).ToUpper() + $Sentence.substring(1,$Sentence.Length-2) + "."
   return $Sentence
}


for ([int32] $Count=1; $Count -le 10; $Count++)
{
    [string] $Sentence = Get-RandomSentence 2 6 <# Sentence with 2 to 6 words #>
    Write-Host $Sentence
    Write-Host ("-" * $Sentence.Length)
    [int32] $VResult = $Voice.Speak($Sentence)
}

 

 

Improve it

 

Now that you got this code, you might want to work on it and make it better. Maybe changing the frequency of the consonants, vowels and endings. Maybe tweak the number of syllables per word or words per sentence. You might even think of ways to make it generate some poetry with the right number of syllables per sentence and some rhyming. Have fun…

Powershell is a command line interface for Windows that offers a very powerful and flexible model.
It is now a feature included with Windows 7 and Windows Server 2008 R2, not an optional download as before.
In this post, I show some sample commands that can help you understand some of the basic features and a few more complex ones. 

If you never played with it before, try running Get-Help and Get-Command in a PowerShell prompt.

Shows a list of commands: Get-Command
Shows the help overview: Get-Help
Show the help for “Dir”: Get-Help Dir

Let's use the Dir command now (actually an alias for Get-ChildItem) and a number of ways to transform the output using pipeline functions:

Shows Directory: Dir
Shows Directory in list format (two ways): Dir | Format-List
Dir | FL
Shows Directory sorted by file length: Dir | Sort Length
Shows Directory sorted by file length in descending order: Dir | Sort Length –Descending
Shows all the methods and properties for the objects resulting from Dir (files and folders): Dir | Get-Member
Shows a selected list of properties instead of the default list: Dir | Select  Directory, Name, Extension, Length
Shows directory in HTML format (not much use going to the console like this, though): Dir | ConvertTo-Html
Output the Directory listing to a file: Dir | Out-File psfilelist.txt
Output the Directory listing to a grid in window: Dir | Out-GridView
All together now: Shows selected list of properties, sorted, in HTML, going to a file. You need to open the file yourself: Dir | Select Directory, Name, Extension, Length | Sort Length -Descending | ConvertTo-Html | Out-File psfilelist.htm

Now exploring other “drives” in PowerShell with Get-PSDrive, including the certificate store and the registry.

Get list of PowerShell “drives”: Get-PSDrive
Shows environment variables: Dir ENV:\
Shows the certiticate store: Dir CERT:\
Shows root certificates for the machine: Dir CERT:\LocalMachine\Root | Select FriendlyName, NotAfter
Shows “HK Local Machine” portion of the registry Dir HKLM:
Shows specified part of the registry: Dir HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion

Another easy way to get interesting data is with Get-Process.

List running processes: Get-Process
Shows all the methods and properties for the process objects: Get-Process | Get-Member
Shows selected list of properties of running processes, formatted as table: Get-Process | Select Id, Name, Product, CPU, WorkingSet | Format-Table –autosize

Combining PowerShell with WMI is also very interesting. You can leverage any WMI provider on the box using Get-WmiObject.
You can get a list of WMI Classes from http://msdn.microsoft.com/en-us/library/aa394554(VS.85).aspx

Shows all WMI objects with "disk" on the name: Get-WmiObject -List *disk* | Select Name
Shows disk partitions: Get-WmiObject Win32_DiskPartition | Select Name, Size, BootPartition
Shows logical disks: Get-WmiObject Win32_LogicalDisk | Select DeviceID, DriveType, Size, FreeSpace
Shows mapped drives (with NET USE command): Get-WmiObject Win32_MappedLogicalDisk | Select Name, ProviderName, FileSystem, Size, FreeSpace | Format-Table

PowerShell also lets you call the .NET Framework, which is a huge library.
You need to use a syntax where the full class name (library.class) is mentioned in [], followed by a :: and the method name.

You can find a reference for it at http://msdn.microsoft.com/en-us/library/ms229335.aspx

Shows network interfaces: [System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces() | Select Name, Speed, OperationalStatus
Shows identity of the current logged user: [System.Security.Principal.WindowsIdentity]::GetCurrent() | Select Name, AuthenticationType, IsAuthenticated, IsSystem
Shows drive information: [System.IO.DriveInfo]::GetDrives() | Select Name, DriveType, IsReady, TotalSize, TotalFreeSpace, RootDirectory | Format-Table -autosize

It’s also interesting to iterate through the list of resulting objects, to perform additional actions.
You use the ForEach keyword (actually an alias for ForEach-Object), which allows you to run something for each item. The item is referred to as $_.
You can also use the symbol % instead of ForEach-Object.

Change to the application data folder, which is obtained from the environment variables: Dir Env:\AppData | ForEach { CD $_.Value }
Dir Env:\AppData | % { CD $_.Value }
Show all text files enumerated by the Dir command: Dir *.TXT | ForEach { Type $_ }
Dir *.TXT | % { Type $_ }
Show root directory for all drives enumerated by GetDrives: [System.IO.DriveInfo]::GetDrives() | foreach { Dir $_ }
[System.IO.DriveInfo]::GetDrives() | % { Dir $_ }

A similar syntax is used for Where (actually an alias for Where-Object), which can be used to filter objects in the pipeline.
You can also use the symbol ? instead of Where-Object.

Show selected properties of processes using more than 10MB of memory, in descending order, formatted as table: Get-Process | Select Id, Name, Product, CPU, WorkingSet | Where { $_.WorkingSet -gt 10*1024*1024} | Sort WorkingSet -Descending | Format-Table –autosize
Shows all services that are stopped: Get-Service | Where { $_.Status -eq "Stopped" }
Get-Service | ? { $_.Status -eq "Stopped" }

Now let's focus on the DFS Namespaces service, which is something I’m working on (these will only work if the box is a Windows Server file server with the DFS-N role service installed):

Shows all 2000 mode domain namespaces on the current computer, using the registry: Dir HKLM:\Software\Microsoft\DFS\Roots\Domain
Shows all 2008 mode  domain namespaces on the current computer, using the registry: Dir HKLM:\Software\Microsoft\DFS\Roots\DomainV2
Shows all standalone namespaces on the current computer, using the registry: Dir HKLM:\Software\Microsoft\DFS\Roots\Standalone
Shows all namespaces of all types on the current computer, using the registry: Dir HKLM:\Software\Microsoft\DFS\Roots –Recurse | Select PSChildName, ValueCount, Property
Shows properties of the DFS-N service in the registry: Dir HKLM:\System\CurrentControlSet\Services\Dfs
Get status of DFS Service (formatted as list) Get-Service DFS | fl
Starts the DFS-N service (two ways): Get-Service DFS | Start-Service
Get-Service DFS | % { $_.Start }
Shows all WMI objects with DFS on the name (will include some DFS-R ones as well): Get-WmiObject -List *DFS*
Shows DFS Targets on the current computer, using WMI: Get-WmiObject Win32_DFSTarget
Shows selected properties of DFS nodes on the current computer, including it's a root and its state, using WMI: Get-WmiObject Win32_DFSNode | Select Name, Root, State | Format-Table –autosize

I hope that has helped you see how interesting PowerShell can be. Here are a few links for additional information and tutorials:

Introduction 

 

This blog post covers the changes in the list of Roles, Role Services and Features from Windows Server 2008 (with Service Pack 2) to Windows Server 2008 R2 (used the latest RC build available to me). To create the tables and lists below, I installed both operating systems, used the "ServerManagerCmd -query" command and did some editing of the resulting text to provide a side-by-side comparison. Please note that I based the "New", "Renamed" or "Removed" marks based on the output of the commands, nothing else. The ">" in the beginning of the items' names indicates the indentation level.

Obviously, there's much more to Roles, Role Services and Features than their names. Many of the items that exist in both versions were deeply improved in Windows Server 2008 R2, but you will not find that type of change here. If you look at Hyper-V, for instance, the changes are truly impressive, but the lists below do not capture that. For those details, you should look at http://www.microsoft.com/windowsserver2008/en/us/R2.aspx and the Reviewers Guide at http://download.microsoft.com/download/F/2/1/F2146213-4AC0-4C50-B69A-12428FF0B077/Windows_Server_2008_R2_Reviewers_Guide_(RC).doc

 

Table Comparing Roles and Role Services 

 

 Windows Server 2008 Roles and Role Services Changes Windows Server 2008 R2 Roles and Role Services
Active Directory Certificate Services  [AD-Certificate]   Active Directory Certificate Services  [AD-Certificate]
>Certification Authority  [ADCS-Cert-Authority]   >Certification Authority  [ADCS-Cert-Authority]
>Certification Authority Web Enrollment  [ADCS-Web-Enrollment]   >Certification Authority Web Enrollment  [ADCS-Web-Enrollment]
>Online Responder  [ADCS-Online-Cert]   >Online Responder  [ADCS-Online-Cert]
>Network Device Enrollment Service  [ADCS-Device-Enrollment]   >Network Device Enrollment Service  [ADCS-Device-Enrollment]
  New >Certificate Enrollment Web Service  [ADCS-Enroll-Web-Svc]
  New >Certificate Enrollment Policy Web Service  [ADCS-Enroll-Web-Pol]
Active Directory Domain Services   Active Directory Domain Services  [AD-Domain-Services]
>Active Directory Domain Controller  [ADDS-Domain-Controller]   >Active Directory Domain Controller  [ADDS-Domain-Controller]
>Identity Management for UNIX  [ADDS-Identity-Mgmt]   >Identity Management for UNIX  [ADDS-Identity-Mgmt]
>>Server for Network Information Services  [ADDS-NIS]   >>Server for Network Information Services  [ADDS-NIS]
>>Password Synchronization  [ADDS-Password-Sync]   >>Password Synchronization  [ADDS-Password-Sync]
>>Administration Tools  [ADDS-IDMU-Tools]   >>Administration Tools  [ADDS-IDMU-Tools]
Active Directory Federation Services   Active Directory Federation Services  [AD-Federation-Services]
>Federation Service  [ADFS-Federation]   >Federation Service  [ADFS-Federation]
>Federation Service Proxy  [ADFS-Proxy]   >Federation Service Proxy  [ADFS-Proxy]
>AD FS Web Agents  [ADFS-Web-Agents]   >AD FS Web Agents  [ADFS-Web-Agents]
>>Claims-aware Agent  [ADFS-Claims]   >>Claims-aware Agent  [ADFS-Claims]
>>Windows Token-based Agent  [ADFS-Windows-Token]   >>Windows Token-based Agent  [ADFS-Windows-Token]
Active Directory Lightweight Directory Services  [ADLDS]   Active Directory Lightweight Directory Services  [ADLDS]
Active Directory Rights Management Services   Active Directory Rights Management Services  [ADRMS]
>Active Directory Rights Management Server   >Active Directory Rights Management Server  [ADRMS-Server]
>Identity Federation Support   >Identity Federation Support  [ADRMS-Identity]
Application Server  [Application-Server]   Application Server  [Application-Server]
>Application Server Foundation  [AS-AppServer-Foundation]   >.NET Framework 3.5.1  [AS-NET-Framework]
>Web Server (IIS) Support  [AS-Web-Support]   >Web Server (IIS) Support  [AS-Web-Support]
>COM>Network Access  [AS-Ent-Services]   >COM>Network Access  [AS-Ent-Services]
>TCP Port Sharing  [AS-TCP-Port-Sharing]   >TCP Port Sharing  [AS-TCP-Port-Sharing]
>Windows Process Activation Service Support  [AS-WAS-Support]   >Windows Process Activation Service Support  [AS-WAS-Support]
>>HTTP Activation  [AS-HTTP-Activation]   >>HTTP Activation  [AS-HTTP-Activation]
>>Message Queuing Activation  [AS-MSMQ-Activation]   >>Message Queuing Activation  [AS-MSMQ-Activation]
>>TCP Activation  [AS-TCP-Activation]   >>TCP Activation  [AS-TCP-Activation]
>>Named Pipes Activation  [AS-Named-Pipes]   >>Named Pipes Activation  [AS-Named-Pipes]
>Distributed Transactions  [AS-Dist-Transaction]   >Distributed Transactions  [AS-Dist-Transaction]
>>Incoming Remote Transactions  [AS-Incoming-Trans]   >>Incoming Remote Transactions  [AS-Incoming-Trans]
>>Outgoing Remote Transactions  [AS-Outgoing-Trans]   >>Outgoing Remote Transactions  [AS-Outgoing-Trans]
>>WS-Atomic Transactions  [AS-WS-Atomic]   >>WS-Atomic Transactions  [AS-WS-Atomic]
DHCP Server  [DHCP]   DHCP Server  [DHCP]
DNS Server  [DNS]   DNS Server  [DNS]
Fax Server  [Fax]   Fax Server  [Fax]
File Services   File Services  [File-Services]
>File Server  [FS-FileServer]   >File Server  [FS-FileServer]
>Distributed File System  [FS-DFS]   >Distributed File System  [FS-DFS]
>>DFS Namespaces  [FS-DFS-Namespace]   >>DFS Namespaces  [FS-DFS-Namespace]
>>DFS Replication  [FS-DFS-Replication]   >>DFS Replication  [FS-DFS-Replication]
>File Server Resource Manager  [FS-Resource-Manager]   >File Server Resource Manager  [FS-Resource-Manager]
>Services for Network File System  [FS-NFS-Services]   >Services for Network File System  [FS-NFS-Services]
>Windows Search Service  [FS-Search-Service]   >Windows Search Service  [FS-Search-Service]
>Windows Server 2003 File Services  [FS-Win2003-Services]   >Windows Server 2003 File Services  [FS-Win2003-Services]
>>File Replication Service  [FS-Replication] Removed  
>>Indexing Service  [FS-Indexing-Service]   >>Indexing Service  [FS-Indexing-Service]
  New >BranchCache for network files  [FS-BranchCache]
Hyper-V  [Hyper-V]   Hyper-V  [Hyper-V]
Network Policy and Access Services  [NPAS]   Network Policy and Access Services  [NPAS]
>Network Policy Server  [NPAS-Policy-Server]   >Network Policy Server  [NPAS-Policy-Server]
>Routing and Remote Access Services  [NPAS-RRAS-Services]   >Routing and Remote Access Services  [NPAS-RRAS-Services]
>>Remote Access Service  [NPAS-RRAS]   >>Remote Access Service  [NPAS-RRAS]
>>Routing  [NPAS-Routing]   >>Routing  [NPAS-Routing]
>Health Registration Authority  [NPAS-Health]   >Health Registration Authority  [NPAS-Health]
>Host Credential Authorization Protocol  [NPAS-Host-Cred]   >Host Credential Authorization Protocol  [NPAS-Host-Cred]
Print Services  [Print-Services]   Print and Document Services  [Print-Services]
>Print Server  [Print-Server]   >Print Server  [Print-Server]
>LPD Service  [Print-LPD-Service]   >LPD Service  [Print-LPD-Service]
>Internet Printing  [Print-Internet]   >Internet Printing  [Print-Internet]
  New >Distributed Scan Server  [Print-Scan-Server]
Terminal Services  [Terminal-Services] Renamed Remote Desktop Services  [Remote-Desktop-Services]
>Terminal Server  [TS-Terminal-Server] Renamed >Remote Desktop Session Host  [RDS-RD-Server]
  New >Remote Desktop Virtualization Host  [RDS-Virtualization]
>TS Licensing  [TS-Licensing] Renamed >Remote Desktop Licensing  [RDS-Licensing]
>TS Session Broker  [TS-Session-Broker] Renamed >Remote Desktop Connection Broker  [RDS-Connection-Broker]
>TS Gateway  [TS-Gateway] Renamed >Remote Desktop Gateway  [RDS-Gateway]
>TS Web Access  [TS-Web-Access] Renamed >Remote Desktop Web Access  [RDS-Web-Access]
UDDI Services Removed  
>UDDI Services Database Removed  
>UDDI Services Web Application Removed  
Web Server (IIS)  [Web-Server]   Web Server (IIS)  [Web-Server]
>Web Server  [Web-WebServer]   >Web Server  [Web-WebServer]
>>Common HTTP Features  [Web-Common-Http]   >>Common HTTP Features  [Web-Common-Http]
>>>Static Content  [Web-Static-Content]   >>>Static Content  [Web-Static-Content]
>>>Default Document  [Web-Default-Doc]   >>>Default Document  [Web-Default-Doc]
>>>Directory Browsing  [Web-Dir-Browsing]   >>>Directory Browsing  [Web-Dir-Browsing]
>>>HTTP Errors  [Web-Http-Errors]   >>>HTTP Errors  [Web-Http-Errors]
>>>HTTP Redirection  [Web-Http-Redirect]   >>>HTTP Redirection  [Web-Http-Redirect]
  New >>>WebDAV Publishing  [Web-DAV-Publishing]
>>Application Development  [Web-App-Dev]   >>Application Development  [Web-App-Dev]
>>>ASP.NET  [Web-Asp-Net]   >>>ASP.NET  [Web-Asp-Net]
>>>.NET Extensibility  [Web-Net-Ext]   >>>.NET Extensibility  [Web-Net-Ext]
>>>ASP  [Web-ASP]   >>>ASP  [Web-ASP]
>>>CGI  [Web-CGI]   >>>CGI  [Web-CGI]
>>>ISAPI Extensions  [Web-ISAPI-Ext]   >>>ISAPI Extensions  [Web-ISAPI-Ext]
>>>ISAPI Filters  [Web-ISAPI-Filter]   >>>ISAPI Filters  [Web-ISAPI-Filter]
>>>Server Side Includes  [Web-Includes]   >>>Server Side Includes  [Web-Includes]
>>Health and Diagnostics  [Web-Health]   >>Health and Diagnostics  [Web-Health]
>>>HTTP Logging  [Web-Http-Logging]   >>>HTTP Logging  [Web-Http-Logging]
>>>Logging Tools  [Web-Log-Libraries]   >>>Logging Tools  [Web-Log-Libraries]
>>>Request Monitor  [Web-Request-Monitor]   >>>Request Monitor  [Web-Request-Monitor]
>>>Tracing  [Web-Http-Tracing]   >>>Tracing  [Web-Http-Tracing]
>>>Custom Logging  [Web-Custom-Logging]   >>>Custom Logging  [Web-Custom-Logging]
>>>ODBC Logging  [Web-ODBC-Logging]   >>>ODBC Logging  [Web-ODBC-Logging]
>>Security  [Web-Security]   >>Security  [Web-Security]
>>>Basic Authentication  [Web-Basic-Auth]   >>>Basic Authentication  [Web-Basic-Auth]
>>>Windows Authentication  [Web-Windows-Auth]   >>>Windows Authentication  [Web-Windows-Auth]
>>>Digest Authentication  [Web-Digest-Auth]   >>>Digest Authentication  [Web-Digest-Auth]
>>>Client Certificate Mapping Authentication  [Web-Client-Auth]   >>>Client Certificate Mapping Authentication  [Web-Client-Auth]
>>>IIS Client Certificate Mapping Authentication  [Web-Cert-Auth]   >>>IIS Client Certificate Mapping Authentication  [Web-Cert-Auth]
>>>URL Authorization  [Web-Url-Auth]   >>>URL Authorization  [Web-Url-Auth]
>>>Request Filtering  [Web-Filtering]   >>>Request Filtering  [Web-Filtering]
>>>IP and Domain Restrictions  [Web-IP-Security]   >>>IP and Domain Restrictions  [Web-IP-Security]
>>Performance  [Web-Performance]   >>Performance  [Web-Performance]
>>>Static Content Compression  [Web-Stat-Compression]   >>>Static Content Compression  [Web-Stat-Compression]
>>>Dynamic Content Compression  [Web-Dyn-Compression]   >>>Dynamic Content Compression  [Web-Dyn-Compression]
>Management Tools  [Web-Mgmt-Tools]   >Management Tools  [Web-Mgmt-Tools]
>>IIS Management Console  [Web-Mgmt-Console]   >>IIS Management Console  [Web-Mgmt-Console]
>>IIS Management Scripts and Tools  [Web-Scripting-Tools]   >>IIS Management Scripts and Tools  [Web-Scripting-Tools]
>>Management Service  [Web-Mgmt-Service]   >>Management Service  [Web-Mgmt-Service]
>>IIS 6 Management Compatibility  [Web-Mgmt-Compat]   >>IIS 6 Management Compatibility  [Web-Mgmt-Compat]
>>>IIS 6 Metabase Compatibility  [Web-Metabase]   >>>IIS 6 Metabase Compatibility  [Web-Metabase]
>>>IIS 6 WMI Compatibility  [Web-WMI]   >>>IIS 6 WMI Compatibility  [Web-WMI]
>>>IIS 6 Scripting Tools  [Web-Lgcy-Scripting]   >>>IIS 6 Scripting Tools  [Web-Lgcy-Scripting]
>>>IIS 6 Management Console  [Web-Lgcy-Mgmt-Console]   >>>IIS 6 Management Console  [Web-Lgcy-Mgmt-Console]
>FTP Publishing Service  [Web-Ftp-Publishing]   >FTP Server  [Web-Ftp-Server]
>>FTP Server  [Web-Ftp-Server]   >>FTP Service  [Web-Ftp-Service]
>>FTP Management Console  [Web-Ftp-Mgmt-Console]   >>FTP Extensibility  [Web-Ftp-Ext]
  New >IIS Hostable Web Core  [Web-WHC]
Windows Deployment Services  [WDS]   Windows Deployment Services  [WDS]
>Deployment Server  [WDS-Deployment]   >Deployment Server  [WDS-Deployment]
>Transport Server  [WDS-Transport]   >Transport Server  [WDS-Transport]
Windows Server Update Services   Windows Server Update Services  [OOB-WSUS]

 

Table Comparing Features

 

Windows Server 2008 Features Changes Windows Server 2008 R2 Features
.NET Framework 3.0 Features  [NET-Framework]   .NET Framework 3.5.1 Features  [NET-Framework]
>.NET Framework 3.0  [NET-Framework-Core]   >.NET Framework 3.5.1  [NET-Framework-Core]
>XPS Viewer  [NET-XPS-Viewer] Renamed XPS Viewer  [XPS-Viewer]
>WCF Activation  [NET-Win-CFAC]   >WCF Activation  [NET-Win-CFAC]
>>HTTP Activation  [NET-HTTP-Activation]   >>HTTP Activation  [NET-HTTP-Activation]
>>Non-HTTP Activation  [NET-Non-HTTP-Activ]   >>Non-HTTP Activation  [NET-Non-HTTP-Activ]
BITS Server Extensions  [BITS]   Background Intelligent Transfer Service (BITS)  [BITS]
  New >Compact Server  [BITS-Compact-Server]
  New >IIS Server Extension  [BITS-IIS-Ext]
BitLocker Drive Encryption  [BitLocker]   BitLocker Drive Encryption  [BitLocker]
  New BranchCache  [BranchCache]
Connection Manager Administration Kit  [CMAK]   Connection Manager Administration Kit  [CMAK]
Desktop Experience  [Desktop-Experience]   Desktop Experience  [Desktop-Experience]
  New DirectAccess Management Console  [DAMC]
Failover Clustering  [Failover-Clustering]   Failover Clustering  [Failover-Clustering]
Group Policy Management  [GPMC]   Group Policy Management  [GPMC]
  New Ink and Handwriting Services  [Ink-Handwriting]
  New >Ink Support  [IH-Ink-Support]
  New >Handwriting Recognition  [IH-Handwriting]
Internet Printing Client  [Internet-Print-Client]   Internet Printing Client  [Internet-Print-Client]
Internet Storage Name Server  [ISNS]   Internet Storage Name Server  [ISNS]
LPR Port Monitor  [LPR-Port-Monitor]   LPR Port Monitor  [LPR-Port-Monitor]
Message Queuing  [MSMQ]   Message Queuing  [MSMQ]
>Message Queuing Services  [MSMQ-Services]   >Message Queuing Services  [MSMQ-Services]
>>Message Queuing Server  [MSMQ-Server]   >>Message Queuing Server  [MSMQ-Server]
>>Directory Service Integration  [MSMQ-Directory]   >>Directory Service Integration  [MSMQ-Directory]
>>Message Queuing Triggers  [MSMQ-Triggers]   >>Message Queuing Triggers  [MSMQ-Triggers]
>>HTTP Support  [MSMQ-HTTP-Support]   >>HTTP Support  [MSMQ-HTTP-Support]
>>Multicasting Support  [MSMQ-Multicasting]   >>Multicasting Support  [MSMQ-Multicasting]
>>Routing Service  [MSMQ-Routing]   >>Routing Service  [MSMQ-Routing]
>Windows 2000 Client Support  [MSMQ-Win2000] Removed  
>Message Queuing DCOM Proxy  [MSMQ-DCOM]   >Message Queuing DCOM Proxy  [MSMQ-DCOM]
Multipath I/O  [Multipath-IO]   Multipath I/O  [Multipath-IO]
Network Load Balancing  [NLB]   Network Load Balancing  [NLB]
Peer Name Resolution Protocol  [PNRP]   Peer Name Resolution Protocol  [PNRP]
Quality Windows Audio Video Experience  [qWave]   Quality Windows Audio Video Experience  [qWave]
Remote Assistance  [Remote-Assistance]   Remote Assistance  [Remote-Assistance]
Remote Differential Compression  [RDC]   Remote Differential Compression  [RDC]
Remote Server Administration Tools  [RSAT]   Remote Server Administration Tools  [RSAT]
>Role Administration Tools  [RSAT-Role-Tools]   >Role Administration Tools  [RSAT-Role-Tools]
>>Active Directory Certificate Services Tools  [RSAT-ADCS]   >>Active Directory Certificate Services Tools  [RSAT-ADCS]
>>>Certification Authority Tools  [RSAT-ADCS-Mgmt]   >>>Certification Authority Tools  [RSAT-ADCS-Mgmt]
>>>Online Responder Tools  [RSAT-Online-Responder]   >>>Online Responder Tools  [RSAT-Online-Responder]
>>Active Directory Domain Services Tools  [RSAT-ADDS]   >>AD DS and AD LDS Tools  [RSAT-AD-Tools]
>>>Active Directory Domain Controller Tools  [RSAT-ADDC]   >>>AD DS Tools  [RSAT-ADDS]
  New >>>>AD DS Snap-Ins and Command-Line Tools  [RSAT-ADDS-Tools]
  New >>>>Active Directory Administrative Center  [RSAT-AD-AdminCenter]
>>>Server for NIS Tools  [RSAT-SNIS]   >>>>Server for NIS Tools  [RSAT-SNIS]
>>Active Directory Lightweight Directory Services Tools  [RSAT-ADLDS]   >>>AD LDS Snap-Ins and Command-Line Tools  [RSAT-ADLDS]
  New >>>Active Directory module for Windows PowerShell  [RSAT-AD-PowerShell]
>>Active Directory Rights Management Services Tools  [RSAT-RMS]   >>Active Directory Rights Management Services Tools  [RSAT-RMS]
>>DHCP Server Tools  [RSAT-DHCP]   >>DHCP Server Tools  [RSAT-DHCP]
>>DNS Server Tools  [RSAT-DNS-Server]   >>DNS Server Tools  [RSAT-DNS-Server]
>>Fax Server Tools  [RSAT-Fax]   >>Fax Server Tools  [RSAT-Fax]
>>File Services Tools  [RSAT-File-Services]   >>File Services Tools  [RSAT-File-Services]
>>>Distributed File System Tools  [RSAT-DFS-Mgmt-Con]   >>>Distributed File System Tools  [RSAT-DFS-Mgmt-Con]
>>>File Server Resource Manager Tools  [RSAT-FSRM-Mgmt]   >>>File Server Resource Manager Tools  [RSAT-FSRM-Mgmt]
>>>Services for Network File System Tools  [RSAT-NFS-Admin]   >>>Services for Network File System Tools  [RSAT-NFS-Admin]
>>Hyper-V Tools  [RSAT-Hyper-V]   >>Hyper-V Tools  [RSAT-Hyper-V]
>>Network Policy and Access Services Tools  [RSAT-NPAS]   >>Network Policy and Access Services Tools  [RSAT-NPAS]
>>Print Services Tools  [RSAT-Print-Services]   >>Print and Document Services Tools  [RSAT-Print-Services]
>>Terminal Services Tools  [RSAT-TS] Renamed >>Remote Desktop Services Tools  [RSAT-RDS]
>>>Terminal Server Tools  [RSAT-TS-RemoteApp] Renamed >>>Remote Desktop Session Host Tools  [RSAT-RDS-RemoteApp]
>>>TS Gateway Tools  [RSAT-TS-Gateway] Renamed >>>Remote Desktop Gateway Tools  [RSAT-RDS-Gateway]
>>>TS Licensing Tools  [RSAT-TS-Licensing] Renamed >>>Remote Desktop Licensing Tools  [RSAT-RDS-Licensing]
  New >>>Remote Desktop Connection Broker Tools  [RSAT-RDS-Conn-Broker]
>>UDDI Services Tools  [RSAT-UDDI] Removed  
>>Web Server (IIS) Tools  [RSAT-Web-Server]   >>Web Server (IIS) Tools  [RSAT-Web-Server]
>>Windows Deployment Services Tools  [RSAT-WDS]   >>Windows Deployment Services Tools  [RSAT-WDS]
>Feature Administration Tools  [RSAT-Feature-Tools]   >Feature Administration Tools  [RSAT-Feature-Tools]
>>BitLocker Drive Encryption Tools  [RSAT-BitLocker]   >>BitLocker Drive Encryption Administration Utilities  [RSAT-BitLocker]
  New >>>BitLocker Drive Encryption Tools  [RSAT-Bitlocker-DriveEnc]
  New >>>BitLocker Recovery Password Viewer  [RSAT-Bitlocker-RecPwd]
>>BITS Server Extensions Tools  [RSAT-Bits-Server]   >>BITS Server Extensions Tools  [RSAT-Bits-Server]
>>Failover Clustering Tools  [RSAT-Clustering]   >>Failover Clustering Tools  [RSAT-Clustering]
>>Network Load Balancing Tools  [RSAT-NLB]   >>Network Load Balancing Tools  [RSAT-NLB]
>>SMTP Server Tools  [RSAT-SMTP]   >>SMTP Server Tools  [RSAT-SMTP]
>>WINS Server Tools  [RSAT-WINS]   >>WINS Server Tools  [RSAT-WINS]
Removable Storage Manager  [Removable-Storage] Removed  
RPC over HTTP Proxy  [RPC-over-HTTP-Proxy]   RPC over HTTP Proxy  [RPC-over-HTTP-Proxy]
Simple TCP/IP Services  [Simple-TCPIP]   Simple TCP/IP Services  [Simple-TCPIP]
SMTP Server  [SMTP-Server]   SMTP Server  [SMTP-Server]
SNMP Services  [SNMP-Services]   SNMP Services  [SNMP-Services]
>SNMP Service  [SNMP-Service]   >SNMP Service  [SNMP-Service]
>SNMP WMI Provider  [SNMP-WMI-Provider]   >SNMP WMI Provider  [SNMP-WMI-Provider]
Storage Manager for SANs  [Storage-Mgr-SANS]   Storage Manager for SANs  [Storage-Mgr-SANS]
Subsystem for UNIX-based Applications  [Subsystem-UNIX-Apps]   Subsystem for UNIX-based Applications  [Subsystem-UNIX-Apps]
Telnet Client  [Telnet-Client]   Telnet Client  [Telnet-Client]
Telnet Server  [Telnet-Server]   Telnet Server  [Telnet-Server]
TFTP Client  [TFTP-Client]   TFTP Client  [TFTP-Client]
  New Windows Biometric Framework  [Biometric-Framework]
Windows Internal Database  [Windows-Internal-DB]   Windows Internal Database  [Windows-Internal-DB]
Windows PowerShell  [PowerShell] Integrated  
  New Windows PowerShell Integrated Scripting Environment (ISE)  [PowerShell-ISE]
Windows Process Activation Service  [WAS]   Windows Process Activation Service  [WAS]
>Process Model  [WAS-Process-Model]   >Process Model  [WAS-Process-Model]
>.NET Environment  [WAS-NET-Environment]   >.NET Environment  [WAS-NET-Environment]
>Configuration APIs  [WAS-Config-APIs]   >Configuration APIs  [WAS-Config-APIs]
Windows Server Backup Features  [Backup-Features]   Windows Server Backup Features  [Backup-Features]
>Windows Server Backup  [Backup]   >Windows Server Backup  [Backup]
>Command-line Tools  [Backup-Tools]   >Command-line Tools  [Backup-Tools]
  New Windows Server Migration Tools  [Migration]
Windows System Resource Manager  [WSRM]   Windows System Resource Manager  [WSRM]
  New Windows TIFF IFilter  [TIFF-IFilter]
  New WinRM IIS Extension  [WinRM-IIS-Ext]
WINS Server  [WINS-Server]   WINS Server  [WINS-Server]
Wireless LAN Service  [Wireless-Networking]   Wireless LAN Service  [Wireless-Networking]

 

Lists Comparing Roles and Role Services 

 

New Roles, Role Services

  • >Certificate Enrollment Web Service  [ADCS-Enroll-Web-Svc]
  • >Certificate Enrollment Policy Web Service  [ADCS-Enroll-Web-Pol]
  • >BranchCache for network files  [FS-BranchCache]
  • >Distributed Scan Server  [Print-Scan-Server]
  • >Remote Desktop Virtualization Host  [RDS-Virtualization]
  • >>>WebDAV Publishing  [Web-DAV-Publishing]
  • >IIS Hostable Web Core  [Web-WHC]

Renamed Roles and Role Services

  • Remote Desktop Services  [Remote-Desktop-Services] (Jose: RDS used to be called Terminal Services)
  • >Remote Desktop Session Host  [RDS-RD-Server]
  • >Remote Desktop Licensing  [RDS-Licensing]
  • >Remote Desktop Connection Broker  [RDS-Connection-Broker]
  • >Remote Desktop Gateway  [RDS-Gateway]
  • >Remote Desktop Web Access  [RDS-Web-Access]

Removed Roles and Role Services

  • >>File Replication Service  [FS-Replication]  (Jose: Use DFS-Replication instead. FRS can only be used for specific SYSVOL replication scenarios, see details at http://technet.microsoft.com/en-us/library/cc754297.aspx)
  • UDDI Services
  • >UDDI Services Database
  • >UDDI Services Web Application

 

Lists Comparing Features

 

New Features

  • >Compact Server  [BITS-Compact-Server]
  • >IIS Server Extension  [BITS-IIS-Ext]
  • BranchCache  [BranchCache]
  • DirectAccess Management Console  [DAMC]
  • Ink and Handwriting Services  [Ink-Handwriting]
  • >Ink Support  [IH-Ink-Support]
  • >Handwriting Recognition  [IH-Handwriting]
  • >>>>AD DS Snap-Ins and Command-Line Tools  [RSAT-ADDS-Tools]
  • >>>>Active Directory Administrative Center  [RSAT-AD-AdminCenter]
  • >>>Active Directory module for Windows PowerShell  [RSAT-AD-PowerShell]
  • >>>Remote Desktop Connection Broker Tools  [RSAT-RDS-Conn-Broker]
  • >>>BitLocker Drive Encryption Tools  [RSAT-Bitlocker-DriveEnc]
  • >>>BitLocker Recovery Password Viewer  [RSAT-Bitlocker-RecPwd]
  • Windows Biometric Framework  [Biometric-Framework]
  • Windows PowerShell Integrated Scripting Environment (ISE)  [PowerShell-ISE] (Jose: PowerShell itself is now integrated, this new feature is just the ISE)
  • Windows Server Migration Tools  [Migration]
  • Windows TIFF IFilter  [TIFF-IFilter]
  • WinRM IIS Extension  [WinRM-IIS-Ext]

Renamed Features

  • XPS Viewer  [XPS-Viewer] (Jose: Used to be under the .NET group, now is a separate feature)
  • >>Remote Desktop Services Tools  [RSAT-RDS] (Jose: RDS used to be called Terminal Services)
  • >>>Remote Desktop Session Host Tools  [RSAT-RDS-RemoteApp]
  • >>>Remote Desktop Gateway Tools  [RSAT-RDS-Gateway]
  • >>>Remote Desktop Licensing Tools  [RSAT-RDS-Licensing]

Removed Features

  • >Windows 2000 Client Support  [MSMQ-Win2000]
  • >>UDDI Services Tools  [RSAT-UDDI]
  • Removable Storage Manager  [Removable-Storage]

 

Conclusion

 

I hope this blog post has helped you better understand the changes in the list of Roles, Role Services and Features between Windows Server 2008 and Windows Server 2008 R2. I encourage your to visit http://www.microsoft.com/windowsserver2008/en/us/R2.aspx to see more details on the changes in Windows Server 2008 R2, which go way beyond the names of the Roles, Role Services and Features.

Starting with Windows Server 2008 R2, the ServerManagerCmd command is deprecated. It still works, but you should use the new PowerShell cmdlets for feature management (Add-WindowsFeature, Remove-WindowsFeature and Get-WindowsFeature). You will need to use "Import-Module ServerManager" before using the Server Manager PowerShell cmdlets. Details at http://technet.microsoft.com/en-us/library/cc732757.aspx

More Posts Next page »
 
Page view tracker