首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于不同Cmdlet的规范Powershell参数飞溅

用于不同Cmdlet的规范Powershell参数飞溅
EN

Stack Overflow用户
提问于 2018-09-25 14:00:30
回答 1查看 66关注 0票数 1

下面的代码中的$parameters语句和Get-ADUser语句中是否有正确的方法来使用相同的Select变量?

Get-ADUser有一个名为"Properties“的参数,而Select有一个名为"Property”的参数。

我不想管理一个$parameters变量的多个副本。

欢迎任何建议。

代码语言:javascript
运行
复制
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

    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-25 14:19:25

有几种方法可以做到这一点,但它们都可能对你的目标有争议。

使用参数缩短对您有利

代码语言:javascript
运行
复制
$parameters = @{"Propert" = @("msExchWhenMailboxCreated", "whenCreated")}

# Select @parameters does not work with Select.
get-aduser user @parameters | select @parameters

我们将哈希表中的键设置为"propert“,这在Get-ADUserSelect-Object中都是明确的。因此,您仍然用完全相同的信息向这两个cmdlet泼洒。你也可以使用Prop,它看起来更令人愉悦,它传达了同样的意思。

注意对您有利的参数别名。

虽然前面的解决方案很酷,但是在这种情况下,它实际上并不是 supports 'property' as an alias所必需的。$parameters = @{"Property" = @("msExchWhenMailboxCreated", "whenCreated")}会工作得很好。

将属性分解为另一个变量或单独调用它。

不算太乱,但它符合你所说的保持一个列表的逻辑。

我不想管理一个$parameters变量的多个副本。

代码语言:javascript
运行
复制
$props = "msExchWhenMailboxCreated", "whenCreated"

$parameters = @{"Properties" = @($props)}

get-aduser user @parameters | select $props

代码语言:javascript
运行
复制
$parameters = @{"Properties" = @("msExchWhenMailboxCreated", "whenCreated")}

# Select @parameters does not work with Select.
get-aduser user @parameters | select $parameters.Properties
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52500057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档