Arrays 将表格格式的变量转换为字符串数组
新手PS用户在这里 我使用Get-ADOrganizationalUnit返回我想要作为字符串数组的子OU。例如“ou1”、“ou2”、“ou3”等。我发现的示例以表格形式返回数据。我曾尝试使用导出csv,但效果并不理想! 以下是我用来获取数据的方法:Arrays 将表格格式的变量转换为字符串数组,arrays,string,powershell,Arrays,String,Powershell,新手PS用户在这里 我使用Get-ADOrganizationalUnit返回我想要作为字符串数组的子OU。例如“ou1”、“ou2”、“ou3”等。我发现的示例以表格形式返回数据。我曾尝试使用导出csv,但效果并不理想! 以下是我用来获取数据的方法: $Items = Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase 'OU=aa,OU=bb,OU=cc,OU=dd,DC=AD,DC=contoso,DC=CA' -Sear
$Items = Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase 'OU=aa,OU=bb,OU=cc,OU=dd,DC=AD,DC=contoso,DC=CA' -SearchScope OneLevel | Format-Table Name -HideTableHeaders
这将返回:
提索
萨图
另一个
等等
但我需要它的结构化
“ThisOU”、“ThatOU”、“AnotherOU”等
字符串数组将在另一个脚本中用于创建OU的下拉列表。
非常感谢您的帮助 使用
Foreach-Object
(Foreach
)cmdlet将名称属性提取到字符串数组中,而不是通过格式表(或选择对象
)
[string[]] $items = Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase 'OU=aa,OU=bb,OU=cc,OU=dd,DC=AD,DC=contoso,DC=CA' | foreach Name
然后,如果要将此字符串数组转换为沿“name1”、“name2”、“name3”行的单个字符串,可以执行以下操作:
$formattedNames = "`"$($items -join '","')`""
除非必须,否则不要格式化表(或任何其他格式-*)。为什么要格式化输出Get ADOrganizationalUnit
返回对象,而不是文本。我使用了scconfigmgr.com中的示例,希望将输出更改为字符串数组。我还尝试使用select Name,而不是Format Table Name您想要什么类型的输出?仅列出OU名称?我想要一个字符串数组。我有一个脚本要在SCCM任务序列期间运行,其中前线技术人员将看到一个下拉列表,其中列出了新成像系统要放置的可用OU。该脚本需要4个参数,其中一个是OU的字符串数组。第二部分肯定比我的foreach行更优雅。非常感谢。