Monthly Archives: October 2011

Server 8 – Data Deduplication

Whoa!  As I was poking around just now on another machine I built I ran across this little gem!

**Updated – screenshots!!

1)  From Server Manager, ensure DASHBOARD is selected in the navigation node then select Manage in the top right corner of the window.

2)  Select Add Roles and Features from the context menu.


3)  Press Next on the Before you Begin screen.


4)  From the Select Installation Type screen, confirm that Role-Based or Feature-Based installation is selected.  Press Next.


5)  Select the server you are targetting from the Server Pool pane, then press Next.


6)  From the Select Server Roles screen, place a check beside File Services.  Press Next.


7)  On the Features screen, accept the defaults by pressing Next.


8)  Read the blurb on File Services, then press Next.


9)  On the Select Role Services screen, place a check beside Data Deduplication.  Press Next.


10)  Read the Confirm Installation Selections screen, then press Install if you are certain all looks correct.


11)  You can watch the progess on this screen.


12)  If the installation was successful, press the Close button to exit.


Notice now in Server Manager there is a FILE SERVICES navigation node available!


**Note: If you don’t see this node available after refreshing and you recheck Steps 1-6 and find the File Services box is not checked now – perform the following:

1)  Ensure you have turned on Automatic Updates.

2)  Launch PowerShell, and run the following commands –

> Import-Module ServerManager

> Add-WindowsFeature -name FS-Data-Deduplication

> Import-Module Deduplication

Your File Services Node should now be present.


Setting Up Deduplication on a Volume.

If you select that node, your server should show up in the middle pane with an Activation Status of Not Activated (meaning you have not yet setup any Dedupe).


If you right-click on the server’s line item a context menu appears.  At the top of the menu is an entry for Configure Deduplication Settings.


Here you can enable background optimization and a Primary and Secondary schedule for it to run.  Setup your preferences and press OK to continue.


Again, in the Navigation Node (left pane), you select Volumes to show a list of volumes present.


Right-click any volume (other than the System or Boot) and your option for Configure Deduplication is there.


Selecting this entry opens a screen where you can check Enable Data Deduplication on the Volume.  You can exclude folders and extensions also.  Press OK when you’re done.


Data Deduplication can’t be enabled on the System or Boot Volumes – this is the same as any disk-based service limitation.

This feature is fantastic!  Native De-dupe - finally….



Server 8 – Group Managed Service Accounts

Managed Service accounts were introduced in Server 2008 R2, and while it was a good start, they weren’t useful for what you really wanted to do with them – such as using them as a cluster service account.

Server 8 has improved on these accounts with Group Managed Service Accounts – a new security principal called gMSA. 

With gMSA, you can now have services running on multiple hosts inside your domain using these accounts. 

The requirements are pretty steep, so you would need to determine if using gMSAs would be worth the risk. 

1)  The Schema must be brought up to the Server 8 version.  So, the Forest Root needs at least one Server 8 DC.

2)  Each domain within the Forest requires at least one Server 8 DC.  This is because the gMSA principals need to be run through the Group Key Distribution Service for password management / updates across whatever servers they are being used – which is a new service on Server 8.

3)  Only services running on Server 8 can use these principals.

As was the case with MSAs on Server 2008 R2, only the IIS Application Pools and the Windows Service Control Manager supports these accounts.  Authentication for these accounts can be done against any DC running any version of OS.

These accounts can only be created via Active Directory Administrative Center and their password change interval can be set here at the same time.

Once I get Server Manager working again, I can post a few screen shots!





Ejemplos C#: LINQ – Parte No. 2, cuatro mas ejemplos

Seguimos con los ejemplos de LINQ, ahora entregamos 4 mas. Con el afán de darle continuidad a las solicitudes que nos hicieron después del Webcast del 22 de Octubre:


        [Category("Restriction Operators")]

        [Title("Where - Drilldown")]

        [Description("Este ejemplo muestra como se usa where para encontrar todos los clientes que se encuentran en una ciudad (Guatemala) en especifico y hace un foreach para hacer una sub búsqueda de un cliente en especifico")]

        public void Linq4() {

            List<Customer> customers = GetCustomerList();


            var waCustomers =

                from cust in customers

                where cust.Region == “Guatemala”

                select cust;


            Console.WriteLine(“Clientes en Guatemalas:”);

            foreach (var customer in waCustomers)


                Console.WriteLine(“Cliente {0}: {1}”, customer.CustomerID, customer.CompanyName);

                foreach (var order in customer.Orders)


                    Console.WriteLine(  Orden {0}: {1}”, order.OrderID, order.OrderDate);





        [Category("Restriction Operators")]

        [Title("Where - Indexed")]

        [Description("Este ejemplo muestra como where regresa digitos que su nombre es menor a su valor, ejemplo uno no lo retornaría que ya es 3.")]

        public void Linq5() {

            string[] digits = { “Cero”, “uno”, “dos”, “tres”, “cuatro”, “cinco”, “seis”, “siete”, “ocho”, “nueve” };


            var shortDigits = digits.Where((digit, index) => digit.Length < index);


            Console.WriteLine(“Digitos Cortos:”);

            foreach (var d in shortDigits)


                Console.WriteLine(“La palabra {0} es mas pequeña que su valor.”, d);




        [Category("Projection Operators")]

        [Title("Select – Ejemplo No. 1")]

        [Description("Este ejemplo usa select que produce un secuencia de enteros o ints mayor a los que estan en el arreglo de enteros o ints.")]

        public void Linq6() {

            int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };


            var numsPlusOne =

                from num in numbers

                select num + 1;


            Console.WriteLine(“Numero + 1:”);

            foreach (var i in numsPlusOne) {





        [Category("Projection Operators")]

        [Title("Select - Ejemplo 2")]

        [Description("Este ejemplo utiliza select y retorna una secuencia de nombres de productos.")]

        public void Linq7() {

            List<Product> products = GetProductList();


            var productNames =

                from prod in products

                select prod.ProductName;


            Console.WriteLine(“Product Names:”);

            foreach (var productName in productNames) {







Luis Antonio Alfaro 

follow me:


Download the Sysinternals Suite for a Collection of Windows Troubleshooting Tools

There are a ton of Sysinternals tools for troubleshooting and non-troubleshooting. If you want a collection of troubleshooting tools (very helpful if you’re working outside your PC network at a friends house, a business you’re helping/working for etc.), then you can download the Windows Systinternals Suite. This suite is regularly updated and currently sits at [...]

Sysinternals Live Executes Sysinternals Tools Directly from the Web

In the previous guide, you learned about the Sysinternals tools. In this guide, you’ll learn how to launch Sysinternals tools from the web. This can save valuable time and give you the tools you need when you need them i.e. you’re at a friends house and they’re asking for help with their PC. Launching Sysinternals [...]

Use Windows Sysinternals Tools to Tune and Administer to Your PC

We like using Sysinternals tools here at Windows Guides; these tools bring core Windows functions together and help you administer to your systems more easily. In this guide, we’ll cover the basics: What are the Sysinternals tools? How to download and run these tools on your PC Where can I learn more about these tools? [...]

Kinect for Windows announced

Server 8 – Fine-Grained Password Policy GUI

Since Windows Server 2008 we have had the ability to use more than one Password Policy per domain.  It was less than idea to setup and configure this feature, so many Admins held off.

Now, Server 8 brings us a GUI to manage it.  The only two prerequisites are having Active Directory Administrative Center installed and the Domain Functional level must be 2008 or better.

1)  To get started, launch ADAC.

2)  Create a few Global Groups – add some test users to each.

3)  Select your domain in the Navigation Node panel, and double click the System container in the center panel, then double click on the Password Settings Container.


4)  From this next screen, select New>Password Settings.


5)  On the Create Password Settings screen, fill in the required information.  In the Name field, use something descriptive that you can relate to the purpose of this unique policy.  In my example, I named it the same as the Global Group it would be applied to – this way, I could use the description field in the Group properties to describe more detail of restrictions.  You also have a Description field within the Password Policy that can be used to detail whatever change needs to be applied.  For the Precedence field, start your numbers with enough free numbers between the number you select and 1, so that you give yourself the ability to add policies with higher precedence in the future without the need to change this constantly.  Change any other settings you require, don’t forget to put something in the Description field that is meaningful to the policy details.  When you have completed the policy details, select the Add button under the Directly Applies to panel header.



6)  The standard Select Users or Groups applet appears.  Type in your group name, press Check Names, then OK if the principal resolves to a good name.


7)  From the Create Password Settings screen, press OK if you are finished.  You should now return to the Password Settings Container that shows your new policy in the centre pane.


8)  Any of these policies can be editted by right-clicking the policy and selecting Properties, making the changes then pressing OK.

9)  To delete a policy it is necessary to open it and uncheck the “Protect from accidental deletion” checkbox and pressing OK before you are able to delete it.

More information regarding Fine-Grained Password Policies and how they work can be found here:



Server 8 – ADAC PowerShell History

A really nice feature of ADAC in Server 8 is the ability to visually see what PowerShell code is used to execute any of your tasks within Active Directory Administrative Center (ADAC).  I’m a little old school, but PowerShell is something I have yet to master, so any help I can get building scripts is a bonus.

The only real prerequisite is to have ADAC installed.

1)  From Administrative Tools, launch Acitve Directory Administrative Center.

2)  Create a few test users.

3)  Create a new OU – call it Test1.

4)  Now, if you notice the panel header at the bottom of the window, Windows Powershell History – select the arrow on the right to expand this pane.


5)  Select your domain under the Navigation panel, then double click the Users container in top, center pane.  Select one of your test user accounts – in my example, I selected Mike Smith.  Under the Task panel, select Move.


6)  In the Move dialogue box, select the Test1 OU that you created earlier.  Press OK.


7)  Your user is immediately moved.  Have a look at the lower panel now and scroll to the very bottom until you find a command “Move-ADObject” – expand it, and this is the command that does the work.


8)  If you want to, you can use the right context menu to Select All, Copy or get Help – this will be useful if you plan to build a set of PowerShell scripts for later use.  Note that using “Select All” will select all the commands in the History window.


I think I’m going to be using this feature a lot while I learn PowerShell!



Use PowerShell as a Simple but Useful Calculator [How To]

Ever use the Windows Calculator and, because you’re too lazy to write numbers down or commit them to the calculators “memory”, end up with 5 instances of the program running—each with their own numbers that are easily forgotten? Or is that only me? If you’d like a simple but powerful calculator to perform simple sums, [...]

Recent Comments