伙计我有这个独特的问题,一直在为我的答案而烦恼。我基本上有两个很好的运行脚本,但我需要将它们组合起来。由于某些原因,这不起作用,我得到所有类型的语法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
别名ServerName
ProhibitSendReceiveQuota UseDatabaseQuotaDefaults IssueWarningQuota日期时间:2012年4月10日星期二下午4:04:28
名称Foldersize Itemsinfolder topofinfromationstore 0 3日历
1234 54收件箱1024785 241已发送邮件14745 54已删除 项目5414745 875
答案 0 :(得分: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
答案 1 :(得分: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内容