{"id":208608,"date":"2024-01-17T14:50:55","date_gmt":"2024-01-17T14:50:55","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/desactivar-una-cuenta-local-powershell\/"},"modified":"2024-03-04T17:45:54","modified_gmt":"2024-03-04T17:45:54","slug":"desactivar-una-cuenta-local-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/es\/script-hub\/desactivar-una-cuenta-local-powershell\/","title":{"rendered":"C\u00f3mo desactivar una cuenta local en Windows con PowerShell"},"content":{"rendered":"<p>Los profesionales de TI y los proveedores de servicios gestionados (MSP) lo saben bien: a veces es necesario <strong>desactivar una cuenta local en un equipo<\/strong> Windows por motivos de seguridad, cumplimiento de normativas u otras razones operativas. Obviamente existen herramientas GUI integradas para ello, pero cuando se gestionan varios sistemas, la automatizaci\u00f3n es clave. Hoy nos adentraremos en un script de PowerShell dise\u00f1ado para automatizar esta tarea, haci\u00e9ndola m\u00e1s r\u00e1pida, segura y f\u00e1cilmente reproducible.<\/p>\n<p>El script permite desactivar una cuenta local en Windows a trav\u00e9s de PowerShell. Este script PowerShell se dirige espec\u00edficamente a aquellos que buscan c\u00f3mo deshabilitar un usuario del sistema operativo Windows a trav\u00e9s de PowerShell o aquellos que se preguntan c\u00f3mo desactivar una cuenta local en Windows. As\u00ed que, sin m\u00e1s pre\u00e1mbulos, veamos este script en detalle.<\/p>\n<h2>El script<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Disable a local account\r\n.DESCRIPTION\r\n    Disable a local account\r\n.EXAMPLE\r\n     -UserName \"AdminTest\"\r\n    Disables the account AdminTest\r\n.EXAMPLE\r\n    PS C:&gt; Disable-LocalAdminAccount.ps1 -UserName \"Administrator\"\r\n    Disables the account AdminTest\r\n.OUTPUTS\r\n    None\r\n    String[]\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 10, Windows Server 2016\r\n    Release Notes:\r\n    Initial Release\r\n    (c) 2023 NinjaOne\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    LocalBuiltInAccountManagement\r\n#&gt;\r\n\r\n[CmdletBinding()]\r\nparam (\r\n    # User name of a local account\r\n    [Parameter(Mandatory = $true)]\r\n    [String]\r\n    $UserName\r\n)\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}\r\nprocess {\r\n    if (-not (Test-IsElevated)) {\r\n        Write-Error -Message \"Access Denied. Please run with Administrator privileges.\"\r\n        exit 1\r\n    }\r\n    if ($(Get-Command -Name \"Disable-LocalUser\" -ErrorAction SilentlyContinue)) {\r\n        # Disables $UserName using Disable-LocalUser\r\n        try {\r\n            Disable-LocalUser $UserName -Confirm:$false\r\n        }\r\n        catch {\r\n            Write-Error $_\r\n            exit 1\r\n        }\r\n    }\r\n    else {\r\n        # Disables $UserName using net.exe\r\n        net.exe user $UserName \/active:no\r\n        if ($LASTEXITCODE -gt 0) {\r\n            exit 1\r\n        }\r\n    }\r\n}\r\nend {}<\/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>Entender el gui\u00f3n para desactivar una cuenta local<\/h2>\n<p>He aqu\u00ed un breve resumen:<\/p>\n<ul>\n<li>el script comienza comprobando si se est\u00e1 ejecutando con privilegios administrativos. Si no, se detiene y lanza un mensaje de error.<\/li>\n<li>Comprueba la presencia del comando incorporado <strong>Disable-LocalUser<\/strong> y, si existe, lo utiliza. En caso contrario, recurre al comando <strong>net.exe user<\/strong> para desactivar una cuenta local de un usuario.<\/li>\n<\/ul>\n<p>El script obliga a rellenar la variable <strong>$UserName<\/strong>. Esta es la cuenta local que quieres desactivar.<\/p>\n<h3><strong>Requisitos previos<\/strong><\/h3>\n<ul>\n<li><strong>Requisitos del sistema operativo<\/strong>: la arquitectura m\u00ednima de sistema operativo compatible incluye Windows 10 y Windows Server 2016.<\/li>\n<li><strong>Versi\u00f3n de PowerShell<\/strong>: requiere al menos PowerShell 5.1.<\/li>\n<\/ul>\n<h2>Copia de seguridad y restauraci\u00f3n: procede con cautela<\/h2>\n<p>Antes de ejecutar cualquier script PowerShell que modifique la configuraci\u00f3n del sistema, es fundamental realizar una copia de seguridad de la configuraci\u00f3n existente o, mejor a\u00fan, de todo el sistema. Esto garantiza que puedas volver al estado anterior en caso de que algo vaya mal. Aqu\u00ed tienes un par de m\u00e9todos de copia de seguridad que puedes utilizar:<\/p>\n<h3>Punto de restauraci\u00f3n del sistema<\/h3>\n<p>Crear un punto de restauraci\u00f3n del sistema es una forma f\u00e1cil y eficaz de hacer una copia de seguridad de tu configuraci\u00f3n actual. As\u00ed es como se hace:<\/p>\n<ul>\n<li>Abre el men\u00fa Inicio y busca \u00abCrear un punto de restauraci\u00f3n\u00bb<\/li>\n<li>Haz clic en el resultado correspondiente para abrir la ventana Propiedades del sistema.<\/li>\n<li>Ve a la pesta\u00f1a \u00abProtecci\u00f3n del sistema\u00bb y haz clic en \u00abCrear\u00bb<\/li>\n<li>Dale un nombre a tu punto de restauraci\u00f3n y gu\u00e1rdalo.<\/li>\n<\/ul>\n<h3>C\u00f3mo realizar una copia de seguridad completa del sistema<\/h3>\n<p>Para una copia de seguridad completa, puedes crear una imagen del sistema:<\/p>\n<ul>\n<li>Abre el Panel de control.<\/li>\n<li>Ve a \u00abSistema y seguridad\u00bb &gt; \u00abCopia de seguridad y restauraci\u00f3n (Windows 7)\u00bb<\/li>\n<li>En el panel izquierdo, haz clic en \u00abCrear una imagen del sistema\u00bb<\/li>\n<li>Sigue las instrucciones del asistente para completar la copia de seguridad.<\/li>\n<\/ul>\n<p><strong>Nota<\/strong><strong>:<\/strong> prueba siempre el proceso de restauraci\u00f3n para asegurarte de que la copia de seguridad es v\u00e1lida.<\/p>\n<h2>Gesti\u00f3n de errores: qu\u00e9 hacer cuando las cosas van mal<\/h2>\n<p>El script PowerShell para desactivar una cuenta local incluye una gesti\u00f3n b\u00e1sica de errores, pero como con cualquier script, pueden ocurrir. A continuaci\u00f3n compartimos algunos errores comunes y consejos para solucionarlos:<\/p>\n<p><strong>\u00abAcceso denegado. Por favor, ejecuta con privilegios de administrador\u00bb.<\/strong><\/p>\n<p>Este error se produce si intentas ejecutar el script sin derechos administrativos. Aseg\u00farate de hacer clic con el bot\u00f3n derecho en la ventana de PowerShell y elegir \u00abEjecutar como administrador\u00bb<\/p>\n<p><strong>La cuenta de usuario no existe<\/strong><\/p>\n<p>Si introduces un nombre de usuario que no existe, el script para desactivar una cuenta local arrojar\u00e1 un error. Vuelve a comprobar el nombre de usuario e int\u00e9ntalo de nuevo.<\/p>\n<p><strong>El script no se ejecuta<\/strong><\/p>\n<p>Si el script no se ejecuta, comprueba la configuraci\u00f3n de la pol\u00edtica de ejecuci\u00f3n de PowerShell. Es posible que tengas que cambiar la pol\u00edtica para permitir que se ejecute el script. Utiliza el siguiente comando para cambiarlo:<\/p>\n<p><em>Set-ExecutionPolicy RemoteSigned<\/em><\/p>\n<p>Acu\u00e9rdate de restablecer la configuraci\u00f3n original despu\u00e9s de ejecutar el script.<\/p>\n<h2>Tratamiento de errores de tipo Catch-All<\/h2>\n<p>Si quieres ampliar el alcance del script para registrar los errores en un archivo de texto con fines de auditor\u00eda, puedes modificar el bloque catch del script de la siguiente manera:<\/p>\n<p><em>catch { Write-Error $_ \u00abError: $_\u00bb | Out-File \u00abC:pathtoerrorlog.txt\u00bb -Append exit 1 }<\/em><\/p>\n<p><strong>Nota<\/strong>: sustituye \u00abC:pathtoerrorlog.txt\u00bb por la ruta del archivo de registro que desees.<\/p>\n<p>Al incorporar estos m\u00e9todos de copia de seguridad y gesti\u00f3n de errores, se a\u00f1ade una capa adicional de seguridad y fiabilidad en el momento de ejecutar el script.<\/p>\n<h2>\u00bfPor qu\u00e9 es \u00fatil?<\/h2>\n<h3><strong>Para los profesionales de TI:<\/strong><\/h3>\n<ul>\n<li><strong>Seguridad<\/strong>: si gestionas la infraestructura inform\u00e1tica de una organizaci\u00f3n, saber c\u00f3mo desactivar una cuenta local en Windows es crucial, ya que las cuentas no autorizadas o redundantes son un riesgo para la seguridad.<\/li>\n<li><strong>Conformidad<\/strong>: el cumplimiento de la normativa exige a menudo desactivar determinadas cuentas. La automatizaci\u00f3n de este proceso garantiza que no se omita ning\u00fan paso.<\/li>\n<li><strong>Automatizaci\u00f3n y escalabilidad<\/strong>: el script puede incluirse como parte de una secuencia de automatizaci\u00f3n m\u00e1s amplia, lo que facilita la desactivaci\u00f3n de cuentas en muchos equipos simult\u00e1neamente.<\/li>\n<\/ul>\n<h3><strong>Para los MSP:<\/strong><\/h3>\n<ul>\n<li><strong>Multi-Tenancy<\/strong>: los MSP pueden integrar f\u00e1cilmente este script en sus sistemas de gesti\u00f3n centralizada. Esto simplifica la gesti\u00f3n de varios clientes desde un \u00fanico panel de control.<\/li>\n<li><strong>Eficiencia operativa<\/strong>: la capacidad de automatizaci\u00f3n de este script PowerShell reduce la sobrecarga operativa.<\/li>\n<li><strong>SLA y satisfacci\u00f3n del cliente<\/strong>: La automatizaci\u00f3n garantiza tiempos de respuesta m\u00e1s r\u00e1pidos y el cumplimiento de los SLA, lo que se traduce directamente en la satisfacci\u00f3n del cliente.<\/li>\n<\/ul>\n<h2>Reflexiones finales<\/h2>\n<p>Cuando se trata de administrar cuentas locales, el script <strong>Disable-LocalAdminAccount.ps1<\/strong> es una poderosa herramienta que debes tener en tu arsenal.\u00a0Aprovecha el poder de la automatizaci\u00f3n y mejora tus medidas de seguridad integrando este script en tus flujos de trabajo. Al fin y al cabo, en el acelerado panorama inform\u00e1tico actual, la automatizaci\u00f3n ya no es un lujo, sino una necesidad.<\/p>\n","protected":false},"author":35,"featured_media":206896,"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-208608","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\/208608","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=208608"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/media\/206896"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/media?parent=208608"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/operating_system?post=208608"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/use_cases?post=208608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}