下面的代码中的$parameters
语句和Get-ADUser
语句中是否有正确的方法来使用相同的Select
变量?
Get-ADUser
有一个名为"Properties“的参数,而Select
有一个名为"Property”的参数。
我不想管理一个$parameters
变量的多个副本。
欢迎任何建议。
import-module ActiveDirectory
$user = "SomeUserName"
$parameters = @{
"Properties" = @(
"msExchWhenMailboxCreated",
"whenCreated"
)
}
function get-ExchangeUserData {
foreach ($user in $users){
# Select @parameters does not work with Select.
get-aduser $user @parameters | select @parameters
}
}
发布于 2018-09-25 14:19:25
有几种方法可以做到这一点,但它们都可能对你的目标有争议。
使用参数缩短对您有利
$parameters = @{"Propert" = @("msExchWhenMailboxCreated", "whenCreated")}
# Select @parameters does not work with Select.
get-aduser user @parameters | select @parameters
我们将哈希表中的键设置为"propert“,这在Get-ADUser
和Select-Object
中都是明确的。因此,您仍然用完全相同的信息向这两个cmdlet泼洒。你也可以使用Prop,它看起来更令人愉悦,它传达了同样的意思。
注意对您有利的参数别名。
虽然前面的解决方案很酷,但是在这种情况下,它实际上并不是 supports 'property' as an alias所必需的。$parameters = @{"Property" = @("msExchWhenMailboxCreated", "whenCreated")}
会工作得很好。
将属性分解为另一个变量或单独调用它。
不算太乱,但它符合你所说的保持一个列表的逻辑。
我不想管理一个
$parameters
变量的多个副本。
$props = "msExchWhenMailboxCreated", "whenCreated"
$parameters = @{"Properties" = @($props)}
get-aduser user @parameters | select $props
或
$parameters = @{"Properties" = @("msExchWhenMailboxCreated", "whenCreated")}
# Select @parameters does not work with Select.
get-aduser user @parameters | select $parameters.Properties
https://stackoverflow.com/questions/52500057
复制相似问题