在现有列中添加新列 PowerShell

在现有列中添加新列 PowerShell

我有服务器列表,对于它们我使用命令 Resolve -DnsName,此命令具有不同的参数,并且为了接收我需要的所有数据(NS,MX,CNAME,A)记录,我需要创建多个命令。

$servers = get-content "C:\Users\Olehsa\Desktop\ttt.txt"


    $a1 = foreach ($server in $servers) {

     [System.Net.Dns]::resolve($server)
    }

每个命令后我都有一个包含 1-3 列的列表。

#NS
$a2 = foreach ($server in $servers) {

    Resolve-DnsName -Name $server -Type NS -DnsOnly | select PrimaryServer, NameHost,NameExchange,Strings + $a3 

}

#MX
$a3 = foreach($server in $servers) {

    Resolve-DnsName -Name $server -Type MX -DnsOnly | select NameExchange
} 

#TXT
$a4 = foreach($server in $servers) {

    Resolve-DnsName -Name $server -Type TXT | select Strings
}

我收到以下数据:

HostName   Aliases AddressList    
--------   ------- -----------    
google.com {}      {172.217.22.46}

和这个 :

NameHost       NameExchange
-------------  --------       
              ns1.google.com             
              ns4.google.com             
              ns3.google.com             
              ns2.google.com   

问题是,我如何将其合并为一个包含多列的大列表?

Ps 不使用 PS 对象,因为如果我使用它,我会将所有数据放入 1 个单元格。我有 3 列的列表,我需要再添加一列

答案1

我会把这个放到一个字段中ForEach
当得到单个字段的多个结果-Join

## Q:\Test\2018\09\21\SF_932023.ps1
$servers = get-content "C:\Users\Olehsa\Desktop\ttt.txt"

$result = foreach ($server in $servers) {
    [PSCustomObject]@{
        Server        = $server
        NameHost      = ((Resolve-DnsName -Name $server -Type NS -DnsOnly).NameHost|Sort) -Join ', '
        NameExchange  = ((Resolve-DnsName -Name $server -Type MX -DnsOnly).NameExchange|Sort) -Join ', '
        Strings       = ((Resolve-DnsName -Name $server -Type TXT).Strings) -Join ', '
     }
}

$result|fl

示例输出:

Server       : google.com
NameHost     : ns1.google.com, ns2.google.com, ns3.google.com, ns4.google.com
NameExchange : alt1.aspmx.l.google.com, alt2.aspmx.l.google.com, alt3.aspmx.l.google.com, alt4.aspmx.l.google.com, aspmx.l.google.com
Strings      : docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e, facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95, v=spf1 include:_spf.google.com ~all

相关内容