powershell错误代码“无法将System.Object []转换为类型System.String

问题描述 投票:0回答:1

我正在尝试使用Powershell为团队创建一个新渠道。但是不断收到错误“无法将'System.Object []'转换为类型所需的'System.String'参数“ DisplayName”。不支持指定的方法。“

$Id= Get-Credential
Connect-MicrosoftTeams -Credential $Id


$test = Import-Csv -Path "C:\Users\user\Desktop\School Vakken\Os Scripting\examens.csv.csv" | select-object ChannelName
$test | ForEach-Object { $ikben =$_.ChannelName;[PSCustomObject]@{ChannelName = " $ikben abul rahman ";}}


New-TeamChannel -GroupId fd8ebd00-3ebb-492a-b9c1 -DisplayName $test

这是错误代码

New-TeamChannel : Cannot convert 'System.Object[]' to the type 'System.String' required by 
parameter 'DisplayName'. Specified method is not supported.
At C:\Users\raman\Desktop\School Vakken\Os Scripting\work.ps1:9 char:76
+ ... nnel -GroupId fd8ebd00-3ebb-492a-b9c1-5b2ab6fc1736 -DisplayName $test
+                                                                     ~~~~~
    + CategoryInfo          : InvalidArgument: (:) [New-TeamChannel], ParameterBindingExce 
   ption
    + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.TeamsCmdlets.PowerShell.Cust 
   om.NewTeamChannel
powershell type-conversion syntax-error
1个回答
0
投票

让我们讨论一下我从错误中看到的内容以及如何解决它。

New-TeamChannel : Cannot convert 'System.Object[]' to the type 'System.String' required by 
parameter 'DisplayName'

这说明New-TeamsChannel -Display仅接受类型String,但您正在传递类型Object[]

这是因为您正在ForEach-Object上执行$test,然后创建PSCustomObjects的数组。然后,您传递Object[]以显示名称

这里是解决方法

Connect-MicrosoftTeams -Credential $Id

Import-Csv -Path "C:\Users\user\Desktop\School Vakken\Os Scripting\examens.csv.csv" | 
    select-object ChannelName |
    Foreach-Object{
        New-TeamChannel -GroupId fd8ebd00-3ebb-492a-b9c1 -DisplayName " $_ abul rahman "
    }

而不是传递Object的数组,而是每个对象将为您提供字符串的ForEach-Object

© www.soinside.com 2019 - 2024. All rights reserved.