Logo
programming4us
programming4us
programming4us
programming4us
Home
programming4us
XP
programming4us
Windows Vista
programming4us
Windows 7
programming4us
Windows Azure
programming4us
Windows Server
programming4us
Windows Phone
 
Windows Server

Windows Server 2003 on HP ProLiant Servers : Logical Structure Design (part 4) - Group Policy

- Windows 10 Product Activation Keys Free 2019 (All Versions)
- How To Bypass Torrent Connection Blocking By Your ISP
- How To Install Actual Facebook App On Kindle Fire
1/30/2013 6:01:38 PM

5. Group Policy

Space limits the discussion here, and again, my goal is to give you design tips rather than educate you on Group Policy. Having worked for the past four years troubleshooting probably hundreds of Group Policy problems, I'll take the perspective of listing best practices and observations, with a few actual examples thrown in. Let's first list important design criteria that you need to keep in mind when defining Group Policy standards, followed by Group Policy tips, and finally a list of important Group Policy additions for Windows Server 2003 and Windows XP.

note

Windows 2000 Group Policy had approximately 700 settings. Windows Server 2003 added nearly 200 additional settings. Windows XP also added a number of settings. It is important to design Group Policy and understand the impact of these settings before you deploy them, by testing. Many options that were only exposed as Registry hacks in Windows 2000 are now easy-to-find Group Policy settings in Windows Server 2003, increasing the probability for error if you aren't careful.


Group Policy Design

Several worksheets in each file correspond to sections of policy such as Security Settings, Administrative Templates, and so on. The worksheets contain all settings listed separately on each row. You can add the names of your GPOs in columns to the right of the setting name, and then enter “enabled” or “disabled”for each setting in each GPO. This takes considerable time on the front end and to maintain, but it will be worth the effort when you want to change something later on, or need to troubleshoot a problem. Rather than wading through the user interface (UI), you can get the information from the spreadsheet. Windows Server 2003 supports a tool called the Group Policy Management Console (GPMC), which reports all the current settings, but doesn't save them in a nice tabular form like the spreadsheet. My recommendation is to use both GPMC and the spreadsheet.

Group Policy applies only to the user or computer where the account actually exists. A common mistake is to think that Group Policies apply to groups; however, a group can be used to set permissions on a Group Policy so that it applies only to users of a group. For instance, Figure 16 shows user Russ, who is a member of the OfficeAdmins group. Russ' user account is in the Marketing OU, which has the MKTGDesktopGPO linked to it, whereas the OfficeAdmins group is in the AppAdmin OU. The GPOs that will be applied are Default Domain Policy and MKTGDesktopGPO. The OfficeAdmin GPO (if linked to this OU) is not applied. This is a basic rule that has existed since the birth of Windows 2000, but many Admins either don't understand it or have forgotten how it is applied.

Figure 16. GPO is applied to the OU where the user or computer account exists. It is not applied to members of groups within an OU.


When designing your GPO strategy, make sure you understand this principal. It's a good idea to make a chart like that shown in Table 3, for tracking GPOs. Identify the function of the policy and whom it applies to, and then identify the domain or OU that those security principals live in.

Table 3. GPO Application Table
GPO NameFunction or DescriptionApplied to (Domain or OU)
UserScripts1Logon scripts for usersFinance-OU, HR-OU
UserScripts2Logon scripts for usersMKTG-OU, Sales-OU
DesktopL1Desktop Lockdown Level (basic—applies to all users)Domain
DesktopL2Restricted (Level 2) Desktop LockdownMKTG-OU, Sales-OU, HR-OU, Finance-OU
SecurityDefine account security settingsDomain (they cannot be applied at OUs)

tip

You might find as you analyze GPO application, that it affects the OU structure. You might see more logical groupings of users and computers when you define GPOs that apply to them, which affects the OU structure. This is part of the design process—make sure it all fits.


Group Policy Features and Limitations

A number of Group Policy features actually impose limitations on the design. Several important features are described here. Take the time to understand their implications in your environment and design the Group Policy deployment accordingly.

Multiple Instances of GPOs

You can link a GPO to multiple OUs if needed, but for performance reasons, you shouldn't link GPOs across domains if your forest has multiple domains. In essence, you are building a GPO library in the AD (per domain) and then you can link them to appropriate OUs.

GPO Functions

As was noted previously, user logon time is directly affected by the number of GPOs that apply to the user, and the computer startup time is affected by GPOs that apply to the computer. Figure 17 shows Microsoft's figures regarding traffic in Kbps generated by the number of GPOs applied to the user.

Figure 17. Performance during client startup (boot) and logon process is related to the number of GPOs applied to the computer and the user accounts.


Note that network traffic increases only slightly as the number of GPOs increases. For example, one GPO (including computer startup and user logon) generated 102Kbps; five GPOs generate 130Kbps and ten GPOs generate only 155Kbps. Considering just user logon performance, you can apply only one or two GPOs containing all settings that you need to configure for the users. However, this makes the GPOs more complex, and more difficult to manage and troubleshoot. It is now a very common and recommended practice to define a number of simple, yet focused GPOs, apply them as needed, and take the hit on performance. Using the numbers in the chart in Figure 17, you can see that there is no difference between having one and five GPOs applied and only 25Kbps per user if you go up to ten. This is miniscule in comparison to the time that will be spent managing and troubleshooting one or two giant policies. 

Using the example in Table 3, the UserScripts1 GPO is applied to the users in Finance and HR OUs. Thus, we store a single GPO and create links to multiple GPOs. Note also that the Finance OU has DesktopL2 as well as UserScripts1 GPOs applied. The alternative, of course, would require us to combine the settings of DesktopL2 and UserScripts1 into a single GPO and apply it to Finance. Because the MKTG OU needs DesktopL2 and UserScripts2, another GPO would have to be created for MKTG OU. Splitting the GPOs up into smaller functions makes them more flexible. Also, if an error occurs in the logon script, you only have to debug the script's GPO and you don't have to deal with desktop settings.

The important thing here is to define the function of each GPO and define which domain(s) and OUs they should apply to.

Account Security Settings

The account security settings, including Password Policy, Account Lockout Policy, and Kerberos Policy, can only be applied at the domain level. Thus, you can have only one Password Age Setting for the entire domain, rather than allowing each OU to dictate this setting to its users. DCs, however, behave differently in applying security.

tip

Account security settings (such as Password Length) can be defined in a GPO at the OU level; however, they will never apply.


Track GPO Settings

I have used columns to the right of the setting label and indicated which GPO uses that setting and what the setting is. A simplistic example is shown in Table 4. You can see from Table 5.4 that defining each setting for each GPO could be prohibitive in a large enterprise with many GPOs, each having potential for nearly a thousand settings. Some organizations have a staff of several Administrators that does nothing but administer GPOs. This is usually a political requirement in which organizations want their own GPO control, but it's a poor administration model. It's difficult to troubleshoot problems with so many Admins making changes, and multiple people trying to solve the problem.

Table 4. GPO Tracking Table
Policy PathDescriptionDefault Domain PolicyDesktop-GPO1Desktop-GPO2
Computer\Administrative-Templates\SystemDo not display Manage Your Server page at logonNot configured EnabledDisabled Not configuredEnabled Not configured

GPO Filtering

GPO filtering is available in Windows Server 2003 just as it was in Windows 2000. GPO filtering allows the Administrator to restrict a GPO from applying to certain users, computers, or groups. For instance, suppose you have a policy applied to an OU that prevents users from accessing the Internet, called InetLockDn Policy. However, there are five users in that OU that need Internet access. Rather than creating a separate OU for those users, you could simply define a filter so that the policy doesn't apply to those five users. This is done from the Group Policy Editor by selecting the Properties button, and then choosing the Security tab in the policies properties page.

Figure 18 shows that we have filtered user Jim Shoos by denying Read and Apply Group Policy rights. In this case, authenticated users still have Read and Apply Group Policy permissions. Thus, the policy applies to all authenticated users except Jim Shoos. Note that we could do the reverse and have the policy apply to only a user or group. Figures 19 and 5.20 demonstrate this. Figure 19 shows that we had to set the authenticated users group to not have Read or Apply Group Policy rights, which means no one will get the policy applied. Then, as shown in Figure 20, we give the rights to the user (Jim Shoos in this case). If you don't remove Read and Apply Group Policy from authenticated users, then all users will have the policy applied to them.

Figure 18. Filtering a GPO to prevent it from applying to a user.


Figure 19. Filtering step 1—Removing Read and Apply Group Policy rights from the authenticated users group so the policy applies to no one.


Figure 20. Filtering step 2—Adding Read and Apply Group Policy rights to a user so the GPO will apply only to that user.


tip

Don't deny access to authenticated users. Because this will be evaluated to provide the most restrictive access, it will prevent any authenticated user from getting the GPO, including the user you want to grant access to. Rather, clear the Read and Apply Group Policy rights to prevent GPO access.


Filtering takes considerable additional processing time to enumerate the Access Control Lists (ACLs) and affects user logon performance. If you have to filter a large number of users from getting a GPO, it might make sense to create a separate OU. Be sure to test the performance hit that users will have if you use filtering.

WMI (Windows Management Instrumentation) Filtering

Windows Server 2003 and the GPMC provide new capabilities for customizing queries using WMI, including the WMIC interface and the WMI filters in Group Policy.The WMI filter in Group Policy basically uses the WMI Query Language (WQL) to allow a WMI query (filter) to be applied from within a policy, and determines whether to apply the GPO to a target computer based on that computer's attributes.  A single filter can contain multiple queries to be evaluated against the WMI repository of the target computer. If the evaluation of all queries in the filter is determined to be FALSE, the GPO is not applied; if they are TRUE, the GPO is applied. Important features and functionality of WMI filtering in Group Policy include

  • Uses WQL.

  • Only one WMI filter can be applied to any single GPO. Multiple filters require additional GPOs. (Note that multiple queries can be defined in a single filter.)

  • A single WMI filter can be linked to multiple GPOs.

  • WMI filters are applied to domain objects.

  • WMI filters only apply to the Windows XP and Windows Server 2003 family of operating systems (OSs). These filters are ignored by Windows 2000 computers and thus the GPO will always apply to them.

  • You must have successfully run the ADPrep/DomainPrep utility in the domain that the WMI filtered GPO applies. A Windows Server 2003 DC need not be installed.

  • Full editing and linking features for WMI filters are contained within the GPMC. WMI filters add additional ways you can filter GPOs. In addition to applying or denying GPO application based on users or groups, as was provided in Windows 2000, Windows Server 2003 permits creation of WMI filters.

The following WMI filter checks to see whether the physical memory of the computer is greater than 128MB, and if so, the GPO will be applied:

Select TotalPhysicalMemory from win32_ComputerSystem
where TotalPhysicalMemory >= 134217728

Using the GPMC, you can define the WMI filter and associate it with a GPOas follows:

  1. In the GPMC, expand Forest – Domains - <domain name>. Under the domain name, you'll see a list of all GPOs followed by OU folders, a Group Policy Object folder, and finally the WMI Filters folder.

note

If the WMI Filters folder is not available, you are running the GPMC tool in a Windows 2000 domain that has not had ADPrep/ForestPrep run in it.


1.
Right-click the WMI Filters folder, and select New. The New WMI Filter dialog box appears.

2.
Click the Add button to display the WMI Query dialog box. In the Query field, enter a valid WMI filter to apply the GPO if the physical memory is greater than 128MB, as shown in Figure 21.

Figure 21. Dialog box for creating a WMI filter in the GPMC snap-in.

3.
Click OK and return to the New WMI Filter dialog box. You can add other WMI filters at this point, but it's best to do one at a time.

warning

Remember, you can apply only one WMI filter to a single GPO, but you can link a single WMI filter to multiple GPOs.


1.
Click the Save button. If the WMI filter you added is correct (syntax, and so on), it is added to the list.

2.
Close the New WMI Filter dialog box and you'll see the filter added under the WMI Filter folder in the left pane of the GPMC.

3.
Click the filter just created and in the left pane, shown in Figure 22, you'll see the WMI filter description at the top and a list of GPOs That Use This WMI Filter at the bottom.

Figure 22. Linking a WMI filter to an existing GPO in the GPMC snap-in.

4.
Right-click in the white area of the GPOs That Use This WMI Filter section and select Add. A list of GPOs is displayed. Select a GPO to have the filter apply to and click OK. To add the filter to additional GPOs, repeat this procedure. You can't add more than one GPO at a time.

You've created a WMI filter on the accounting policy (in the example in the figures) so that this policy only applies to computers that have greater than or equal to 128MB memory. This is similar to the security filtering we did in Windows 2000, in which we could apply or deny a policy only to certain users or groups.

It is critical that you understand there is a price to be paid for WMI filters. Microsoft is very emphatic about the fact that WMI filters should be used sparingly, preferably when the policy in question has a specific lifetime. In addition, evaluating WMI filters can significantly add to the amount of time needed to apply and process policy. These filters also add considerable complexity. Besides the normal Group Policy processing issues like block inheritance, no override, ACL filtering and so forth, now you must contend with WMI filters added to the mix. It is also important to note that since Windows 2000 clients can't ever apply WMI filters, any Windows 2000 clients that receive the policy will always return TRUE when evaluating a WMI query. That is the GPO containing a WMI filter will always apply to Windows 2000 clients.

In terms of troubleshooting, note that the new GPResult.exe and the Group Policy Results option in the GPMC (both give the same information) provide an excellent list of filters that are applied.

Since WMI filters are new to Windows Server 2003, and because many administrators typically aren't skilled in using WMI, I asked Microsoft for some details on how to use WMI filters and some sample filters. Tim Thompson graciously offered the following examples and description.

  • Operating system-based targeting: An administrator wants to deploy an enterprise-monitoring policy but needs to limit the target set to computers running either Windows 2000 Server or Advanced Server.

    The administrator chooses the following filter:

    Root\CimV2; Select * from Win32_OperatingSystem where
    Caption = "Microsoft Windows 2000 Advanced Server"
    OR Caption = "Microsoft Windows 2000 Server"
    
  • Hardware inventory-based targeting: An administrator wants to deploy a new connection-manager but needs to avoid wasting space on desktop computers without modems where the connection manager would be useless. An administrator can deploy the package across the enterprise with the following WMI-filter:

    Root\CimV2;Select * from Win32_POTSModem
    
  • Resource-based targeting: To encourage field engineers and consultants to use documentation, a company wants to make Help systems available directly on users' hard disks. But because users complain that the Help files consume too much space, a manager decides to only deploy the documentation on computers that have at least 600 megabytes (MB) available.

    An administrator can accomplish this with the following WMI filter:

    Root\CimV2; Select * from Win32_LogicalDisk where FreeSpace
    > 629145600 AND Description <> "Network Connection"
    
  • Computer-based targeting: An administrator wants to set up a policy to encrypt all “My Documents” folders on notebook computers. The administrator determines that all the company's notebook computers are HP Pavillion models zd7140 and zx5280.

    To set up the policy, an administrator uses the following WMI filter:

    Root\CimV2; Select * from Win32_ComputerSystem where
    manufacturer = "HP" and Model = "Pavillion zd7140"
    OR Model = "Pavillion 5280"
    
  • Asset tag-based targeting: An administrator wants to set hardware inventory monitoring policy for all computers with an “asset tag” of 300,000-355555.

    To set up the policy, an administrator uses the following WMI filter:

    Root\Cimv2 ; Select * from Win32_SystemEnclosure where
    SMBIOSAssetTag > '300000' AND SMBIOSAssetTag < '355555'
    
  • An administrator wants to apply a policy only on computers that have a specific hot fix or QFE: The administrator chooses the following filter:

    Root\cimv2 ; select * from Win32_QuickFixEngineering
    where HotFixID = 'q147222'
    
  • Test to verify machine is a 32-bit platform: An administrator has a mixture of 32- and 64-bit clients, and wants to apply a policy to only 32-bit platforms. The administrator chooses the following filter:

    Root\Cimv2; Select * from Win32_ComputerSystem
    where SystemType = X86-based PC
    
  • Want to bust users that have a hidden Music share? An administrator wants to apply a policy only on machines where users have a hidden music share. The administrator knows that most users name their music shares Music, Music$, Tunes, or Tunes$. The administrator chooses the following filter:

    Root\Cimv2; Select * from Win32_Share where Name = "Music"
    OR Name = "Music$" OR Name = "Tunes" OR Name = "Tunes$"
    

XP Settings in Windows 2000

Windows XP came with a new set of Group Policy settings that Windows 2000 did not have. Microsoft KB article 314953 “HOW TO User Group Policy to Deploy Windows XP in a Windows 2000-Based Network” describes these settings and the process used to incorporate them in Windows 2000. Essentially, you bring an XP client into the domain, and then edit the local Group Policy, which allows you to upload the XP policy settings to a DC of your choosing in the domain (it provides a browse list of DCs). The settings are then uploaded to the DC and appear when you open a Group Policy Editor in that domain. Note however, that these settings only apply to XP clients; they don't affect Windows 2000 Professional clients. This process of adding the XP settings into the domain's policy settings allows XP settings to be managed with other GPO settings in the domain context. These new XP settings are included in Windows Server 2003 without requiring this process to add them.

Group Policy Tools

Microsoft has made some significant improvements in Group Policy management tools, including GPResult, a command-line utility that has been considerably enhanced in Windows Server 2003, and the GPMC, available for download from Microsoft.

GPResult Tool

Windows 2003 and XP provide a new version of the GPResult tool. GPResult provides a client-side view of the policies that were applied to the computer and the user. Part of the Windows 2000 Resource Kit, GPResult is built-in to XP and Windows Server 2003. The tool provides excellent information not available in the Windows 2000 version including

  • Resultant Set of Policies (RSoP) data: This provides verbose data about the Group Policy extensions.

  • Security settings: The Windows 2000 version simply listed the GPO that the security settings were applied from. The XP/2003 version lists all the individual settings, such as Password Length, Account Lockout, and so on. This is an excellent way to troubleshoot security issues.

  • GPO filtering information: This excellent feature lists all the GPOs that were filtered and not applied to the user or computer. In Windows 2000, the only way to see this was to edit the GPO and look at the ACL.

This version of GPResult can be used in a Windows 2000 domain, but must be run from an XP client or Windows Server 2003 server in that domain. This tool is so valuable for troubleshooting, I actually made one customer buy XP just so I could use the new version of GPResult and shorten the diagnosis time. It really helped.

Group Policy Management Console (GPMC)

Microsoft has also given us another great tool called the GPMC. GPMC is a GUI-based tool available for download from Microsoft at http://www.microsoft.com/downloads/details.aspx?FamilyId=C355B04F-50CE-42C7-A401-30BE1EF647EA&displaylang=en. This tool allows management and troubleshooting of all GPOs in all domains in a forest. Figure 23, for example, shows management for two domains: Qamericas.qtest.cpqcorp.net (top) and Qtest.cpqcorp.net (bottom). Note the left-hand pane shows domains and OUs, and there is also a Group Policy Objects folder for each domain. I have selected the Group Policy Objects folder in the Qtest domain, and all GPOs defined for the domain are listed on the right-hand pane. Windows 2000 required multiple snap-ins to manage GPOs in multiple domains and OUs.

Figure 23. GPMC permits management of the Qtest.cpqcorp.net parent domain and the Qamericas.Qtest.cpqcorp.net child domain.

The GPMC can be used to see the policy settings that are applied to a user or computer. Although it doesn't track the settings like the spreadsheet does, it allows you to see effective settings in an easy-to-use console.

Other important features of the GPMC tool include

  • When GPMC is installed, you cannot open the old Group Policy Editor using AD Users and Computers, Domain or OU Properties, Group Policy tab. If you try to do it this way you will get a notice that GPMC is installed and you must use it instead. That notice provides an option to select to launch GPMC. GPMC can also be launched from Administrative Tools or by going to Start-Run and entering gpmc.msc.

  • You can define settings using the Group Policy template just as in the old Group Policy Editor.

  • GPMC allows a tabular view of all GPOs showing the link status, if WMI filtering is applied, when it was modified, and the owner, as shown in Figure 24. The Delegation tab shows who has GPO Modification rights. Note that the GPO “testing link” has the user configuration settings disabled.

    Figure 24. GPMC shows GPO link status, WMI filters applied, last modified date, and the owner, in a single view.
  • Provides an easy-to-read listing of all applied settings for a GPO. Figure 25 shows the Domain EA Child Restriction Policy settings. Note the friendly Web-like presentation. At the right of each policy setting is a link to hide/show. Clicking the hide link toggles it to show and displays all the settings that are defined for that GPO. In this figure, some settings such as the Audit Policies have been exposed. This is a huge timesaver because the Administrator doesn't have to drill down through each category looking for enabled or disabled settings.

    Figure 25. GPMC displays all settings for any selected GPO and allows for modification of those settings.
  • Displays security and WMI filters. Figure 26 shows that the InetLockDn Policy is applied to domain users. You also can add and remove security principles on this screen.

    Figure 26. GPMC shows all successfully applied policies to a user or group.
  • Lists GPO-related events from the Event Viewer, security properties for each GPO, GPO properties, and delegations.

  • Group Policy Results feature allows you to run GPResults for any user on any computer and display the report in GPMC. This allows you to diagnose a user's GPO problems without having to use his computer or account to log in, and then run gpresult.exe. This is a powerful troubleshooting tool.

  • Group Policy Modeling allows you to analyze a “what if” scenario. That is, you can get a report on how application of a new GPO would affect users or computers before actually applying it!

  • The Save As feature is another powerful troubleshooting tool that allows you to save the GPMC report—the settings, security, and so on—as an HTML file. A support engineer can then open up that file and view the information just as you see it in the GPMC. Another huge timesaver for troubleshooting.

  • It's free!

Furthermore, a major benefit of GPMC is that it allows the Administrator to back up and restore GPOs in a forest or even in a multiforest environment. Without using GPMC, acci dentally deleted or badly misconfigured GPOs would otherwise have to be manually re-created or recovered via a complex SYSVOL restore.

You can see that GPMC is a very powerful tool. Considerable documentation is available from Microsoft. The easiest way to find it is to go to the “Enterprise Management with the Group Policy Management Console” Web page at http://www.microsoft.com/windowsserver2003/gpmc/default.mspx#XSLTfullModule122121120120, or simply search for “GPMC” on the Microsoft Web site.
Other -----------------
- Microsoft Dynamics GP 2010 : Preventing Errors in Dynamics GP - Ensuring proper year-end closing by checking Posting Types
- Microsoft Dynamics GP 2010 : Preventing Errors in Dynamics GP - Preventing account selection errors with Chart Segment names
- Monitoring Windows Small Business Server 2011 : Using Windows SBS Console Monitoring (part 3) - Creating and Viewing Reports
- Monitoring Windows Small Business Server 2011 : Using Windows SBS Console Monitoring (part 2) - Using Notification Settings
- Monitoring Windows Small Business Server 2011 : Using Windows SBS Console Monitoring (part 1) - Using the Network Essentials Summary
- System Center Configuration Manager 2007 : Operating System Deployment - Boot Images
- System Center Configuration Manager 2007 : Operating System Deployment - Site Systems
- BizTalk Server 2006 : Pipeline Component Best Practices and Examples - The Databased Disassembler
- BizTalk Server 2006 : Pipeline Component Best Practices and Examples - Using PGP (part 2) - PGP Decode Component
- BizTalk Server 2006 : Pipeline Component Best Practices and Examples - Using PGP (part 1) - PGP Encode Component
 
 
Top 10
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 2) - Wireframes,Legends
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 1) - Swimlanes
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Formatting and sizing lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Adding shapes to lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Sizing containers
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 3) - The Other Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 2) - The Data Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 1) - The Format Properties of a Control
- Microsoft Access 2010 : Form Properties and Why Should You Use Them - Working with the Properties Window
- Microsoft Visio 2013 : Using the Organization Chart Wizard with new data
Popular tags
Microsoft Access Microsoft Excel Microsoft OneNote Microsoft PowerPoint Microsoft Project Microsoft Visio Microsoft Word Active Directory Biztalk Exchange Server Microsoft LynC Server Microsoft Dynamic Sharepoint Sql Server Windows Server 2008 Windows Server 2012 Windows 7 Windows 8 windows Phone 7 windows Phone 8
programming4us programming4us
Celebrity Style, Fashion Trends, Beauty and Makeup Tips.
 
programming4us
Windows Vista
programming4us
Windows 7
programming4us
Windows Azure
programming4us
Windows Server