1

伙计们,我有这个独特的问题,并且一直在寻找答案。我基本上有两个很好的运行脚本,但我需要将它们结合起来。由于某种原因,这不起作用,我收到所有类型的语法 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

现在我想要完成的是让我的输出如下所示。

DisplayName MailboxSize("MB") ItemCount
Alias ServerName
ProhibitSendReceiveQuota UseDatabaseQuotaDefaults IssueWarningQuota

日期时间:2012 年 4 月 10 日星期二下午 4:04:28

名称 Foldersize Itemsinfolder topofinfromationstore 0 3 日历
1234 54 收件箱 1024785 241 已发送项目 14745 54 已删除项目 5414745 875

4

2 回答 2

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
于 2012-04-11T01:38:57.453 回答
1

如果我遵循您的问题,我认为您想要做的是结合两个命令的结果,以便最终得到一个新对象。此代码将使用您似乎想要的值将自定义对象写入管道。要保存到文件,请运行您的脚本并将其通过管道传输到 Out-File 或其他任何内容。

Get-Content c:\list.txt | foreach {
Get-Mailboxstatistics -id $_ | foreach-object {
    #define a hash table of properties
    $size=($_.TotalItemSize)/1MB
    $props=@{
    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 内容

于 2012-04-11T18:04:10.893 回答