设置 AzVMextension 以将 VM 连接到日志分析

setAzVMextension to connect VM to Log analytics

使用以下代码,我想将我的虚拟机连接到我的日志分析工作区。

$ResourceGroup = "Whosebug"
$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 '' 路径 ?

我遇到了具有相同功能的 问题。但只是将所有内容连接到日志分析,这并不是我所需要的。 我希望有人能帮助我解决我做错或遗漏或看不清楚的地方?

当您复制代码片段时,它使用了错误的引号。

‘MicrosoftMonitoringAgent’ 应该是 'MicrosoftMonitoringAgent'

其他的也一样,否则看不到字符串。