Computernaam veranderen met PowerShell

Computernaam veranderen met PowerShell

De laatste dagen heb ik me wat verdiept in PowerShell, een waardige CLI opvolger voor het vroegere DOS. Velen denken dat PowerShell enkel gebruikt kan worden om taken te automatiseren, maar de DOS commando’s zoals ipconfig zijn ook nog steeds bruikbaar in deze opvolger. Ik vond het alvast eens tijd om mijn kennis wat bij te benen rondom deze scripttaal.



Om iets onder de knie te krijgen en je voor de eerste keer ergens in verdiepen, vind ik het altijd gemakkelijker als ik een bepaald(e) doel/opdracht voor me zie. Om geen brokken te maken op mijn desktopcomputer heb ik een virtuele machine aangemaakt, en vanaf daar ging er een lampje branden. Wanneer men een clean install doet, moet men binnen een organisatie ook de computernaam veranderen voor identificatie binnen het netwerk. Vind je het ook niet vervelend om steeds al die stappen uit te voeren? Ik vond dat dus ook en daarom heb ik me voorgenomen om hier een PowerShell scriptje voor te schrijven, wat eigenlijk zeer eenvoudig blijkt te zijn!

Met maar eigenlijk zes simpele regeltjes kun je de computernaam van het apparaat veranderen, waardoor dit stukken sneller in vergelijking met het manueel instellen. Ik zal de code hier even verder verklaren. Ook stel ik graag mijn script als download ter beschikking, zodat anderen hier ook iets aan hebben.
Bespreking PowerShell code

[System.Reflection.Assembly]::LoadWithPartialName(‘Microsoft.VisualBasic’) | Out-Null
$naam = [Microsoft.VisualBasic.Interaction]::InputBox(“Voer de gewenste computernaam in:”)

Dankzij deze twee regels wordt er via een inputbox gevraagd naar welke naam je de computer wilt geven. Met de eerste regel geven we de programmeertaal op die we willen gebruiken in ons script. De tweede regel opent de inputbox, waar we onze gewenste computernaam ingeven.

$computerNaam = Get-WmiObject Win32_ComputerSystem

Om de computernaam van het apparaat te kunnen veranderen, moeten we eerst de naam kunnen achterhalen die dit apparaat al heeft. Dit gebeurt dankzij dit commando, waarbij de computernaam wordt opgehaald door het commando “Get-WmiObject Win32_ComputerSystem” en de naam vervolgens wordt opgeslagen in de variabele computerNaam.

$computerNaam.Rename($naam)

Wanneer we de huidige computernaam hebben opgehaald, moeten we deze gebruiken om de naam te kunnen veranderen. Door gebruik te maken van de ‘Rename’ functie, ingebouwd in PowerShell, kunnen we onze nieuwe naam opgeven die we in de inputbox hebben ingevoerd.

[Microsoft.VisualBasic.Interaction]::MsgBox(“Computernaam is gewijzigd in ”$naam. Het systeem wordt na 5 seconden
herstart.”)

We krijgen automatisch een melding te zien wanneer de computernaam succesvol is gewijzigd. Hiervoor maken we opnieuw gebruik van Visual Basic met een messagebox. Ook geven we onmiddellijk de melding mee dat de computer na 5 seconden automatisch wordt herstart.

Restart-Computer -Force

Het herstarten van de computer gebeurt door het commando ‘Restart-Computer’, waarbij we de parameter -Force meegeven, zodat de computer alle openstaande programma’s goed afsluit en zo op een normale manier kan herstarten.
Script downloaden

Het herstarten van de computer gebeurt door het commando ‘Restart-Computer’, waarbij we de parameter -Force meegeven, zodat de computer alle openstaande programma’s goed afsluit en zo op een normale manier kan herstarten.
Script downloaden

Zodat ook anderen plezier kunnen hebben van het script, stel ik dit als download ter beschikking. Het script is vanaf deze link te downloaden.
Het script is uit te voeren langs zowel PowerShell als de rechtermuisklik. Maak je gebruik van PowerShell, navigeer je in de CLI shell naar de bestandslocatie (zoals C:\Scripts) en voer je het script uit met “.\Verander_ComputerNaam.PS1”.

NOTA: Voordat je dit script uitvoert, moet je wel eerst het onderstaande commando uitvoeren. Dit script is zelf geschreven en is dus een unsigned script, waardoor je het uitvoeren van unsigned scripts eerst moet activeren. Dit doe je door in de PowerShell omgeving het volgende commando uit te voeren:

Set-ExecutionPolicy RemoteSigned

Wanneer je dit gedaan hebt, kun je met alle gemak mijn script naar hartenlust uittesten. Veel plezier ermee!
Problemen? Verbeteringen? Suggesties? Laat hieronder gerust een reactie achter!

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *