{"id":220204,"date":"2024-03-22T16:35:36","date_gmt":"2024-03-22T16:35:36","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=220204"},"modified":"2024-03-28T14:59:55","modified_gmt":"2024-03-28T14:59:55","slug":"windows-maschinen-umbenennen-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaonesandbox.dev\/de\/script-hub\/windows-maschinen-umbenennen-powershell\/","title":{"rendered":"Umbenennen von Windows-Rechnern mit PowerShell"},"content":{"rendered":"<h2>Haupterkenntnisse<\/h2>\n<ul>\n<li><strong>Flexibilit\u00e4t von PowerShell-Skripten<\/strong>: Das Skript veranschaulicht die Leistungsf\u00e4higkeit und Flexibilit\u00e4t von PowerShell bei der Verwaltung von Computereinstellungen und unterstreicht die Bedeutung von PowerShell in der modernen IT-Administration.<\/li>\n<li><strong>Einfaches Umbenennen von Computern<\/strong>: Hervorzuheben ist die Einfachheit, mit der IT-Experten sowohl dom\u00e4nenverbundene als auch nicht dom\u00e4nenverbundene Computer umbenennen k\u00f6nnen.<\/li>\n<li><strong>Dom\u00e4nenadministrator-Zugangsdaten<\/strong>: Betont die Notwendigkeit von Dom\u00e4nenadministrator-Zugangsdaten f\u00fcr die Umbenennung von dom\u00e4nenverbundenen Rechnern, sofern dies nicht von einem Dom\u00e4nenadministrator ausgef\u00fchrt wird.<\/li>\n<li><strong>Automatische Neustart-Option<\/strong>: Das Skript enth\u00e4lt eine optionale Funktion zum automatischen Neustart, die f\u00fcr das Wirksamwerden der \u00c4nderungen unerl\u00e4sslich ist.<\/li>\n<li><strong>Sicherheitserw\u00e4gungen<\/strong>: Unterstreicht die Bedeutung eines sicheren Umgangs mit Anmeldeinformationen in Skripten, wie die Umwandlung von Klartextpassw\u00f6rtern in sichere Zeichenfolgen zeigt.<\/li>\n<li><strong>Fehlerbehandlung und Validierung<\/strong>: Das Skript enth\u00e4lt eine robuste Fehlerbehandlung und Validierung, die eine sichere und zuverl\u00e4ssige Ausf\u00fchrung gew\u00e4hrleistet.<\/li>\n<li><strong>Anwendung in der realen Welt<\/strong>: Veranschaulicht praktische Anwendungsf\u00e4lle, insbesondere f\u00fcr IT-Fachleute und Managed Service Provider (MSPs), um die Computerverwaltung zu optimieren.<\/li>\n<\/ul>\n<p>Die effiziente <a href=\"https:\/\/www.ninjaonesandbox.dev\/de\/it-management-fuer-unternehmen\/infrastruktur\/\">Verwaltung der IT-Infrastruktur<\/a> ist f\u00fcr den reibungslosen Betrieb moderner Unternehmen von zentraler Bedeutung. Neben zahlreichen anderen Aufgaben kann die Umbenennung von Computern, insbesondere in einer Dom\u00e4nenumgebung, f\u00fcr die Aufrechterhaltung der Systemorganisation, die Einhaltung von Namenskonventionen und die Gew\u00e4hrleistung von Sicherheitsprotokollen entscheidend sein. PowerShell-Skripts haben sich als leistungsstarke Tools zur Automatisierung solcher Aufgaben erwiesen und bieten Pr\u00e4zision, Geschwindigkeit und Skalierbarkeit.<\/p>\n<h2>Hintergrund<\/h2>\n<p>Das vorgestellte PowerShell-Skript wurde entwickelt, um den Prozess der Umbenennung von Computern zu automatisieren. Diese Methode ist besonders wertvoll f\u00fcr IT-Experten und <a href=\"https:\/\/www.ninjaonesandbox.dev\/de\/was-ist-ein-msp\/\">Managed Service Provider (MSPs)<\/a>, die gro\u00dfe Netzwerke mit zahlreichen Rechnern verwalten. Sie erf\u00fcllt den Bedarf an einem konsistenten und fehlerfreien Ansatz f\u00fcr die Umbenennung, was in Umgebungen, in denen Computernamen oft mit bestimmten Rollen, Abteilungen oder Nutzungsrichtlinien verkn\u00fcpft sind, von entscheidender Bedeutung ist.<\/p>\n<h2>Das Skript:<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Renames either domain-joined or non-domain-joined machines. Requires a Domain Admin's username and password for domain-joined computers, unless run as a Domain Admin.\r\n.DESCRIPTION\r\n    Renames either domain-joined or non-domain-joined machines. Requires a Domain Admin's username and password for domain-joined computers, unless run as a Domain Admin.\r\n.EXAMPLE\r\n    -NewName \"ReplaceWithNewName\"\r\n\r\n    WARNING: The changes will take effect after you restart the computer KYLE-WIN10-TEST.\r\n\r\n    HasSucceeded OldComputerName           NewComputerName          \r\n    ------------ ---------------           ---------------          \r\n    True         KYLE-WIN10-TEST           ReplaceWithNewName               \r\n\r\n\r\n\r\n    WARNING: This script takes effect after a reboot. Use -Reboot to have this script reboot for you.\r\n\r\nPARAMETER: -DomainUser \"UsernameForDomainAdmin\" -DomainPassword \"SuperSecretPassword1\"\r\n    Domain Joined machines require a domain admins creds when not ran as a Domain Admin (System is not a Domain Admin).\r\n\r\nPARAMETER: -Reboot\r\n    Reboots the computer 5 minutes after the script is ran.\r\n.EXAMPLE\r\n    -NewName \"ReplaceWithNewName\" -Reboot\r\n\r\n    This is a domain joined machine. Testing for secure domain connection...\r\n    WARNING: The changes will take effect after you restart the computer KYLE-WIN10-TEST.\r\n\r\n    HasSucceeded OldComputerName           NewComputerName          \r\n    ------------ ---------------           ---------------          \r\n    True         KYLE-WIN10-TEST           ReplaceWithNewName               \r\n\r\n    WARNING: Reboot specified scheduling reboot for 06\/13\/2023 12:09:53...\r\n\r\n.OUTPUTS\r\n    None\r\n.NOTES\r\n    OS: Win 10+, Server 2016+\r\n    Release: 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.ninjaonesandbox.dev\/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#&gt;\r\n\r\n[CmdletBinding()]\r\nparam (\r\n    [Parameter()]\r\n    [String]$NewName,\r\n    [Parameter()]\r\n    [String]$DomainUser,\r\n    [Parameter()]\r\n    [String]$DomainPassword,\r\n    [Parameter()]\r\n    [Switch]$Reboot = [System.Convert]::ToBoolean($env:reboot)\r\n)\r\n\r\nbegin {\r\n    # If script forms are used overwrite the params with those values.\r\n    if ($env:newComputerName -and $env:newComputerName -notlike \"null\") { $NewName = $env:newComputerName }\r\n    if ($env:domainAdminUsername -and $env:domainAdminUsername -notlike \"null\") { $DomainUser = $env:domainAdminUsername }\r\n    if ($env:domainAdminPassword -and $env:domainAdminPassword -notlike \"null\") { \r\n        $DomainPassword = $env:domainAdminPassword\r\n        # We should overwrite the environmental variable with a secure string \r\n        $env:domainAdminPassword = $env:domainAdminPassword | ConvertTo-SecureString -AsPlainText -Force \r\n    }\r\n\r\n    # Converts the username and password into a powershell credential object\r\n    if ($DomainUser -and $DomainPassword) {\r\n        $Credential = New-Object System.Management.Automation.PsCredential(\"$DomainUser\", $($DomainPassword | ConvertTo-SecureString -AsPlainText -Force))\r\n    }\r\n\r\n    # If a domain password was given we should overwrite it with a secure string\r\n    if ($DomainPassword) {\r\n        $DomainPassword = $DomainPassword | ConvertTo-SecureString -AsPlainText -Force\r\n    }\r\n\r\n    # Checks if script is running as an elevated user\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        $p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)\r\n    }\r\n\r\n    # Check if machine is domain joined\r\n    function Test-IsDomainJoined {\r\n        return $(Get-CimInstance -Class Win32_ComputerSystem).PartOfDomain\r\n    }\r\n\r\n    # Check if script is running as System\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    # Check if script is running as a domain admin\r\n    function Test-IsDomainAdmin {\r\n        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()\r\n        $p = New-Object System.Security.Principal.WindowsPrincipal($id)\r\n        return $p.IsInRole(\"Domain Admins\")\r\n    }\r\n\r\n    # Double check that this script has something to do.\r\n    if ($NewName -eq $env:computername) {\r\n        Write-Error \"[Error] New name is the same as the current hostname.\"\r\n        exit 1\r\n    }\r\n\r\n    # Error out if not provided with a new name\r\n    if (-not $Newname) {\r\n        Write-Error \"[Error] Please specify a name with the NewName parameter!\"\r\n        exit 1\r\n    }\r\n}\r\nprocess {\r\n    # If not running as the system user script needs to be running as an elevated user.\r\n    if (-not (Test-IsElevated) -and -not (Test-IsSystem)) {\r\n        Write-Error -Message \"Access Denied. Please run with Administrator privileges.\"\r\n        exit 1\r\n    }\r\n\r\n    # Warn end-users if theyre giving the computer too long of a name.\r\n    if ($NewName.Length -gt 15) {\r\n        Write-Warning -Message \"The New Computer Name $NewName exceeds 15 characters! In some instances you may only see the first 15 characters.\"\r\n    }\r\n\r\n    # Preparing Splat\r\n    $ArgumentList = @{\r\n        \"ComputerName\" = $env:computername\r\n        \"Force\"        = $True\r\n        \"NewName\"      = $NewName\r\n        \"PassThru\"     = $True\r\n    }\r\n\r\n    # If it's domain joined we'll have to check a couple things to make sure this is possible\r\n    if (Test-IsDomainJoined) {\r\n        Write-Host -Object \"This is a domain joined machine. Testing for secure domain connection...\"\r\n\r\n        # The domain controller will need to be reachable for the rename to apply\r\n        if (-not (Test-ComputerSecureChannel -ErrorAction Ignore)) {\r\n            Write-Error -Message \"[Error] A secure connection to the domain controller cannot be established!\r\n            Please ensure the domain is reachable and there are no machines with identical names!\"\r\n            exit 1\r\n        }\r\n\r\n        # Domain joined machines require a domain admin to change the name\r\n        if (-not $Credential -and -not (Test-IsDomainAdmin)) {\r\n            Write-Error -Message \"[Error] The -DomainUser and -DomainPassword parameter is missing. \r\n            The username and password for a domain admin is required when not ran as a Domain Admin for domain joined machines!\"\r\n            exit 1\r\n        }\r\n\r\n        # Adding credentials to the splat\r\n        if ($Credential) {\r\n            $ArgumentList[\"DomainCredential\"] = $Credential\r\n        }\r\n    }\r\n\r\n    # Saving the results to check later\r\n    $Result = Rename-Computer @ArgumentList\r\n\r\n    # Letting the end-user know the result\r\n    $Result | Format-Table | Out-String | Write-Host\r\n\r\n    # Error out on failure\r\n    if (-not $Result.HasSucceeded) {\r\n        Write-Error -Message \"[Error] Failed to rename computer!\"\r\n        exit 1\r\n    }\r\n\r\n    # If a reboot was specified schedule it for 5 minutes from now.\r\n    if ($Reboot) {\r\n        Write-Warning -Message \"Reboot specified scheduling reboot for $((Get-Date).AddMinutes(5))...\"\r\n        Start-Process -FilePath \"cmd.exe\" -ArgumentList \"\/C shutdown.exe \/r \/t 300\"\r\n    }\r\n    else {\r\n        Write-Warning -Message \"This script takes effect after a reboot. Use -Reboot to have this script reboot for you.\"\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 style=\"text-align: center;\">Zugriff auf \u00fcber 300 Skripte im NinjaOne Dojo<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.ninjaonesandbox.dev\/de\/kostenlosetestversionformular\/\">Zugang erhalten<\/a><\/p>\n<\/div>\n<h2>Detailansicht<\/h2>\n<p>Dieses Skript automatisiert den Prozess der Umbenennung von Windows-Computern, die entweder einer Dom\u00e4ne angeschlossen sind oder nicht. Hier ist eine schrittweise Erkl\u00e4rung:<\/p>\n<ul>\n<li><strong>Parameter-Deklaration<\/strong>: Das Skript beginnt mit der Angabe von Parametern wie <strong>NewName<\/strong>, <strong>DomainUser<\/strong>, <strong>DomainPassword<\/strong> und <strong>Reboot<\/strong>. Diese Eingaben bestimmen den neuen Computernamen, die Dom\u00e4nenzugangsdaten und ob der Computer nach der Umbenennung neu gestartet werden soll.<\/li>\n<li><strong>Initiale Kontrollen und Handhabung von Zugangsdaten<\/strong>: Es pr\u00fcft auf Umgebungsvariablen und wandelt Klartextpassw\u00f6rter in sichere Zeichenfolgen um. F\u00fcr Dom\u00e4nenvorg\u00e4nge wandelt es Benutzerzugangsdaten in ein PowerShell-Zugangsdatenobjekt um.<\/li>\n<li><strong>Funktionen<\/strong>: Es sind mehrere Funktionen definiert, um zu pr\u00fcfen, ob das Skript mit erh\u00f6hten Rechten ausgef\u00fchrt wird, ob der Computer Teil einer Dom\u00e4ne ist, ob es als Systembenutzer ausgef\u00fchrt wird und ob der Benutzer ein Dom\u00e4nenadministrator ist.<\/li>\n<li><strong>Validierung<\/strong>: Das Skript \u00fcberpr\u00fcft, ob ein neuer Name angegeben wurde und ob er sich vom aktuellen Namen unterscheidet. Au\u00dferdem werden die administrativen Rechte und ggf. die Dom\u00e4nenkonnektivit\u00e4t \u00fcberpr\u00fcft.<\/li>\n<li><strong>Ausf\u00fchrung<\/strong>: Wenn alle Pr\u00fcfungen erfolgreich sind, wird das Cmdlet &#8220; <strong>Rename-Computer&#8220;<\/strong> mit den entsprechenden Parametern aufgerufen. Dieses Cmdlet ist der Hauptbefehl, der den Umbenennungsprozess ausf\u00fchrt.<\/li>\n<li><strong>Handhabung des Neustarts<\/strong>: Wenn der Schalter <strong>-Reboot<\/strong> verwendet wird, plant das Skript einen Neustart des Systems in 5 Minuten, um die \u00c4nderungen zu \u00fcbernehmen.<\/li>\n<\/ul>\n<h2>Potenzielle Anwendungsf\u00e4lle<\/h2>\n<p>Stellen Sie sich vor, ein MSP verwaltet ein Netzwerk f\u00fcr ein gro\u00dfes Unternehmen, das seine Abteilungen umstrukturiert. Der MSP verwendet dieses Skript, um Computer im gesamten Netzwerk effizient umzubenennen, damit sie die neue Abteilungsstruktur widerspiegeln, was Konsistenz gew\u00e4hrleistet und den manuellen Aufwand reduziert.<\/p>\n<h2>Vergleiche<\/h2>\n<p>Herk\u00f6mmliche Methoden zur Umbenennung von Computern erfordern oft einen manuellen Eingriff, entweder \u00fcber die Systemeigenschaften oder \u00fcber Dom\u00e4nencontroller-Tools. Dieses Skript bietet einen schlankeren und fehlerresistenteren Ansatz, der besonders n\u00fctzlich ist, wenn mehrere Rechner betroffen sind.<\/p>\n<h2>FAQs<\/h2>\n<p><strong>Q1: Kann dieses Skript Computer in gro\u00dfen Mengen umbenennen?<\/strong><br \/>\nA: Ja, allerdings m\u00fcssen Sie ihn m\u00f6glicherweise so \u00e4ndern, dass er eine Liste von Computern und deren neuen Namen durchl\u00e4uft.<\/p>\n<p><strong>Q2: Ist die Verwendung von Klartextkennw\u00f6rtern im Skript sicher?<\/strong><br \/>\nA: Das Skript wandelt Passw\u00f6rter im Klartext in sichere Zeichenfolgen um und erh\u00f6ht so die Sicherheit. Es wird jedoch empfohlen, mit Zugangsdaten vorsichtig umzugehen.<\/p>\n<p><strong>Q3: Ben\u00f6tige ich Administratorrechte, um dieses Skript auszuf\u00fchren?<\/strong><br \/>\nA: Ja, es sind Administratorrechte erforderlich, insbesondere f\u00fcr die Umbenennung von Computern, die einer Dom\u00e4ne angeh\u00f6ren.<\/p>\n<h2>Auswirkungen<\/h2>\n<p>Dieses Skript vereinfacht zwar eine Routineaufgabe, aber eine unsachgem\u00e4\u00dfe Verwendung kann zu Namenskonflikten, Netzwerkproblemen oder Sicherheitsl\u00fccken f\u00fchren. Es ist wichtig, Umbenennungsstrategien zu planen und regelm\u00e4\u00dfig zu pr\u00fcfen, um sicherzustellen, dass sie mit den Unternehmensrichtlinien und den Normen der IT-Infrastruktur \u00fcbereinstimmen.<\/p>\n<h2>Empfehlungen<\/h2>\n<ul>\n<li><strong>Gr\u00fcndlich testen<\/strong>: F\u00fchren Sie das Skript in einer Testumgebung aus, bevor Sie es in der Produktion einsetzen.<\/li>\n<li><strong>Sichere Zugangsdaten<\/strong>: Handhaben und speichern Sie Zugangsdaten sicher, vorzugsweise mit verschl\u00fcsselten Methoden.<\/li>\n<li><strong>Dokumentieren von \u00c4nderungen<\/strong>: F\u00fchren Sie Aufzeichnungen \u00fcber \u00c4nderungen zur Fehlerbehebung und zu Pr\u00fcfzwecken.<\/li>\n<\/ul>\n<h2>Abschlie\u00dfende \u00dcberlegungen<\/h2>\n<p>Im Bereich des IT-Managements bieten Tools wie NinjaOne <a href=\"https:\/\/www.ninjaonesandbox.dev\/de\/rmm\/it-automatisierung\/\">umfassende L\u00f6sungen f\u00fcr die Verwaltung und Automatisierung von IT-Aufgaben<\/a>. Die Integration solcher Skripte in ein breiteres Management-Framework wie NinjaOne kann <a href=\"https:\/\/www.ninjaonesandbox.dev\/de\/effizienz\/\">die Effizienz steigern<\/a>, Fehler reduzieren und eine bessere Kontrolle \u00fcber IT-Umgebungen erm\u00f6glichen. Durch die Nutzung der Vorteile der <a href=\"https:\/\/www.ninjaonesandbox.dev\/de\/\">Automatisierung und der zentralen Verwaltung<\/a> k\u00f6nnen sich IT-Experten auf strategische Initiativen statt auf Routineaufgaben konzentrieren.<\/p>\n","protected":false},"author":35,"featured_media":192836,"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":[4280],"class_list":["post-220204","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaonesandbox.dev\/de\/wp-json\/wp\/v2\/script_hub\/220204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaonesandbox.dev\/de\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaonesandbox.dev\/de\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaonesandbox.dev\/de\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaonesandbox.dev\/de\/wp-json\/wp\/v2\/comments?post=220204"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaonesandbox.dev\/de\/wp-json\/wp\/v2\/media\/192836"}],"wp:attachment":[{"href":"https:\/\/www.ninjaonesandbox.dev\/de\/wp-json\/wp\/v2\/media?parent=220204"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaonesandbox.dev\/de\/wp-json\/wp\/v2\/operating_system?post=220204"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaonesandbox.dev\/de\/wp-json\/wp\/v2\/use_cases?post=220204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}