An RDP connection to the Azure RemoteApp custom VM fails with the following error: “No Remote Desktop License Servers available”

August 30, 2016 at 3:35 pm in Azure, Azure PowerShell, Azure RemoteApp, RDP, W2K12R2 by Wim Matthyssen

A while ago I was setting up Azure RemoteApp at a client. After creating the custom image, I was unable to connect to the newly created Azure IaaS virtual machine (VM) with RDP. The below Remote Desktop Connection error popped up:

clip_image001

The error is caused because the 120-day licensing grace period for the Remote Desktop Server role has expired and you need to install licenses. Which in my opinion is really strange because it’s a new VM created from the Windows Server RDSHwO365P image available at the Azure Marketplace. This being said below you can found out how I finally was able to connect to the VM with RDP.

1) First of all, save a local copy of the RDP file from the Azure portal. I saved it under the C:\Temp folder on my laptop

clip_image003

clip_image005

clip_image007

2) Open Windows PowerShell ISE as an Administrator and run the following PowerShell command prompt to connect. This command will disable licensing for just that connection (change AZUTST by your own RDP file name):

clip_image009

Be aware that only 2 connections are possible at the same time when using /admin.

3) Like you can see below, by using /admin I was able to connect to the VM

clip_image011

clip_image012

clip_image013

clip_image015

This concludes this blog post, hope it helps!

Wim Matthyssen (@wmatthyssen)

A list of tools that can be used to do a V2V from VMware to Hyper-V

August 4, 2016 at 11:49 am in Hyper-V, MVMC, SCVMM 2012 R2, V2V, VMware by Wim Matthyssen

From time to time clients ask me to convert VMware virtual machines (VM) to Hyper-V VMs. Briefly said to do a virtual-to-virtual (V2V) migration.

clip_image002

Most of the times those clients have System Center Virtual Machine Manager 2012 R2 (SCVMM) in place, which can perform those migrations with ease. You can find how you can do this by using SCVMM via following Microsoft TechNet article: https://technet.microsoft.com/en-us/library/gg610672(v=sc.12).aspx

But there are also clients who don’t make use of the System Center Suite, mostly because of the price or because they have a small environment. Therefore, other tools need to be used for these V2V migrations. In this blog post I will list up some of those tools (Microsoft and third party), all with their pros and cons.

Before I start listing them up, I would like to draw your attention to some things you should keep in mind:

  • Always check the current VMware ESX version -> not all tools migrate all versions of ESX
  • Check the guest OS version -> not all tools migrate all versions of the guest OS installed
  • Be aware that almost every migration process will introduce downtime -> no “warm migration”, VMware VM down, Hyper-V VM up
  • Hyper-V GEN 1 VMs -> Only an IDE disk can be used to boot a VM, no SCSI boot from VHD
  • Hyper-V GEN 1 VMs -> Never configure a paging file on a VHD connected to a SCSI Controller
  • Hyper-V GEN 2 VMs -> Only supports the following Windows guest operating systems (OSs): Windows Server 2012 R2, Windows Server 2012, 64-bit versions of Windows 8.1 and 64-bit versions of Windows 8

Below you can find the list of the different V2V migration tools:

1) Microsoft Virtual Machine Converter (MVMC) 3.0

Download link: https://www.microsoft.com/en-us/download/details.aspx?id=42497

Microsoft TechNet article: https://technet.microsoft.com/en-us/library/dn873998(v=ws.11).aspx

Pros:

  • Free
  • Automation via PowerShell
  • Can integrate with System Center Orchestrator (SCORCH) 2012 R2
  • VM and physical server (online) conversion
  • Not only Hyper-V but also Microsoft Azure is available as migration destination
  • Uninstalls VMware tools before an online conversion (VMware tools will not be uninstalled when an offline conversion is used)

Cons:

  • No GEN 2 VM support

2) 5nine V2V Easy Converter 6.5 free version

Download link: http://www.5nine.com/vmware-hyper-v-v2v-conversion-free.aspx

Pros:

  • Free
  • GEN 2 VM support
  • Ability to override the number of vCPUs and the available vMemory
  • Remap the vNetwork
  • Ability to override the VM start/stop/delay actions
  • Automatic conversion into a Highly Available Hyper-V VM is available
  • Faster than MVMC

Cons:

  • No automation trough PowerShell for the migration process in the free edition (only in the payed edition)
  • Does not remove VMware tools automatically

3) StarWind V2V Converter

Download link: https://www.starwindsoftware.com/converter

Pros:

  • Free
  • Converts VMs from any format (VMDK, VHD, VHDX, …) to another

Cons:

  • Requires registration in order to download it
  • Does not remove VMware tools automatically

Before ending this post, I also want to mention the Disk2vhd tool which enables you to do a physical-to-virtual (P2V) migration. You can dowload it via following link: https://technet.microsoft.com/en-us/sysinternals/ee656415.aspx

You can also read all about how to use this tool in a blog post I wrote some time ago: http://scug.be/wim/2015/01/22/how-to-perform-a-p2v-with-disk2vhd/

Like you can see you have several tools you can use, all with their advantages and possible disadvantages. Newer versions of those tools mostly include new features and add support for more OSs. I mostly prefer to use MVMC if SCVMM is not available to do the migration, but off course the choice is all yours. Hopefully this list helps, till next time!

Wim Matthyssen (@wmatthyssen)

Clean up Azure PowerShell when using different Azure subscriptions

July 27, 2016 at 12:34 pm in Azure, Azure PowerShell, Azure subscription, Cloud, PowerShell by Wim Matthyssen

Hi all,

These days I’m working on several Azure projects for different clients. As a result, my default subscription data file which is used by Azure PowerShell is completely filled up with settings from those different subscriptions. Frequently, I notice that Azure PowerShell mixes up all this information and does not perform as expected. I strongly assume this is caused by the cached credentials and other elements. In order to fix this, I regulary clean up my Azure PowerShell to have a better overview and to accomplish a better working scripting environment. Below you can find the Azure PowerShell cmdlets to clear a specific customer’s Azure subscription from Azure PowerShell. I will also show you how you can clear your complete Azure profile.

Delete a specific Azure subscription from PowerShell

1) Open up PowerShell ISE as an Administrator and run the following PowerShell cmdlets to list all Azure subscriptions available in the default subscription data file on the computer in use, which can be found under the following location C:\Users\%username%\AppData\Roaming\Windows Azure PowerShell and is named AzureProfile.json

clip_image002

2) To delete a specific subscription from the date file run the below cmdlet (adjust for your own purpose). You may be sure that this cmdlet will not delete the subscription from Azure in any way. You can use this cmdlet with the -Force parameter to suppress the confirmation prompt

clip_image004

3) If the above cmdlet ran without any errors the specific subscription will not be shown anymore when you’re re run the Get-AzureSubscription cmdlet and it should also be cleared from the subscription data file

Clear your complete Azure Profile

1) Open up PowerShell ISE as an Administrator and run the following PowerShell cmdlets to completely clear your Azure Profile on the computer in use

clip_image006

2) If the cmdlet ran without any errors your Azure Profile should be cleared.

This ends this short blog post, hope it helps and till next time!

Wim Matthyssen (@wmatthyssen)

Client Hyper-V – Using nested virtualization to run Client Hyper-V on a Windows 10 VM

July 18, 2016 at 7:37 pm in Client Hyper-V, Hyper-V, Nested Virtualization, PowerShell, W2K16 TP5, Windows 10 by Wim Matthyssen

From Windows 10 build 10565, Microsoft added a long awaited feature called nested virtualization. This technology will allow you to run Hyper-V inside of a virtual machine (VM) running on a Windows 10 (Client Hyper-V) or Windows Server 2016 host. In other words, in the simplest configuration it enables you to install Hyper-V in a guest VM, whit the possibility to create and also run VMs on top of that Hyper-V host VM. Completely different than the previous situation with Windows Server 2012 R2 or Windows 8.1, were you could create the VMs, but weren’t able to actually start them. This new feature kind of creates a second virtualization layer, like shown in the detailed screenshot below.

clip_image002

This new technology is very useful when you are setting up a test/lab environment because there is no need to buy a lot of expensive hardware anymore, it simply can run on top of your notebooks OS. It also comes in handy whenever you want to train you’re failover clustering or even your System Center skills. But it’s main purpose and probably Microsoft’s main reason to finally created this feature, is to enable you to work with Hyper-V containers (operating system level virtualization). If you’re interested in reading more about this type of containers you can do so via following link: https://msdn.microsoft.com/en-us/virtualization/windowscontainers/management/hyperv_container

Now before we start playing around with this new feature, I will first list up some things you should really keep in mind:

  • The Hyper-V host must be running at least Windows 10 build 10565 or Windows Server 2016 Technical Preview (TP) 4
  • An Intel processor with Intel VT-x (AMD-V is not supported yet) and EPT technology is needed to be able to use Hyper-V
  • Currently only Hyper-V is supported, all other hypervisors like for example vSphere ESXi will fail to run
  • Be aware that some VM features are not supported or will fail: Dynamic Memory, applying checkpoints, Live Migration and save/restore, hot memory resizing
  • The VM should have more than 1 vCPU
  • At least 4 GB RAM should be attached to the VM
  • MAC address spoofing must be enabled on the NIC attached to the VM
  • If you’re using Windows 10 Enterprise as the host, you should turnoff Virtualization Based Security (VBS) because it will prevent the use of nested virtualization
  • Plenty of available RAM is needed (at least more than 4GB of RAM is preferred to get started)

After going through the theory it’s now time to get our fingers wet and get everything up and running. I will walk you through all the different steps needed to use this feature on a Windows 10 Enterprise computer. In my example I will setup a generation 1 VM (Windows 10) with a PowerShell script to test the nested virtualization scenario. So off we go.

1) First of all, you should check your windows version (should be build 10565). Click run and type winver

clip_image003

clip_image004

2) Create two internal virtual switches, one is to use your wireless card and the other one will be used in a later step as a Hyper-V vSwitch inside the VM

clip_image006

3) To install the VM, run the following PowerShell script (customize to your need).

clip_image008

clip_image010

4) Go through the Windows Setup Installation Process on the newly created VM

5) When installation is completed shutdown the VMs and run following PowerShell commands on the Windows 10 computer (host) to set the Virtualization Extension for the vCPUs and to enable MAC spoofing on both VMs. Be aware a warning message will appear that Nested Virtualization is an unsupported preview feature. When both commands ran successfully start up the Windows 10 VM

clip_image012

6) To configure the W10-TST VM and to install the Client Hyper-V role with all tools, run the following PowerShell script (customize to your need). Connect to the VM with a Virtual Machine Connection with Enhanced session enabled

7) To create an external virtual switch on W10-TST, logon to this sever with RDP and run the following PowerShell cmdlet as administrator (customize to your need)

clip_image014

8) To create a nested VM named VM1-NESTED on W10-TST, logon to this VM with RDP and run the following PowerShell script as administrator (customize to your need)

clip_image016

9) Go through the Windows Setup Installation Process on the newly created nested VM named VM1-NESTED on W10-TST

10) If the installation is successful, you should now have a nested VM running like in the screenshot below

clip_image018

This concludes this blog post. Keep tuned and I’ll be back soon.

Wim Matthyssen (@wmatthyssen)

Microsoft Azure Backup Server: Install a new version of the Microsoft Azure Recovery Services Agent

July 12, 2016 at 3:06 pm in Azure, Azure Backup, Cloud, hybrid cloud, Microsoft Azure Backup Server by Wim Matthyssen

Hi all,

Some time ago a client received following alert on his Microsoft Azure Backup Server (MABS):

“Azure Backup raised the following alert for the subscription in use: (ID 33406). A new version of Windows Azure Backup Agent is available. You can review details about the new version and download it from http://go.microsoft.com/fwlink/p/?LinkId=229525. (ID 100083) More information

Like you all can read this alert was raised because there is a new version of the Azure Backup Agent available. In the Event Viewer on the MABS server you can also find following Warning message under the Application and Services Logs, CloudBackup, Operational:

“A newer version of Microsoft Azure Recovery Services Agent is required.”

clip_image002

To install this new agent the following steps were taken:

1) Check the current Azure Backup Agent Version. To do so open the MABS console and click Management. Under Online you can find the Azure Backup agent version. Like you can see in the screenshot below for the moment version 2.0.9032.0 is installed

clip_image003

2) Download the latest version of the agent via following link: https://support.microsoft.com/en-us/kb/3162327 . Go to the section Update information were you can find the update package for agent version 2.0.9037.0 In my example I saved it under the Temp folder

clip_image005

clip_image007

3) Go to the Temp folder and Run the MARSAgentInstaller as administrator

clip_image009

4) If the UAC screen pops up, click Yes

clip_image010

5) To continue installing the update, click Next

clip_image012

6) If all required software is in place, click Upgrade. This will start the upgrade process

clip_image014

clip_image016

7) When the Upgrade is successful click Finish

clip_image018

8) If you check the Azure Backup Agent version again, you can see version 2.0.9037.0 is installed

clip_image019

9) You can also verify the current version by opening Run and typing appwiz.cpl to open Programs and Features. Look for the Microsoft Azure Recovery Services Agent which should have version 2.0.9037.0

clip_image020

clip_image022

10) Be aware that by default the Warning message will stay there for 30 days. To clear this message after the update you can inactivate it by right clicking the message and selecting Inactivate alert or by rebooting the MABS server several times (3 times at least)

clip_image023

This concludes this blog post, hope it helps!

Wim Matthyssen (@wmatthyssen)

Replica DCs on Azure – Removing the Azure Endpoints

June 21, 2016 at 10:04 am in Azure, Azure Endpoints, Cloud, DC, hybrid cloud, IaaS, PowerShell, RDP, Replica DC, W2K12R2 by Wim Matthyssen

This blog post is part of the step-by-step to deploy replica DCs on Microsoft Azure which can be found here: http://scug.be/wim/2015/09/28/deploying-replica-dcs-in-windows-azure/

All VMs that you create in Azure can automatically communicate using a private network channel with other VMs in the same cloud service or VNet. However, other resources on the Internet or resources from other VNets require endpoints to handle the inbound network traffic to those VMs. That’s why when you create a new Azure  IaaS v1 VM (Azure Service Manager deployment model), Azure automatically creates two endpoints: Remote Desktop and Windows PowerShell Remoting. Both endpoints consist of a protocol (TCP or UDP) and have a public (for example 54036) and a private (for example 3389) port. The public port is used by the Azure load balancer to listen for incoming traffic to the IaaS VM from the Internet. The private port on the other hand is used by the IaaS VM itself to listen for incoming traffic to an application or service running on the VM.

After the creation of this new VM it’s possible to create additional endpoints if needed. The VM deployment wizard provides pre-defined endpoint configurations not only for Remote Desktop and PowerShell, but also for SSH, FTP, SMTP, DNS, HTTP, POP3, IMAP, LDAP, HTTPS, SMTPS, IMAPS, POP3S, MSSQL and MySQL. If the needed service isn’t in this list,  you can also  also create your own service endpoint and define the protocols and ports needed.

You can manage and isolate the incoming traffic to the public ports of these endpoints by configuring access control list (ACL) rules. By using ACLs, you can for example, only permit access to a specific service from a set of trusted hosts or networks.

However, for security best practices, it’s always advisable when an IaaS VM is configured and a Site-to-site VPN (S2S) exists, to remove all endpoints you don’t need (like RDP) and only to use them when their really needed (for example to access a IIS hosted website from the Internet on port 443). When the S2S is in place, you can connect to the VM through the use of the standard local RDP port (3389) via the secure IPsec VPN tunnel instead of connecting over the public Internet.

In this blog post I will show you how you can delete the RDP and PowerShell endpoint manually by making use of the Azure Classic Portal (AZGR-DC-01) and how to do it with the use of Azure PowerShell (AZGR-DC-02). So, let’s get started.

Manually remove the Azure Endpoints through the Azure Classic Portal

1) Logon to the Azure Classic Portal as a Service administrator or Co-administrator

2) In the navigation pane, click VIRTUAL MACHINES and then click the name of the VM where the endpoint needs to be deleted (AZGR-DC-01)

clip_image002

3) Select ENDPOINTS

clip_image004

4) Select the Remote Desktop endpoint and click DELETE

clip_image006

5) Select YES when asked Are You sure that you want to delete endpoint Remote Desktop? This will start the deletion process

clip_image008

clip_image010

clip_image012

6) When the Remote Desktop endpoint is successfully deleted, you can test or you’re still able to RDP to the VM over the Internet. First of all, like you can see the CONNECT button is disabled

clip_image014

7) If we try to connect through the previously downloaded RDP file, no connection is possible

clip_image016

clip_image017

clip_image018

clip_image019

8) However, when we logon to GR-DC-01 and open mstsc via Run, we are still able to RDP to AZGR-DC-01 like it should, because we connect over the internal network

clip_image021

clip_image022

clip_image024

9) You can also repeat the above steps, to delete the Remote PowerShell endpoint

 

Remove the Azure Endpoints through the use of Azure PowerShell

1) Open Windows PowerShell ISE, logon with your Azure account and select the correct Azure Subscription

2) Run following Azure PowerShell cmdlet:

clip_image026

3) Run following cmdlet to check the existing endpoints for the VM

clip_image028

4) Like you can see only the Remote PowerShell endpoint still exists, which we also can verify in the Azure Classic Portal

clip_image030

5) To delete the PowerShell endpoint run following cmdlet:

clip_image032

6) After running this cmdlet no endpoint longer exist for the AZGR-DC-02 VM

clip_image034

clip_image036

That ends the final part of this series. If had a lot of fun while writing these series and I really hope, it’s useful for some people. If someone has any questions about the series or a specific part of it, you can always contact me through my Twitter handle.

Till next time!

Wim Matthyssen (@wmatthyssen)

Replica DCs on Azure – Switch DNS servers for the VNet

June 17, 2016 at 7:18 am in Azure, Cloud, DC, DNS, hybrid cloud, IaaS, Replica DC, W2K12R2 by Wim Matthyssen

This blog post is part of the step-by-step to deploy replica domain controllers (DCs) on Microsoft Azure which can be found here: http://scug.be/wim/2015/09/28/deploying-replica-dcs-in-windows-azure/

After we successfully installed both IaaS virtual machines (VMs) as DCs there are still some Azure related actions we can perform. One of them is changing the DNS servers used in the VNet (AZU-VNET-01) to primary use the DNS installed on both IaaS DCs. By doing this we will minimize the data (DNS related actions) out of the Azure data center, which will reduce Azure network costs. We can do this changes through use of the Azure Classic Portal or via the network configuration file (NetworkConfig.xml). I will show both steps below, so let’s get started.

By making use of the Azure Classic Portal

1) Logon to the Azure Classic Portal as a Service administrator or Co-administrator

2) In the navigation pane, click Networks and then click the name of your VNet (AZU-VNET-1)

image

3) Click Configure

image

4) In the dns servers section, delete the on premise DC (GR-DC-01) by clicking the X next to the IP ADDRESS

image

image

5) To add and register both Azure IaaS DNS servers (AZGR-DC-01 and AZGR-DC-02) with the VNet and Azure, just type their name and IP Address in the boxes. I will also add the on premise DNS server (GR-DC-01) as third failback DNS server. When added click Save

image

6) When asked click YES, this will start updating the VNet

image

image

7) When finished successfully, click OK

image

image

8) When the DNS list is updated, we must restart all IaaS VMs (AZGR-DC-01 and AZGR-DC-02) connected to the VNet, so they can pick up the new DNS settings

Before the reboot:

image

After the reboot:

image

9) To check if DNS is working like it should after the changes, ping the on premise DC (GR-DC-01). If all is OK, you should get replies like shown it the below screenshot

image

By making use of the network configuration file

1) Logon to the Azure Classic Portal as a Service administrator or Co-administrator

2) In the navigation pane, click Networks, click the name of your VNet (AZU-VNET-1) to select it and at the bottom of the screen click EXPORT

image

3) Select your SUBSCRIPTION and click het check mark button

image

4) The NetworkConfig.xml file will be downloaded. When finished click View downloads

image

5) Click Open folder

image

 

6) Right click the NetworkConfig.xml file and select Edit

image

 

7) You can see in the original file there is just one DNS servers used (GR-DC-01 – 192.168.2.4)

image

8) Change the DNS servers like in the screenshot below and save the file

image

9) Go back to the Azure portal, click NEW at the bottom, click NETWORK SERVICES, click VIRTUAL NETWORK and then click IMPORT CONFIGURATION

image

10) Browse the changed NetworkConfig.xml file and click the arrow

image

 

11) Verify the changes and press the check mark button at the bottom if all is fine

image

12) The import will start

image

13) When the import is successfully finish press the OK button

image

14) Like you can see, the DNS servers (AZGR-DC-01 and AZGR-DC-02) are added

image

15) Reboot all IaaS VMs connected to the VNet to adjust their DNS settings

That ends this part of the series. I hope it’s useful, till next time!

Wim Matthyssen (@wmatthyssen)

Replica DCs on Azure – Transferring FSMO roles to the IaaS DCs

June 16, 2016 at 7:27 am in Azure, Cloud, DC, FSMO, hybrid cloud, IaaS, PowerShell, Replica DC, W2K12R2 by Wim Matthyssen

This blog post is part of the step-by-step to deploy replica domain controllers (DCs) on Microsoft Azure which can be found here: http://scug.be/wim/2015/09/28/deploying-replica-dcs-in-windows-azure/

After we successfully installed both IaaS virtual machines (VMs) as DCs and verified everything was running smoothly (time synchronization included) there is still one AD related action we can perform, namely transferring the Flexible Single Master Operation (FSMO) roles between the on premise DC and the ones running on Azure.

Like you probably all know, some of these FSMO roles (5 in total) are rarely used, such as the Schema and Domain naming Master roles, while others are highly used, such as the PDC emulator and Relative ID (RID) Master role. One thing to keep in mind is that each FSMO role only exists once in the domain and forest. When the entire domain is running on Microsoft Azure it’s completely logical that all FSMO roles are ran on a single Azure IaaS DC or split over different Azure IaaS DCs. However, in most production environments a hybrid (combination of on premise and Microsoft Azure resources) cloud scenario is used. In this case you should see Azure as any other secondary site and the placement of the FSMO roles should be treated in that way. Therefore, always assess all pros and cons before moving certain or all FSMO roles to a DC running as an Azure IaaS VM. In either case, I will show you how you can transfer all or some of the FSMO roles to one of the DCs running on Azure. In my examples all these transfers are done by use of the GUI, but you can also use the command-line tool Ntdsutil.

To transfer the FSMO role(s), a user must be a member of the following group(s):

image

Transfer the Schema Master role (GUI)

1) Logon to one of the Azure IaaS DCs (AZGR-DC-01), open the Schmmgmt.dll library by opening Run and typing:

image

2) Press OK if the installation is succeeded

image

3) Also from the Run command open an MMC Console by typing mmc

image

4) On the Console menu, press Add/Remove Snap-in, select Active Directory Schema, click Add> and press OK

image

5) Right-click the Active Directory Schema icon and press Operation Master…

image

6) Click Change

image

7) Click Yes

image

8) Click OK

image

image

Transfer the Domain Naming Master role (GUI)

1) Logon to one of the Azure IaaS DCs (AZGR-DC-02), open Administrative Tools and click on Active Directory Domains and Trusts

image

2) Right-click the Active Directory Domains and Trusts icon and press Operation Masters…

image

3) Press the Change button

image

4) Press Yes to confirm the change

image

5) Press OK

image

image

Transfer the RID Master, PDC Emulator and Infrastructure Master role (GUI)

  • The RID master role and the PDC emulator role should be owned by the same DC as a best practice

1) Logon to one of the DCs running on Azure (AZGR-DC-01 or AZGR-DC-02) trough RDP, open Run and type dsa.msc and press OK

image

2) When the Active Directory Users and Computers window is opened right click the domain and click Operations Masters…

image

3) In the Operations Masters window, each tab will show you who the current Operations master is for a specific FSMO (RID, PDC and Infrastructure). For example, the RID Operations master is shown in the screenshot below

image

4) To transfer the role just press Change…

image

5) Select Yes

image

6) Press OK

image

7) Like you can see the role is transferred to AZGR-DC-02

image

8) If you want to transfer another role for example to AZGR-DC-01, select Active Directory Users and Computers and select Change Domain Controller…

image

9) Select AZGR-DC-01 out of the list and press OK. This will switch the DC

image

image

10) Now repeat steps 2 till 6 to switch the Infrastructure role to AZGR-DC-01

image

Check the location of all FSMO roles (PowerShell)

1) Logon to one of the DCs running on Azure (AZGR-DC-01 or AZGR-DC-02) trough RDP and open PowerShell as an Administrator

2) Run following command (save as .ps1 or run directly)

image

That ends the this part of this series. Please continue through the rest of the series to complete the setup (if all are available). Till next time!

Wim Matthyssen (@wmatthyssen)

Replica DCs on Azure – Manage the Time Configuration settings on the DCs

June 15, 2016 at 1:46 pm in Azure, Cloud, DC, hybrid cloud, IaaS, PowerShell, Replica DC, Time Service, W2K12R2 by Wim Matthyssen

This blog post is part of the step-by-step to deploy replica domain controllers (DCs) on Microsoft Azure which can be found here: http://scug.be/wim/2015/09/28/deploying-replica-dcs-in-windows-azure/

Because time management is one of the most critical things to take care of in an AD domain, I will discuss this topic in this part of the series. Like you probably all know, all DCs should be in time synchronization with the DC holding the PDC Emulator role. This DC is responsible for the time in the AD environment. Therefore it’s a best practice to manually set this server to synchronize his time with an external time source on the Internet (time.windows.com, be.pool.ntp.org, us.pool.ntp.org, …). In their place all other DCs sync their time with the this PDC Emulator.

Other than the DCs, all member servers and workstations will sync time with their authenticated DC. Be aware that when the local time of a server or workstation is out of sync (more than 5 minutes – default setting) Kerberos authentication will fail and users won’t be able to login. Besides all that, time stamps are also used in AD replication process. Below I will list some commands you can run in PowerShell, which will manage the time configuration settings on the DCs. Some oh these commands can also be used on a member server or even on a workstation. I hope you have some time to go through it.

 

 

* Picture source: https://technet.microsoft.com/en-us/library/cc773013.aspx

Check and set the Time Zone on a DC (PowerShell):

1) Logon to one of the DCs, open PowerShell and check the Time Zone via following cmdlet:

clip_image003

2) To set the time zone, run following command:

clip_image005

Set the DC which holds the PDC Emulator role to synchronize time with an external time server (PowerShell):

1) To find the server who holds the PDC Emulator FSMO role run following PowerShell command:

clip_image007

2) Logon to the DC holding the PDC Emulator role (GR-DC-01), open PowerShell As an Administrator and run the below command to check the current time against an external time server (time.windows.com):

clip_image009

3) The following command needs to be run on the PDC Emulator (GR-DC-01). Logon to an Azure DC, open PowerShell as an Administrator and run the below command to set the current time in synchronization with an external time server (time.windows.com):

clip_image011

4) The following command needs to be run on the Azure IaaS DCs (or all other DCs not holding the PDC Emulator role). Logon to an Azure DC (AZGR-DC-01), open PowerShell as an Administrator and run the below command to set the current time in synchronization with the PDC Emulator (GR-DC-01):

clip_image013

5) To check if all if the time settings are applied correctly, open up PowerShell (as admin) again and run following command. If you run this on the PDC Emulator and on another DC, you should see different settings under [TimeProviders] if all is configured well:

clip_image015

clip_image017

This concludes this part of the series, but if you’re interested in reading more about the Windows Time Service you can do so via following Microsoft TechNet article: Windows Time Service Technical Reference

Till next time!

Wim Matthyssen (@wmatthyssen)

Replica DCs on Azure – Domain Controller Health Check

June 15, 2016 at 9:56 am in Azure, Cloud, Command-line, hybrid cloud, IaaS, PowerShell, Replica DC, W2K12R2 by Wim Matthyssen

This blog post is part of the step-by-step to deploy replica domain controllers (DCs) on Microsoft Azure which can be found here: http://scug.be/wim/2015/09/28/deploying-replica-dcs-in-windows-azure/

After we successfully installed and promoted both IaaS virtual machines (VMs) as DCs it’s time to do an overall health check of your hybrid active directory (AD) environment. Below I will show you some tools you can use to perform these checks. Probably it’s not a complete list but it gets you started.

Check Windows Update for the latest updates (GUI)

It’s always advisable when you install new roles on a server to check for new Windows updates after the completion of the installation. To check and install new updates, follow the steps below:

1) To open the Windows Update page, logon to one of the DCs, open Run and type:

image

2) Click Check for updates and if updates are available, install all preferred updates

Check the Event Viewer (GUI)

Another important tool to advise when you completed the promotion is to check the system, security, application, and other logs in the Event Viewer. To check these Event Viewer logs, follow the steps below:

1) To open Event Viewer, logon to one of the DCs, open Run and type:

image

2) Check the logs for possible warnings or errors

image

Run Dcdiag (command-line)

With the Domain Controller Diagnosis (DCDIAG) utility we can analyze the state of all DCs and domain services in the forest and we can create a report to troubleshoot possible problems. To run Dcdiag, follow the steps below:

1) Logon to one of the DCs as a user with Domain Admin privileges, open PowerShell as an Administrator and run following commands:

image

2) Open the file C:\Dcdiagresult.txt to view the result and to find possible issues

image

Run Repadmin (command-line)

With Repadmin you can diagnose (and in some cases repair) your AD replication status and health. To run Repadmin, follow the steps below:

1) Logon to one of the DCs as a user with Domain Admin privileges, open PowerShell as an Administrator and run following commands:

image

2) Open the file C:\Repadminresult.txt to view the result and to find possible replication issues

image

Run the Best Practice Analyzer (BPA) tools (GUI)

With the BPA tools we can conduct a scan against the DCs to ensure they are configured based on Microsoft and industry best practices. With BPA we can find incorrect configuration settings and security violations, but also investigate poor performance. To run BPA, follow the steps below:

1) Logon to one of the DCs and open Server Manager from the taskbar

2) Select a server role on the left and scroll down to the BPA section. Click TASKS and select Start BPA Scan

image

3) Select all servers you want to scan and click Start Scan

image

4) When the scan is completed, you can review all the results and fix possible issues if preferred

image

I hope this short DC health checklist helps you in the future and if you have any questions just let me know. Till next time!

Wim Matthyssen (@wmatthyssen)