【发布时间】:2019-06-28 18:27:14
【问题描述】:
尝试将两个变量结果从 Active Directory 输出到 PowerShell,并在 .csv 文件的一行中进行格式化,每个返回的变量位于单独的单元格中。输入文件包含四个 AD 组的名称。任务是统计每个组中的用户并返回用户总数。
目标是写入 .csv 文件,将输出格式化为一个单元格中的广告组名称,右侧下一个单元格中的用户计数。
这是一个简单的脚本,从读取文件开始并将结果返回到屏幕。尝试使用 Export-Csv 写入文件,但没有成功。 Add-Content 是最成功的技术。
以下代码可以部分工作,但广告组名称和用户数会写入 .csv 文件中的同一单元格。较早的尝试将 AD 组名称写在一行上,将用户总数写在下一行。
foreach($object in $groupfile){
$groupName = $object.adgroupname
$groupName = $groupName.Trim()
$users = Get-ADGroupMember -Identity $groupName
$usercount = $users.Count
$groupinfo = ($groupName + " " + $usercount)
# both of the lines below return the information to the screen on on line
Write-Host $groupname, $usercount
Write-Host $groupinfo
# this line returns the information as shown below in the First result
Add-Content -Path $filepath $groupname, $usercount
# this line writes to the file as shown below in the Second result
Add-Content -Path $filepath $groupinfo
}
第一个结果(对于少数组是可以接受的,但对于大量组来说,需要更稳健的解决方案。): 广告组名称一 357 广告组名称二 223 广告组名称三 155 广告组名称四 71
第二个结果(返回变量的两个值都在一个单元格中): 广告组名称一 357 广告组名称二 223 广告组名称三 155 广告组名称四 71
目标是写入 .csv 文件,将输出格式化为一个单元格中的广告组名称,右侧下一个单元格中的用户计数。
【问题讨论】:
-
下面这行我犯了一个明显的错误; # 下面的两行都在一行中将信息返回到屏幕
-
执行此操作的常用方法是构建一个自定义对象,该对象具有来自 ONE 对象 [a CSV 行] 中各种来源的所需道具。然后使用
Export-CSV自动构建合适的 CSV 文件。
标签: powershell active-directory