尝试从powershell脚本捕获IP,改为获取System.String[]
我正在尝试使用以下脚本将计算机的IPAddress、MACAddress和DefaultIPGateway信息从Win32_NetworkAdapterConfiguration对象拉入名为NetworkAdapterConfiguration.CSV的导出CSV文件:尝试从powershell脚本捕获IP,改为获取System.String[],powershell,csv,Powershell,Csv,我正在尝试使用以下脚本将计算机的IPAddress、MACAddress和DefaultIPGateway信息从Win32_NetworkAdapterConfiguration对象拉入名为NetworkAdapterConfiguration.CSV的导出CSV文件: $StrComputer = $env:computername $NetAdConfig = gwmi Win32_NetworkAdapterConfiguration -Comp $StrComputer $NetAdCo
$StrComputer = $env:computername
$NetAdConfig = gwmi Win32_NetworkAdapterConfiguration -Comp $StrComputer
$NetAdConfig | Select-Object IPAddress,MACAddress,DefaultIPGateway | Export-Csv -Path C:\CSVFolder\NetworkAdapterConfiguration.csv -Encoding ascii -NoTypeInformation
当我查看此CSV时,我得到“System.String[]”,其中应显示IP和DefaultIPGateway值。我假设这些信息被表示为一个数组,这就是我看到System.String[]视图的原因,但我对Powershell没有什么经验。非常感谢您的帮助、建议和参考。IPAddress和DefaultIPGateway属性是数组。如果您确定您的计算机只有一个IP地址和默认网关,则可以执行以下操作:
$computer = $ENV:COMPUTERNAME
get-wmiobject Win32_NetworkAdapterConfiguration -filter "IPEnabled=TRUE" -computername $computer | foreach-object {
new-object PSObject -property @{
"Computer" = $computer
"MACAddress" = $_.MACAddress
"IPAddress" = $_.IPAddress[0]
"DefaultIPGateway" = $_.DefaultIPGateway[0]
} | select-object Computer,MACAddress,IPAddress,DefaultIPGateway
}
下面是使用选择对象的另一种方法:
$computer = $ENV:COMPUTERNAME
get-wmiobject Win32_NetworkAdapterConfiguration -filter "IPEnabled=TRUE" -computername $computer | foreach-object {
$_ | select-object `
@{Name="ComputerName"; Expression={$_.__SERVER}},
@{Name="MACAddress"; Expression={$_.MACAddress}},
@{Name="IPAddress"; Expression={$_.IPAddress[0]}},
@{Name="DefaultIPGateway"; Expression={$_.DefaultIPGateway[0]}}
}
IPAddress和DefaultIPGateway属性是数组。如果您确定您的计算机只有一个IP地址和默认网关,则可以执行以下操作:
$computer = $ENV:COMPUTERNAME
get-wmiobject Win32_NetworkAdapterConfiguration -filter "IPEnabled=TRUE" -computername $computer | foreach-object {
new-object PSObject -property @{
"Computer" = $computer
"MACAddress" = $_.MACAddress
"IPAddress" = $_.IPAddress[0]
"DefaultIPGateway" = $_.DefaultIPGateway[0]
} | select-object Computer,MACAddress,IPAddress,DefaultIPGateway
}
下面是使用选择对象的另一种方法:
$computer = $ENV:COMPUTERNAME
get-wmiobject Win32_NetworkAdapterConfiguration -filter "IPEnabled=TRUE" -computername $computer | foreach-object {
$_ | select-object `
@{Name="ComputerName"; Expression={$_.__SERVER}},
@{Name="MACAddress"; Expression={$_.MACAddress}},
@{Name="IPAddress"; Expression={$_.IPAddress[0]}},
@{Name="DefaultIPGateway"; Expression={$_.DefaultIPGateway[0]}}
}
IPAddress和DefaultIPGateway属性是数组。如果您确定您的计算机只有一个IP地址和默认网关,则可以执行以下操作:
$computer = $ENV:COMPUTERNAME
get-wmiobject Win32_NetworkAdapterConfiguration -filter "IPEnabled=TRUE" -computername $computer | foreach-object {
new-object PSObject -property @{
"Computer" = $computer
"MACAddress" = $_.MACAddress
"IPAddress" = $_.IPAddress[0]
"DefaultIPGateway" = $_.DefaultIPGateway[0]
} | select-object Computer,MACAddress,IPAddress,DefaultIPGateway
}
下面是使用选择对象的另一种方法:
$computer = $ENV:COMPUTERNAME
get-wmiobject Win32_NetworkAdapterConfiguration -filter "IPEnabled=TRUE" -computername $computer | foreach-object {
$_ | select-object `
@{Name="ComputerName"; Expression={$_.__SERVER}},
@{Name="MACAddress"; Expression={$_.MACAddress}},
@{Name="IPAddress"; Expression={$_.IPAddress[0]}},
@{Name="DefaultIPGateway"; Expression={$_.DefaultIPGateway[0]}}
}
IPAddress和DefaultIPGateway属性是数组。如果您确定您的计算机只有一个IP地址和默认网关,则可以执行以下操作:
$computer = $ENV:COMPUTERNAME
get-wmiobject Win32_NetworkAdapterConfiguration -filter "IPEnabled=TRUE" -computername $computer | foreach-object {
new-object PSObject -property @{
"Computer" = $computer
"MACAddress" = $_.MACAddress
"IPAddress" = $_.IPAddress[0]
"DefaultIPGateway" = $_.DefaultIPGateway[0]
} | select-object Computer,MACAddress,IPAddress,DefaultIPGateway
}
下面是使用选择对象的另一种方法:
$computer = $ENV:COMPUTERNAME
get-wmiobject Win32_NetworkAdapterConfiguration -filter "IPEnabled=TRUE" -computername $computer | foreach-object {
$_ | select-object `
@{Name="ComputerName"; Expression={$_.__SERVER}},
@{Name="MACAddress"; Expression={$_.MACAddress}},
@{Name="IPAddress"; Expression={$_.IPAddress[0]}},
@{Name="DefaultIPGateway"; Expression={$_.DefaultIPGateway[0]}}
}
我编写了一个调用的函数,它可以帮助删除您看到的字符串[]问题。您可以这样做,将数组扩展为更可读的属性
$StrComputer = $env:computername
$NetAdConfig = gwmi Win32_NetworkAdapterConfiguration -Comp $StrComputer
$NetAdConfig | Select-Object IPAddress,MACAddress,DefaultIPGateway |
Convert-OutputForCSV |
Export-Csv -Path C:\CSVFolder\NetworkAdapterConfiguration.csv -Encoding ascii -NoTypeInformation
我编写了一个调用的函数,它可以帮助删除您看到的字符串[]问题。您可以这样做,将数组扩展为更可读的属性
$StrComputer = $env:computername
$NetAdConfig = gwmi Win32_NetworkAdapterConfiguration -Comp $StrComputer
$NetAdConfig | Select-Object IPAddress,MACAddress,DefaultIPGateway |
Convert-OutputForCSV |
Export-Csv -Path C:\CSVFolder\NetworkAdapterConfiguration.csv -Encoding ascii -NoTypeInformation
我编写了一个调用的函数,它可以帮助删除您看到的字符串[]问题。您可以这样做,将数组扩展为更可读的属性
$StrComputer = $env:computername
$NetAdConfig = gwmi Win32_NetworkAdapterConfiguration -Comp $StrComputer
$NetAdConfig | Select-Object IPAddress,MACAddress,DefaultIPGateway |
Convert-OutputForCSV |
Export-Csv -Path C:\CSVFolder\NetworkAdapterConfiguration.csv -Encoding ascii -NoTypeInformation
我编写了一个调用的函数,它可以帮助删除您看到的字符串[]问题。您可以这样做,将数组扩展为更可读的属性
$StrComputer = $env:computername
$NetAdConfig = gwmi Win32_NetworkAdapterConfiguration -Comp $StrComputer
$NetAdConfig | Select-Object IPAddress,MACAddress,DefaultIPGateway |
Convert-OutputForCSV |
Export-Csv -Path C:\CSVFolder\NetworkAdapterConfiguration.csv -Encoding ascii -NoTypeInformation