Diese Lösung erstellt ein psobject und fügt jedes Objekt einem Array hinzu. Anschließend erstellt es die CSV, indem es den Inhalt des Arrays über Export-CSV leitet.
$results = @()
foreach ($computer in $computerlist) {
if((Test-Connection -Cn $computer -BufferSize 16 -Count 1 -ea 0 -quiet))
{
foreach ($file in $REMOVE) {
Remove-Item "\\$computer\$DESTINATION\$file" -Recurse
Copy-Item E:\Code\powershell\shortcuts\* "\\$computer\$DESTINATION\"
}
} else {
$details = @{
Date = get-date
ComputerName = $Computer
Destination = $Destination
}
$results += New-Object PSObject -Property $details
}
}
$results | export-csv -Path c:\temp\so.csv -NoTypeInformation
Wenn Sie Rohr ein String-Objekt in eine CSV werden Sie seine Länge an die csv geschrieben werden, ist dies, weil diese Eigenschaften des Strings sind, finden Sie here für weitere Informationen.
Deshalb erstelle ich zuerst ein neues Objekt.
Versuchen Sie Folgendes:
write-output "test" | convertto-csv -NoTypeInformation
Dies gibt Ihnen:
"Length"
"4"
Wenn Sie das Get-Member auf Write-Output wie folgt verwenden:
write-output "test" | Get-Member -MemberType Property
Sie werden sehen Sie, dass es eine Eigenschaft hat - 'Länge':
TypeName: System.String
Name MemberType Definition
---- ---------- ----------
Length Property System.Int32 Length {get;}
Deshalb wird Länge in die CSV-Datei geschrieben werden.
Update: Anfügen eines CSV nicht die effizienteste Art und Weise, wenn die Datei groß wird ...
$csvFileName = "c:\temp\so.csv"
$results = @()
if (Test-Path $csvFileName)
{
$results += Import-Csv -Path $csvFileName
}
foreach ($computer in $computerlist) {
if((Test-Connection -Cn $computer -BufferSize 16 -Count 1 -ea 0 -quiet))
{
foreach ($file in $REMOVE) {
Remove-Item "\\$computer\$DESTINATION\$file" -Recurse
Copy-Item E:\Code\powershell\shortcuts\* "\\$computer\$DESTINATION\"
}
} else {
$details = @{
Date = get-date
ComputerName = $Computer
Destination = $Destination
}
$results += New-Object PSObject -Property $details
}
}
$results | export-csv -Path $csvFileName -NoTypeInformation
Schauen Sie sich das 'Export-CSV' Cmdlet an: http://technet.microsoft.com/en-us/library/ee176825.aspx –
Danke aber ich habe nachgesehen. Kannst du mir bitte zeigen, wie man diesen Schreib-Host exportiert "\\ $ computer \ $ DESTINATION \" –