【问题标题】:ForEach statement in powershellPowershell 中的 ForEach 语句
【发布时间】:2022-10-21 20:14:37
【问题描述】:

我正在尝试运行以下命令。它应该从交换服务器获取所有用户邮箱并运行脚本。但是当我运行它时,它只适用于第一个邮箱并停止。我希望脚本为每个邮箱运行。谁能告诉我我错过了什么?

$mailboxes = Get-EXOMailbox -resultsize unlimited -RecipientTypeDetails usermailbox
Foreach($mailbox in $mailboxes){
    .\graph-PopulateContactsFromCSV.ps1 -Mailbox $mailbox.UserPrincipalName -ClientSecret $clientSecret -ClientID $clientID -TenantID $tenantID -CSVPath $csvPath
}

【问题讨论】:

  • 您正在调用辅助脚本而不显示或说明它在做什么。根据您发布的内容,我看不出第二个脚本的原因。花更多时间阅读 PowerShell Loops。
  • 谢谢丹尼尔,最后我能够运行脚本。
  • 不用担心很高兴它有帮助。小心。

标签: powershell loops microsoft-graph-api exchange-server


【解决方案1】:

继续我的评论。

试试这个(根据需要重构):

Get-EXOMailbox -resultsize unlimited -RecipientTypeDetails usermailbox | 
ForEach-Object {.graph-PopulateContactsFromCSV.ps1 -Mailbox $PSItem.UserPrincipalName -ClientSecret $clientSecret -ClientID $clientID -TenantID $tenantID -CSVPath $csvPath}

我没有方便的 ADDS,但为本地用户执行此操作:

Get-LocalUser -Name '*' | 
ForEach-Object {$PSitem.Name}
# Results
<#
Admi..
Da..
Def..
Guest
L..
WDAGUtilityAccount
#>

【讨论】:

    猜你喜欢
    • 2021-08-27
    • 1970-01-01
    • 2012-06-20
    • 2020-07-21
    • 1970-01-01
    • 2021-12-13
    • 2021-11-09
    • 2012-10-02
    • 1970-01-01
    相关资源
    最近更新 更多