Archivo de export de ForEach Loop a CSV

Estoy trabajando en crear una escritura que emita todos los nombres y models de la computadora a un file del sobresalto. El código funciona sin la canalización Export-Csv pero no puedo averiguar cómo crear el file excel. Si tomo el bucle y uso sólo una computadora con el Export-Csv que también funciona bien.

#Query AD $Computers = Get-ADComputer -Filter * -searchbase "DC=domain,DC=org" #loop foreach ($computer in $Computers) { $comp=$computer.Name Get-WmiObject -Class Win32_ComputerSystem -ComputerName $comp | Where-Object {$_.model -like "*G2*"} | Select-Object Name, Model | Export-Csv "C:\User\xxxxxx\Desktop\8200s.csv" -NoTypeInformation -Encoding UTF8 -Append } 

2 Solutions collect form web for “Archivo de export de ForEach Loop a CSV”

Le sugiero que mueva el Export-CVS fuera del bucle, y use Foreach-Object para que pueda usar el pipeline.

 # Query AD for computers Get-ADComputer -Filter * -searchbase "DC=domain,DC=org" | ForEach-Object { $comp=$_.Name # return name,model for all G2 computers Get-WmiObject -Class Win32_ComputerSystem -ComputerName $comp | Where-Object {$_.model -like "*G2*"} | Select-Object Name, Model } | Export-Csv "C:\User\xxxxxx\Desktop\8200s.csv" -NoTypeInformation -Encoding UTF8 

Con algunas de sus sugerencias y un poco más de pensamiento, pude entender esto. Hemos creado un Array y un object, escribimos información a una matriz y luego al file. Pude conseguir la export y luego tuve que poner adelante un poco más de esfuerzo para averiguar todos los errores con los orderadores que harían que el script se ejecute muy lento. A continuación se muestra lo que utilizamos.

Consultar AD

 $ErrorActionPreference="Continue" $Computers = Get-ADComputer -Filter * -searchbase "OU=TechDepartment,OU=Workstations,DC=domain,DC=org" $OurArray=@() $firstObject = New-Object PSObject Add-Member -InputObject $firstObject -MemberType NoteProperty -Name Name -Value "" Add-Member -InputObject $firstObject -MemberType NoteProperty -Name Model -Value "" #loop foreach ($computer in $Computers) { $comp=$computer.Name If(Test-Connection $comp -count 1 -Quiet) { #Successful Ping Write-Host "$comp" try{ $firstObject = Get-WmiObject -Class Win32_ComputerSystem -ComputerName $comp -ErrorAction Stop | Select-Object Name, Model | Where-Object {$_.model -like "*8200*"} $OurArray += $firstObject }catch { "$comp RPC is Down"} } Else {Write-Host "$comp is offline"} } $OurArray | Export-Csv 8200s.csv -NoTypeInformation -Encoding UTF8 
  • Powershell entra en el bucle foreach con object nulo
  • Además de mirar dumping $ PSVersionTable y el dumping de la variable y env "PS-Drives", ¿qué más puedo hacer para comparar los entornos de PowerShell?
  • Agregue un enlace a un sitio de IIS utilizando powershell
  • Powershell 2: ¿La forma óptima de calcular la sum de comprobación en el file?
  • Desea Exportar-Variable CSV con properties
  • ¿Cómo hago que este script se ejecute en paralelo?
  • La session remota de PS falla en un server que no es de dominio
  • Inicio rápido de PowerShell
  • Con powershell get exactamente la misma list de aplicaciones que en Agregar o quitar progtwigs
  • Determine si el script de PowerShell se ha ejecutado desde el escritorio o la command-line
  • Forzar la salida de Powershell Script en forma tabular
  • Importación desde CSV y sorting por date
  • Acceso a routes del server remoto con variables de entorno de Powershell
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.