UE-V template for Excel 2013 Addins

I just published an UE-V template that I have used into a stateless VDI scenario. After the template was added to the template location users where able to configure there favorite template and roam those between different VDI machines.


Posted in Uncategorized

Configure OneDrive for Business a bit more automatic

After a long search at many websites, I could not find a good script to help my end users to configure their OneDrive for Business account. The script below can be used to configure OneDrive for Business account a bit more automated.


  • The user account must have an EMS license.
  • The OneDrive for Business application must be installed.

Read more ›

Posted in Uncategorized

E-mail open software approval for system center SCCM.

Back from vacation and ready to post a new blog article. I could remember one specific request for the IT manager, he would receive an messages when a user request software where they need an approval of an administrator before the software can be installed. Unfortunately this is not a default function in SCCM2012. But it is scriptable with Power Shell 2012 and can be executed with windows task sequence.


  • Administrative right at the SCCM2012 management server.
  • (exchange) SMTP server where the IP address of the management server is allowed to send messages.  


Step 1: Make a folder at the system drive and copy the script into it. Call the script “SystemCenterApproval.ps1

Step 2: Create a cmd file (needed for execution powershell scripts though the Windows schedule tasks.) and call them “trigger-approval.cmd

Step 3: Create a new schedule task and change the following settings:

– set at the general tab the option to : Run when the user is logged on or not

– Set up triggers for the script, depending on your wishes.

– Setup the action. (start a program where the details contains the location of the CMD file. For example: C:\ConfigManagerApproval\Trigger-Approval.cmd

– Set at the settings tab the option “stop the task if runs longer than: to 1 hour.”


Powershell script (for x64 systems):

import-module “C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1”

CD P01:

$secpasswd = ConvertTo-SecureString “SoftwareCenter” -AsPlainText -Force

$mycreds = New-Object System.Management.Automation.PSCredential (“SoftwareCenter”, $secpasswd)

$body = Get-CMApprovalRequest | select user,application,comments,LastModifiedDate,currentstate | where-object {$_.currentstate -eq 1}| format-list | out-string

Send-MailMessage -to windows7.migrationteam@contoso.com -subject “Open Software requests” -body “$body” -SmtpServer SMTPServer.contoso.com -from SoftwareCenter@contoso.com -Credential $mycreds


* The powershell command send-mailmessage requires a user name and password but you can use fake credentails.

CMD script

%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe C:\ConfigManagerApproval\SystemCenterApproval.ps1

Posted in SCCM, Uncategorized

No system center client installed during task sequence.

We are using a task sequence when the configuration manager client will be installed automatically. Unfortunately this won’t work anytime at a system. I have investigate this issue a couple of times and saw the following behavior:

First of all it looks like everything is working, except you cannot install any software because the computer is not complaint. After a short investigation you can see that the endpoint protection is not installed. You can try to install the software manually from the location c:\windows\ccmsetup\scepinstall.exe but SC2012 doesn’t see that the package is installed.

I was able to solve this issue by following the steps:

– Disable Windows Firewall services and restart the computer, keep in mind that you must be an administrator and if a GPO is enabled to enable the firewall that your must disconnect the LAN cable.

– Uninstall client. You can uninstall the client by opening a CMD as administrator and use the command “c:\windows\ccmsetup\ccmsetup.exe /uninstall”. Wait until the application is fully uninstalled (monitor the process ccmsetup.exe)

– Install client from SCCM. Remove all “old” computer account from the sccm console and import a single computer with the correct computer name and MAC address. Wait until the setup completes. After the installation the client and endpoint protection is installed and if windows updates available they will be installed automatically.

Tagged with:
Posted in SCCM

Server 2012 SR-IOV

Network virtualization is a hot item at this moment. I think the newest Microsoft Server 2012 has made a big step to the VMware world. During one of my latest jobs I have designed an IT infrastructure only based on the Microsoft Hyper Visor with Windows server 2012 and System center 2012. But there are different virtualization technics are available. This blog article describes SR-IOV.

In a nutshell there are three flavors:

–          Normal (one core assigned to a NIC)

–          VMDQ  (The packets are braked into queue (VLAN/MAC) so each core can be assigned to a queue)

–          SR-IOV (Directly access to the NIC card, with a virtual function (VF) driver)


SRIOV is an abbreviation of Single Route IO Virtualization and is a technic to send network traffic directly to the network card without passing the virtual switch. SRIOV removes the CPU process because it doesn’t need to move the data to and from a virtual machine.

How does it work?

  1. The packages arrives into the NIC card
  2. The packages is send to the L2 sorter.
  3. The packages is sorted upon MAC or VLAN and will placed into queue/pools.
  4. DMA (Directly Memory Access) action initiated. (chipset)
  5. VT-D re-maps DMA address to the guest OS memory space.

 SR-IOV overview

Network Interface Card switch: This is a hardware component at the NIC card. This component is responsible for forwarding network traffic between the Vports and the Physical NIC each Vport is attached to the PF or VF.

Hyper-V Extensible switch: The Hyper-V extensible switch supports instances of NDIS filters as soon a filter is attached and enabled can it be used for monitoring, modify or forward packages.

PF (Physical Function): The PF(s) are PCI-e functions of the network card that supports SRIOV. The capability is used to configure and manage SR-IOV capability in the PCI-e configured space. The PF are used to manage SR-IOV functionality of the network adapter.

PF miniport Driver:  The miniport driver is loaded into the Operating system (Windows server 2012 or above) and is used for managing resources on the network adapter. This can be one or more VFs.

VF (Virtual Function):  A VF basically representing virtual instance of a network card.

VF miniport Driver: The miniport is used to manage the VF and must be installed on each VM.  Any VF miniport driver must not affect other VR or PF on the same network adapter.


Before you can use SR-IOV there are some hardware and settings required.

–          The host operating system must be at least Windows server 2012.

–          The processor must allow Intel VT-X and the chipset Intel VT-D to allow a VM and guest OS share a SR-IOV capable NIC.

–          The processor must support SLAT and IOMMU

–          You must use a SR-IOV capable NIC like the 1Gbe Intel 82576 with 8 VFs/port or 10Gbe: 82599 with 64 VFs/port. (don’t forget to install the latest drivers)

–          Enable the features VT-D and SRIOV into the BIOS. (Don’t forget to flash the bios to the latest firmware)

TIP: Some motherboards required that the IOVEnabledoverride setting you can enable this setting only into the Windows registry, for example with the PowerShell command. After you change this setting a reboot is required!

reg add HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Virtualization /v IOVEnableOverride /t REG_DWORD /d 1

You can verify if SR-IOV is working with the command Get-NetAdapterSriov you can should see the results like below:


To check if IovSupport is enabled, type:

get-vmhost | fl

• To verify that SR-IOV is supported, and the number of VFs, type:

get-netadapterSRIOV | fl

• To see why the SR-IOV status is degraded, type:

get-vmnetworkadapter | fl

Supported guest OS systems where SRIOV can enabled are:

  • Red Hat Enterprise Linux 6.x
  • Windows server 2008 R2 with SP2 or newer
  • Windows Server 2012
Tagged with:
Posted in Windows server 2012, WS-NIC

Hyper-V 2012 home server

I write this blog article because I was looking for someone who had configured a home server which at least 64GB of RAM and with a budget around the € 1200 (excl. vat). Although it is for test purposes all IT administrators wants to have  a highly performance machines and because it is your own money for a lowest investment as possible.

To start with I was thinking about the different component that you need and who the most important are. I create the list below in order of most important first to the fewest component at last.

  • IOPS & disks: Most modern CPU and Memory DIMMS are fast enough to support virtual machines. But the biggest performance challenges in the real-world are with IOPS. The difficult facture is that it is hard to say what the average IOPS you need for example an Exchange server, Active Directory or SharePoint server. This depends on how many user you must support, which services are running ect, ect. Because of this I have chooses to build-in 2 SSD’s of 120GB for 8 highly performance machines and additional 2 times a raid 1, 1TB HDD 72K disks. The OS itself will be run at a raid 1, 1 TB HHD 72K disk. TIP1
  • CPU: The choice of the CPU is very important because I have to take care of the fact that it has to support at least the features X64 systems, Virtualization (Intel VT-D/X) and memory types DDR-3 1333 or 1600. Eventually I found multiple CPU’s who has the requirements and picked the “cheapest” one. (Intel Core I7 3820 (socket 2011)). Keep in mind that you have to buy a CPU fan because this is not including the package!
  • RAM: Choosing the RAM was the easiest part because I searched at the website of my favorite store and choose the cheapest DDR3-1333 64kit (8 DIMM) at this moment and bought the G.Skill 64GB DDR-3-1333 Octo-kit. Tip2
  • Motherboard: This was I think the hardest part to select because there are many expensive boards at the market who has all the features I need but that does not fit into the budget plan. Eventually I made a list of which requirement it had. 8x SATA connectors (at least 4x SATA3 was preferred), Socket 2011, DDR-3-1333 support. I had found a motherboard who support this all for what I think a good price/value, it was the ASUS P9X79. I have doubt to buy the pro edition with SSD-cashing but I the feature was unfortunately not good enough because it does only work with one HHD disk (not in raid mode), and ASUS does not support Windows Server 2012 for this!
  • PSU:  I need to have a PSU who had at least 8x a SATA connectors and an ATX format. I use the PSU “Be Quiet! System Power 7 600W”
  • Case: I have spent some time to select his part because I needed to have a case where I can place 6x a 3,5” HHD en 2x a 2,5 SSD. Finally I found one computer case it was the Antec Three Hundred Two.

TIP1: If you install the system center 2012 Virtual machine manger you can transfer disks from SSD to HHD without interruption of the running VM.

Tip 2: Most of you will think but Tristan is 64GB not to much because it is for test purposes. This was exactly what I was thinking too but the environment that I would test with requires a lot of VM’s, and I would that this environment lookalikes at much on a real world infrastructure as possible. I’m running the following VM’s so you can see 32GB was not enough for me I needed around the 50GB.  All the VM will be configured with the dynamic memory feature but the startup and the minimum memory will get the value of 3/4 of the total.

  • VM01 AD, DNS – PKI (4GB)
  • VM02 SharePoint ,FileSRV (4GB)
  • VM03 Exchange (4GB)
  • VM04 SC2012SP1 VMM (4GB)
  • VM05 SC2012 SCOM (4GB)
  • VM06 SC2012SP1 SCCM (4GB)
  • VM06 SC2012SP1 SCSM (4GB)
  • VM07 Lync 2010/2013 (4GB)
  • VM08 Lync 2010/2013 (4GB)
  • VM09 SQL (6GB)
  • VM10  User machine windows 7 (4GB)
  • VM11  User machine windows 8 (4GB)

The total investment was around the € 1200, – ex VAT and is able to support around the 14 Virtual Systems running at the same time. The funny part I think is that this setup including power costs and hardware amortization cost for the 14 VM running any time (24/7/365 days a year) around the € 0,15 if I compare this with 14M size Azure machines ($2,24) running for an hour that is this test machine cheaper than the Azure solution. (Sorry Microsoft)

Shopping list home server 2012


Disk overview

Posted in Windows server 2012, WS-HyperV

First touch to Azure

During my last job assignment I have to discover the benefits and the disadvantages of the Windows Azure platform. I think the Azure platform is useful for developers who doesn’t need to worry about the network, storage configuration and performance.

The big advantages of Azure

          Easy to create new virtual machines.

          Setup services very fast. (time to marked)

          Price per VM is fair along you doesn’t have to much machine who needs to be active 24/7.

          VM settings (create/change/delete) is possible from the Windows portal and though PowerShell basically from everywhere is the world.

The big disadvantages of Azure

           You cannot change the DNS settings of the VM unless you want to redeploy the complete machine.

          You cannot use a preferred IP address for a VM machine. There will be an IP address automatically assigned.

          You cannot use object within the PowerShell Azure CMDlets.

          The price will change likely every year.

          You have less control.

The biggest disadvantage is that you cannot change the DNS server if you have deployed a VM machine. (Static DNS cannot be used because during the time it will automatically reconfigured to DHCP (Preview version)). I have create a script for it to change the DNS server into an Azure Virtual Machine.



$subscriptionname=Read-host”Fill in the subscription name”

$CurrentStorageAccount=read-host”Fill in the current storage account”


#Connect to azure subscription

$Azuresubsciption  =read-host”Fill in the location of the AzurePublishSettingsFile (ending with .pubishsettings)”




$csv=read-host”Fill in the location of the CSV file (see, example)”




$csv|ForEach-Object {


  $CurrentName    =$_.CurrentName










if ($redeploy-eq”1″)



write-host”$date Configuring settings for ‘$name’, please wait”










write-host”$date The re-configuration for all the machines is completed.”  -ForegroundColorRed

write-host”$date Keep in mind that it can take about 5 minutes until a RDP connection can be establisched”-ForegroundColorRed








Posted in Uncategorized
  • An error has occurred; the feed is probably down. Try again later.

Enter your email address to follow this blog and receive notifications of new posts by email.