将列添加到现有文件
add columns to existing file
我从文件 ID 导入并基于此 ID 我正在尝试从 AD 获取信息...并将此信息作为原始文件中的列插入...这是代码:
$import = Import-Csv C:\Temp\coputerstatus.csv
Foreach ($item in $import) {
$user = Get-ADUSer -Identity $item.ID
#$item = New-Object psobject
$item | Add-Member -MemberType NoteProperty -Name "office" -Value $user.office
$item | Add-Member -MemberType NoteProperty -Name "title" -Value $user.title
$item | Add-Member -MemberType NoteProperty -Name "displayname" -Value $user.name
} #foreach
$import | Export-Csv C:\temp\my.csv
但效果不是很好..我成功插入 headers 但值为空(,)
我也想得到同样的帮助
谢谢
Get-ADUser 和其他活动目录 cmdlet 的操作有点滑稽。当您请求 ADUser object Get-ADuser 时,只有 returns 可用属性的一小部分。 Office 和 title 在此默认集中不可用。要得到你想要的东西,请将 -属性 参数添加到 Get-ADUser 并在通常 returns
的默认值之外询问 title 和 office
$user = Get-ADUSer -Identity $item.ID -Property Title, Office
如果您想检索所有可能的属性,请使用星号
$user = Get-ADUSer -Identity $item.ID -Property *
听起来您可能没有从 Get-ADUser 返回任何用户对象。查看 csv 文件中 ID 列中的内容。手动检查您从 import-csv 命令返回的内容
$import = Import-Csv C:\Temp\coputerstatus.csv
$import | gm
确保您在该列表中有一个 ID 属性。如果是这样,请继续检查您的对象是否具有您期望的 ID 值
$import.ID
如果一切正常,请尝试使用这些 ID 之一并手动 运行 Get-ADuser 命令将 $item.ID 替换为实际 ID 之一。
Get-ADUSer -Identity TESTID -Property Title, Office
你有什么回报吗?
两种方式...您可以像这样使用 splatting 将每个属性的所有属性转储到 CSV 中...
$import = Import-Csv C:\Temp\coputerstatus.csv
$myUsers = @()
Foreach ($item in $import) {
$user = Get-ADUSer -Identity $item.ID -Properties *
[pscustomobject]$MyItem = @{
"userProps" = $user
}
$myUsers += $MyItem.Values
} #foreach
$myUsers | Export-Csv 'C:\temp\my.csv' -NoTypeInformation
或者您可以 select 您关心的特定属性,例如...
$import = Import-Csv C:\Temp\coputerstatus.csv
$myUsers = @()
Foreach ($item in $import) {
$user = Get-ADUSer -Identity $item.ID -Properties *
[pscustomobject]$MyItem = @{
"DisplayName" = $user.Name
"Office" = $user.office
"Title" = $user.title
}
$myUsers += $MyItem.Values
} #foreach
$myUsers | Export-Csv 'C:\temp\my.csv' -NoTypeInformation
我从文件 ID 导入并基于此 ID 我正在尝试从 AD 获取信息...并将此信息作为原始文件中的列插入...这是代码:
$import = Import-Csv C:\Temp\coputerstatus.csv
Foreach ($item in $import) {
$user = Get-ADUSer -Identity $item.ID
#$item = New-Object psobject
$item | Add-Member -MemberType NoteProperty -Name "office" -Value $user.office
$item | Add-Member -MemberType NoteProperty -Name "title" -Value $user.title
$item | Add-Member -MemberType NoteProperty -Name "displayname" -Value $user.name
} #foreach
$import | Export-Csv C:\temp\my.csv
但效果不是很好..我成功插入 headers 但值为空(,)
我也想得到同样的帮助
谢谢
Get-ADUser 和其他活动目录 cmdlet 的操作有点滑稽。当您请求 ADUser object Get-ADuser 时,只有 returns 可用属性的一小部分。 Office 和 title 在此默认集中不可用。要得到你想要的东西,请将 -属性 参数添加到 Get-ADUser 并在通常 returns
的默认值之外询问 title 和 office$user = Get-ADUSer -Identity $item.ID -Property Title, Office
如果您想检索所有可能的属性,请使用星号
$user = Get-ADUSer -Identity $item.ID -Property *
听起来您可能没有从 Get-ADUser 返回任何用户对象。查看 csv 文件中 ID 列中的内容。手动检查您从 import-csv 命令返回的内容
$import = Import-Csv C:\Temp\coputerstatus.csv
$import | gm
确保您在该列表中有一个 ID 属性。如果是这样,请继续检查您的对象是否具有您期望的 ID 值
$import.ID
如果一切正常,请尝试使用这些 ID 之一并手动 运行 Get-ADuser 命令将 $item.ID 替换为实际 ID 之一。
Get-ADUSer -Identity TESTID -Property Title, Office
你有什么回报吗?
两种方式...您可以像这样使用 splatting 将每个属性的所有属性转储到 CSV 中...
$import = Import-Csv C:\Temp\coputerstatus.csv
$myUsers = @()
Foreach ($item in $import) {
$user = Get-ADUSer -Identity $item.ID -Properties *
[pscustomobject]$MyItem = @{
"userProps" = $user
}
$myUsers += $MyItem.Values
} #foreach
$myUsers | Export-Csv 'C:\temp\my.csv' -NoTypeInformation
或者您可以 select 您关心的特定属性,例如...
$import = Import-Csv C:\Temp\coputerstatus.csv
$myUsers = @()
Foreach ($item in $import) {
$user = Get-ADUSer -Identity $item.ID -Properties *
[pscustomobject]$MyItem = @{
"DisplayName" = $user.Name
"Office" = $user.office
"Title" = $user.title
}
$myUsers += $MyItem.Values
} #foreach
$myUsers | Export-Csv 'C:\temp\my.csv' -NoTypeInformation