{"id":415,"date":"2022-12-28T16:34:45","date_gmt":"2022-12-28T15:34:45","guid":{"rendered":"https:\/\/mortenknudsen.net\/?p=415"},"modified":"2022-12-28T18:51:50","modified_gmt":"2022-12-28T17:51:50","slug":"microsoft-defender-performance-analyzer-understand-which-files-file-extensions-or-processes-that-might-be-causing-performance-issues-on-endpoints-during-antivirus-realtime-protection-scans","status":"publish","type":"post","link":"https:\/\/mortenknudsen.net\/?p=415","title":{"rendered":"Microsoft Defender Antivirus Performance Analyzer &#8211; understand which files, file extensions, or processes that might be causing performance issues on endpoints during antivirus realtime protection scans"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Have you ever wondered what is causing your &#8216;Antimalware service executable&#8217; (Defender Antivirus) to spike the CPU for longer times? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If yes, you are not alone. But where are the logs or insight of the real-time protection process showing which file(s), file extensions or process causing the issue ? I have not found them \ud83d\ude42<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, I was really happy when Microsoft in September 2021 launched <strong>Microsoft Defender Antivirus Performance Analyzer<\/strong>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For many, it seems hidden, but I hope with this blog, that I can get more people to learn to use it, so you can optimize, if you experience any performance issues on your endpoints.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-is-microsoft-defender-antivirus-performance-analyzer\">What is Microsoft Defender Antivirus performance analyzer?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Performance analyzer for Microsoft Defender Antivirus<\/strong> in <strong>Windows 10, Windows 11<\/strong>, and <strong>Windows Server<\/strong>, is a <strong>PowerShell command-line tool<\/strong> that helps you determine <strong>files, file extensions<\/strong>, and <strong>processes<\/strong> that might be causing performance issues on individual endpoints during antivirus scans. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can use the information gathered by performance analyzer to assess performance issues and apply remediation actions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some options to analyze include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Top paths that impact scan time<\/li>\n\n\n\n<li>Top files that impact scan time<\/li>\n\n\n\n<li>Top processes that impact scan time<\/li>\n\n\n\n<li>Top file extensions that impact scan time<\/li>\n\n\n\n<li>Combinations \u2013 for example:\n<ul class=\"wp-block-list\">\n<li>top files per extension<\/li>\n\n\n\n<li>top paths per extension<\/li>\n\n\n\n<li>top processes per path<\/li>\n\n\n\n<li>top scans per file<\/li>\n\n\n\n<li>top scans per file per process<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"using-performance-analyzer\">Using performance analyzer<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To start recording system events, open PowerShell in administrative mode and perform the following steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Run the following command to start the recording:<code>New-MpPerformanceRecording -RecordTo &lt;recording.etl&gt;<\/code>where&nbsp;<code>-RecordTo<\/code>&nbsp;parameter specifies full path location in which the trace file is saved. <\/li>\n\n\n\n<li>If there are processes or services thought to be affecting performance, reproduce the situation by carrying out the relevant tasks.<\/li>\n\n\n\n<li>Press&nbsp;<strong>ENTER<\/strong>&nbsp;to stop and save recording, or&nbsp;<strong>Ctrl+C<\/strong>&nbsp;to cancel recording.<\/li>\n\n\n\n<li>Analyze the results using the performance analyzer&#8217;s&nbsp;<code>Get-MpPerformanceReport<\/code>parameter. For example, on executing the command&nbsp;<code>Get-MpPerformanceReport -Path &lt;recording.etl&gt; -TopFiles 3 -TopScansPerFile 10<\/code>, the user is provided with a list of top-ten scans for the top 3 files affecting performance.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1 &#8211; how to make the performance recording (New-MpPerformanceRecording)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">First I started a Powershell session as Admin<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then I started a recording logging using <strong>New-MpPerformanceRecording<\/strong> with the -RecordTo &lt;file-path&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>New-MpPerformanceRecording -RecordTo C:\\tmp\\MDAV_Performance_Analyze\\MDAV_Recording.etl<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"217\" src=\"https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_record2-1024x217.png\" alt=\"\" class=\"wp-image-427\" srcset=\"https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_record2-1024x217.png 1024w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_record2-300x64.png 300w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_record2-768x163.png 768w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_record2-1536x326.png 1536w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_record2.png 1870w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Simulation of activities<\/strong> &#8211; For the demo, I created a simple Powershell script, that added 10.000 lines to the txt-file, <strong>c:\\tmp\\mdav_performance_analyze_file.txt <\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$Number = 10000\n$Line = 0\nDo\n    {\n        $Line = 1 + $Line\n        Add-Content -Path C:\\tmp\\MDAV_Performance_Analyze_file.txt -Value \"This is a line\" -Encoding UTF8 -Force\n        Write-Output $line\n    }\nUntil ($Line -eq $Number)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">When the file changes completed, I went to my Powershell window &#8211; and pressed ENTER so the recording stopped<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"611\" src=\"https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_record-1-1024x611.png\" alt=\"\" class=\"wp-image-417\" srcset=\"https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_record-1-1024x611.png 1024w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_record-1-300x179.png 300w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_record-1-768x459.png 768w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_record-1-1536x917.png 1536w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_record-1.png 1879w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2 &#8211; Analyze the Recording (Get-MpPerformanceReport)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In order to analyze the performance recording, you will use another powershell cmdlet, <strong>Get-MpPerformanceReport<\/strong>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Below is an example, where I wanted to see the top-10 files, top-10 extensions and top-10 processes.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-MpPerformanceReport -Path .\\MDAV_Recording.etl -TopFiles:10 -TopExtensions:10 -TopProcesses:10 -TopScans:10<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">As you can see, the recording picked up the 10.000 transactions &#8211; both in <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>File &#8211; c:\\tmp\\mdav_performance_analyze_file.txt<\/li>\n\n\n\n<li>Extension &#8211; txt<\/li>\n\n\n\n<li>Process &#8211; Windows Powershell<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"939\" src=\"https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_report-1024x939.png\" alt=\"\" class=\"wp-image-418\" srcset=\"https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_report-1024x939.png 1024w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_report-300x275.png 300w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_report-768x704.png 768w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_report-1536x1409.png 1536w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_report-2048x1878.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Performance Optimization recommendations<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Recently, Microsoft added some logic to help you understand potential bottlenecks, which should be considered for optimizations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Starting with Defender version 4.18.2206.X, users will be able to view scan skip reason information under &#8220;SkipReason&#8221; column. The possible values are:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Not Skipped<\/li>\n\n\n\n<li>Optimization (typically due to performance reasons)<\/li>\n\n\n\n<li>User skipped (typically due to user-set exclusions)<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"172\" src=\"https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/image-1-1024x172.png\" alt=\"\" class=\"wp-image-419\" srcset=\"https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/image-1-1024x172.png 1024w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/image-1-300x50.png 300w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/image-1-768x129.png 768w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/image-1-1536x257.png 1536w, https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/image-1-2048x343.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exporting the results<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"for-csv\"><br>For CSV<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>To export<\/strong>:&nbsp;<code>(Get-MpPerformanceReport -Path:.\\Repro-Install.etl -Topscans:1000). TopScans | Export-CSV -Path:.\\Repro-Install-Scans.csv -Encoding:UTF8 -NoTypeInformation<\/code><\/li>\n\n\n\n<li><strong>To convert<\/strong>:&nbsp;<code>(Get-MpPerformanceReport -Path:.\\Repro-Install.etl -Topscans:100). TopScans | ConvertTo-Csv -NoTypeInformation<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"for-json\"><a href=\"https:\/\/learn.microsoft.com\/en-us\/microsoft-365\/security\/defender-endpoint\/tune-performance-defender-antivirus?view=o365-worldwide#for-json\"><\/a>For JSON<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>To convert<\/strong>:&nbsp;<code>(Get-MpPerformanceReport -Path:.\\Repro-Install.etl -Topscans:1000). TopScans | ConvertTo-Json -Depth:1<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">To ensure machine-readable output for exporting with other data processing systems, it is recommended to use -Raw parameter for Get-MpPerformanceReport.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">More ways to do the Performance Recording<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"example-2-collect-a-performance-recording-for-remote-powershell-session\"><strong>Collect a performance recording for remote PowerShell session<\/strong><\/h5>\n\n\n\n<pre class=\"wp-block-code\"><code>$s = New-PSSession -ComputerName Server02 -Credential Domain01\\User01\nNew-MpPerformanceRecording -RecordTo C:\\LocalPathOnServer02\\trace.etl -Session $s\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The above command collects a performance recording on Server02 (as specified by argument $s of parameter Session) and saves it to the specified path:&nbsp;<strong>C:\\LocalPathOnServer02\\trace.etl<\/strong>&nbsp;on Server02.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"example-3-collect-a-performance-recording-in-non-interactive-mode\"><strong>Collect a performance recording in non-interactive mode (timer)<\/strong><\/h5>\n\n\n\n<pre class=\"wp-block-code\"><code>New-MpPerformanceRecording -RecordTo:.\\Defender-scans.etl -Seconds 60\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The above command collects a performance recording for the duration in seconds specified by parameter -Seconds. This is recommended for users conducting batch collections that require no interaction or prompt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Get-MpPerformanceReport parameters<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">See samples of how to use the below commands using this <a href=\"https:\/\/learn.microsoft.com\/en-us\/microsoft-365\/security\/defender-endpoint\/tune-performance-defender-antivirus?view=o365-worldwide#get-mpperformancereport\" target=\"_blank\" rel=\"noreferrer noopener\">link<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-MpPerformanceReport    &#91;-Path] &lt;String&gt;\n\t&#91;-TopScans &#91;&lt;Int32&gt;]]\n\t&#91;-TopPaths &#91;&lt;Int32&gt;] &#91;-TopPathsDepth &#91;&lt;Int32&gt;]]]\n\t\t\t&#91;-TopScansPerPath &#91;&lt;Int32&gt;]]\n\t\t\t&#91;-TopFilesPerPath &#91;&lt;Int32&gt;]\n\t\t\t\t\t&#91;-TopScansPerFilePerPath &#91;&lt;Int32&gt;]]\n\t\t\t\t\t]\n\t\t\t&#91;-TopExtensionsPerPath &#91;&lt;Int32&gt;]\n\t\t\t\t\t&#91;-TopScansPerExtensionPerPath &#91;&lt;Int32&gt;]]\n\t\t\t\t\t]\n\t\t\t&#91;-TopProcessesPerPath &#91;&lt;Int32&gt;]\n\t\t\t\t\t&#91;-TopScansPerProcessPerPath &#91;&lt;Int32&gt;]]\n\t\t\t\t\t]\n\t\t\t]\n\t&#91;-TopFiles &#91;&lt;Int32&gt;]\n\t\t\t&#91;-TopScansPerFile &#91;&lt;Int32&gt;]]\n\t\t\t&#91;-TopProcessesPerFile &#91;&lt;Int32&gt;]\n\t\t\t\t\t&#91;-TopScansPerProcessPerFile &#91;&lt;Int32&gt;]]\n\t\t\t\t\t]\n\t\t\t]\n\t&#91;-TopExtensions &#91;&lt;Int32&gt;]\n\t\t\t&#91;-TopScansPerExtension &#91;&lt;Int32&gt;]\n\t\t\t&#91;-TopPathsPerExtension &#91;&lt;Int32&gt;] &#91;-TopPathsDepth &#91;&lt;Int32&gt;]]\n\t\t\t\t\t&#91;-TopScansPerPathPerExtension &#91;&lt;Int32&gt;]]\n\t\t\t\t\t]\n\t\t\t&#91;-TopProcessesPerExtension &#91;&lt;Int32&gt;]\n\t\t\t\t\t&#91;-TopScansPerProcessPerExtension &#91;&lt;Int32&gt;]]\n\t\t\t\t\t]\n\t\t\t&#91;-TopFilesPerExtension &#91;&lt;Int32&gt;]\n\t\t\t\t\t&#91;-TopScansPerFilePerExtension &#91;&lt;Int32&gt;]]\n\t\t\t\t\t]\n\t\t\t]\n\t&#91;-TopProcesses &#91;&lt;Int32&gt;]\n\t\t\t&#91;-TopScansPerProcess &#91;&lt;Int32&gt;]]\n\t\t\t&#91;-TopExtensionsPerProcess &#91;&lt;Int32&gt;]\n\t\t\t\t\t&#91;-TopScansPerExtensionPerProcess &#91;&lt;Int32&gt;]]\n\t\t\t\t\t]\n\t\t\t&#91;-TopPathsPerProcess &#91;&lt;Int32&gt;] &#91;-TopPathsDepth &#91;&lt;Int32&gt;]]\n\t\t\t\t\t&#91;-TopScansPerPathPerProcess &#91;&lt;Int32&gt;]]\n\t\t\t\t\t]\n\t\t\t&#91;-TopFilesPerProcess &#91;&lt;Int32&gt;]\n\t\t\t\t\t&#91;-TopScansPerFilePerProcess &#91;&lt;Int32&gt;]]\n\t\t\t\t\t]\n\t\t\t]\n\t&#91;-MinDuration &lt;String&gt;]\n\t&#91;-Raw]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"requirements\">Requirements<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Microsoft Defender Antivirus performance analyzer has the following prerequisites:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Supported Windows versions: Windows 10, Windows 11, and Windows Server 2016 and above<\/li>\n\n\n\n<li>Platform Version: 4.18.2108.7+<\/li>\n\n\n\n<li>PowerShell Version: PowerShell Version 5.1, PowerShell ISE, remote PowerShell (4.18.2201.10+), PowerShell 7.x (4.18.2201.10+)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Have you ever wondered what is causing your &#8216;Antimalware service executable&#8217; (Defender Antivirus) to spike the CPU for longer times? &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Microsoft Defender Antivirus Performance Analyzer &#8211; understand which files, file extensions, or processes that might be causing performance issues on endpoints during antivirus realtime protection scans\" class=\"read-more button\" href=\"https:\/\/mortenknudsen.net\/?p=415#more-415\" aria-label=\"Read more about Microsoft Defender Antivirus Performance Analyzer &#8211; understand which files, file extensions, or processes that might be causing performance issues on endpoints during antivirus realtime protection scans\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":418,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"ngg_post_thumbnail":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[56,97],"tags":[99,101,98,41,102,100],"class_list":["post-415","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-m365-security","category-microsoft-defender-antivirus","tag-a-v","tag-analyze","tag-antivirus","tag-defender","tag-optimize","tag-performance","infinite-scroll-item","resize-featured-image"],"featured_image_src":"https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_report.png","author_info":{"display_name":"Morten Knudsen","author_link":"https:\/\/mortenknudsen.net\/?author=1"},"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack_featured_media_url":"https:\/\/mortenknudsen.net\/wp-content\/uploads\/2022\/12\/mdav_report.png","_links":{"self":[{"href":"https:\/\/mortenknudsen.net\/index.php?rest_route=\/wp\/v2\/posts\/415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mortenknudsen.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mortenknudsen.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mortenknudsen.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mortenknudsen.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=415"}],"version-history":[{"count":22,"href":"https:\/\/mortenknudsen.net\/index.php?rest_route=\/wp\/v2\/posts\/415\/revisions"}],"predecessor-version":[{"id":447,"href":"https:\/\/mortenknudsen.net\/index.php?rest_route=\/wp\/v2\/posts\/415\/revisions\/447"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mortenknudsen.net\/index.php?rest_route=\/wp\/v2\/media\/418"}],"wp:attachment":[{"href":"https:\/\/mortenknudsen.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mortenknudsen.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mortenknudsen.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}