2015-12-08 80 views
1

你想實現的是以下內容。我有以下兩行代碼:在foreach中寫入數組的內容

$array = Get-Content C:\Management\Users.txt 
foreach ($arr in $array) { 
    Get-MailboxFolderPermission -Identity $_":\Agenda" 
} 

這給我的文件夾的權限爲Users.txt所有用戶一個長長的清單。但問題是,它不顯示哪個用戶正在檢索信息。所以我想在執行Get-MailboxFolderPermission之前將$arr寫在屏幕上。我做了很多的嘗試,其中之一應該讓我想archieve

foreach ($arr in $array) { 
    Write-Host $arr , Get-MailboxFolderPermission -Identity $_":\Agenda" 
} 

清楚什麼但是,這並不工作。我怎樣才能將$arr中的內容添加到屏幕上的輸出中?

回答

3

兩件事情錯了你的電流回路:

Write-HostGet-MailboxFolderPermission應該是兩個單獨的語句,所以你需要用分號;或換行分隔,而不是逗號,Write-Host後。

其次,當你使用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} } 
}