不会在 CSV 中显示 IP 地址
Won't display IP address in CSV
我正在尝试检索 运行 应用程序、计算机的用户名及其 IP 地址。现在,每次将结果保存在文本文件中时,IP 地址部分总是会给我这样的结果:
"Length"
"11"
有什么办法可以得到IP地址吗?
$savepath = "C:\Users$([Environment]::UserName)\Desktop\apps\runningapps.txt"
Get-Process | where {$_.mainwindowtitle.length -ne 0} |
select name, mainwindowtitle| ConvertTo-Csv -NoType |
Set-Content $savepath
Get-WmiObject -Class Win32_ComputerSystem | select username |
ConvertTo-Csv -NoType | Add-Content $savepath
Get-WmiObject Win32_NetworkAdapterConfiguration |
Where { $_.IPAddress } |
Select -Expand IPAddress |
Where { $_ -notlike "*:*" } | ConvertTo-Csv -NoType | Add-Content $savepath
IP 地址是一个字符串列表,因此如果您希望每行一个地址,您可以将它们直接写入输出文件:
Get-WmiObject Win32_NetworkAdapterConfiguration |
Where { $_.IPAddress } |
Select -Expand IPAddress |
Where { $_ -notlike "*:*" } | Add-Content $savepath
如果您希望地址以逗号分隔的形式出现在一行中,您需要先加入它们:
(Get-WmiObject Win32_NetworkAdapterConfiguration |
Where { $_.IPAddress } |
Select -Expand IPAddress |
Where { $_ -notlike "*:*" }) -join ',' | Add-Content $savepath
ConvertTo-Csv
不会在这里帮助你,因为它需要一个对象作为输入并输出对象属性的 comma-separated 列表。如果您的输入对象是字符串(只有 属性 Length
),那么输出将成为输入字符串长度的列表。
附带说明:构建输出文件路径的更简单方法是使用 USERPROFILE
环境变量:
$savepath = "$env:USERPROFILE\Desktop\apps\runningapps.txt"
我正在尝试检索 运行 应用程序、计算机的用户名及其 IP 地址。现在,每次将结果保存在文本文件中时,IP 地址部分总是会给我这样的结果:
"Length" "11"
有什么办法可以得到IP地址吗?
$savepath = "C:\Users$([Environment]::UserName)\Desktop\apps\runningapps.txt"
Get-Process | where {$_.mainwindowtitle.length -ne 0} |
select name, mainwindowtitle| ConvertTo-Csv -NoType |
Set-Content $savepath
Get-WmiObject -Class Win32_ComputerSystem | select username |
ConvertTo-Csv -NoType | Add-Content $savepath
Get-WmiObject Win32_NetworkAdapterConfiguration |
Where { $_.IPAddress } |
Select -Expand IPAddress |
Where { $_ -notlike "*:*" } | ConvertTo-Csv -NoType | Add-Content $savepath
IP 地址是一个字符串列表,因此如果您希望每行一个地址,您可以将它们直接写入输出文件:
Get-WmiObject Win32_NetworkAdapterConfiguration |
Where { $_.IPAddress } |
Select -Expand IPAddress |
Where { $_ -notlike "*:*" } | Add-Content $savepath
如果您希望地址以逗号分隔的形式出现在一行中,您需要先加入它们:
(Get-WmiObject Win32_NetworkAdapterConfiguration |
Where { $_.IPAddress } |
Select -Expand IPAddress |
Where { $_ -notlike "*:*" }) -join ',' | Add-Content $savepath
ConvertTo-Csv
不会在这里帮助你,因为它需要一个对象作为输入并输出对象属性的 comma-separated 列表。如果您的输入对象是字符串(只有 属性 Length
),那么输出将成为输入字符串长度的列表。
附带说明:构建输出文件路径的更简单方法是使用 USERPROFILE
环境变量:
$savepath = "$env:USERPROFILE\Desktop\apps\runningapps.txt"