首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >向Get-ADUser提交属性时出现Bug?保存到CSV文件(Powershell)

向Get-ADUser提交属性时出现Bug?保存到CSV文件(Powershell)
EN

Stack Overflow用户
提问于 2021-02-26 02:22:18
回答 1查看 51关注 0票数 0

这是一个非常简化的Powershell脚本,我想用它为给定OU中的用户返回ADUser属性(在CSV中),比如name、givenName、Office等。

代码语言:javascript
复制
[void][Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')

$title = 'Get-ADUser Properties'
$msg   = 'Enter desired User properties, each seperated by a comma:'
$default = "name, office"
$propertiesSought = [Microsoft.VisualBasic.Interaction]::InputBox($msg, $title, $default)

get-aduser -filter * -properties * -searchbase $OU | select $propertiesSought | Export-Csv -Path "C:\Users\Administrator\Desktop\temp.csv"

脚本提示用户在InputBox中输入逗号分隔的属性,然后将其另存为变量。在保存的CSV文件上,我能看到的只有“

Microsoft.ActiveDirectory.Management.ADPropertyValueCollection“对于我期望看到的每个用户的详细信息...我已经尽可能地隔离了这个问题。如果提交的文本是一个单词,如"name“,则一切正常。如果我添加更多内容,即使没有空格,问题也会再次出现。

此外,当我在ISE中运行脚本并选择不输出到CSV文件时,在控制台的每一行上,我将得到的只是OU中每个用户的一组空大括号。

解决这个问题对我来说意义重大。谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2021-02-26 02:33:07

我已经尽可能地隔离了这个问题。如果提交的文本是一个单词,如"name“,则一切正常。如果我添加更多内容,即使没有空格,问题也会再次出现。

你真的很接近了!

Select-Object接受一个数组属性名称或属性表达式-不是一个逗号分隔的字符串。

当您传递字符串时"name,email,manager"Select-Object,它开始查找具有文字名称的属性。name,email,manager-就像你试图访问$user."name,email,manager"

将字符串拆分成单独的属性名称,它就可以工作了:

代码语言:javascript
复制
# ...
$propertiesSought = [Microsoft.VisualBasic.Interaction]::InputBox($msg, $title, $default)

# Split input string
$propertiesSought = $propertiesSought -split ',\s*'

Get-ADUser -Filter * -Properties $propertiesSought -searchbase $OU |Select $propertiesSought |Export-Csv ...
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66374309

复制
相关文章

相似问题

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