I keep seeing many posts with people struggling to execute code on remote machines, it is usually not due to permissions issues, (enable PS Remoting), but mainly due to the fact that they forget that the remote machine does not know the value of the locally assigned variable.

Using (new way) PSv3+

With PowerShell Version 3 and newer, $using was introduced.
If you want to pass a local variable to the remote machine , just add $using: in front of the variable name (e.g. $using:localvariable), and the local value will be given on to the remote machine. This is so much simpler and easier to read than the ‘old’ argumentlist way.

Argumentlist (old way)

In this sample, we are looking at using an argument list to pass the values of the variable to the remote machine.
You define the values you need per usual on your local machine, and then you add an $argumentlist as parameter.
The order you list the variables is important, as the one first variable listed is addressed with $args[0], the variable next to it (to the right) is addressed with $args[1] and so forth.


Reference: about_remote_variables

You probably have heard or read about the current issues with chips and their vulnerability.

A fundamental design flaw in Intel’s processor chips has forced a significant redesign of the Linux and Windows kernels to defang the chip-level security bug.

CVE-2017-5754 (Meltdown) and CVE-2017-5715 (Spectre)  are two nasty exploits and you might want to check your systems if they are patched.

Luckily the Microsoft Security Response Center has released a PowerShell module named SpeculationControl which can be installed from the PowerShell Gallery.

Additionally maybe look at Mike’s post


So you are in a hybrid environment and moved your Public Folders to o365 but suddenly 3rd party people can no longer send you emails?

Yeah… try this:


Trying to block zip files with O365 seems a little painful, as the default GUI does not really give you the option (anymore?) If you Google, you might find screenshots with options to select the attachment but when I checked our GUI, that was all that I saw:

Clearly, there is no option to look for attachments, other than what the attachments CONTAIN.

So, trying PowerShell, something interesting happened.

Executing this PowerShell command, it created a new rule, that now had more/different options than the rule you could create from the GUI!

Look at this:

And now you can block file extensions and stuff to your heart’s content.

Oddities ¯\_(ツ)_/¯