使用以下代码,我要将虚拟机连接到日志分析工作区。
$ResourceGroup = "stackoverflow"
$WorkspaceName = "dontberudepls"
$AllVMs = Get-AzVM -ResourceGroupName $ResourceGroup
for ($i=0; $i -lt $AllVMs.length; $i++){
$vWorkspace = Get-AzResource -Name $WorkspaceName
If (-not $WorkspaceName) {Write-Host -ForegroundColor Yellow "Workspace " $WorkspaceName " wasn’t found in the current subscription."; return}
$vWorkSpace = Get-AzOperationalInsightsWorkspace -Name $vWorkspace.Name -ResourceGroupName $vWorkspace.ResourceGroupName
$vWorkspaceID = $vWorkspace.CustomerID
$vworkspaceKey = (Get-AzOperationalInsightsWorkspaceSharedKeys -ResourceGroupName $vworkspace.ResourceGroupName -Name $vworkspace.Name).PrimarySharedKey
Set-AzVMExtension -ResourceGroupName $AllVMs[$i].ResourceGroupName -VMName $AllVMs[$i].Name -Name ‘MicrosoftMonitoringAgent’ -Publisher ‘Microsoft.EnterpriseCloud.Monitoring’ -ExtensionType ‘MicrosoftMonitoringAgent’ -TypeHandlerVersion ‘1.0’ -Location $AllVMs[$i].Location -SettingString "{‘workspaceId’: ‘$vWorkspaceID’}" -ProtectedSettingString "{‘workspaceKey’: ‘$vworkspaceKey’}"
}
当尝试部署此代码时,我得到以下错误代码:
Set-AzVMExtension : Invalid property identifier character: ‘. Path '', line 1, position 1.
我正在编写一个脚本,用于创建日志分析工作区,并添加来自工作区中特定资源组中VM的所有日志。
我主要遵循this教程。我的脚本不仅增加了此功能,还增加了更多资源,因此我想在Powershell中进行此操作。但我似乎无法注意到错误的来源。我不在任何地方使用identifier character: ‘. Path ''
路径吗?
我遇到了this SO个具有相同功能的问题。但只是将所有内容都连接到日志分析中,这并不是我真正需要的。 我希望有人能帮助我解决我做错了什么,缺少什么或看不清吗?
答案 0 :(得分:1)
在复制代码段时,它使用了错误的引号。
‘MicrosoftMonitoringAgent’
应该是'MicrosoftMonitoringAgent'
与其他相同,否则它们将不会被视为字符串。