你想要达到的目标如下。我有这两行代码:
$array = Get-Content C:\Management\Users.txt
foreach ($arr in $array) {
Get-MailboxFolderPermission -Identity $_":\Agenda"
}
这为Users.txt
中的所有用户提供了一长串文件夹权限。但问题是,它没有显示它正在检索信息的用户。所以我希望$arr
在执行Get-MailboxFolderPermission
之前写在屏幕上。我做了很多尝试,其中一个应该说清楚我想要的是什么
foreach ($arr in $array) {
Write-Host $arr , Get-MailboxFolderPermission -Identity $_":\Agenda"
}
但这不起作用。如何将$arr
中的内容添加到屏幕上的输出中?
答案 0 :(得分:3)
您当前的循环有两个问题:
Write-Host
和Get-MailboxFolderPermission
应该是两个单独的语句,因此您需要使用分号;
或换行符分隔它们,而不是,
之后的Write-Host
{1}}。
其次,当您使用foreach($arr in $array){ }
时,您需要在循环体内引用$arr
,而不是$_
:
foreach ($arr in $array) {
Write-Host $arr
Get-MailboxFolderPermission -Identity $arr":\Agenda"
}
或
foreach ($arr in $array) { write-host $arr; Get-MailboxFolderPermission -Identity $arr":\Agenda"}
另一种方法是使用$arr
将Select-Object
值添加到每个邮箱文件夹权限对象:
foreach ($arr in $array) {
Get-MailboxFolderPermission -Identity $arr":\Agenda" |
Select-Object *,{ Name="Mailbox"; Expression={$arr} }
}