在$parameters
和 Get-ADUser
语句中是否有使用 same Select
变量的正确方法下面的代码?
Get-ADUser
有一个名为“ Property”的参数,而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
}
}
答案 0 :(得分:3)
有几种方法可以做到这一点,但它们都可能在这里引起反对您目标的争论。
$parameters = @{"Propert" = @("msExchWhenMailboxCreated", "whenCreated")}
# Select @parameters does not work with Select.
get-aduser user @parameters | select @parameters
我们将哈希表中的密钥设置为“ propert”,这在Get-ADUser
和Select-Object
中都是明确的。因此,您仍将使用完全相同的信息来分发这两个cmdlet。您也可以使用Prop,它看起来更令人愉悦,并且传达相同的含义。
虽然先前的解决方案很酷,但是在所有情况下实际上都不是必需的,因为Get-Aduser
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