以这样的命令为例:
Get-AdUser -Filter {Enabled -eq $true} -Credential (Get-Credentials) -Server some.server.domain.com | Where-Object {DisplayName -like '*Reemer, Bob*'}
当然,它很恶心、很长并且超出了屏幕...将其分成多行(以提高可读性)的首选方法是什么?
请给出适用于 ISE、普通 powershell 解释器和脚本的示例。
最佳答案
Of course it is gross and long...
它对我来说看起来非常好,但如果你想要更短的线,我建议 splatting :
$ADUserParams = @{
Filter = {Enabled -eq $true}
Credential = (Get-Credential)
Server = 'some.server.domain.com'
}
Get-ADUser @ADUserParams | Where-Object {DisplayName -like '*Reemer, Bob*'}
您还可以将 Where-Object
过滤器脚本 block 拆分为多行:
Get-ADUser -Filter {Enabled -eq $true} -Credential (Get-Credentials) -Server some.server.domain.com | Where-Object {
DisplayName -like '*Reemer, Bob*'
}
如果您总是多次重复使用相同的参数值,则可以使用 $PSDefaultParameterValues
还有:
$PSDefaultParameterValues['*-AD*:Server'] = 'some.server.domain.com'
Get-ADUser -Filter {Enabled -eq $true} -Credential (Get-Credentials) | Where-Object {DisplayName -like '*Reemer, Bob*'}
当然,您可以将它们全部组合起来:
$PSDefaultParameterValues['*-AD*:Server'] = 'some.server.domain.com'
$ADUserParams = @{
Filter = {Enabled -eq $true}
Credential = (Get-Credential)
}
Get-ADUser @ADUserParams | Where-Object {
DisplayName -like '*Reemer, Bob*'
}
关于powershell - PowerShell 参数和管道的推荐格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46938433/