{"id":534674,"date":"2025-09-30T17:01:40","date_gmt":"2025-09-30T17:01:40","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=534674"},"modified":"2025-09-30T17:01:40","modified_gmt":"2025-09-30T17:01:40","slug":"verifier-l-etat-du-bureau-a-distance-avec-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/fr\/script-hub\/verifier-l-etat-du-bureau-a-distance-avec-powershell\/","title":{"rendered":"Comment utiliser PowerShell pour v\u00e9rifier l&rsquo;\u00e9tat du bureau \u00e0 distance et la configuration des ports"},"content":{"rendered":"<p>Le <a href=\"https:\/\/www.ninjaone.com\/fr\/blog\/qu-est-ce-que-le-protocole-rdp-remote-desktop-protocol\/\">protocole Remote Desktop Protocol (RDP)<\/a> est une fonctionnalit\u00e9 essentielle pour la gestion des syst\u00e8mes \u00e0 distance, que vous travailliez dans l&rsquo;assistance informatique, l&rsquo;administration des syst\u00e8mes ou que vous g\u00e9riez une <a href=\"https:\/\/www.ninjaone.com\/fr\/quest-ce-quun-msp\/\">entreprise MSP<\/a>. S&rsquo;assurer que le RDP est correctement configur\u00e9 et surveiller le port sur lequel il \u00e9coute sont des t\u00e2ches vitales pour maintenir des terminaux s\u00e9curis\u00e9s et fonctionnels. Ce billet examine un script PowerShell qui v\u00e9rifie l&rsquo;\u00e9tat et le port de Remote Desktop et enregistre \u00e9ventuellement le r\u00e9sultat dans un champ personnalis\u00e9 de NinjaOne. Il s&rsquo;agit d&rsquo;une solution pratique pour l&rsquo;automatisation des rapports et des audits dans les environnements informatiques modernes.<\/p>\n<h2>Contexte<\/h2>\n<p>Le bureau \u00e0 distance est activ\u00e9 par d\u00e9faut dans de nombreuses entreprises, mais sa configuration peut d\u00e9river au fil du temps. Des facteurs tels que les changements de strat\u00e9gie de groupe, les mises \u00e0 jour de s\u00e9curit\u00e9 ou les modifications apport\u00e9es par les utilisateurs peuvent d\u00e9sactiver RDP ou modifier son port d&rsquo;\u00e9coute, ce qui rend les syst\u00e8mes inaccessibles ou vuln\u00e9rables. Dans les environnements plus vastes, en particulier ceux qui sont g\u00e9r\u00e9s par des <a href=\"https:\/\/www.ninjaone.com\/fr\/rmm\/\">plateformes RMM telles que NinjaOne<\/a>, il est impossible de v\u00e9rifier chaque machine manuellement. L&rsquo;automatisation de ce contr\u00f4le au moyen d&rsquo;un script PowerShell permet non seulement de gagner du temps, mais aussi de garantir l&rsquo;exactitude et la conformit\u00e9.<\/p>\n<p>Ce script a \u00e9t\u00e9 con\u00e7u en tenant compte de l&rsquo;int\u00e9gration de NinjaOne, ce qui le rend particuli\u00e8rement utile pour les MSP et les services informatiques qui utilisent cette plateforme. Il ne se contente pas de recueillir l&rsquo;\u00e9tat RDP, il prend \u00e9galement en charge l&rsquo;enregistrement automatique dans un champ personnalis\u00e9, ce qui facilite la documentation des actifs.<\/p>\n<h2>Le script<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Reports the status of Remote Desktop and the port it is listening on.\r\n.DESCRIPTION\r\n    Reports the status of Remote Desktop and the port it is listening on.\r\n    With the option to save the results to a custom field.\r\nBy 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    (No Parameters)\r\n    ## EXAMPLE OUTPUT WITHOUT PARAMS ##\r\n    [Info] Enabled | Port: 3389\r\n\r\nPARAMETER: -RdpStatusCustomFieldName \"RDPStatus\"\r\n    Name of a custom field to save the results to.\r\n.EXAMPLE\r\n    -RdpStatusCustomFieldName \"RDPStatus\"\r\n    ## EXAMPLE OUTPUT WITH RdpStatusCustomFieldName ##\r\n    [Info] Enabled | Port: 3389\r\n    [Info] Attempting to set Custom Field 'RDPStatus'.\r\n    [Info] Successfully set Custom Field 'RDPStatus'!\r\n    \r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 10, Windows Server 2016\r\n    Release Notes: Initial Release\r\n#&gt;\r\n\r\n[CmdletBinding()]\r\nparam (\r\n    [Parameter()]\r\n    [String]$RdpStatusCustomFieldName\r\n)\r\n\r\nbegin {\r\n    function Set-NinjaProperty {\r\n        [CmdletBinding()]\r\n        Param(\r\n            [Parameter(Mandatory = $True)]\r\n            [String]$Name,\r\n            [Parameter()]\r\n            [String]$Type,\r\n            [Parameter(Mandatory = $True, ValueFromPipeline = $True)]\r\n            $Value,\r\n            [Parameter()]\r\n            [String]$DocumentName\r\n        )\r\n        \r\n        # Measure the number of characters in the provided value\r\n        $Characters = $Value | ConvertTo-Json | Measure-Object -Character | Select-Object -ExpandProperty Characters\r\n    \r\n        # Throw an error if the value exceeds the character limit of 200,000 characters\r\n        if ($Characters -ge 200000) {\r\n            throw [System.ArgumentOutOfRangeException]::New(\"Character limit exceeded: the value is greater than or equal to 200,000 characters.\")\r\n        }\r\n        \r\n        # Initialize a hashtable for additional documentation parameters\r\n        $DocumentationParams = @{}\r\n    \r\n        # If a document name is provided, add it to the documentation parameters\r\n        if ($DocumentName) { $DocumentationParams[\"DocumentName\"] = $DocumentName }\r\n        \r\n        # Define a list of valid field types\r\n        $ValidFields = \"Attachment\", \"Checkbox\", \"Date\", \"Date or Date Time\", \"Decimal\", \"Dropdown\", \"Email\", \"Integer\", \"IP Address\", \"MultiLine\", \"MultiSelect\", \"Phone\", \"Secure\", \"Text\", \"Time\", \"URL\", \"WYSIWYG\"\r\n    \r\n        # Warn the user if the provided type is not valid\r\n        if ($Type -and $ValidFields -notcontains $Type) { Write-Warning \"$Type is an invalid type. Please check here for valid types: https:\/\/ninjarmm.zendesk.com\/hc\/en-us\/articles\/16973443979789-Command-Line-Interface-CLI-Supported-Fields-and-Functionality\" }\r\n        \r\n        # Define types that require options to be retrieved\r\n        $NeedsOptions = \"Dropdown\"\r\n    \r\n        # If the property is being set in a document or field and the type needs options, retrieve them\r\n        if ($DocumentName) {\r\n            if ($NeedsOptions -contains $Type) {\r\n                $NinjaPropertyOptions = Ninja-Property-Docs-Options -AttributeName $Name @DocumentationParams 2&gt;&amp;1\r\n            }\r\n        }\r\n        else {\r\n            if ($NeedsOptions -contains $Type) {\r\n                $NinjaPropertyOptions = Ninja-Property-Options -Name $Name 2&gt;&amp;1\r\n            }\r\n        }\r\n        \r\n        # Throw an error if there was an issue retrieving the property options\r\n        if ($NinjaPropertyOptions.Exception) { throw $NinjaPropertyOptions }\r\n            \r\n        # Process the property value based on its type\r\n        switch ($Type) {\r\n            \"Checkbox\" {\r\n                # Convert the value to a boolean for Checkbox type\r\n                $NinjaValue = [System.Convert]::ToBoolean($Value)\r\n            }\r\n            \"Date or Date Time\" {\r\n                # Convert the value to a Unix timestamp for Date or Date Time type\r\n                $Date = (Get-Date $Value).ToUniversalTime()\r\n                $TimeSpan = New-TimeSpan (Get-Date \"1970-01-01 00:00:00\") $Date\r\n                $NinjaValue = $TimeSpan.TotalSeconds\r\n            }\r\n            \"Dropdown\" {\r\n                # Convert the dropdown value to its corresponding GUID\r\n                $Options = $NinjaPropertyOptions -replace '=', ',' | ConvertFrom-Csv -Header \"GUID\", \"Name\"\r\n                $Selection = $Options | Where-Object { $_.Name -eq $Value } | Select-Object -ExpandProperty GUID\r\n            \r\n                # Throw an error if the value is not present in the dropdown options\r\n                if (!($Selection)) {\r\n                    throw [System.ArgumentOutOfRangeException]::New(\"Value is not present in dropdown options.\")\r\n                }\r\n            \r\n                $NinjaValue = $Selection\r\n            }\r\n            default {\r\n                # For other types, use the value as is\r\n                $NinjaValue = $Value\r\n            }\r\n        }\r\n            \r\n        # Set the property value in the document if a document name is provided\r\n        if ($DocumentName) {\r\n            $CustomField = Ninja-Property-Docs-Set -AttributeName $Name -AttributeValue $NinjaValue @DocumentationParams 2&gt;&amp;1\r\n        }\r\n        else {\r\n            # Otherwise, set the standard property value\r\n            $CustomField = $NinjaValue | Ninja-Property-Set-Piped -Name $Name 2&gt;&amp;1\r\n        }\r\n            \r\n        # Throw an error if setting the property failed\r\n        if ($CustomField.Exception) {\r\n            throw $CustomField\r\n        }\r\n    }\r\n}\r\nprocess {\r\n\r\n    if ($env:rdpStatusCustomFieldName -and $env:rdpStatusCustomFieldName -notlike \"null\") { $RdpStatusCustomFieldName = $env:rdpStatusCustomFieldName }\r\n\r\n    # Terminal Server registry path\r\n    $RdpPath = 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server'\r\n    # Deny RDP Connections\r\n    $DenyRdpConnections = Get-ItemProperty -Path $RdpPath -Name 'fDenyTSConnections' -ErrorAction SilentlyContinue | Select-Object -ExpandProperty fDenyTSConnections -ErrorAction SilentlyContinue\r\n    # RDP Port\r\n    $RdpPort = Get-ItemProperty -Path \"$RdpPath\\WinStations\\RDP-Tcp\" -Name PortNumber -ErrorAction SilentlyContinue | Select-Object -ExpandProperty PortNumber -ErrorAction SilentlyContinue\r\n\r\n    # 1 or $null = Disabled (Default)\r\n    # 0 = Enabled\r\n    $RdpEnabled = if ($DenyRdpConnections -eq 0) { \"Enabled\" }else { \"Disabled\" }\r\n    # 3389 or $null = 3389 (Default)\r\n    $RdpPort = if ($null -eq $RdpPort) { \"3389\" }else { \"$RdpPort\" }\r\n\r\n    $Report = \"$RdpEnabled | Port: $RdpPort\"\r\n\r\n    Write-Host \"[Info] $Report\"\r\n\r\n    if ($RdpStatusCustomFieldName) {\r\n        try {\r\n            Write-Host \"[Info] Attempting to set Custom Field '$RdpStatusCustomFieldName'.\"\r\n            Set-NinjaProperty -Name $RdpStatusCustomFieldName -Value $Report\r\n            Write-Host \"[Info] Successfully set Custom Field '$RdpStatusCustomFieldName'!\"\r\n        }\r\n        catch {\r\n            Write-Host \"[Error] $($_.Exception.Message)\"\r\n            exit 1\r\n        }\r\n    }\r\n\r\n}\r\nend {\r\n    \r\n    \r\n    \r\n}<\/pre>\n<p>&nbsp;<\/p>\n\n<h2>Description d\u00e9taill\u00e9e<\/h2>\n<p>\u00c0 un niveau \u00e9lev\u00e9, le script effectue trois t\u00e2ches :<\/p>\n<ol>\n<li><strong>V\u00e9rifie si RDP est activ\u00e9<\/strong><\/li>\n<li><strong>D\u00e9termine le port utilis\u00e9 par RDP<\/strong><\/li>\n<li><strong>Optionnellement, les r\u00e9sultats sont enregistr\u00e9s dans un champ personnalis\u00e9 NinjaOne<\/strong><\/li>\n<\/ol>\n<h3>Flux \u00e9tape par \u00e9tape<\/h3>\n<ol>\n<li><strong>Traitement des param\u00e8tres<\/strong><\/li>\n<\/ol>\n<p>Le script accepte un param\u00e8tre facultatif :<\/p>\n<p style=\"padding-left: 80px;\">powershell<\/p>\n<p style=\"padding-left: 80px;\">CopyEdit<\/p>\n<p style=\"padding-left: 80px;\"><strong>[String]$RdpStatusCustomFieldName<\/strong><\/p>\n<p>Cette option permet \u00e0 l&rsquo;utilisateur de sp\u00e9cifier un champ personnalis\u00e9 NinjaOne dans lequel les r\u00e9sultats seront enregistr\u00e9s.<\/p>\n<ol start=\"2\">\n<li><strong>Support des variables d&rsquo;environnement<\/strong><\/li>\n<\/ol>\n<p>Si le param\u00e8tre n&rsquo;est pas transmis, le script v\u00e9rifie la variable d&rsquo;environnement <strong>$env:rdpStatusCustomFieldName<\/strong>, afin d&rsquo;assurer la compatibilit\u00e9 avec les variables d&rsquo;ex\u00e9cution inject\u00e9es.<\/p>\n<ol start=\"3\">\n<li><strong>Consultation du registre<\/strong><\/li>\n<\/ol>\n<p>Deux cl\u00e9s de registre critiques sont interrog\u00e9es :<\/p>\n<ul>\n<li><strong>fDenyTSConnections<\/strong>\u00a0sous <strong>HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server<\/strong> pour d\u00e9terminer l&rsquo;\u00e9tat du RDP.<\/li>\n<li><strong>PortNumber<\/strong>\u00a0sous <strong>WinStations\\RDP-Tcp<\/strong> pour trouver le port RDP configur\u00e9.<\/li>\n<\/ul>\n<ol start=\"4\">\n<li><strong>Formatage de la sortie<\/strong><\/li>\n<\/ol>\n<p>Sur la base des valeurs du registre, le script produit une cha\u00eene de caract\u00e8res comme :<\/p>\n<p style=\"padding-left: 80px;\">yaml<\/p>\n<p style=\"padding-left: 80px;\">CopyEdit<\/p>\n<p style=\"padding-left: 80px;\"><strong>[Info] Enabled | Port: 3389<\/strong><\/p>\n<ol start=\"5\">\n<li><strong>Int\u00e9gration de champs personnalis\u00e9s<\/strong><\/li>\n<\/ol>\n<p>Si un nom de champ personnalis\u00e9 est fourni, le script appelle la fonction <strong>Set-NinjaProperty<\/strong>, qui :<\/p>\n<ul>\n<li>Convertit et valide les donn\u00e9es saisies en fonction du type de champ.<\/li>\n<li>G\u00e8re les listes d\u00e9roulantes, les cases \u00e0 cocher, les dates, etc.<\/li>\n<li>Utilise <strong>Ninja-Property-Set-Piped ou Ninja-Property-Docs-Set<\/strong> pour appliquer les changements.<\/li>\n<\/ul>\n<p>Cette partie est envelopp\u00e9e dans un bloc try\/catch afin de g\u00e9rer les erreurs de mani\u00e8re \u00e9l\u00e9gante.<\/p>\n<p style=\"padding-left: 80px;\">powershell<\/p>\n<p style=\"padding-left: 80px;\">CopyEdit<\/p>\n<p style=\"padding-left: 80px;\"><strong>Set-NinjaProperty -Name $RdpStatusCustomFieldName -Value $Report<\/strong><\/p>\n<h2>Cas d&rsquo;utilisation potentiels<\/h2>\n<h3>Cas de figure\u00a0: Un fournisseur de services g\u00e9r\u00e9s (MSP) effectuant un audit du RDP<\/h3>\n<p>Une entreprise MSP g\u00e8re 500 appareils Windows. L&rsquo;\u00e9quipe de s\u00e9curit\u00e9 veut s&rsquo;assurer que le protocole RDP est d\u00e9sactiv\u00e9 sur toutes les machines qui n&rsquo;en ont pas explicitement besoin. Au lieu de se connecter \u00e0 chaque appareil, l&rsquo;entreprise MSP utilise NinjaOne pour d\u00e9ployer ce script sur l&rsquo;ensemble du parc informatique. Le script v\u00e9rifie l&rsquo;\u00e9tat et le port RDP, puis \u00e9crit le r\u00e9sultat dans un champ personnalis\u00e9 comme <strong>RDPStatus<\/strong>. Un rapport est g\u00e9n\u00e9r\u00e9 directement \u00e0 partir de NinjaOne, indiquant les machines pour lesquelles le RDP est activ\u00e9 et les ports expos\u00e9s.<\/p>\n<h2>Comparaisons<\/h2>\n<h3>M\u00e9thode manuelle<\/h3>\n<ul>\n<li>Naviguez vers\u00a0<strong>Propri\u00e9t\u00e9s syst\u00e8me &gt; Param\u00e8tres \u00e0 distance<\/strong>\u00a0ou v\u00e9rifiez via l&rsquo;interface graphique (GUI).<\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\">Ou utiliser des commandes PowerShell :<br \/>\npowershell<br \/>\nCopyEdit<br \/>\n<strong>Get-ItemProperty -Path &lsquo;HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server&rsquo; -Name &lsquo;fDenyTSConnections&rsquo;<\/strong><\/p>\n<h3>Limites<\/h3>\n<ul>\n<li>Pas d&rsquo;automatisation<\/li>\n<li>Pas d&rsquo;enregistrement centralis\u00e9<\/li>\n<li>Prend du temps pour les grands r\u00e9seaux<\/li>\n<\/ul>\n<p><strong>Outils tiers<\/strong><\/p>\n<p>Certains outils de s\u00e9curit\u00e9 peuvent v\u00e9rifier les param\u00e8tres RDP, mais ils manquent souvent d&rsquo;int\u00e9gration native avec les <a href=\"https:\/\/www.ninjaone.com\/fr\/blog\/guide-pour-msp-comment-utiliser-une-plateforme-rmm\/\">plateformes RMM<\/a>. Ce script comble cette lacune en s&rsquo;interfa\u00e7ant directement avec NinjaOne, offrant ainsi une approche optimis\u00e9e et centralis\u00e9e.<\/p>\n<h2>Questions fr\u00e9quentes<\/h2>\n<h3>Q\u00a0: Le script fonctionnera-t-il si le RDP n&rsquo;a jamais \u00e9t\u00e9 configur\u00e9 ?<\/h3>\n<p>Oui. La valeur par d\u00e9faut du script est <strong>Disabled | Port : 3389<\/strong> si des cl\u00e9s de registre sont manquantes ou nulles.<\/p>\n<h3>Q\u00a0: Que se passe-t-il si je saisis un nom de champ personnalis\u00e9 non valide ?<\/h3>\n<p>Le script d\u00e9tectera l&rsquo;erreur et l&rsquo;affichera :<br \/>\n<strong>[Error] Field name not found or unsupported type (Nom de champ introuvable ou type non pris en charge).<\/strong><\/p>\n<h3>Q\u00a0: Est-il possible de l&rsquo;ex\u00e9cuter en dehors de NinjaOne ?<\/h3>\n<p>Absolument. Le script affiche les r\u00e9sultats dans la console, ind\u00e9pendamment de l&rsquo;int\u00e9gration avec NinjaOne.<\/p>\n<h2>Implications<\/h2>\n<p>Les param\u00e8tres RDP mal configur\u00e9s sont un vecteur courant de mouvement lat\u00e9ral et d&rsquo;acc\u00e8s non autoris\u00e9. Ce script permet une d\u00e9tection pr\u00e9coce, ce qui permet aux \u00e9quipes informatiques de s&rsquo;attaquer aux vuln\u00e9rabilit\u00e9s de mani\u00e8re proactive. L&rsquo;enregistrement des r\u00e9sultats dans NinjaOne garantit une visibilit\u00e9 permanente, utile pour la conformit\u00e9 et les audits.<\/p>\n<p>Si le protocole RDP est activ\u00e9 par inadvertance, en particulier avec des ports qui ne sont pas par d\u00e9faut, il peut exposer les machines \u00e0 des attaques par force brute. L&rsquo;ex\u00e9cution r\u00e9guli\u00e8re de ce script permet d&rsquo;\u00e9viter de telles expositions.<\/p>\n<h2>Recommandations<\/h2>\n<ul>\n<li><strong>Automatiser le d\u00e9ploiement<\/strong>: Planifiez l&rsquo;ex\u00e9cution hebdomadaire de ce script via les politiques d&rsquo;automatisation de NinjaOne.<\/li>\n<li><strong>Alerte<\/strong>\u00a0: Combinez avec des alertes conditionnelles bas\u00e9es sur des valeurs de champs personnalis\u00e9s (par exemple, RDP activ\u00e9).<\/li>\n<li><strong>Port de r\u00e9f\u00e9rence<\/strong>: Validez que seul le port 3389 est utilis\u00e9, \u00e0 moins qu&rsquo;une configuration personnalis\u00e9e ne soit en place.<\/li>\n<li><strong>Documentation<\/strong>\u00a0: Conservez un journal des changements d&rsquo;\u00e9tat historiques du RDP via un rapport de champ personnalis\u00e9 versionn\u00e9.<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>Ce script PowerShell illustre la puissance de l&rsquo;automatisation des op\u00e9rations informatiques. En v\u00e9rifiant l&rsquo;\u00e9tat et le port de Remote Desktop \u00e0 l&rsquo;aide de PowerShell et en int\u00e9grant \u00e9ventuellement <a href=\"https:\/\/www.ninjaone.com\/fr\/\">NinjaOne<\/a>, il optimise l&rsquo;audit et renforce la <a href=\"https:\/\/www.ninjaone.com\/fr\/blog\/quest-ce-que-la-securite-des-terminaux-et-comment-fonctionne-t-elle\/\">s\u00e9curit\u00e9 des terminaux<\/a>.<\/p>\n<p>Pour les MSP et les professionnels de l&rsquo;informatique qui g\u00e8rent de nombreux appareils, un tel outil n&rsquo;est pas seulement pratique, il est essentiel. Gr\u00e2ce \u00e0 la prise en charge des champs personnalis\u00e9s de NinjaOne, les informations sont centralis\u00e9es, consultables et exploitables, ce qui permet des r\u00e9ponses plus rapides et une meilleure visibilit\u00e9 de tous les actifs g\u00e9r\u00e9s.<\/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":[4287,4285],"class_list":["post-534674","script_hub","type-script_hub","status-publish","hentry","script_hub_category-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub\/534674","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=534674"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=534674"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/operating_system?post=534674"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/use_cases?post=534674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}