首页 > 解决方案 > Powershell 管道变量无输出

问题描述

我正在尝试从我的 office365 服务器获取所有用户照片。我需要它们以别名格式显示,即 firstname.lastname

get-mailbox | % {Get-UserPhoto $_.alias} | % {Set-Content -path "c:\export\$($_.alias).jpg" -value $_.picturedata -Encoding byte}

这有效,但给了我名字姓氏

有人告诉我,我需要通过管道传递邮箱参数,才能做我想做的事情。

get-mailbox -PipelineVariable Mailbox | % {Get-UserPhoto $Mailbox.alias} | % {Set-Content -path "c:\export\$($Mailbox.alias).jpg" -value $_.picturedata -Encoding byte}

这是我的新代码,但它不会将照片吐出到目录中。有谁知道为什么这不起作用?

标签: powershellvariablespipeline

解决方案


现在无法检查,但我认为这可能有效:

Get-Mailbox | ForEach-Object { 
    $photo = Get-UserPhoto -Identity $_.alias
    Set-Content -Path "c:\export\$($_.alias).jpg" -value $photo.picturedata -Encoding byte
}

推荐阅读