Home » Nieuws » 5 Powershell trucjes die je als ICT’er moet weten

Waar voorheen beheerders urenlang bezig waren met het scripten van ouderwetse commando’s, bestaat er sinds 2006 Powershell, een scripttaal die op objectgeoriënteerde wijze werkt. Met Powershell als scripttaal kunnen veel (standaard) processen binnen de ICT geautomatiseerd worden. Powershell maakt het automatiseren van beheertaken makkelijk en wordt veelal door IT-professionals gebruikt om efficiënt en effectief te werken. Zo kan bijvoorbeeld Active directory worden aangesproken, Virtuele Machines worden gecreëerd en kun je communiceren met Cloudoplossingen. In deze blog vind je 5 Powershell trucjes die als ICT’er moet weten!

1. Get-Help

De eerste PowerShell-cmdlet die elke beheerder moet leren, is Get-Help. Deze opdracht kan gebruikt worden om hulp te krijgen bij andere opdrachten. Als je bijvoorbeeld wilt weten hoe de opdracht Get-Process werkt, kunt je het volgende typen:

Get-Help -Name Get-Process

Je kunt Get-Help ook gebruiken voor individuele zelfstandige naamwoorden en werkwoorden. Als je bijvoorbeeld alle opdrachten wilt vinden die je kunt gebruiken met het werkwoord Get, typ je:

Get-Help -Name Get- *

2. Invoke-command

Wanneer je een opdracht of script of PowerShell – lokaal of op afstand op één of meerdere computers – wilt uitvoeren, is “Invoke-Command” de beste oplossing. Het is eenvoudig te gebruiken en het helpt je in een batch computers te bedienen. Je moet het Invoke-Command typen gevolgd door de opdracht of het script met het volledige pad. Je kunt bijvoorbeeld een opdracht “Get-EventLog” uitvoeren met Invoke-Command-ScriptBlock {Get-EventLog system -Newest 50} of op een externe computer “Server01” met:

Invoke-Command -ScriptBlock {Get-EventLog system -Newest 50 } – Computername Server01

3. ConvertTo-HTML

PowerShell kan een schat aan informatie over het systeem bieden, maar soms moet je meer doen dan alleen de informatie op het scherm bekijken.  Soms is het handig om een ​​rapport te maken om naar iemand te verzenden. Een manier om dit te bereiken is door de opdracht ConvertTo-HTML te gebruiken. Om deze opdracht te gebruiken, stuur je gewoon de uitvoer van een andere opdracht naar de opdracht ConvertTo-HTML. Je moet de schakelaar-Property gebruiken om te bepalen welke uitvoereigenschappen zijn opgenomen in het HTML-bestand en je moet een bestandsnaam opgeven. Om dit te doen, kun je de volgende opdracht gebruiken:

Get-Service | ConvertTo-HTML -Property Name,  Status> C: \ services.htm

4. Copy-Item [copy]

Als je bestanden en mappen op je opslagschijf of registervermeldingen en sleutels in het register wilt kopiëren, kun je Copy-Item gebruiken. Het werkt vergelijkbaar met het “cp” -commando dat we in de opdrachtprompt hebben, maar het is veel beter. Je kunt de opdracht Copy-Item gebruiken om items in dezelfde opdracht ook te kopiëren en te hernoemen – geef een nieuwe naam op als de bestemming.  Je kunt bijvoorbeeld “Services.htm” kopiëren en hernoemen naar “MyServices.txt” met behulp van;

Copy-Item “C:\Services.htm” -Destination “C:\MyData\MyServices.txt”

5. AD-gebruikers exporteren naar een CSV-bestand

Bij een migratie naar de cloud of vernieuwen van servers dienen gebruikers volledig verplaatst te worden. Door de nieuwe ACDC-server in hetzelfde domein en forest te plaatsen, vindt er een deling in de gegevens plaats. Als dit echter niet mogelijk is, kunnen ook alle gebruikers geëxporteerd worden naar een CSV-bestand, waarna deze geïmporteerd kan worden in de nieuwe omgeving. In het onderstaande script worden alle gebruikersdetails in losse kolommen opgeslagen zodat het importeren makkelijker is.

{

$path = Split-Path -parent “$CSVReportPath\*.*”

$pathexist = Test-Path -Path $path

If ($pathexist -eq $false)

{New-Item -type directory -Path $path}

 

$reportdate = Get-Date -Format ssddmmyyyy

 

$csvreportfile = $path + “\ALLADUsers_$reportdate.csv”

 

#import the ActiveDirectory Module

Import-Module ActiveDirectory

 

#Perform AD search. The quotes “” used in $SearchLoc is essential

#Without it, Export-ADUsers returuned error

Get-ADUser -server $ADServer -searchbase “$SearchLoc” -Properties * -Filter * |

Select-Object @{Label = “First Name”;Expression = {$_.GivenName}},

@{Label = “Last Name”;Expression = {$_.Surname}},

@{Label = “Display Name”;Expression = {$_.DisplayName}},

@{Label = “Logon Name”;Expression = {$_.sAMAccountName}},

@{Label = “Full address”;Expression = {$_.StreetAddress}},

@{Label = “City”;Expression = {$_.City}},

@{Label = “State”;Expression = {$_.st}},

@{Label = “Post Code”;Expression = {$_.PostalCode}},

@{Label = “Country/Region”;Expression = {if (($_.Country -eq ‘GB’)  ) {‘United Kingdom’} Else {”}}},

@{Label = “Job Title”;Expression = {$_.Title}},

@{Label = “Company”;Expression = {$_.Company}},

@{Label = “Description”;Expression = {$_.Description}},

@{Label = “Department”;Expression = {$_.Department}},

@{Label = “Office”;Expression = {$_.OfficeName}},

@{Label = “Phone”;Expression = {$_.telephoneNumber}},

@{Label = “Email”;Expression = {$_.Mail}},

@{Label = “Manager”;Expression = {%{(Get-AdUser $_.Manager -server $ADServer -Properties DisplayName).DisplayName}}},

@{Label = “Account Status”;Expression = {if (($_.Enabled -eq ‘TRUE’)  ) {‘Enabled’} Else {‘Disabled’}}}, # the ‘if statement# replaces $_.Enabled

@{Label = “Last LogOn Date”;Expression = {$_.lastlogondate}} |

 

#Export CSV report

Export-Csv -Path $csvreportfile -NoTypeInformation

}

Uitgelicht

Cloud Security Essentials

Wil je ook Malware, Ransomware, Phishing voorkomen en je Cloud diensten beschermen? Dan is een goede Cloud Security strategie essentieel om veilig werken te garanderen! Waarom dit zo belangrijk is?…

Lees verder »

Wat is Incident Management?

In deze blog verteld onze IT-consultant Sjoerd ons over incident management. In dit stuk krijg je te weten wat incident management precies inhoudt en verteld Sjoerd wat je nu wel…

Lees verder »

Linden-IT Medewerkers van het kwartaal!

Met trots presenteren wij wederom de medewerkers van het kwartaal. De IT-professionals die het verdienen om in de spotlight te worden gezet! Ieder kwartaal wordt er per regio een medewerker…

Lees verder »

Hoe kunnen we je helpen?

Laat ons weten hoe we kunnen bereiken.

Vacature is toegevoegd aan je favorieten!

Vacature is verwijderd uit je favorieten!