Creating Exchange 2016 Users with Mailboxes from CSV – fast&easy

First, we need to prepare CSV. What I normally do is to open Excel, prepare the data and than save it as CSV in my case in C:\Temp\import.csv

Once we have CSV prepared, we can open Exchange Managment Shell and run following commands:

$Password = convertto-securestring $_.password -asplaintext -force

Import-CSV C:\temp\import.csv | ForEach {New-Mailbox -Name $ -firstname $_.firstname -lastname $_.lastname -userPrincipalName $_.userprincipalname -Password $Password -database $_.MBDB}





vSphere Web Client – flash not working under WS2016 and IE11

I was unable to open vSphere Web Client under IE11 installed on Windows Server 2016 and getting following error:

I tried to install Flash manually but that did not work, but I found recommendation to enable Flash package with DISM command:

dism /online /add-package /packagepath:"C:\Windows\servicing\Packages\Adobe-Flash-For-Windows-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum"


After server restart, vSphere Client started initialization:

Running Pfsense on Hyper-V server with VLANs

I was struggling to get running network connectivity on my Pfsense Virtual Machine running on Hyper-V with VLANs. I found a following way how to sort this out with power shell:


Get-VMNetworkAdapter -VMName "vmname" | Where-Object {$_.MacAddress -eq "XXXXXXXXXXXX"} | Set-VMNetworkAdapterVlan -Trunk -AllowedVlanIdList "1-100" -NativeVlanId 1

You will have to run it on Hyper-V, change your vmname, macaddress and adjust AllowedVlanList.

SQL database backup with Powershell


This backup script will do backup for all databases within my instance SQLINSTANCE\SQLINSTANCE and store it to BACKUP folder configured during the SQL installation.

Import-Module “sqlps” -DisableNameChecking            
foreach ($db in (Get-ChildItem))            
         $dbname = $db.Name            
         $dt = Get-Date -Format yyyyMMddHHmmss            
         Backup-SqlDatabase -Database $dbname -BackupFile "$($dbname)_db_$($dt).bak"            

Azure Pack – Reprovisioned tenant gets „Your session has ended. Click OK to log in again.“

In my environment I have Azure Pack integrated with ADFS. I have reprovision one user account, removed all subscriptions and deleted user account from Azure Pack Management Portal, but when I tried to login with the same AD account again into Tenant portal, I got this error:



I logged in to Azure pack SQL instance via SQL Management Studio and located Microsoft.MgmtSvc.Store database, table mp.InvalidatedUserToken. First I looked for right ID via  Select TOP 1000 and then ran DELETE query, in my case right ID was 20033. After IIS reset on Tenant Portal machine, user account was able to log in.

DELETE FROM [Microsoft.MgmtSvc.Store].[mp].[InvalidatedUserTokens]


SQL Server – The source Evaluation edition and the target Standard edition is not supported path

I came across following situation:

Customer installed two SQL server nodes in Failover cluster with six SQL instances. During the installation they used by mistake Evaluation Edition.

After six months both SQL server licenses expired and after OS patching&reboot all SQL instances ended up in Failed state, not able to start(Databases service resource).

We tried Microsoft recommended approach. Running SQL installer, Maintenance and Edition Upgrade. Unfortunately Edition upgrade was showing below error:



We decided to build two new SQL servers(now with proper Product Key, not Eval), joined them into existing SQL cluster and ran Add Node to Failover Cluster for each instance. After we moved all failed SQL instances on new SQL nodes and all SQL cluster resources(including Database services) started successfully.


Configuring Skype for Business frontend pool loadbalancing via Citrix Netscaler VPX


– 3rd party Trusted certificate imported in Netscaler, take a look on my previous articles:
Installing certificate into Citrix Netscaler VPX -part 1

Installing certificate into Citrix Netscaler VPX -part 2

– Skype Front End Servers up and running. I assume that External HTTP is listening on 8080 and External HTTPS on 4443. In my scenario, I have two FE servers configured MGMTSFBFE01 and MGMTSFBFE02.


Connect and login to Netscaler via SSH (I use Putty)

1. First we create servers:

add server MGMTSFBFE01.mgmt.local
add server MGMTSFBFE02.mgmt.local

2. Create custom Monitors:

add lb monitor monitor-SFB-TCP4443 TCP -LRTM ENABLED -destPort 4443 -secure YES
add lb monitor monitor-SFB-TCP8080 TCP -LRTM ENABLED -destPort 8080

3. Create Service Groups

add serviceGroup service-SFB-FE_8080 HTTP -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP YES -appflowLog DISABLED
add serviceGroup service-SFB-FE_4443 SSL -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP YES -appflowLog DISABLED

4. Bind Monitors

bind serviceGroup service-SFB-FE_8080 MGMTSFBFE01.mgmt.local 8080 -CustomServerID „\“None\““
bind serviceGroup service-SFB-FE_8080 MGMTSFBFE02.mgmt.local 8080 -CustomServerID „\“None\““
bind serviceGroup service-SFB-FE_8080 -monitorName monitor-SFB-TCP8080
bind serviceGroup service-SFB-FE_4443 MGMTSFBFE01.mgmt.local 4443 -CustomServerID „\“None\““
bind serviceGroup service-SFB-FE_4443 MGMTSFBFE02.mgmt.local 4443 -CustomServerID „\“None\““
bind serviceGroup service-SFB-FE_4443 -monitorName monitor-SFB-TCP4443

5. Create Virtual Servers for Skype

add lb vserver vserver-SFB-FE_80 HTTP 80 -persistenceType COOKIEINSERT -timeout 180 -cookieName MS-WSMAN -cltTimeout 180
add lb vserver vserver-SFB-FE_443 SSL 443 -persistenceType COOKIEINSERT -timeout 180 -cookieName MS-WSMAN -cltTimeout 180


6. Bind Virtual Servers to Service Groups

bind lb vserver vserver-SFB-FE_80 service-SFB-FE_8080
bind lb vserver vserver-SFB-FE_443 service-SFB-FE_4443

7.  configure SSL

set ssl vserver vserver-SFB-FE_443 -tls11 DISABLED -tls12 DISABLED
bind ssl vserver vserver-SFB-FE_443 -certkeyName SFB_FE_Certificate


Installing certificate into Citrix Netscaler VPX -part 2

In my previous article, I have imported Godaddy SAN certificate into my Netscaler, but this Certificate is signed by an intermediate Certificate Authority, so we have to install intermediate Certificate Authority’s certificate on the NetScaler as well. This Intermediate Certificate then must be linked to the Server Certificate.

On SAN certificate, go to Certification Path, pick Intermediate CA and hit View Certificate, then in Details, hit Copy to File:




Choose Base-64 format:


Save the file locally:



Now we go back to Netscaler administration, SSL\Certificates and Install:


On our SAN certificate, choose Action\Link


Choose Intermediate CA certificate:

Once linked, SSL certificate is ready to be added into Loadbalancing Virtual Server.