用于Sky for Business的Foreach Powershell命令

用于Sky for Business的Foreach Powershell命令,powershell,foreach,Powershell,Foreach,我正在SFB中创建用户报告。为了只从一个用户收集信息,它工作得很好,但我需要从每个人那里收集信息,所以我使用命令Get Content,然后foreach在users.txt中注册我的用户库中的每一行 如果这是语法错误,有人能帮我吗 谢谢 $users = Get-Content C:\temp\skypeproject\users.txt $list = foreach ( $user in $users ) { Get-CsOnlineUser -Identity $user |

我正在SFB中创建用户报告。为了只从一个用户收集信息,它工作得很好,但我需要从每个人那里收集信息,所以我使用命令Get Content,然后foreach在users.txt中注册我的用户库中的每一行 如果这是语法错误,有人能帮我吗

谢谢

$users = Get-Content C:\temp\skypeproject\users.txt
$list = foreach ( $user in $users ) 
{ 
    Get-CsOnlineUser -Identity $user | Format-table -AutoSize DisplayName, EnterpriseVoiceEnabled,HostedVoiceMail,OnPremLineURI,LineURI 
}

根据这些评论,似乎您确实因为输入文件中的一些错误数据而收到了错误。处理此问题的一种方法可能是使用
Try..Catch
块,这样当单个用户导致错误时,它不会停止整个脚本

$Users = Get-Content C:\temp\skypeproject\users.txt

$List = foreach ( $User in $Users ) { 
    Try {
        Get-CsOnlineUser -Identity $user -ErrorAction Stop
    }
    Catch {
        "Error for $User: $_"
    }
}

$List | Format-table -AutoSize DisplayName, EnterpriseVoiceEnabled,HostedVoiceMail,OnPremLineURI,LineURI 

我还将
Format Table
的使用移到了循环之外,否则
$List
变量最终不会包含一个对象,如果您需要对该对象执行其他操作,该对象可能会很有用。

错误似乎显示了
.txt
文件中的测试内容。检查此项并删除任何测试/伪项。我这样做了,这是相同的消息