{"id":391127,"date":"2024-12-13T12:29:30","date_gmt":"2024-12-13T12:29:30","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=391127"},"modified":"2024-12-13T12:29:30","modified_gmt":"2024-12-13T12:29:30","slug":"notifications-toast-importantes","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/fr\/script-hub\/notifications-toast-importantes\/","title":{"rendered":"Rationaliser les notifications toast importantes \u00e0 l&rsquo;aide d&rsquo;un script PowerShell\u00a0"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>Une communication efficace avec les utilisateurs finaux est la cl\u00e9 de vopute des op\u00e9rations informatiques, en particulier pour les <a href=\"https:\/\/www.ninjaone.com\/what-is-an-msp\/\">fournisseurs de services g\u00e9r\u00e9s (MSP)<\/a> et les professionnels de l&rsquo;informatique qui g\u00e8rent des environnements \u00e0 grande \u00e9chelle. S&rsquo;assurer que les messages critiques sont vus rapidement peut faire la diff\u00e9rence entre une r\u00e9solution sans faille et des op\u00e9rations perturb\u00e9es. Ce script <a href=\"https:\/\/www.ninjaone.com\/it-hub\/endpoint-management\/what-is-powershell\/\">PowerShell<\/a> offre un moyen efficace d&rsquo;envoyer des notifications toast importantes directement \u00e0 l&rsquo;utilisateur connect\u00e9 sur un syst\u00e8me Windows.<\/p>\n<h2>Contexte<\/h2>\n<p>Les notifications toast sont devenues un \u00e9l\u00e9ment essentiel des flux de travail informatiques modernes, car elles constituent un moyen non intrusif mais imm\u00e9diat de communiquer des informations. Qu&rsquo;il s&rsquo;agisse d&rsquo;alerter les utilisateurs sur une mise \u00e0 jour critique, un changement de politique de s\u00e9curit\u00e9 ou une fen\u00eatre de maintenance imminente, ces notifications assurent la visibilit\u00e9 sans interrompre le flux de travail. Les approches traditionnelles font souvent appel \u00e0 des e-mails en masse ou \u00e0 des fen\u00eatres contextuelles, qui sont soit trop d\u00e9rangeants, soit faciles \u00e0 ignorer. Ce script r\u00e9pond \u00e0 ces limitations en tirant parti du syst\u00e8me de notification natif de Windows pour envoyer des messages cibl\u00e9s et personnalisables.<\/p>\n<h2>Le script\u00a0:<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Sends an important toast notification to the currently signed in user. Please run as the Current Logged-on User.\r\n.DESCRIPTION\r\n    Sends an important toast notification to the currently signed in user. Please run as 'Current Logged on User'.\r\n    You can also specify the \"ApplicationId\" to any string.\r\n    The default ApplicationId is your company name found in the NINJA_COMPANY_NAME environment variable, but will fallback to \"NinjaOne RMM\" if it happens to not be set.\r\n\r\n    By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https:\/\/www.ninjaone.com\/terms-of-use.\r\n    Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. \r\n    Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. \r\n    Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. \r\n    Warranty Disclaimer: The script is provided \u201cas is\u201d and \u201cas available\u201d, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. \r\n    Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. \r\n    Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. \r\n    EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).\r\n\r\n.EXAMPLE\r\n    -Title \"My Title Here\" -Message \"My Message Here\"\r\n    Sends the title \"My Title Here\" and message \"My Message Here\" as a Toast message\/notification to the currently signed in user.\r\n.EXAMPLE\r\n    -Title \"My Title Here\" -Message \"My Message Here\" -ApplicationId \"MyCompany\"\r\n    Sends the title \"My Title Here\" and message \"My Message Here\" as a Toast message\/notification to the currently signed in user.\r\n        ApplicationId: Creates a registry entry for your toasts called \"MyCompany\".\r\n.OUTPUTS\r\n    None\r\n.NOTES\r\n    If you want to change the defaults then with in the param block.\r\n    If you want to customize the application name to show your company name,\r\n        then look for $ApplicationId and change the content between the double quotes.\r\n\r\n    Minimum OS Architecture Supported: Windows 10 (IoT editions are not supported due to lack of shell)\r\n    Release Notes: Initial Release\r\n#&gt;\r\n\r\n[CmdletBinding()]\r\nparam\r\n(\r\n    [string]$Title,\r\n    [string]$Message,\r\n    [string]$ApplicationId\r\n)\r\n\r\nbegin {\r\n    # Set the default ApplicationId if it's not provided. Use the Company Name if available, otherwise use the default.\r\n    $ApplicationId = if ($env:NINJA_COMPANY_NAME) { $env:NINJA_COMPANY_NAME } else { \"NinjaOne RMM\" }\r\n\r\n    Write-Host \"[Info] Using ApplicationId: $($ApplicationId -replace '\\s+','.')\"\r\n\r\n    if ($env:title -and $env:title -notlike \"null\") { $Title = $env:title }\r\n    if ($env:message -and $env:message -notlike \"null\") { $Message = $env:message }\r\n    if ($env:applicationId -and $env:applicationId -notlike \"null\") { $ApplicationId = $env:applicationId }\r\n\r\n    if ([String]::IsNullOrWhiteSpace($Title)) {\r\n        Write-Host \"[Error] A Title is required.\"\r\n        exit 1\r\n    }\r\n    if ([String]::IsNullOrWhiteSpace($Message)) {\r\n        Write-Host \"[Error] A Message is required.\"\r\n        exit 1\r\n    }\r\n\r\n    if ($Title.Length -gt 42) {\r\n        Write-Host \"[Warn] The Title is longer than 42 characters. The title will be truncated by the Windows API to 42 characters.\"\r\n    }\r\n    if ($Message.Length -gt 254) {\r\n        Write-Host \"[Warn] The Message is longer than 254 characters. The message might get truncated by the Windows API.\"\r\n    }\r\n\r\n    function Test-IsSystem {\r\n        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()\r\n        return $id.Name -like \"NT AUTHORITY*\" -or $id.IsSystem\r\n    }\r\n\r\n    if (Test-IsSystem) {\r\n        Write-Host \"[Error] Please run this script as 'Current Logged on User'.\"\r\n        Exit 1\r\n    }\r\n\r\n    function Set-RegKey {\r\n        param (\r\n            $Path,\r\n            $Name,\r\n            $Value,\r\n            [ValidateSet(\"DWord\", \"QWord\", \"String\", \"ExpandedString\", \"Binary\", \"MultiString\", \"Unknown\")]\r\n            $PropertyType = \"DWord\"\r\n        )\r\n        if (-not $(Test-Path -Path $Path)) {\r\n            # Check if path does not exist and create the path\r\n            New-Item -Path $Path -Force | Out-Null\r\n        }\r\n        if ((Get-ItemProperty -Path $Path -Name $Name -ErrorAction Ignore)) {\r\n            # Update property and print out what it was changed from and changed to\r\n            $CurrentValue = (Get-ItemProperty -Path $Path -Name $Name -ErrorAction Ignore).$Name\r\n            try {\r\n                Set-ItemProperty -Path $Path -Name $Name -Value $Value -Force -Confirm:$false -ErrorAction Stop | Out-Null\r\n            }\r\n            catch {\r\n                Write-Host \"[Error] Unable to Set registry key for $Name please see below error!\"\r\n                Write-Host \"$($_.Exception.Message)\"\r\n                exit 1\r\n            }\r\n            Write-Host \"[Info] $Path\\$Name changed from:\"\r\n            Write-Host \" $CurrentValue to:\"\r\n            Write-Host \" $($(Get-ItemProperty -Path $Path -Name $Name -ErrorAction Ignore).$Name)\"\r\n        }\r\n        else {\r\n            # Create property with value\r\n            try {\r\n                New-ItemProperty -Path $Path -Name $Name -Value $Value -PropertyType $PropertyType -Force -Confirm:$false -ErrorAction Stop | Out-Null\r\n            }\r\n            catch {\r\n                Write-Host \"[Error] Unable to Set registry key for $Name please see below error!\"\r\n                Write-Host \"$($_.Exception.Message)\"\r\n                exit 1\r\n            }\r\n            Write-Host \"[Info] Set $Path\\$Name to:\"\r\n            Write-Host \" $($(Get-ItemProperty -Path $Path -Name $Name -ErrorAction Ignore).$Name)\"\r\n        }\r\n    }\r\n\r\n    function Show-Notification {\r\n        [CmdletBinding()]\r\n        Param (\r\n            [string]\r\n            $ApplicationId,\r\n            [string]\r\n            $ToastTitle,\r\n            [string]\r\n            [Parameter(ValueFromPipeline)]\r\n            $ToastText\r\n        )\r\n\r\n        # Import all the needed libraries\r\n        [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] &gt; $null\r\n        [Windows.UI.Notifications.ToastNotification, Windows.UI.Notifications, ContentType = WindowsRuntime] &gt; $null\r\n        [Windows.System.User, Windows.System, ContentType = WindowsRuntime] &gt; $null\r\n        [Windows.System.UserType, Windows.System, ContentType = WindowsRuntime] &gt; $null\r\n        [Windows.System.UserAuthenticationStatus, Windows.System, ContentType = WindowsRuntime] &gt; $null\r\n        [Windows.Storage.ApplicationData, Windows.Storage, ContentType = WindowsRuntime] &gt; $null\r\n\r\n        # Make sure that we can use the toast manager, also checks if the service is running and responding\r\n        try {\r\n            $ToastNotifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier(\"$ApplicationId\")\r\n        }\r\n        catch {\r\n            Write-Host \"$($_.Exception.Message)\"\r\n            Write-Host \"[Error] Failed to create notification.\"\r\n        }\r\n\r\n        # Create a new toast notification\r\n        $RawXml = [xml] @\"\r\n&lt;toast scenario='urgent'&gt;\r\n    &lt;visual&gt;\r\n    &lt;binding template='ToastGeneric'&gt;\r\n        &lt;text hint-maxLines='1'&gt;$ToastTitle&lt;\/text&gt;\r\n        &lt;text&gt;$ToastText&lt;\/text&gt;\r\n    &lt;\/binding&gt;\r\n    &lt;\/visual&gt;\r\n&lt;\/toast&gt;\r\n\"@\r\n\r\n        # Serialized Xml for later consumption\r\n        $SerializedXml = New-Object Windows.Data.Xml.Dom.XmlDocument\r\n        $SerializedXml.LoadXml($RawXml.OuterXml)\r\n\r\n        # Setup how are toast will act, such as expiration time\r\n        $Toast = $null\r\n        $Toast = [Windows.UI.Notifications.ToastNotification]::new($SerializedXml)\r\n        $Toast.Tag = \"PowerShell\"\r\n        $Toast.Group = \"PowerShell\"\r\n        $Toast.ExpirationTime = [DateTimeOffset]::Now.AddMinutes(1)\r\n\r\n        # Show our message to the user\r\n        $ToastNotifier.Show($Toast)\r\n    }\r\n}\r\nprocess {\r\n    # Create an object to store the ApplicationId and DisplayName\r\n    $Application = [PSCustomObject]@{\r\n        DisplayName = $ApplicationId\r\n        # Replace any spaces with a period in the ApplicationId\r\n        AppId       = $($ApplicationId -replace '\\s+', '.')\r\n    }\r\n    Write-Host \"Display Name: $($Application.DisplayName)\"\r\n    Write-Host \"Application ID: $($Application.AppId)\"\r\n\r\n    Set-RegKey -Path \"HKCU:\\SOFTWARE\\Classes\\AppUserModelId\\$($Application.AppId)\" -Name \"DisplayName\" -Value $Application.DisplayName -PropertyType String\r\n    Set-RegKey -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Notifications\\Settings\\$($Application.AppId)\" -Name \"AllowUrgentNotifications\" -Value 1 -PropertyType DWord\r\n\r\n    try {\r\n        Write-Host \"[Info] Attempting to send message to user...\"\r\n        $NotificationParams = @{\r\n            ToastTitle    = $Title\r\n            ToastText     = $Message\r\n            ApplicationId = $Application.AppId\r\n        }\r\n        Show-Notification @NotificationParams -ErrorAction Stop\r\n        Write-Host \"[Info] Message sent to user.\"\r\n    }\r\n    catch {\r\n        Write-Host \"[Error] Failed to send message to user.\"\r\n        Write-Host \"$($_.Exception.Message)\"\r\n        exit 1\r\n    }\r\n    exit 0\r\n}\r\nend {\r\n    \r\n    \r\n    \r\n}<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p>Gagnez du temps gr\u00e2ce \u00e0 plus de 300 scripts du Dojo NinjaOne.<\/p>\n<p>\u2192 <a class=\"waffle-rich-text-link\" href=\"https:\/\/www.ninjaone.com\/freetrialform\/\">Obtenir l&rsquo;acc\u00e8s<\/a><\/p>\n<\/div>\n<h2>Description d\u00e9taill\u00e9e<\/h2>\n<p>Ce script est con\u00e7u pour envoyer des notifications toasts urgentes \u00e0 l&rsquo;utilisateur actuellement connect\u00e9. Voici une description \u00e9tape par \u00e9tape\u00a0:<\/p>\n<p><strong>1. D\u00e9finition des param\u00e8tres par d\u00e9faut de l&rsquo;application\u00a0<\/strong><\/p>\n<p>Le script v\u00e9rifie la pr\u00e9sence d&rsquo;une variable d&rsquo;environnement NINJA_COMPANY_NAME pour d\u00e9finir l&rsquo;ApplicationId par d\u00e9faut. S&rsquo;il n&rsquo;est pas disponible, il revient \u00e0 \u00ab\u00a0NinjaOne RMM\u00a0\u00bb Cette flexibilit\u00e9 permet aux prestataires de services de gestion des marques de notifier leurs clients.<\/p>\n<p><strong>2. Entr\u00e9es de param\u00e8tres\u00a0<\/strong><\/p>\n<p>Le script accepte trois param\u00e8tres cl\u00e9s\u00a0:<\/p>\n<p>a. Titre\u00a0: le titre de la notification.<\/p>\n<p>b. Message\u00a0: le corps du texte de la notification.<\/p>\n<p>c. ApplicationId : Un identifiant facultatif pour le marquage ou le suivi.<\/p>\n<p><strong>3. Validation des entr\u00e9es<\/strong><\/p>\n<p>Il valide les entr\u00e9es pour s&rsquo;assurer que le titre et le message ne sont pas vides. Si les longueurs d\u00e9passent les limites de l&rsquo;API Windows (42 caract\u00e8res pour le titre et 254 pour le message), des avertissements s&rsquo;affichent.<\/p>\n<p><strong>4. V\u00e9rification du syst\u00e8me<\/strong><\/p>\n<p>Le script comprend une sauvegarde pour s&rsquo;assurer qu&rsquo;il est ex\u00e9cut\u00e9 par l&rsquo;utilisateur connect\u00e9 et non en tant que processus au niveau du syst\u00e8me, ce qui emp\u00eacherait l&rsquo;affichage des notifications.<\/p>\n<p><strong>5. Configuration du registre<\/strong><\/p>\n<p>Des entr\u00e9es de registre personnalis\u00e9es sont cr\u00e9\u00e9es pour le nom d&rsquo;affichage de la notification et pour activer les notifications urgentes. Ces modifications garantissent un bon fonctionnement et une bonne exp\u00e9rience de l&rsquo;utilisateur.<\/p>\n<p><strong>6. Cr\u00e9ation d&rsquo;une notification<\/strong><\/p>\n<p>En s&rsquo;appuyant sur l&rsquo;API Windows UI Notifications, le script construit et affiche une notification toast. Le message est \u00e9tiquet\u00e9 et regroup\u00e9 pour une meilleure tra\u00e7abilit\u00e9.<\/p>\n<p><strong>7. Gestion des erreurs<\/strong><\/p>\n<p>La gestion compl\u00e8te des erreurs garantit que les probl\u00e8mes de configuration ou d&rsquo;ex\u00e9cution sont enregistr\u00e9s, ce qui facilite la r\u00e9solution des probl\u00e8mes.<\/p>\n<h2>Cas d&rsquo;utilisation potentiels<\/h2>\n<h3>\u00c9tude de cas\u00a0: Alerte informatique en cas de p\u00e9riode d&rsquo;inactivit\u00e9 programm\u00e9e<\/h3>\n<p>Imaginez une entreprise MSP qui g\u00e8re l&rsquo;infrastructure informatique d&rsquo;une entreprise de taille moyenne. L&rsquo;\u00e9quipe informatique pr\u00e9voit d&rsquo;effectuer une maintenance du syst\u00e8me en demandant aux utilisateurs de sauvegarder leur travail avant une p\u00e9riode d&rsquo;inactivit\u00e9 programm\u00e9e. \u00c0 l&rsquo;aide de ce script, elle envoie une notification toast intitul\u00e9e \u00ab\u00a0Alerte de maintenance programm\u00e9e\u00a0\u00bb avec le message suivant\u00a0: \u00ab\u00a0Veuillez sauvegarder votre travail. La maintenance commence \u00e0 20 heures\u00a0\u00bb<\/p>\n<p>Cette approche permet de s&rsquo;assurer que les utilisateurs sont inform\u00e9s imm\u00e9diatement, sans se base sur un e-mail, qui risque de ne pas \u00eatre lu \u00e0 temps.<\/p>\n<h2>Comparaisons<\/h2>\n<p>Par rapport aux m\u00e9thodes de notification traditionnelles\u00a0:<\/p>\n<ul>\n<li><strong>E-mails<\/strong>\u00a0: D\u00e9pendent des utilisateurs qui consultent leur bo\u00eete de r\u00e9ception, ce qui peut retarder des actions critiques.<\/li>\n<li><strong>Pop-Ups<\/strong>\u00a0: Souvent per\u00e7us comme intrusifs et rapidement rejet\u00e9s.<\/li>\n<li><strong>Ce script<\/strong>\u00a0: Propose un compromis id\u00e9al\u00a0: notifications urgentes, visibles, mais non perturbatrices, tirant parti de l&rsquo;\u00e9cosyst\u00e8me Windows.<\/li>\n<\/ul>\n<h2>FAQ<\/h2>\n<p><strong>Q\u00a0: Ce script peut-il fonctionner sous Windows 7\u00a0?<\/strong><\/p>\n<p>Non, le syst\u00e8me d&rsquo;exploitation minimum pris en charge est Windows 10, car il s&rsquo;appuie sur des API de notification modernes.<\/p>\n<p><strong>Q\u00a0: Que se passe-t-il si le script est ex\u00e9cut\u00e9 en tant que SYSTEM\u00a0?<\/strong><\/p>\n<p>Le script d\u00e9tecte et emp\u00eache l&rsquo;ex\u00e9cution dans un contexte syst\u00e8me, exigeant qu&rsquo;il soit ex\u00e9cut\u00e9 par l&rsquo;utilisateur connect\u00e9.<\/p>\n<p><strong>Q\u00a0: La notification est-elle persistante\u00a0?<\/strong><\/p>\n<p>Non, la notification toast expire au bout d&rsquo;une minute, sauf si l&rsquo;utilisateur l&rsquo;interrompt plus t\u00f4t.<\/p>\n<p><strong>Q\u00a0: L&rsquo;identifiant de l&rsquo;application peut-il \u00eatre personnalis\u00e9\u00a0?<\/strong><\/p>\n<p>Oui, soit via le param\u00e8tre ApplicationId, soit en modifiant la valeur par d\u00e9faut dans le script.<\/p>\n<h2>Implications<\/h2>\n<p>L&rsquo;utilisation de ce script am\u00e9liore la communication informatique en garantissant que les notifications critiques sont vues rapidement. Toutefois, une utilisation excessive des notifications urgentes pourrait entra\u00eener une \u00ab\u00a0lassitude face aux alertes\u00a0\u00bb, r\u00e9duisant ainsi leur efficacit\u00e9. Les \u00e9quipes informatiques doivent utiliser cet outil de mani\u00e8re judicieuse pour maintenir son impact.<\/p>\n<h2>Recommandations<\/h2>\n<ul>\n<li><strong>Test<\/strong>\u00a0: testez toujours le script dans un environnement de non-production pour confirmer sa fonctionnalit\u00e9.<\/li>\n<li><strong>Exp\u00e9rience utilisateur<\/strong>\u00a0: \u00e9vitez les titres et les messages trop longs\u00a0: veillez \u00e0 ce qu&rsquo;ils soient concis et exploitables.<\/li>\n<li><strong>Image de marque<\/strong>\u00a0: utilisez un identifiant d&rsquo;application significatif pour cr\u00e9er un climat de confiance et de reconnaissance parmi les utilisateurs.<\/li>\n<li><strong>S\u00e9curit\u00e9<\/strong>\u00a0: limitez l&rsquo;acc\u00e8s aux scripts au personnel autoris\u00e9 afin d&rsquo;\u00e9viter toute utilisation abusive.<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>Ce script PowerShell est un compl\u00e9ment puissant \u00e0 la bo\u00eete \u00e0 outils d&rsquo;un professionnel de l&rsquo;informatique, offrant des capacit\u00e9s de notification pr\u00e9cises, personnalisables et efficaces. Pour les MSP et les \u00e9quipes informatiques utilisant NinjaOne, l&rsquo;int\u00e9gration de ce script dans des flux de travail plus larges s&rsquo;aligne sur l&rsquo;accent mis par la plateforme sur une gestion informatique rationalis\u00e9e et proactive.<\/p>\n","protected":false},"author":35,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":""},"operating_system":[4212],"use_cases":[4281],"class_list":["post-391127","script_hub","type-script_hub","status-publish","hentry","script_hub_category-windows","use_cases-configuration-generale"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub\/391127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/comments?post=391127"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=391127"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/operating_system?post=391127"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/use_cases?post=391127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}