VMware and windows file copy issues (copying hung, restarted, file used by another process error)

Recently some guys reported to me that copying between new server ad old ones behaves stangely – that at some point it stops at 0 bytes, for a long time and then renews.

I did some tests on my own and what found out is that not only files got stuck at some points at 0 bytes, but also seems that copy operation is being renewed (!) somehow.

I didn’t believe my own eyes – so I copied the file on  more time, but this time I was watching closely the status bar – at around 32% it started once again from 0% o_O

Continue reading “VMware and windows file copy issues (copying hung, restarted, file used by another process error)”


Exhange Online and “Cannot process argument transformation on parameter…” RBAC error.

So today I was trying to create some RBAC roles for our IT support. All I wanted to do is to create a new RBAC role and then add some cmdlets that were missing there – it was about message tracking.

Apart from that thing I find seriously messed up is a fact that role group “Message Tracking” does not contain “Get-MessageTrace” cmdlet.


Whole story happens in Exchange Online so I tried to create am empty roleand add two needed cmdlets to it – I was not able to do it, as Exchange Online prevents from creating such empty roles – you need to specify a parent.

However, if a parent role does not contain a cmdlet you are interested in you are not able to add it.

Well, sweet… so I created a role based on a parent which contained a lot of others cmdlet and tried to remove entries using “where”, like this:

Get-ManagementRoleEntry “SupportTeam” | ? {$_.name -notmatch “get-messaget”}| Remove-ManagementRoleEntry

Simply – I wanted to leave only cmdlets responsible for message trace.

Here is the place I got error from the subject:


So I started to read about it, and apparently Remove-ManagementRoleEntry is not accepting pipeline in o365…


So you either need to prepare lines for each role entry in excel (for isntance using “concatenate”), or create a script, or use ready solution presented in the above blog.


X500 addresses – where is the beef?


Here is a great site that explains why x500 is needed and when it is used in on-prem and hybrid scenarios:


Also, here is a little bit related subject about how to marry together a local AD account and already created o365 mailbox:


Good article about history of x500:


And some good article about x400 history:


Sneaky tricky management scopes in Exchange Online.

If you’ve been creating scopes in Exchange Online in, for instance, following way…:

$Group = Get-DistributionGroup -Identity “RoomImpersonationGroup”
New-ManagementScope “Room Mailboxes Impersonation” -RecipientRestrictionFilter “MemberOfGroup -eq ‘$($Group.DistinguishedName)'”

…so using a DistinguishedName attribute – you might experience a moment when this solution stops to work.


Continue reading “Sneaky tricky management scopes in Exchange Online.”

Automated way to check Mellanox RDMA ping (nb_send_bw.exe) across nodes in a Hyper-V cluster.

So just recently we got need of checking RDMA ping between nodes, and as we got a few the task of running nb_send_bw.exe was getting a little fiddly. As we were waiting for repair storage jobs to finish between restarts I wrote a few lines to automating task.


Continue reading “Automated way to check Mellanox RDMA ping (nb_send_bw.exe) across nodes in a Hyper-V cluster.”

Storage Space Direct – how to check storage jobs to not blow things up.

Just a small reminder for myself…


Remember kids, storage jobs are only visible when running ISE or PowerShell console as an admin!

Safest is to always check the status of the jobs with invoke-command, as my dear colleague told me today, when using invoke you use the highest privileges:

Invoke-Command -ComputerName <CLUSTER_NODE_NAME> -ScriptBlock {Get-StorageJob}


Exchange – two ways to create new role assignments.

Forgotten this recently and got caught spending some time investigating.

Boys and girls, remember one thing – if you create role assignments like this:

New-ManagementRoleAssignment -Name "ASSIGNMENT NAME" -Role "ApplicationImpersonation" -CustomRecipientWriteScope "IMPERSONATION USERS" -SecurityGroup "IMPERSONATION ADMINS"

where “IMPERSONATION ADMINS” is your a security group created by you – this role assignment will NOT be visible in your “admin roles” area in Exchange Console:


Instead, you need firstly create a Role Group and assign role to it, for instance


New-ManagementRoleAssignment -Name "ASSIGNMENT NAME" -Role "ApplicationImpersonation" -CustomRecipientWriteScope "IMPERSONATION USERS" -SecurityGroup "ROLE GROUP IMPERSONATION ADMINS"

Only assigning a role to a role group allows it to appear in the admin roles area.

Remember about that!