MS Graph Powershell SDK - 无法处理参数“BodyParameter”的参数转换

Posted

技术标签:

【中文标题】MS Graph Powershell SDK - 无法处理参数“BodyParameter”的参数转换【英文标题】:MS Graph Powershell SDK - Cannot process argument transformation on parameter 'BodyParameter' 【发布时间】:2022-01-12 23:32:11 【问题描述】:

我目前正在尝试创建一个可以通过 MS Graph Powershell SDK 部署的安全基线。但是,我在输入请求正文时遇到了问题。

请求位于脚本的单独 JSON 文件中,如下所示:


   "description": "Basic Security Configuration recommended by company.",
   "displayName": "Company Security Baseline",
   "value": [
       
           "definitionId": "deviceConfiguration--windows10EndpointProtectionConfiguration_defenderOfficeMacroCodeAllowWin32ImportsType",
           "valueJson": "\"warn\"",
           "@odata.type": "#microsoft.graph.deviceManagementStringSettingInstance",
           "value": "warn"
       
   ]

然后我按如下方式从该文件中获取内容并将其输入到 New-MgDeviceManagementTemplateInstance 命令中。

# Create request from JSON file.
$request = Get-Content SecurityBaseline.json 

# Create new template instance.
$instance = New-MgDeviceManagementTemplateInstance -DeviceManagementTemplateId $templateId -BodyParameter $request

之后我收到此错误:

New-MgDeviceManagementTemplateInstance : Cannot process argument transformation on parameter 'BodyParameter'. Cannot convert the "System.Object[]" value of type "System.Object[]" to type
"Microsoft.Graph.PowerShell.Models.IPaths1Acen0GDevicemanagementTemplatesDevicemanagementtemplateIdMicrosoftGraphCreateinstancePostRequestbodyContentApplicationJsonSchema".
At line:1 char:112
+ ...  -DeviceManagementTemplateId "$($templateId)" -BodyParameter $request
+                                                                  ~~~~~~~~
+ CategoryInfo          : InvalidData: (:) [New-MgDeviceManagementTemplateInstance], ParameterBindingArgumentTransformationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,New-MgDeviceManagementTemplateInstance

任何有关我需要输入此数据的格式的帮助,将不胜感激。

【问题讨论】:

这似乎是 beta SDK 本身的问题。由于这是 beta cmdlet,它可能仍在更改中,您可以尝试使用 PowerShell 运行原始 http 请求并查看是否获得 200。 你可以在 GitHub 上打开一个问题:msgraph-sdk-powershell 【参考方案1】:

不确定这是否是测试版 SDK 的问题,或者它是否按预期工作,但这似乎暂时有效。

$instance = New-MgDeviceManagementTemplateInstance -DeviceManagementTemplateId $templateId -BodyParameter "$request"

【讨论】:

以上是关于MS Graph Powershell SDK - 无法处理参数“BodyParameter”的参数转换的主要内容,如果未能解决你的问题,请参考以下文章

MSGraphMailbag - 对 Microsoft Graph PowerShell SDK 的深入研究

通过 msgraph-sdk-python-core 在 MS Graph API 中访问 /me

使用 MS Graph SDK - Java 向客户端应用程序添加应用程序权限

Microsoft Graph PowerShell v2 发布公开预览版 - 一半的大小,加速的自动化体验

Microsoft Graph PowerShell v2 发布公开预览版 - 一半的大小,加速的自动化体验

MS Graph API:microsoft.graph.createLink 未创建匿名视图链接