2012-04-10 96 views
1

夥計們我有這個獨特的問題,並一直在跺腳我的頭尋求答案。我基本上有兩個很好的運行腳本,但我需要將它們結合起來。出於某種原因,這是行不通的,我得到所有類型的語法powershell錯誤。結合powershell命令

第一個正確工作的腳本。請參閱下面的第二個腳本

Get-Content c:\list.txt | foreach { 
    Get-Mailboxstatistics -id $_ | foreach{ 
     $mbx = $_ | select DisplayName, @{Label=’MailboxSize("MB")’;Expression={$_.TotalItemSize/1MB}}, ItemCount 
     $date_captured=get-date | select datetime 

     Get-Mailbox -id $_ | foreach{ 
      $mbx | add-member -type noteProperty -name Alias -value $_.Alias 
      $mbx | add-member -type noteProperty -name ServerName -value $_.ServerName 
      $mbx | add-member -type noteProperty -name ProhibitSendReceiveQuota -value $.ProhibitSendReceiveQuota 
      $mbx | add-member -type noteProperty -name UseDatabaseQuotaDefaults -value $.UseDatabaseQuotaDefaults 
      $mbx | add-member -type noteProperty -name IssueWarningQuota -value $_.IssueWarningQuota 
     } $mbx, $date_captured 

    } 

} 

這是運行的第二個命令。這工作很好,再次嘗試

結合這與上面的命令失敗。

get-mailboxfolderstatistics -id "alias" | select name, foldersize, itemsinfolder 

現在我想要實現的是讓我的輸出如下所示。

顯示名稱MailboxSize( 「MB」)ITEMCOUNT
別名服務器名
ProhibitSendReceiveQuota UseDatabaseQuotaDefaults IssueWarningQuota

日期時間:週二,2012年4月10日下午4時04分28秒

名稱Foldersize Itemsinfolder topofinfromationstore 0 3日曆
1234 54收件箱1024785 241發送項目14745 54刪除 項目5414745 875

+0

對你的要求不明確。另外,你的第一個「工作」腳本有語法錯誤。 – zdan 2012-04-10 22:21:36

+0

我有一個有趣的感覺,我失蹤}。當我做這件事時,我在工作,不幸的是沒有在一臺機器上運行。我幾乎可以肯定它缺少一個「}」括號。此外,我只是試圖結合頂部的腳本以及以下命令。我想輸出到一個文件。 – user1324990 2012-04-10 23:43:30

回答

1

您可以使用Out-File登錄這兩個命令的輸出,例如:

<first-command> | Out-File c:\log.txt 
<second-command> | Out-File c:\log.txt -Append 

或者如果你喜歡重定向操作符:

<first-command> > c:\log.txt 
<second-command> >> c:\log.txt 
+0

這實際上就像一個魅力。我正試圖讓它現在進入excel。我一直在閱讀我可以讓這個標籤被刪除的地方。 – user1324990 2012-04-16 02:57:47

+0

@ user1324990你可以使用這樣的東西導出爲TSV:'$ output = @(); $ output + = @(); $ output | Export-Csv C:\ log.csv -delimiter「''t」' – 2012-04-16 04:15:52

1

如果我按照你的問題是什麼我想你想要做的就是結合兩個命令的結果,以便最終得到一個新的對象。此代碼將使用您似乎在之後的值將自定義對象寫入管道。要保存到文件中,請運行腳本並將其傳送到Out-File或其他任何文件。

Get-Content c:\list.txt | foreach { 
Get-Mailboxstatistics -id $_ | foreach-object { 
    #define a hash table of properties 
    $size=($_.TotalItemSize)/1MB 
    [email protected]{ 
    MailboxSizeMB=$size; 
    Displayname=$_.DisplayName; 
    ItemCount=$_.ItemCount; 
    DateCaptured=Get-Date; 
    } #close hash 

    Get-Mailbox -id $_ | foreach-object { 
     $props.Add("Alias",$_.Alias) 
     $props.Add("ServerName",$_.ServerName) 
     $props.Add("ProhibitSendReceiveQuota",$_.ProhibitSendReceiveQuota) 
     $props.Add("UseDatabaseQuotaDefaults",$_.UseDatabaseQuotaDefaults) 
     $props.Add("IssueWarningQuota",$_.IssueWarningQuota) 
    } #foreach mailbox 

    #write a custom object 
    New-Object -TypeName PSObject -Property $props 

} #foreach mailboxstatistic 

} #foreach內容

+0

我很抱歉找回這麼晚。我喜歡你對這些命令所做的一切,並使它們成爲一個散列。這給了我很多關於我可以使用它的其他東西的想法。但是,從您的示例中,我仍然無法獲得輸入到上述命令中的get-mailboxfolderstatistics命令。 – user1324990 2012-04-16 02:56:55