输出Powershell结果到单个文本文档

时间:2015-12-06 16:53:06

标签: powershell for-loop foreach exchange-server-2010

我认为这可能是一个简单的答案,但对于我的生活,我无法理解为什么这个简单的事情似乎在打败我。我希望输出

的结果
Get-Mailbox –Server MYserverName | Get-MailboxPermission | FL

通过管道传输到每个邮箱的单个文本文件,并使用为邮箱命名的文本文件 - 例如我想要一个包含内容的文件夹:

  • C:\ Example \ MailboxUser1.txt
  • C:\实施例\ MailboxUser2.txt
  • C:\实施例\ MailboxUser3.txt

每个包含邮箱权限结果。

我知道我可以按照以下方式进行foreach循环:

ForEach-Object {Out-file $_.name}

生成输出文件,但我不太清楚如何在一步中将所有邮箱的权限转换为单个文件(我知道这会给我很多文本文件) !)?

2 个答案:

答案 0 :(得分:1)

有些事情:

RGB_565

$directory = "C:\example\" $count = 0 Get-Mailbox –Server "MYserverName" | Foreach-Object { Get-MailboxPermission | Format-List | Out-File (Join-Path $directory "MailboxUser-$(++$count).txt") } 循环(邮箱)的每次传递中,将使用ForEach-Object命令的输出生成一个文件。

Get-MailboxPermission在使用之前递增值(而不是++$count

如果您希望使用邮箱对象的$count++属性来命名文件:

Name

答案 1 :(得分:-1)

Get-Mailbox –Server MYserverName | Get-MailboxPermission | foreach {out-file "$($_.name).txt"} 

这将能够为您提供所需的所有权限IF" name"是你正在寻找的财产。我不使用交换cmdlet,所以我不知道这是否会重要。