Schlagwort-Archive: PowerShell Framework

PowerShell ist ein plattformübergreifendes Framework und Skriptsprache von Microsoft zur Automatisierung, Konfiguration und Verwaltung von Systemen.

Computername oder Hostname ändern

Computer und Hostname umbenennen

Hostname ist der eindeutige Name eines Computers, unter diesem sich die Systeme erkennen lassen und sich untereinander im Netzwerk Identifizieren.

Der Hostname wird in der Regel im Installationsdialog abgefragt und bei der Installation festgelegt. Dieser Beitrag zeigt wie der Hostname unter Linux und ein Computer Name bei Windows und macOS nachträglich geändert wird.

Windows Computer Name umbenennen

Bei Windows kann der Computername in der MMC-Konsole Systemeigenschaften vergeben werden.

Windows-Logo + R

Tastenkombination Win+R und Eingabe SYSTEMPROPERTIESCOMPUTERNAME
um die MMC-Konsole zu öffnen.

Windows + R Ausführen YSTEMPROPERTIESCOMPUTERNAME
Bei Windows kann der Computername in der MMC-Konsole Systemeigenschaften vergeben werden

Mit Klick auf die Schaltfläche Ändern geht es zum Computer umbenennen. Nach der änderung muss Windows neu gestartet werden.

Wer über die Windows 10 Einstellungen gehen möchte, geht auf Start – Einstellungen – System – Info – Diesen PC umbenennen.

In der Windows Eingabeaufforderung gibt es zudem zum Computer Name anzeigen das Kommando hostname und ipconfig.

hostname
ipconfig /all | findstr Hostname

Diese Möglichkeit bietet sich vor allem dort an, wo die Batch Verarbeitung zum Einsatz kommt. Die Abfrage mit Ausgabe im Command Prompt (cmd) zeigt sich wie folgt.

Eingabeaufforderung hostname umbenennen
Abbildung: Eingabeaufforderung hostname, ipcconfig /all | findstr Hostname

Computer Name in PowerShell anzeigen

$env:computername

Der Windows Computer Name lässt sich auch in der PowerShell umbenennen. Dabei wird PowerShell als Administrator geöffnet.

Rename-Computer -NewName NewComputerName

Ist der Computer in einer Windows Domäne, kann mit folgendem Befehl die Umbenennung erfolgen, dabei ist die Authentifizierung als Administrator in der Domäne erforderlich.

Rename-Computer -NewName NewComputerName -DomainCredential domain\Administrator -PassThru

Anstelle NewComputerName ist der eigentliche Computer Name einzugeben, mit DomainCredential authentifiziert man sich als Domain Administrator.

Linux Hostname ändern

Unter Linux kann der Hostname mit dem Befehl hostname abgefragt werden.

$ hostname
$ zeus.simple.foo

Mit dem Befehl hostnamectl status der Systemstatus ausgeben.

$ hostnamectl status
   Static hostname: zeus.simple.foo
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 94c14d79bb182e1aa3f0171a0eb05e79
           Boot ID: c28ea53f380c4e0eabe696f08128585c
    Virtualization: vmware
  Operating System: Debian GNU/Linux 10 (buster)
            Kernel: Linux 4.19.0-13-amd64
      Architecture: x86-64

Hostname im Terminal mit hostnamectl set-hostname ändern.

hostnamectl set-hostname NewHostname.domain.foo

Bei früheren Versionen wie CentOS 5 oder Debian 7 findet die abfrage wie auch das ändern mit dem Command hostname satt.

hostname NewHostname.domain.foo

Dabei wird der Hostname in der Datei /etc/hostname gespeichert.

macOS Computer Name editieren

Computer Name unter macOS anzeigen und ändern. Hierzu geht man über das Apple Logo – Systemeinstellungen (System Preferences) – Freigaben (Shares).

Computer Name unter macOS anzeigen und ändern

Bei Computer Name wird dieser mit Klick auf Edit festgelegt.

Alternativ gibt es auch bei macOS die Möglichkeit ein Computername im Terminal zu ändern.

sudo scutil --set HostName "NewHostname.domain.foo"

Um die Änderung zu überprüfen muss das Mac Terminal beendet werden, dann bei erneuter Öffnung erscheint der neue Hostname im Prompt.

Netzlaufwerk mapping aus PowerShell Script

Windows Netzlaufwerk verbinden mit PowerShell

PowerShell Scripts können genutzt werden um Netzlaufwerke zu Windows-Netzwerkfreigaben auf Server oder NAS Geräte zu erstellen. Dort wo die Batchverarbeitung nicht die geeignete Wahl ist, oder aber Gruppenrichtlinien nicht möglich sind, kann ein PowerShell Script diese Aufgabe erfüllen, beispielsweise bei der Ausführung von Login Scripts bei Remote Clients über VPN, oder Clients diese nicht Mitglied der AD Domäne sind.

PowerShell für Netzlaufwerk Mapping

Das PowerShell Script-Beispiel netdrive.ps1 erstellt die Windows-Netzwerkfreigabe zum Netzlaufwerk Z: für den Benutzer, dabei kann die Anmeldung als ein anderer Benutzer erfolgen, als mit dem man am Client authentifiziert ist.

$LogFile = "netdrive.log"
Get-Date -Format "dd/MM/yyyy HH:mm" | Out-File $LogFile -Force
Write-Host "`nGeben Sie Ihre Anmeldeinformationen ein, um Netzlaufwerke zuzuordnen oder um abzubrechen." -ForegroundColor Yellow
$Cred = Get-Credential -Message "Bitte geben Sie Ihre Anmeldeinformationen ein" -UserName "domain\username"
if ($Cred) {
    $sharePath = "\\server\share"
    $mapDrive = "Z"
    Write-Host "`nMapping network share.." -ForegroundColor White
    Add-Content $LogFile -Value "Mapping drive $mapDrive $sharePath"
    New-PSDrive -Name $mapDrive -Root $sharePath -Persist -Scope Global -PSProvider "FileSystem" -Credential $Cred | Out-File $LogFile -Append
} else {
    Add-Content $LogFile -Value "Es wurden keine Anmeldeinformationen angegeben, Netzlaufwerke werden nicht zugeordnet."
}

Die entsprechende Windows-Netzwerkfreigabe wird in Zeile 6 bei $sharePath definiert, das Laufwerk wird in Zeile 7 bei $mapDrive zugewiesen, in dem der jeweilige Platzhalter zwischen den Anführungs- und Schlusszeichen angepasst wird. Sollen weitere Netzlaufwerke erstellt werden, kann in der if Anweisung die Zeilen 6 – 10 für das nächste Netzlaufwerk kopiert werden, dabei die Variablen zu $sharePath1 und $mapDrive1 benennen.

Nach einfügen der Code Zeilen in eine Datei netdrive.ps1, zum Verzeichnis wechseln in diesem das Script sich befindet und es ausführen.

.\netdrive.ps1

Die Platzhalter domain\username durch die entsprechende Domäne und Benutzer ersetzen, ohne Domäne einfach leer lassen.

Windows PowerShell Anmeldeinformationen
Windows-PowerShell Anmeldeinformationen

PowerShell Script aus Batch ausführen

Wird bereits eine Batchdatei zB. netlogon.bat eingesetzt, kann netdrive.ps1 aus der Batchdatei wie folgt ausgeführt werden:

start /wait "" powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass -File netdrive.ps1

Nach erfolgreicher Anmeldung wird das Netzlaufwerk zur Windows-Netzwerkfreigabe erstellt. Zur Kontrolle wird die Laufwerkszuordnung in der Logdatei netdrive.log protokolliert.