Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Uitlijnen naar rechts functie om later toe te wijzen aan collum Badgenummer.
- Function right {
- Param(
- [Parameter(Mandatory=$true)][String]$Text,
- [Parameter(Mandatory=$true)][Int]$Length
- )
- return $Text.SubString($Text.length - $Length)
- }
- #Functie Speciale tekens
- function Simplify-String{
- param([string]$s)
- $s = $s -replace "ç", "c"
- $s = $s -replace " ", ""
- $s = $s -replace "é", "e"
- $s = $s -replace "è", "e"
- $s = $s -replace "ë", "e"
- $s = $s -replace "ê", "e"
- $s = $s -replace "à", "a"
- $s = $s -replace "á", "a"
- $s = $s -replace "ä", "a"
- $s = $s -replace "â", "a"
- $s = $s -replace "ù", "u"
- $s = $s -replace "ú", "u"
- $s = $s -replace "ü", "u"
- $s = $s -replace "û", "u"
- $s = $s -replace "ó", "o"
- $s = $s -replace "ò", "o"
- $s = $s -replace "ö", "o"
- $s = $s -replace "ô", "o"
- $s = $s -replace "õ", "o"
- $s = $s -replace "í", "i"
- $s = $s -replace "ì", "i"
- $s = $s -replace "ï", "i"
- $s = $s -replace "î", "i"
- $s = $s -replace "ÿ", "y"
- $s = $s -replace "ý", "y"
- $s = $s -replace "ñ", "n"
- $s = $s -replace "ß", "ss"
- $s = $s -replace "'", ""
- $s = $s -replace "@", ""
- return $s
- }
- #export-modulemember -function Simplify-String
- # ---------------------------------------------------------------------
- echo "AD Users uitlezen"
- # adusers is een list en bevat de account namen van de users
- # ---------------------------------------------------------------------
- $ADUsers = get-aduser -Filter * -Properties extensionAttribute1,msExchShadowProxyAddresses -SearchBase "OU=gebruikers,OU=Sint-Truiden,DC=sint-truiden,DC=be"
- $msExch=@()
- foreach($ad in $ADUsers){
- $msExch+=$ad.msExchShadowProxyAddresses
- }
- echo "lees SyntegroUsers uit CSV"
- $f = "C:\ps\michiel\badge_info.csv"
- $SyntegroUsers = Get-Content $f | Select -skip 9 | ConvertFrom-Csv -Delimiter "," #inlezen CSV als tekst \\ skip eerste 9
- # ---------------------------------------------------------------------
- echo "filter vervallen badges eruit"
- #alle rijen waarvan de bedrijfscode niet gelijk is aan 104 worden verwijderd uit de lijst
- #als de stopdatum en datum uit dienst kleiner is dan de huidige datum worden deze verwijderd uit de list
- #alle badgnenummers van non-relevante voornamen worden verwijderd uit de list
- # ---------------------------------------------------------------------
- $SyntegroUsers = $SyntegroUsers |
- where { ([datetime]::parseexact($_.Stopdatum, 'yyyy-MM-dd', $null)) -gt [datetime]::Now } | # niet vervallen badges
- where { ([datetime]::parseexact($_."Datum uit dienst", 'yyyy-MM-dd', $null)) -gt [datetime]::Now } | # niet vervallen badges
- where { ( $_.Bedrijfscode -eq 104 ) } |
- where { ( $_.Voornaam -ne 'werfbadge' ) } |
- where { ( $_.Voornaam -ne 'huurder' ) } |
- where { ( $_.Voornaam -ne 'externe' ) } |
- where { ( $_.Voornaam -ne 'syntegro' ) } |
- where { ( $_.Voornaam -ne 'ford' ) } |
- where { ( $_.Voornaam -ne 'mercedes' ) } |
- where { ( $_.Voornaam -ne 'jeep' ) } |
- where { ( $_.Voornaam -ne 'electrische' ) } |
- where { ( $_.Voornaam -ne 'vrijwilligers' ) } |
- where { ( $_.Voornaam -ne 'gidsen' ) } |
- where { ( $_.Voornaam -ne 'leveranciers' ) } |
- where { ( $_.Voornaam -ne 'aanvraag' ) } |
- where { ( $_.Voornaam -ne 'fuifbegeleider' ) } |
- where { ( $_.Voornaam -ne 'schermclub' ) } |
- where { ( $_.Voornaam -ne 'stagiairs' ) }
- # ---------------------------------------------------------------------
- echo "reformat alle velden in SyntegroUsers"
- # format van Badge Nummer ----> met gebruik van functie "right"
- # ---------------------------------------------------------------------
- foreach ($su in $SyntegroUsers)
- {
- $su.Badgenummer = right "0000000000$($su.Badgenummer)" 8
- $su.Voornaam=Simplify-String $su.Voornaam.ToLower().Split(" ")[0]
- $su.Achternaam=Simplify-String $su.Achternaam.ToLower().Trim()
- #"vervang gebruikersnamen die uit nummers bestaan door voornaam.achternaam"
- if($su.Gebruikersnaam -match ".*\d+.*" )
- {
- $su.Gebruikersnaam = $Su.Voornaam+"."+$su.Achternaam
- }
- else{
- $su.Gebruikersnaam = Simplify-String $su.Gebruikersnaam.ToLower().Trim()
- }
- # we doen dit omdat een SamAccountNaam maximum 20 karakters mag bevatten
- if($su.Gebruikersnaam.Length -gt 20){
- $su.Gebruikersnaam = Simplify-String $su.Gebruikersnaam.ToLower().Trim().Substring(0,20)
- }
- }
- # ---------------------------------------------------------------------
- echo "sorteer SyntegroUsers"
- #elke unieke gebruiker toevoegen aan $list met alleen unieke gebruikersnamen en grootste badge nummer.
- #hier sorteer ik de list syntegroUsers op badgenummer van groot naar klein
- # ---------------------------------------------------------------------
- $SyntegroUsers = $SyntegroUsers | sort -Property Badgenummer -Descending
- # list users is gesorteerd op gebruikersnaam uniek
- $users = $SyntegroUsers | sort -Property Gebruikersnaam -Unique
- # ---------------------------------------------------------------------
- echo "verwijder dubbele badges en gebruik enkel laatste"
- # ---------------------------------------------------------------------
- $list = @()
- foreach ($user in $users)
- {
- # bij dubbele gebruikersnamen word de eersta gebruikersnaam gepakt(dus die met hoogste badgenummer,
- $badge = New-Object -TypeName PSObject ($SyntegroUsers | where {$_.Gebruikersnaam -eq $user.Gebruikersnaam })[0]
- $list += $badge
- }
- $SyntegroUsers = $list
- # ---------------------------------------------------------------------
- echo "zoek SyntegroUsers in AD"
- # ---------------------------------------------------------------------
- #
- $inad = @()
- $overigeInSyn=@()
- $nietinad = @()
- # zoek gebruikersnaam in AD
- foreach($su in $SyntegroUsers)
- {
- $adu = ($ADUsers.where({$_.SamAccountName -eq $su.Gebruikersnaam })[0]).SamAccountName
- if ($adu.length -gt 0)
- {
- $inad+=$adu
- } else {
- $nietinad+=$ad
- }
- }
- $inad.Count
- $nietinad.Count
- $SyntegroUsers.Count
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement