首页 > 解决方案 > 我有powershell命令,其中每个内容都需要插入到aexcel的单元格中

问题描述

嗨,我是 Powershell 的新手,需要将下面的输出插入到 Excel 书的单元格中

systeminfo | findstr /B "Domain"
Get-LocalGroupMember -Group Administrators
Get-WmiObject -Class Win32_Product
Get-TimeZone
get-culture | format-list -property *
Get-NetFirewallProfile | select Name, enabled
get-wmiobject -class win32_logicaldisk


$nicx = Get-NetAdapterStatistics
Foreach ($nic in $nicx) {
  Get-NetAdapterAdvancedProperty -Name $nic.Name -DisplayName "Receive Buffer Size"
  Get-NetAdapterAdvancedProperty -Name $nic.Name -DisplayName "Send Buffer Size"
}

Get-NetAdapterBinding -ComponentID ms_tcpip6

命令的输出将类似于

PS C:\Users\> systeminfo | findstr /B "Domain"
Domain:                    example.net
PS C:\Users> Get-LocalGroupMember -Group Administrators
ObjectClass Name                             PrincipalSource
----------- ----                             ---------------
User        server\admin         Local          
User        Example-NET\a_pra              ActiveDirectory
Group       Example-NET\Admin_server ActiveDirectory
Group       Example-NET\Domain Admins        ActiveDirectory

PS C:\Users> Get-WmiObject -Class Win32_Product |  findstr -i "Snow Inventory Agent"
Name              : Snow Inventory Agent
Vendor            : Snow Software AB
Caption           : Snow Inventory Agent
Name              : Microsoft Monitoring Agent
Caption           : Microsoft Monitoring Agent

PS C:\Users> Get-TimeZone 
Id                         : Central European Standard Time
DisplayName                : (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb
StandardName               : Central European Standard Time
DaylightName               : Central European Daylight Time
BaseUtcOffset              : 01:00:00
SupportsDaylightSavingTime : True

等所有命令输出都需要格式化为 excel 。

标签: powershellexport-to-excelpowershell-3.0

解决方案


这是一个很好的起点,但如果您希望其格式不同,则必须提供更多信息:

$ExcelFile = 'c:\folder\filename.csv'

systeminfo | findstr /B "Domain" | Out-File -A $ExcelFile
Get-LocalGroupMember -Group Administrators | ConvertTo-Csv -NoType | Out-File -A $ExcelFile
Get-WmiObject -Class Win32_Product | ConvertTo-Csv -NoType | Out-File -A $ExcelFile
Get-TimeZone | ConvertTo-Csv -NoType | Out-File -A $ExcelFile
Get-Culture | ConvertTo-Csv -NoType | Out-File -A $ExcelFile
Get-NetFirewallProfile | select Name, enabled | ConvertTo-Csv -NoType | Out-File -A $ExcelFile
Get-WmiObject -class win32_logicaldisk | ConvertTo-Csv -NoType | Out-File -A $ExcelFile

Foreach ($nic in (Get-NetAdapterStatistics)) {
  Get-NetAdapterAdvancedProperty -Name $nic.Name -DisplayName "Receive Buffer Size" | ConvertTo-Csv -NoType | Out-File -A $ExcelFile
  Get-NetAdapterAdvancedProperty -Name $nic.Name -DisplayName "Send Buffer Size" | ConvertTo-Csv -NoType | Out-File -A $ExcelFile
}

Get-NetAdapterBinding -ComponentID ms_tcpip6 | ConvertTo-Csv -NoType | Out-File -A $ExcelFile

在 excel 中,您仍然需要执行 Data > Text-to-Columns,因为您有多个具有不同字段的表


推荐阅读