Powershell - 全局设置-server标志(AD cmdlet)

时间:2017-11-27 00:53:31

标签: powershell

我正在尝试使用Active Directory cmdlet为整个脚本全局设置-server标志。

我的问题是我从一个不同的域运行脚本,并且从一个管理域中有一些我需要执行这些命令的域。

示例:

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

但是我想跑:

Get-ADUser 'john'
来自domain2的

,而不必在每次使用AD cmdlet时都指定-server标志。

目前,我只是声明一个$server变量并将其插入每个命令,例如Get-ADUser 'john' -server $server

但这相当混乱,我觉得必须有更好的方法。我的研究没有任何结果。

1 个答案:

答案 0 :(得分:1)

您可以使用$PSDefaultParameterValues,以下示例为get-aduser添加服务器参数默认值:

$PSDefaultParameterValues.Add('Get-ADUser:server', 'domain1.acme.com')
添加psdefaultparametervalue后,您可以使用这样的命令行开关:

Get-ADUser 'john'

PSDefaultParameterValues也支持通配符

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

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

PS:此功能仅适用于PowerShell V3以后的