Set-AzDiagnosticSetting 中的 ResourceType 不匹配

ResourceType mismatch in Set-AzDiagnosticSetting

我想更新(而不是创建)网络相关资源的现有诊断设置条目,它们缺少保留天数变量和工作区分配,但是当我使用此命令时:

$WorkspaceId = "..."
$ResourceId = "..."   
Set-AzDiagnosticSetting -resourceid $ResourceId -RetentionEnabled $True -RetentionInDays 31 -WorkspaceId $WorkspaceId

我收到这个错误:

Set-AzDiagnosticSetting:异常类型:ErrorResponseException,消息:Null/Empty,代码:Null,状态 code:BadRequest,原因短语:错误请求

当我使用

的替代方法时
$get = Get-AzDiagnosticSetting -resourceid $ResourceId
Set-AzDiagnosticSetting -InputObject $get -MetricCategory AllMetrics -RetentionEnabled $True -RetentionInDays 31 -WorkspaceId $WorkspaceId

我收到此错误:Set-AzDiagnosticSetting:无法使用指定的命名参数解析参数集。

我真的可以使用 Set-AzDiagnosticSetting 更新条目还是只创建一个条目?或者我坚持删除网络对象的所有诊断设置并再次正确分配它们?

如果不传递工作区的完全限定 ID,则会出现以下错误:

但是,如果您提供正确的工作区 ID,即 工作区的完全限定 ID ,您可以消除此错误。

而要使用替代方式,请按此方式使用,如documentation(示例 5:使用管道)中所述。

Get-AzDiagnosticSetting -ResourceId "Resource01" | Set-AzDiagnosticSetting -Enabled $True -Category Category1,Category2