导出Powershell信息的不同方法



我一直在使用我编写的PowerShell代码来提取AD组的名称,描述,成员和信息。出于某种原因,无论我使用末尾带有 -Append 的输出标头格式还是导出 CSV -notypeinformation,这两种方式都不会包含我的 AD 组具有的长信息字段。信息太长了,以至于它打印在不同的行(一行或多行)上,这使得 16,000 个组的长列表搞砸了。而不是每一行(当我将其导出到 excel 时)都在自己的行上,实际上几乎所有它们都在多行上。当我必须手动修复所有这些时,这变得很疯狂。

所以我的问题是,如何将"信息"字段中的所有数据保存在一个单元格中?

我使用的代码(部分代码)如下:

我制作的标题格式为:

Header = `
"Group ID Name" + "|" + `
"Description" + "|" + `
"Notes Field" + " |" + "Members" + "|" + "Member Count"

#Write out the header
$Header | Out-File $pathALL -Append

导出代码为:

$listing =`
$empty.Name + "|" + `
$empty.Description + "|" + `
$empty.info + "|" + `
$members 
$listing | Out-File $pathALL -Append

这仍然弄乱了信息字段,因为显然单元格中的信息太多了。所以我尝试了:

$emptys = get-adgroup -properties name, description, info -filter {name -like "AP*"} `
| Select name, description, info | Export-CSV "C:TempgroupsALL.txt"  -notypeinformation

这个印刷版本仍然做了同样的问题,这样分离所有数据也更难。在这种情况下,我怎样才能将其全部放入一个单元格中,或者至少将其余信息打印到下一个相邻单元格中

问题解答:我的信息字段有新行,所以我添加了一个 FOEACH:

foreach ($lines in $emptys.info){
$lines -replace "``n","" 
}

并将我的打印更改为:

$listing =`
$empty.Name + "|" + `
$empty.Description + "|" + `
#$empty.Info + "|" + `
$lines + "|" + `
$members
$listing =`
$empty.Name + "|" + `
$empty.Description + "|" + `
$empty.info -replace "`r`n", "NewLine" + "|" + `
$members 
$listing | Out-File $pathALL -Append

显然,将上面第 4 行中的"换行符"替换为您想要的任何内容来代替换行符。

最新更新