Powershell - Set -server flag globally (AD cmdlets)

Viewed 247

I'm trying to set the -server flag globally for a whole script using the Active Directory cmdlets.

My issue is that I am running a script from a different domain, and have a few domains I need to execute these commands on, from a single management domain.

Example:

Get-ADUser 'john' -server domain1.acme.com

However I'd like to just run:

Get-ADUser 'john'

from domain2, without having to specify a -server flag every time I use an AD cmdlet.

Currently, I am simply declaring a $server variable and inserting it into every command, e.g. Get-ADUser 'john' -server $server

But this is rather messy and I feel like there must be a better way. My research has yielded nothing.

1 Answers

You can use $PSDefaultParameterValues for this,The below example for adding server parameter default value for get-aduser:

$PSDefaultParameterValues.Add('Get-ADUser:server', 'domain1.acme.com')

after psdefaultparametervalue addition you can use the commandlet like this :

Get-ADUser 'john'

PSDefaultParameterValues supports wildcard as well

$PSDefaultParameterValues.Add('Get-AD*:server', 'localhost')

For reference: https://blogs.technet.microsoft.com/heyscriptingguy/2012/12/03/use-powershell-default-parameter-values-to-simplify-scripts/

PS: This feature will work only from PowerShell V3 onwards

Related