Powershell-设置-全局服务器标志(AD cmdlet)

Powershell-设置-全局服务器标志(AD cmdlet),powershell,Powershell,我正在尝试使用Active Directory cmdlet为整个脚本全局设置-server标志 我的问题是,我正在从不同的域运行脚本,并且有几个域需要在单个管理域上执行这些命令 例如: Get-ADUser 'john' -server domain1.acme.com 但是,我只想运行: Get-ADUser 'john' 从domain2,无需每次使用AD cmdlet时都指定-server标志 目前,我只需声明一个$server变量并将其插入到每个命令中,例如Get ADUser'j

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

我的问题是,我正在从不同的域运行脚本,并且有几个域需要在单个管理域上执行这些命令

例如:

Get-ADUser 'john' -server domain1.acme.com
但是,我只想运行:

Get-ADUser 'john'
从domain2,无需每次使用AD cmdlet时都指定-server标志

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


但这相当混乱,我觉得一定有更好的办法。我的研究没有任何结果。

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

$PSDefaultParameterValues.Add('Get-ADUser:server', 'domain1.acme.com')
添加
psdefaultparametervalue
后,可以使用如下命令:

Get-ADUser 'john'
PSDefaultParameterValues也支持通配符

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

供参考:


PS:此功能仅在PowerShell V3之后才能使用

谢谢,这太完美了。我使用了
*-AD*:server
,它为AD cmdlet获取了最多的get/set。当然,每个脚本都经过测试,因此可能会有一些脚本(如Get-GPO等)丢失(并修复),但实际上我可能会尝试
*:server
,希望/假设所有带有-server标志的cmdlet仍然工作。