gpt4 book ai didi

powershell - 从 PowerShell 使用 Select-Object 时如何排除 header ?

转载 作者:行者123 更新时间:2023-12-02 02:10:18 25 4
gpt4 key购买 nike

我正在 Powershell 上使用 Get-ADUser 来检索标题属性列表,然后使用 Add-Content 将其提供给文件。该脚本在多个 ADSearchBase 之间进行迭代,因此提要文件已预先准备好所需的 header 。但是,当脚本针对每个 ADSearchBase 运行时,还会在源文件中添加多个 header 。

请注意,我将提取多个属性,下面的示例仅针对 1 个属性。

生成的文件将被馈送到应用程序,因此有格式要求。

$ADFilter = "objectCategory -eq 'Person'"

Set-Content -Path feedfile.txt -Value "sym"

$ADSearchBases = @("OU=test1,DC=ABC,DC=ABC","OU=test2,DC=DEF,DC=ABC")
foreach ($ADSearchBase in $ADSearchBases) {
Get-ADUser -Server $DomainController -Credential $myCredentials -SearchBase $ADSearchBase -Filter $ADFilter -Properties 'Title' |
Select-Object title |
Add-Content feedfile.txt
}

当前结果

sym  
title
Employee
Manager
title
Sales Clerk
Cashier

预期结果

sym  
Employee
Manager
Sales Clerk
Cashier

最佳答案

这是针对您的问题的改进解决方案。避免 Add-Content 很重要在循环内以提高脚本的性能。

如果您想获得Property Value使用Select-Object您可以使用-ExpandProperty。即:

Select-Object -ExpandProperty title

或通过member-access enumeration如本例所示:

$ADFilter = "objectCategory -eq 'Person'"
$ADSearchBases = @(
"OU=test1,DC=ABC,DC=ABC"
"OU=test2,DC=DEF,DC=ABC"
)

$hash = @{
Server = $DomainController
Credential = $myCredentials
Filter = $ADFilter
Properties = 'Title'
}

$result = foreach($searchBase in $ADSearchBases) {
$hash.SearchBase = $searchBase
(Get-ADUser @hash).title
}

Set-Content -Path feedfile.txt -Value "sym"
Add-Content -Path feedfile.txt -Value $result

关于powershell - 从 PowerShell 使用 Select-Object 时如何排除 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67815483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com