Benutzer mit den meisten Antworten
Frage zum Script...Datenbanken auslesen

Frage
-
Nachdem ich nun mehrere Stunden den Fehler gesucht habe, versuche ich es nun auf diesem Wege....warum wird mir in der .txt kein Speicherplatz angezeigt?
param( [Parameter(ParameterSetName='database')] [string]$database, [Parameter(ParameterSetName='file')] [string]$file, [Parameter(ParameterSetName='server')] [string]$server, [Parameter(ParameterSetName='mailbox')] [string]$mailbox, [Parameter(ParameterSetName='all')] [switch]$all, [string]$filename ) #................................... # Variables #................................... $ErrorActionPreference = "SilentlyContinue" $WarningPreference = "SilentlyContinue" $report = @() #................................... # Initialize #................................... #Set recipient scope $2007snapin = Get-PSSnapin -Name Microsoft.Exchange.Management.PowerShell.Admin if ($2007snapin) { $AdminSessionADSettings.ViewEntireForest = 1 } else { $2010snapin = Get-PSSnapin -Name Microsoft.Exchange.Management.PowerShell.E2010 if ($2010snapin) { Set-ADServerSettings -ViewEntireForest $true } } #................................... # Script #................................... #Add dependencies Import-Module ActiveDirectory #Get the mailbox list Set-ADServerSettings -PreferredServer server.xy.dns Set-ADServerSettings -RecipientViewRoot xy.dns Write-Host -ForegroundColor White "Collecting mailbox list" if($all) { $mailboxes = @(Get-Mailbox -resultsize unlimited -IgnoreDefaultScope) } if($server) { $mailboxes = @(Get-Mailbox -server $server -resultsize unlimited -IgnoreDefaultScope) } if($database){ $mailboxes = @(Get-Mailbox -database $database -resultsize unlimited -IgnoreDefaultScope) } if($file) { $mailboxes = @(Get-Content $file | Get-Mailbox -resultsize unlimited) } if($mailbox) { $mailboxes = @(Get-Mailbox $mailbox) } #Get the report Write-Host -ForegroundColor White "Collecting report data" $mailboxcount = $mailboxes.count $i = 0 $mailboxdatabases = @(Get-MailboxDatabase) #Loop through mailbox list and collect the mailbox statistics foreach ($mb in $mailboxes) { $i = $i + 1 $pct = $i/$mailboxcount * 100 Write-Progress -Activity "Collecting mailbox details" -Status "Processing mailbox $i of $mailboxcount - $mb" -PercentComplete $pct $stats = $mb | Get-MailboxStatistics | Select-Object TotalItemSize,TotalDeletedItemSize,ItemCount,LastLogonTime,LastLoggedOnUserAccount if ($mb.ArchiveDatabase) { $archivestats = $mb | Get-MailboxStatistics -Archive | Select-Object TotalItemSize,TotalDeletedItemSize,ItemCount } else { $archivestats = "n/a" } $inboxstats = Get-MailboxFolderStatistics $mb -FolderScope Inbox | Where {$_.FolderPath -eq "/Inbox"} $sentitemsstats = Get-MailboxFolderStatistics $mb -FolderScope SentItems | Where {$_.FolderPath -eq "/Sent Items"} $deleteditemsstats = Get-MailboxFolderStatistics $mb -FolderScope DeletedItems | Where {$_.FolderPath -eq "/Deleted Items"} #FolderandSubFolderSize.ToMB() $lastlogon = $stats.LastLogonTime $user = Get-User $mb $aduser = Get-ADUser $mb.samaccountname -Properties Enabled,AccountExpirationDate #Create a custom PS object to aggregate the data we're interested in $userObj = New-Object PSObject $userObj | Add-Member NoteProperty -Name "Company" -Value $user.Company $userObj | Add-Member NoteProperty -Name "Office" -Value $user.Office $userObj | Add-Member NoteProperty -Name "DisplayName" -Value $mb.DisplayName $userObj | Add-Member NoteProperty -Name "Total Mailbox Size (MB)" -Value ($stats.TotalItemSize.Value.ToMB() + $stats.TotalDeletedItemSize.Value.ToMB()) #$userObj | Add-Member NoteProperty -Name "Total Mailbox Size (GB)" -Value ($stats.TotalItemSize.Value.ToGB() + $stats.TotalDeletedItemSize.Value.ToGB()) #Add the object to the report $report = $report += $userObj } #Catch zero item results $reportcount = $report.count $billdate = Get-Date -UFormat %Y%m%d if ($reportcount -eq 0) { Write-Host -ForegroundColor Yellow "No mailboxes were found matching that criteria." } else { #Output single mailbox report to console, otherwise output to CSV file if ($mailbox) { $report | Format-List } else { $report | Out-File -Encoding utf8 Z:\$billdate\Exchange\$filename.txt #$report | Out-File -Encoding utf8 C:\Users\dmontag\Desktop\$filename.txt Write-Host -ForegroundColor White "Report written to $filename .txt in current path." Get-Item $filename } } ##################################################################################################################################################### Set-ExecutionPolicy Unrestricted $billdate = Get-Date -UFormat %Y%m%d $path="Z:\$billdate\Exchange\Exchange.xlsx" Z:\Scripte\Exchange\exchange.ps1 #Instanzieren eines COM-Objektes für Excel $excel = new-object -comobject excel.application $excel.visible = $False $excel.DisplayAlerts = $False #Arbeitsmappe laden $workbook = $excel.Workbooks.Add() foreach ($companys in (Get-Content Z:\Scripte\Exchange\companys.txt)) { # Ignore blank lines if ($companys) { $worksheet = $excel.Worksheets.Add() $companys = $companys.Trim() $workbook.Worksheets.Item(1).Name = "$companys" $workbook.Worksheets.Item(1).Cells.Item(1,1) = "Company" $workbook.Worksheets.Item(1).Cells.Item(1,2) = "Office" $workbook.Worksheets.Item(1).Cells.Item(1,3) = "Username" $workbook.Worksheets.Item(1).Cells.Item(1,4) = "Size in MB" $workbook.Worksheets.Item(1).Cells.Item(1,5) = "Price in Euro" } } $Firma1 = Get-Content Z:\$billdate\Exchange\"Firma1.txt" $Firma1 -replace 'Firma1', 'F1 ' > Z:\$billdate\Exchange\"Firma1.txt" $Firma2 = Get-Content Z:\$billdate\Exchange\"Firma2.txt" $Firma2 -replace 'irma2', ' ' -replace 'Firma2', 'F2 ' > Z:\$billdate\Exchange\"Firma2.txt" $postfaecher = 0 echo "Excel Tabelle wird gebaut" foreach ($companylist in (Get-Content Z:\Scripte\Exchange\companylist.txt)) { foreach ($postfaecher in (Get-Content Z:\$billdate\Exchange\$companylist.txt | Where-Object { $_.readcount -gt 4})) { # Ignore blank lines if ($postfaecher) { $company,$office,$user,$size = $postfaecher -split ' {2,}' if ([string]::IsNullOrEmpty($company) -or [string]::IsNullOrEmpty($office)) { $worksheet = $workbook.worksheets | where {$_.name -eq "Tester"} $postfaecherCount++ $count = ($worksheet.UsedRange.Rows).count+1 $worksheet.Cells.Item($count,1) = "$company" $worksheet.Cells.Item($count,2) = "$office" $worksheet.Cells.Item($count,3) = "$user" $worksheet.Cells.Item($count,4) = "$size" $worksheet.Cells.Item($count,5) = "$price" foreach ($companys in (Get-Content Z:\Scripte\Exchange\companys.txt)) { $worksheet = $workbook.worksheets | where {$_.name -eq "$companys"} $row = $worksheet.UsedRange.rows.count $range = $worksheet.Range("B2:AK$row") $range2 = $worksheet.Range("B2") $range.Sort($range2) #Autofit the columns } $workbook.SaveAs($path) $workbook.Close() #COM-Objektes beenden $Excel.Quit() #COM-Objektes aus dem Speicher entfernen [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
- Typ geändert Denniver ReiningMVP, Moderator Samstag, 20. August 2016 00:44 ....
- Typ geändert Denniver ReiningMVP, Moderator Dienstag, 23. August 2016 13:13 ....
Antworten
-
Keine Ahnung welche txt du genau meinst, bitte sag doch mal um welche Zeile es geht.
Zusätzlich fehlen bei dir ein paar abschließenden Klammern. Für mal in Zeile 198 vier } Klammern hinzu.
- Als Antwort markiert Denniver ReiningMVP, Moderator Dienstag, 23. August 2016 13:13
Alle Antworten
-
Keine Ahnung welche txt du genau meinst, bitte sag doch mal um welche Zeile es geht.
Zusätzlich fehlen bei dir ein paar abschließenden Klammern. Für mal in Zeile 198 vier } Klammern hinzu.
- Als Antwort markiert Denniver ReiningMVP, Moderator Dienstag, 23. August 2016 13:13
-
In den Zeilen 102 bis 110 werden die Spalten innerhalb der txt benannt. (Zeile 130) Jedoch taucht dort das Attribut "Size in MB" nicht auf....
Die Klammern werden bei dem Script überbewertet, da unrelevante Teile rausgelöscht wurden...
- Bearbeitet Leinadgnom Freitag, 12. August 2016 10:42 Klammerargument vergessen