Powershell 读取主机中的变量在选择对象中不起作用

Powershell 读取主机中的变量在选择对象中不起作用,powershell,active-directory,Powershell,Active Directory,我在尝试构建一个小型读取主机脚本(将结果通过管道传输到AD脚本)时遇到了一个问题: 进行广告搜索时,我可以选择如下对象: get-aduser exampleuser | select-object name,enabled 虽然当我进去的时候 名称,已启用 将输入存储为变量(稍后在脚本中使用)的读取主机中,它会变成: name,enabled ------------ {} 而不是(手动键入时) 我想我忽略了一些非常简单的事情,但我尝试了很多东西,但没有通过master

我在尝试构建一个小型读取主机脚本(将结果通过管道传输到AD脚本)时遇到了一个问题:

进行广告搜索时,我可以选择如下对象:

get-aduser exampleuser | select-object name,enabled
虽然当我进去的时候

名称,已启用

将输入存储为变量(稍后在脚本中使用)的读取主机中,它会变成:

name,enabled
------------
{}          
而不是(手动键入时)


我想我忽略了一些非常简单的事情,但我尝试了很多东西,但没有通过master Google找到解决方案。

这是因为
Select-Object
cmdlet使用字符串数组,而
Read-Host
cmdlet只返回一个字符串,即使字符串包含逗号

您可以简单地通过在逗号上拆分输入来创建数组。(我还使用正则表达式来修剪空白):


美好的我通常做
-split','|%Trim
以避免过多whitespace@MathiasR.Jessen哇,我不知道你可以像那样调用Trim:-)。所以我可以调用这样的任何成员方法?我正要添加这个,因为我刚刚发现它也可以工作-我在“,”处将它拆分,它工作得很好。它感觉杂乱无章,但我想如果没有人看到它的安全性,那也没关系,但是如果你输入
name,enabled
,那么你的选择就会失败。
get-adcomputer CTXTEST | select-object name,enabled

name    enabled
----    -------
CTXTEST   False
$selectResult = (Read-Host "Which properties?") -split '\s*,\s*'