Saída Powershell do Exchange 2010 Cada permissão de caixa de correio para separar arquivos de texto

2

Estou procurando produzir os resultados de

Get-Mailbox –Server MYserverName | Get-MailboxPermission | FL

canalizado para arquivos de texto individuais para cada caixa de correio individual, com o arquivo de texto nomeado para a caixa de correio - por exemplo, Eu quero ter uma pasta com o conteúdo:

  • C: \ Example \ MailboxUser1.txt
  • C: \ Example \ MailboxUser2.txt
  • C: \ Example \ MailboxUser3.txt

com cada um contendo os resultados da permissão da caixa de correio.

Eu sei que posso fazer um loop foreach ao longo das linhas de:

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

para gerar os arquivos de saída, mas não tenho certeza de como faria isso em uma única etapa para obter as permissões de todas as minhas caixas de correio em arquivos individuais (sei que isso me fornecerá muitos arquivos de texto!) ?

    
por AskJarv 06.12.2015 / 09:25

2 respostas

2

Você está quase lá. Combine-os assim:

Get-Mailbox –Server MYserverName | % { Get-MailboxPermission $_ | FL | Out-file $_.name }

Eu tentei isso no meu servidor de laboratório do Exchange 2013 e ele pareceu fazer o que você precisa. Para essa função, há pouca diferença entre 2010 e 2013.

Se você quiser a extensão ".txt" nos arquivos de saída, faça o seguinte:

Get-Mailbox –Server MYserverName | % { Get-MailboxPermission $_ | FL | Out-file "$_.txt" }
    
por 07.12.2015 / 16:17
0

Obrigado a todos - isso foi muito próximo - mas quando o executei em alguns servidores diferentes de 2010, recebi um erro:

Pipeline not executed because a pipeline is already executing. Pipelines cannot be executed concurrently. + CategoryInfo : OperationStopped: (Microsoft.Power...tHelperRunspace:ExecutionCmdletHelperRunspace) [], PSInvalidOperationException + FullyQualifiedErrorId : RemotePipelineExecutionFailed

Pipeline not executed because a pipeline is already executing. Pipelines cannot be executed concurrently. + CategoryInfo : OperationStopped: (Microsoft.Power...tHelperRunspace:ExecutionCmdletHelperRunspace) [], PSInvalidOperationException + FullyQualifiedErrorId : RemotePipelineExecutionFailed

que me levou a link que sugeri usar uma variável - então meu resultado final foi:

$mailbox = Get-Mailbox
$mailbox | % { Get-MailboxPermission $_ | FL | Out-file "$_.txt" }

que funcionou perfeitamente! Obrigado novamente!

    
por 07.12.2015 / 21:16