我正在尝试使用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
让我们讨论一下我从错误中看到的内容以及如何解决它。
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
。