powershell - 从 powershell 获取输出的问题
问题描述
$ErrorActionPreference = 'SilentlyContinue'
$ComputerName =Get-ADComputer -Filter {(Name -like "*")} -SearchBase "OU=AsiaPacific,OU=Sales,OU=UserAccounts,DC=FABRIKAM,DC=COM" | Select-Object -ExpandProperty Name
$results = @{}
ForEach ($computer in $ComputerName) {
$Results += Get-NetAdapter -CimSession $ComputerName | Select-Object PsComputerName, InterfaceAlias, Status, MacAddress
}
$results | Export-csv -path C\users\bret.hooker\desktop\macaddress.csv -Append
请注意,由于工作场所的机密性,base 和 filter 只是示例,而不是实际代码。当前代码将从 AD 中提取所有计算机名称,然后运行 ForEach 命令以获取 NetAdapter 信息。但是,我无法将其输出到 CSV 文件。任何建议都会很棒。
解决方案
我的建议是 1)不要不断地将对象附加到数组中,2)避免使用 的-Append
参数Export-Csv
,以及 3)利用管道。例子:
$computerNames = Get-ADComputer -Filter * -SearchBase "OU=AsiaPacific,OU=Sales,OU=UserAccounts,DC=FABRIKAM,DC=COM" | Select-Object -ExpandProperty Name
$computerNames | ForEach-Object {
Get-NetAdapter -CimSession $_ | Select-Object PSComputerName,InterfaceAlias,Status,MACAddress
} | Export-Csv "C\users\bret.hooker\desktop\macaddress.csv" -NoTypeInformation
推荐阅读
- awk - 如何用引号分隔单词
- javascript - Accordion JS 超链接传播
- java - (Java) 执行硬币翻转程序的代码时出现逻辑错误
- r - R Shiny:如何在浏览器上显示循环的每次迭代?应在单击按钮时触发循环
- python - 在 colab 中使用自定义 cython 模块
- python - X 和 XT 的区别
- javascript - 坚持一个简单的递归练习,得到“最大堆栈错误”
- vba - VBA突出显示列中的重复项
- c# - 如何在 WeifenLuo 中使用预先存在的表单 LoadFromXml?
- flutter - Initstate 没有被引用 Flutter 问题