{"id":264953,"date":"2024-05-31T14:57:38","date_gmt":"2024-05-31T14:57:38","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=264953"},"modified":"2024-05-31T15:04:31","modified_gmt":"2024-05-31T15:04:31","slug":"actualizar-directivas-de-contrasenas","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/es\/script-hub\/actualizar-directivas-de-contrasenas\/","title":{"rendered":"C\u00f3mo actualizar directivas de contrase\u00f1as de Windows con PowerShell"},"content":{"rendered":"<h2>Directivas de contrase\u00f1as: puntos clave<\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\">Las directivas de contrase\u00f1as son esenciales para reforzar la seguridad inform\u00e1tica en las organizaciones.<\/li>\n<li>El script que analizaremos hoy automatiza el proceso de modificar la complejidad de la contrase\u00f1a en Windows.<\/li>\n<li>El script admite tanto ordenadores con dominio como sin dominio.<\/li>\n<li>Ejecutar el script sin privilegios administrativos resultar\u00e1 en la terminaci\u00f3n.<\/li>\n<li>Los m\u00e9todos tradicionales para cambiar las directivas de contrase\u00f1as pueden llevar m\u00e1s tiempo que este script.<\/li>\n<li>Prueba siempre el script en un entorno controlado antes de desplegarlo.<\/li>\n<li>Informar a los usuarios de los cambios en las directivas de contrase\u00f1as puede evitar confusiones y posibles bloqueos.<\/li>\n<li>Revisar y ajustar peri\u00f3dicamente las directivas de contrase\u00f1as es una buena pr\u00e1ctica.<\/li>\n<li>NinjaOne puede integrarse perfectamente con herramientas de automatizaci\u00f3n para reforzar las medidas de seguridad.<\/li>\n<\/ul>\n<p>En el panorama inform\u00e1tico actual, la seguridad sigue siendo primordial. Con <a href=\"https:\/\/www.ninjaone.com\/es\/blog\/smb-cybersecurity-statistics\">las filtraciones de datos acaparando los titulares<\/a>, establecer directivas de contrase\u00f1as seguras se convierte no s\u00f3lo en una opci\u00f3n, sino en una necesidad. A medida que las organizaciones buscan fortificar sus defensas, surge como tema crucial una forma eficiente de <strong>actualizar las directivas de contrase\u00f1as de Windows<\/strong>.<\/p>\n<h2>Antecedentes<\/h2>\n<p>Las directivas de contrase\u00f1as, especialmente en entornos Windows, ayudan a definir los requisitos para crear y mantener contrase\u00f1as. Asegurarse de que son estrictas reduce el riesgo de acceso no autorizado. El script que analizamos en este post est\u00e1 dise\u00f1ado para que los profesionales de TI y los <a href=\"https:\/\/www.ninjaone.com\/es\/que-es-un-msp\">proveedores de servicios gestionados (MSP<\/a>) cambien sin esfuerzo la complejidad de la contrase\u00f1a de un equipo con dominio o sin dominio.<\/p>\n<p>\u00bfPor qu\u00e9 es tan valiosa esta herramienta? Cambiar manualmente las directivas de contrase\u00f1as, especialmente en grandes organizaciones, puede resultar engorroso. Un script de este tipo automatiza el proceso, haci\u00e9ndolo m\u00e1s r\u00e1pido y menos propenso a errores humanos.<\/p>\n<h2>El script para actualizar directivas de contrase\u00f1as de Windows<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Modifies the password complexity settings for a domain or a non-domain computer.\r\n.DESCRIPTION\r\n    This script can be used to enable or disable the password complexity requirement on a domain or a non-domain computer.\r\n    When using -Domain, this script must be run on a Domain Controller with the RSAT feature installed.\r\n.PARAMETER ComplexityEnabled\r\n    Enables the Password Complexity requirement.\r\n.PARAMETER Domain\r\n    Specifies the name of the domain. If specified, it will enable or disable the password complexity requirement on the Active Directory Default Domain Password Policy.\r\n    The computer this script is executed on MUST have the PowerShell RSAT features installed when using the -Domain flag.\r\n.EXAMPLE\r\n     -ComplexityEnabled\r\n    Enables the password complexity requirement on the computer this script runs on.\r\n.EXAMPLE\r\n     No param needed\r\n    Disables the password complexity requirement on the computer this script runs on.\r\n.EXAMPLE\r\n     -ComplexityEnabled -Domain \"test.consto.com\"\r\n    Enables the password complexity requirement in Active Directory for the Default Domain Password Policy.\r\n    When using -Domain, this script must be run on a Domain Controller with the RSAT feature installed.\r\n.EXAMPLE\r\n     -Domain \"test.consto.com\"\r\n    Disables the password complexity requirement in Active Directory for the Default Domain Password Policy.\r\n    When using -Domain, this script must be run on a Domain Controller with the RSAT feature installed.\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 10, Windows Server 2016\r\n    Release Notes: Renamed script and added Script Variable support\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.COMPONENT\r\n    ManageUsers\r\n#&gt;\r\n\r\n[CmdletBinding()]\r\nparam (\r\n    [Parameter(Mandatory = $false)]\r\n    [Switch]\r\n    $ComplexityEnabled,\r\n    [Parameter(Mandatory = $false)]\r\n    [String]\r\n    $Domain\r\n)\r\nbegin {\r\n    function Test-IsElevated {\r\n        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()\r\n        $p = New-Object System.Security.Principal.WindowsPrincipal($id)\r\n        if ($p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator))\r\n        { Write-Output $true }\r\n        else\r\n        { Write-Output $false }\r\n    }\r\n    function Test-DomainJoined {\r\n        # Check if the computer is domain joined\r\n        if ((Get-Command -Name Get-WmiObject -ErrorAction SilentlyContinue)) {\r\n            return $(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain\r\n        }\r\n        elseif ((Get-Command -Name Get-CIMInstance -ErrorAction SilentlyContinue)) {\r\n            return $(Get-CimInstance -ClassName Win32_ComputerSystem).PartOfDomain\r\n        }\r\n        else {\r\n            Write-Host \"[Error] Get-WmiObject and Get-CIMInstance are not available. This script requires at least one of these cmdlets to run.\"\r\n            exit 1\r\n        }\r\n    }\r\n}\r\nprocess {\r\n    if (-not (Test-IsElevated)) {\r\n        Write-Host \"[Error] Access Denied. Please run with Administrator privileges.\"\r\n        exit 1\r\n    }\r\n    \r\n    if (-not ([string]::IsNullOrWhiteSpace($Domain))) {\r\n        # Active Directory\r\n    \r\n        # Check if we are running on a Domain Controller, exit if we aren't\r\n        $osInfo = Get-CimInstance -ClassName Win32_OperatingSystem\r\n        if ($osInfo.ProductType -ne 2) {\r\n            Write-Host \"[Error] This needs to run on a Domain Controller.\"\r\n            exit 1\r\n        }\r\n        # Set ComplexityEnabled to what was passed into $ComplexityEnabled\r\n        Set-ADDefaultDomainPasswordPolicy -Identity $Domain -ComplexityEnabled $(if ($ComplexityEnabled) { $true }else { $false }) -Confirm:$false\r\n        # Sleep for a while, just in case Get-ADDefaultDomainPasswordPolicy connects to a different AD server and replication is slow\r\n        Start-Sleep -Seconds 60\r\n        # Check if the ComplexityEnabled policy was applied correctly\r\n        $Results = Get-ADDefaultDomainPasswordPolicy -Identity $Domain\r\n        # Check that the policy matches what was requested\r\n        if ($Results -and $Results.ComplexityEnabled -eq $ComplexityEnabled) {\r\n            Write-Host \"[Info] Set Complexity in Default Domain Password Policy to $ComplexityEnabled\"\r\n            return\r\n        }\r\n        else {\r\n            # The policy was not set for some reason\r\n            Write-Host \"[Error] Failed to set Complexity in Default Domain Password Policy to $ComplexityEnabled\"\r\n            exit 1\r\n        }\r\n    }\r\n    else {\r\n        # Localhost\r\n        # Check if the computer is domain joined\r\n\r\n        if ($(Test-DomainJoined)) {\r\n            Write-Host \"[Error] This Computer is domain joined. Modifying the local policy is not supported for domain joined computers.\"\r\n            exit 1\r\n        }\r\n\r\n        # Set the path for our temp local policy config file\r\n        $Path = \"$PSScriptRoot\\Set-Password-Complexity-secpol.cfg\"\r\n        # Get our local policy\r\n        SecEdit.exe \/export \/cfg $Path\r\n        if ($LASTEXITCODE -gt 0) {\r\n            Write-Host \"[Error] Failed to read local machine Policy\"\r\n            exit 1\r\n        }\r\n\r\n        # Next make sure that we are not changing something that does not need to be changed\r\n        # if $ComplexityEnabled is True and the temp local policy config file has PasswordComplexity set to 0, then proceed\r\n        if ($ComplexityEnabled -and $(Get-Content -Path $Path) -Match \"^PasswordComplexity = 0$\") {\r\n            # Change PasswordComplexity from 0 to 1\r\n            $(Get-Content -Path $Path) -Replace \"PasswordComplexity = 0\", \"PasswordComplexity = 1\" | Out-File $Path\r\n            # Update the local policy with our changes\r\n            SecEdit.exe \/configure \/db c:\\windows\\security\\local.sdb \/cfg $Path \/areas SECURITYPOLICY\r\n            if ($LASTEXITCODE -gt 0) {\r\n                Write-Host \"[Error] Failed to set Complexity in local machine Policy to $ComplexityEnabled\"\r\n                exit 1\r\n            }\r\n        }# if $ComplexityEnabled is False and the temp local policy config file has PasswordComplexity set to 1, then proceed\r\n        elseif (-not $ComplexityEnabled -and $(Get-Content -Path $Path) -Match \"^PasswordComplexity = 1$\") {\r\n            # Change PasswordComplexity from 1 to 0\r\n            $(Get-Content -Path $Path) -Replace \"PasswordComplexity = 1\", \"PasswordComplexity = 0\" | Out-File $Path\r\n            # Update the local policy with our changes\r\n            SecEdit.exe \/configure \/db c:\\windows\\security\\local.sdb \/cfg $Path \/areas SECURITYPOLICY\r\n            if ($LASTEXITCODE -gt 0) {\r\n                Write-Host \"[Error] Failed to set Complexity in local machine Policy to $ComplexityEnabled\"\r\n                exit 1\r\n            }\r\n        }\r\n        # Remove our temp local policy config file\r\n        Remove-Item $Path -Force\r\n        # Get our local policy\r\n        SecEdit.exe \/export \/cfg $Path\r\n        # Check if the temp local policy config file has PasswordComplexity set to match our $ComplexityEnabled\r\n        if (\r\n            ($ComplexityEnabled -and $(Get-Content $Path) -Match \"^PasswordComplexity = 1$\") -or\r\n            (-not $ComplexityEnabled -and $(Get-Content $Path) -Match \"^PasswordComplexity = 0$\")\r\n        ) {\r\n            # Remove our temp local policy config file again\r\n            Remove-Item $Path -Force\r\n            Write-Host \"[Info] Set Complexity in local machine Policy to $ComplexityEnabled\"\r\n            return\r\n        }\r\n        else {\r\n            # Remove our temp local policy config file again\r\n            Remove-Item $Path -Force\r\n            Write-Host \"[Error] Failed to set Complexity in local machine Policy to $ComplexityEnabled\"\r\n            exit 1\r\n        }\r\n    }\r\n}<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p>Accede a m\u00e1s de 300 scripts en el Dojo de NinjaOne<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/es\/prueba-gratuita-formulario\/\">Obt\u00e9n acceso<\/a><\/p>\n<\/div>\n<h2>An\u00e1lisis detallado<\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><strong>Requisitos iniciales<\/strong>: el script est\u00e1 dise\u00f1ado para Windows 10 o Windows Server 2016. Adem\u00e1s, si se utiliza la funci\u00f3n Active Directory, deber\u00e1 instalarse RSAT para Active Directory.<\/li>\n<li><strong>Par\u00e1metros<\/strong>: el script acepta dos par\u00e1metros opcionales:<\/li>\n<li><strong>$ComplexityEnabled<\/strong>: un interruptor que activa o desactiva la complejidad de la contrase\u00f1a.<\/li>\n<li><strong>$Domain<\/strong>: especifica el nombre de dominio para el que se cambiar\u00e1 la directiva de contrase\u00f1as.<\/li>\n<li><strong>Control de la elevaci\u00f3n de los permisos<\/strong>: antes de cualquier acci\u00f3n, el script comprueba si tiene privilegios de administrador. En caso contrario, finaliza, garantizando que las acciones s\u00f3lo se ejecutan con los permisos adecuados.<\/li>\n<li><strong>Active Directory<\/strong>: si se especifica un dominio, \u00e9ste:<\/li>\n<li>Comprueba si se est\u00e1 ejecutando en un controlador de dominio.<\/li>\n<li>Valida la presencia del m\u00f3dulo ActiveDirectory.<\/li>\n<li>Modifica la directiva de contrase\u00f1as de dominio por defecto bas\u00e1ndose en el par\u00e1metro <strong>$ComplexityEnabled<\/strong>.<\/li>\n<li><strong>Pol\u00edtica local<\/strong>: si no se especifica ning\u00fan dominio, se:<\/li>\n<li>Crea un archivo temporal de configuraci\u00f3n de pol\u00edticas.<\/li>\n<li>Comprueba la configuraci\u00f3n actual de la complejidad de la contrase\u00f1a.<\/li>\n<li>Modifica esta configuraci\u00f3n en funci\u00f3n del par\u00e1metro <strong>$ComplexityEnabled<\/strong>.<\/li>\n<\/ul>\n<h2>Posibles casos de uso<\/h2>\n<p><em>Estudio de caso<\/em>: Imagina a Ana, una profesional de TI que trabaja en una organizaci\u00f3n que ha sufrido recientemente ataques de phishing. Su equipo decide aplicar directivas de contrase\u00f1as m\u00e1s estrictas. En lugar de revisar manualmente cada sistema o controlador de dominio, Ana utiliza este script. Simplemente ejecut\u00e1ndolo con los par\u00e1metros deseados, puede actualizar r\u00e1pidamente las directivas de contrase\u00f1as, mejorando as\u00ed la postura de seguridad de la organizaci\u00f3n.<\/p>\n<h2>Comparaciones<\/h2>\n<p>Tradicionalmente, cambiar las directivas de contrase\u00f1as en Windows a menudo requer\u00eda navegar a trav\u00e9s de m\u00faltiples interfaces basadas en GUI, como la Administraci\u00f3n de Pol\u00edticas de Grupo o la Pol\u00edtica de Seguridad Local. Aunque eficaces, estos m\u00e9todos pueden llevar mucho tiempo. Este script de PowerShell agiliza el proceso, proporcionando un enfoque m\u00e1s r\u00e1pido y eficiente.<\/p>\n<h2>FAQ<\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><strong>\u00bfQu\u00e9 versiones de Windows admite este script?\u00a0<\/strong><br \/>\nWindows 10 y Windows Server 2016.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><strong>\u00bfEs necesario especificar siempre un dominio?\u00a0<\/strong><br \/>\nNo, si no especifica un dominio, el script utilizar\u00e1 por defecto el equipo local.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><strong>\u00bfQu\u00e9 ocurre si el script no se ejecuta con privilegios administrativos?<\/strong><br \/>\nTerminar\u00e1 y dar\u00e1 un mensaje de error.<\/li>\n<\/ul>\n<h2>Implicaciones<\/h2>\n<p>Aunque la automatizaci\u00f3n de los cambios en la pol\u00edtica de contrase\u00f1as puede agilizar los procesos, es vital notificar a los usuarios estos cambios. Los cambios repentinos en la pol\u00edtica de contrase\u00f1as pueden generar confusi\u00f3n y posibles bloqueos, lo que repercute en la productividad. Adem\u00e1s, desde el punto de vista de la seguridad de TI, actualizar y aplicar peri\u00f3dicamente las directivas de contrase\u00f1as puede reducir dr\u00e1sticamente el riesgo de accesos no autorizados.<\/p>\n<h2>Recomendaciones<\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\">Ejecuta siempre el script en un entorno de prueba antes de aplicarlo a una configuraci\u00f3n activa.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\">Revisa y ajusta peri\u00f3dicamente las directivas de contrase\u00f1as de acuerdo con las recomendaciones de seguridad m\u00e1s recientes.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\">Educa a los usuarios sobre la importancia de las contrase\u00f1as seguras y el motivo de los cambios de pol\u00edtica.<\/li>\n<\/ul>\n<h2>Reflexiones finales<\/h2>\n<p>En el contexto de la <a href=\"https:\/\/www.ninjaone.com\/es\/enterprise-it-management\/seguridad\">mejora de la seguridad de TI<\/a>, herramientas como NinjaOne pueden desempe\u00f1ar un papel fundamental. No s\u00f3lo proporcionan soluciones de supervisi\u00f3n, sino que se integran perfectamente con scripts como el que hemos analizado. Utilizando NinjaOne junto con estas herramientas de automatizaci\u00f3n, los profesionales de TI pueden gestionar y reforzar eficazmente las medidas de seguridad de su organizaci\u00f3n.<\/p>\n","protected":false},"author":35,"featured_media":144929,"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":[4267],"class_list":["post-264953","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/script_hub\/264953","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/comments?post=264953"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/media\/144929"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/media?parent=264953"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/operating_system?post=264953"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/use_cases?post=264953"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}