{"id":810131,"date":"2026-05-20T12:37:34","date_gmt":"2026-05-20T12:37:34","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=810131"},"modified":"2026-05-20T12:37:34","modified_gmt":"2026-05-20T12:37:34","slug":"como-adicionar-um-computador-a-um-dominio-usando-o-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/pt-br\/script-hub\/como-adicionar-um-computador-a-um-dominio-usando-o-powershell\/","title":{"rendered":"Como adicionar um computador a um dom\u00ednio usando o PowerShell"},"content":{"rendered":"<p>No cen\u00e1rio moderno de TI, garantir que um computador entre no dom\u00ednio apropriado \u00e9 mais do que uma conveni\u00eancia &#8211; \u00e9 uma etapa essencial para consolidar o controle, simplificar o acesso e manter a seguran\u00e7a da rede. Esse script do PowerShell foi projetado para simplificar o processo de <strong>adi\u00e7\u00e3o de um computador a um dom\u00ednio.<\/strong><\/p>\n<h2>Hist\u00f3rico<\/h2>\n<p>O PowerShell ganhou destaque entre os profissionais de TI e os <a href=\"https:\/\/www.ninjaone.com\/what-is-an-msp\/\">provedores de servi\u00e7os gerenciados (MSPs)<\/a> como uma linguagem de script robusta e vers\u00e1til. Sua flexibilidade permite que os administradores automatizem tarefas repetitivas, apliquem pol\u00edticas e configurem sistemas rapidamente. O script apresentado aqui tem uma fun\u00e7\u00e3o crucial: ele permite que os computadores ingressem em um dom\u00ednio sem problemas. Os dom\u00ednios s\u00e3o essenciais no mundo da TI empresarial, pois facilitam o compartilhamento de recursos, a autentica\u00e7\u00e3o centralizada e a aplica\u00e7\u00e3o de pol\u00edticas. Assim, um script que pode adicionar computadores a um dom\u00ednio de forma confi\u00e1vel agrega um valor imenso.<\/p>\n<h2>O roteiro<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Joins a computer to a domain.\r\n.DESCRIPTION\r\n    Joins a computer to a domain.\r\n.EXAMPLE\r\n     -DomainName \"Domain.com\" -UserName \"DomainMyDomainUser\" -Password \"Somepass1\"\r\n    Joins a computer to a \"Domain.com\" domain and restarts the computer. Don't expect a success result in Ninja as the computer will reboot before the script can return a result.\r\n.EXAMPLE\r\n     -DomainName \"Domain.com\" -UserName \"DomainMyDomainUser\" -Password \"Somepass1\" -NoRestart\r\n    Joins a computer to a \"Domain.com\" domain and does not restart the computer.\r\n.EXAMPLE\r\n    PS C:&gt; Join-Domain.ps1 -DomainName \"domain.com\" -UserName \"DomainMyDomainUser\" -Password \"Somepass1\" -NoRestart\r\n    Joins a computer to a \"Domain.com\" domain and does not restart the computer.\r\n.EXAMPLE\r\n     -DomainName \"Domain.com\" -UserName \"DomainMyDomainUser\" -Password \"Somepass1\" -Server \"192.168.0.1\"\r\n    Not recommended if the computer this script is running on does not have one of the Domain Controllers set as its DNS server.\r\n    Joins a computer to a \"Domain.com\" domain, talks to the domain with the IP address of \"192.168.0.1\", and restarts the computer.\r\n.OUTPUTS\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\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.COMPONENT\r\n    ManageUsers\r\n#&gt;\r\n\r\n[CmdletBinding()]\r\nparam (\r\n    # Domain Name to join computer to\r\n    [Parameter(Mandatory = $true)]\r\n    [String]\r\n    $DomainName,\r\n    # Use a Domain UserName to join this computer to a domain, this requires the Password parameter to be used as well\r\n    [Parameter(Mandatory = $true)]\r\n    [String]\r\n    $UserName,\r\n    # Use a Domain Password to join this computer from a domain\r\n    [Parameter(Mandatory = $true)]\r\n    $Password,\r\n    # Used only when computer can't locate a domain controler via DNS or you wish to connect to a specific DC\r\n    [Parameter()]\r\n    $Server,\r\n    # Do not restart computer after joining to a domain\r\n    [Switch]\r\n    $NoRestart\r\n)\r\n    \r\nbegin {\r\n    function Join-ComputerToDomainPS2 {\r\n        param (\r\n            [String]\r\n            $DomainName,\r\n            [PSCredential]\r\n            $Credential,\r\n            $Restart,\r\n            $Server\r\n        )\r\n        if ($Credential) {\r\n            # Use supplied Credentials\r\n            if ($Server) {\r\n                Add-Computer -DomainName $DomainName -Credential $Credential -Server $Server -Force -Confirm:$false -PassThru\r\n            }\r\n            else {\r\n                Add-Computer -DomainName $DomainName -Credential $Credential -Force -Confirm:$false -PassThru\r\n            }\r\n        }\r\n        else {\r\n            # No Credentials supplied, use current user\r\n            Add-Computer -DomainName $DomainName -Force -Confirm:$false -PassThru\r\n        }\r\n    }\r\n    Write-Output \"Starting Join Domain\"\r\n    \r\n    # Convert username and password into a credential object\r\n    $JoinCred = [PSCredential]::new($UserName, $(ConvertTo-SecureString -String $Password -AsPlainText -Force))\r\n}\r\n    \r\nprocess {\r\n    Write-Output \"Joining computer($env:COMPUTERNAME) to domain $DomainName\"\r\n    $script:JoinResult = $false\r\n    try {\r\n        $JoinResult = if ($NoRestart) {\r\n            # Do not restart after joining\r\n            if ($PSVersionTable.PSVersion.Major -eq 2) {\r\n                if ($Server) {\r\n                    (Join-ComputerToDomainPS2 -DomainName $DomainName -Credential $Credential -Server $Server).HasSucceeded\r\n                }\r\n                else {\r\n                    (Join-ComputerToDomainPS2 -DomainName $DomainName -Credential $Credential).HasSucceeded\r\n                }\r\n            }\r\n            else {\r\n                if ($Server) {\r\n                    (Add-Computer -DomainName $DomainName -Credential $JoinCred -Server $Server -Force -Confirm:$false -PassThru).HasSucceeded\r\n                }\r\n                else {\r\n                    (Add-Computer -DomainName $DomainName -Credential $JoinCred -Force -Confirm:$false -PassThru).HasSucceeded\r\n                }\r\n            }\r\n        }\r\n        else {\r\n            # Restart after joining\r\n            if ($PSVersionTable.PSVersion.Major -eq 2) {\r\n                if ($Server) {\r\n                    (Join-ComputerToDomainPS2 -DomainName $DomainName -Credential $Credential -Server $Server).HasSucceeded\r\n                }\r\n                else {\r\n                    (Join-ComputerToDomainPS2 -DomainName $DomainName -Credential $Credential).HasSucceeded\r\n                }\r\n            }\r\n            else {\r\n                if ($Server) {\r\n                    (Add-Computer -DomainName $DomainName -Credential $JoinCred -Restart -Server $Server -Force -Confirm:$false -PassThru).HasSucceeded\r\n                }\r\n                else {\r\n                    (Add-Computer -DomainName $DomainName -Credential $JoinCred -Restart -Force -Confirm:$false -PassThru).HasSucceeded\r\n                }\r\n            }\r\n        }    \r\n    }\r\n    catch {\r\n        Write-Error \"Failed to Join Domain: $DomainName\"\r\n    }\r\n\r\n    if ($NoRestart -and $JoinResult) {\r\n        Write-Output \"Joined computer($env:COMPUTERNAME) to Domain: $DomainName and not restarting computer\"\r\n    }\r\n    elseif ($JoinResult) {\r\n        Write-Output \"Joined computer($env:COMPUTERNAME) to Domain: $DomainName and restarting computer\"\r\n        if ($PSVersionTable.PSVersion.Major -eq 2) {\r\n            shutdown.exe -r -t 60\r\n        }\r\n    }\r\n    else {\r\n        Write-Output \"Failed to Join computer($env:COMPUTERNAME) to Domain: $DomainName\"\r\n        # Clean up credentials so that they don't leak outside this script\r\n        $JoinCred = $null\r\n        exit 1\r\n    }\r\n}\r\n    \r\nend {\r\n    # Clean up credentials so that they don't leak outside this script\r\n    $JoinCred = $null\r\n    Write-Output \"Completed Join Domain\"\r\n}<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p style=\"text-align: center;\">Acesse mais de 300 scripts no NinjaOne Dojo<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.ninjaone.com\/freetrialform\/\">Obter acesso<\/a><\/p>\n<\/div>\n<h2>Detalhamento<\/h2>\n<p>O script come\u00e7a com metadados abrangentes, descrevendo sua finalidade, exemplos de uso e resultados esperados. A l\u00f3gica central segue um layout de fun\u00e7\u00e3o padr\u00e3o do PowerShell: in\u00edcio, processo e fim.<\/p>\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>Par\u00e2metros<\/strong>: Essas s\u00e3o entradas fornecidas pelo usu\u00e1rio, incluindo DomainName, UserName, Password e Server. Um par\u00e2metro de switch chamado NoRestart permite que os usu\u00e1rios decidam se desejam que o computador seja reiniciado ap\u00f3s ingressar no dom\u00ednio.<\/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=\"1\" data-aria-level=\"1\"><strong>In\u00edcio do bloco<\/strong>: Esta se\u00e7\u00e3o inicializa o script. Ele define uma fun\u00e7\u00e3o <strong>Join-ComputerToDomainPS2<\/strong> e converte o nome de usu\u00e1rio e a senha fornecidos em um objeto de credencial seguro, pronto para ser usado no processo de associa\u00e7\u00e3o.<\/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=\"1\" data-aria-level=\"1\"><strong>Bloco de processo<\/strong>: A l\u00f3gica central reside aqui. Dependendo dos par\u00e2metros fornecidos, o script ingressar\u00e1 o computador no dom\u00ednio com ou sem uma reinicializa\u00e7\u00e3o. Ele usa dois comandos principais do PowerShell: <strong>Add-Computer<\/strong> e uma fun\u00e7\u00e3o definida pelo usu\u00e1rio. Se ocorrer algum erro durante esse processo, ele ser\u00e1 detectado e relatado.<\/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=\"1\" data-aria-level=\"1\"><strong>Bloco final<\/strong>: Isso finaliza o script, limpando todas as credenciais usadas durante sua execu\u00e7\u00e3o.<\/li>\n<\/ul>\n<h2>Casos de uso em potencial<\/h2>\n<p><strong>Estudo de caso<\/strong>: Imagine um MSP que cuida da TI de v\u00e1rias pequenas empresas. Eles acabaram de implantar 50 novas m\u00e1quinas e precisam que todas elas estejam no dom\u00ednio da empresa at\u00e9 o in\u00edcio dos neg\u00f3cios no dia seguinte. Usando o script, o MSP insere rapidamente os detalhes necess\u00e1rios de todas as m\u00e1quinas. Em minutos, todos os computadores s\u00e3o configurados, sem a necessidade de configura\u00e7\u00f5es manuais ou demoradas.<\/p>\n<h2>Compara\u00e7\u00f5es<\/h2>\n<p>Os m\u00e9todos tradicionais de ingressar um computador em um dom\u00ednio envolvem etapas manuais por meio da interface do Windows ou o uso de scripts legados. Esses m\u00e9todos podem ser demorados, propensos a erros e n\u00e3o s\u00e3o bem dimensionados para grandes implementa\u00e7\u00f5es. Nossa abordagem do PowerShell \u00e9 mais eficiente, menos propensa a erros e \u00e9 dimensionada para lidar com v\u00e1rias m\u00e1quinas.<\/p>\n<h2>Implica\u00e7\u00f5es<\/h2>\n<p>O ingresso incorreto em dom\u00ednios ou a exposi\u00e7\u00e3o de credenciais podem ser prejudiciais \u00e0 seguran\u00e7a de TI. Se um computador ingressar no dom\u00ednio errado, ele poder\u00e1 acessar recursos n\u00e3o autorizados ou ficar exposto a riscos de seguran\u00e7a.<\/p>\n<h2>Recomenda\u00e7\u00f5es<\/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\">Sempre valide os detalhes do dom\u00ednio antes da execu\u00e7\u00e3o.<\/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\">Proteja e rotacione regularmente as credenciais de dom\u00ednio.<\/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\">Teste o script em um ambiente controlado antes de implement\u00e1-lo.<\/li>\n<\/ul>\n<h2>Considera\u00e7\u00f5es finais<\/h2>\n<p>Em uma \u00e9poca em que a automa\u00e7\u00e3o reina suprema, ferramentas como esse script, combinadas com plataformas como o NinjaOne, podem aumentar a efici\u00eancia, a seguran\u00e7a e a capacidade de gerenciamento. O NinjaOne, em particular, oferece recursos robustos <a href=\"https:\/\/www.ninjaone.com\/pt-br\/gerenciamento-de-endpoints\/\">de monitoramento e gerenciamento<\/a>, garantindo que, uma vez que os computadores sejam adicionados ao dom\u00ednio, eles permane\u00e7am em conformidade, seguros e otimizados para desempenho.<\/p>\n","protected":false},"author":35,"featured_media":144222,"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":[12460],"class_list":["post-810131","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/script_hub\/810131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/comments?post=810131"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/media\/144222"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/media?parent=810131"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/operating_system?post=810131"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/use_cases?post=810131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}