Tags

Howto (51) Free Software (35) Powershell (33) Windows Server (23) AD (16) Hyper-V (16) Exchange (13) Office (13) Group Policy (10) Windows Server 2012 (9) Scripts (7) Symantec BE (5) Windows 8 (5) Cisco (4) TMG (4) Terminal Server (4) Cluster (3) HP (3) RDS (3) UAG (3) Citrix (2) DC (2) DNS (2) IE10 (2) OpenID (2) PKI (2) SCVMM (2) Windows Live (2) iLO (2) Backup (1) DPM (1) Fileserver (1) IE (1) SQL; DPM (1) Security (1) Sharepoint (1) Switch (1) VMWare (1) Veeam (1)

dinsdag 2 juli 2013

AD gebruikers aanmaken aan de hand van een CSV bestand en een Powershell script

Stappen:

  1. Pas het Excel bestand aan en sla deze op als CSV
  2. Converteer CSV bestand naar UTF8 formaat
  3. Gebruik Powershell script om de gebruikers aan te maken
  

Stap 1:

 
In de eerste regel van Excel staan de kolomnamen die ook in het Powershell script terug komen.
De Excel sheet heb ik enigszins moeten aanpassen zodat er kolommen ontstonden met bijvoorbeeld: gebruikersnaam  conventie (voorletter.geboortenaam) en DisplayName
 
Hier de door mij gebruikte eerste Excel rij:
 
PERSONEELSNUMMER;GivenName;1ste_letter_GN;Gebruikersnaam_tussenvoegsel;Geboorte_SN;Gebruikersnaam_met_spaties;Gebruikersnaam;UPN_Suffix;UPN;Title;Mobiel;Afdeling;Locatie;Preffered_SN;Space;DisplayName;EMAILADRES;Password
 
In onderstaand blog kun je zien hoe je een random wachtwoord kunt genereren:
 
 

Stap 2:

 
Het Powershell script maakt gebruik van het import-csv commando, echter importeert deze de csv in ASCII formaat.
Dat kan onderstaand resultaat opleveren:
 
 
Het CSV bestand zal daarom eerst geconverteerd moeten worden naar UTF8 formaat.
Dat kan gelukkig makkelijk doordat het Get-Content (cat) commando bestanden uitleest in UTF8 formaat.
 
Hierdoor hoef je alleen de output weg te schrijven naar een nieuw csv bestand, dat dan in UTF8 formaat is.
 
PS C:\SCRIPTS\CADU>cat NewUsers.csv > NewUsers2.csv
 
 

Stap 3:

 
Gebruik CreateADUsers.ps1 en pas deze eventueel aan:
 
 
# CreateADUsers.ps1
Set-ExecutionPolicy Unrestricted
Import-Module ActiveDirectory

 $csvpath = "c:\Scripts\CADU\NewUsers.csv"
$date = Get-Date
$logfile = "c:\Scripts\CADU\create_AD_users.log"
$Bedrijf = "TBedrijf"
$i=0
 
 # Specify parent container for all new users.
$OU =  "OU=Users,OU=TBedrijf,DC=test,DC=local"

 Import-Csv $csvpath -Delimiter:";" |  ForEach-Object {
$sam = $_.Gebruikersnaam
     Try   { $exists = Get-ADUser -LDAPFilter "(sAMAccountName=$sam)" }
     Catch { }
     If(!$exists)
     {
     $Password = $_.Password
New-ADUser $sam -GivenName $_.GivenName -Surname $_.Preffered_SN -DisplayName $_.DisplayName -Company $Bedrijf -Department $_.Afdeling -Mobilephone $_.Mobiel -Title $_.Title -Office $_.Locatie -EmailAddress $_.EmailAdres -UserPrincipalName $_.UPN -passthru |
ForEach-Object {
$_ | Set-ADAccountPassword -Reset -NewPassword (ConvertTo-SecureString -AsPlainText $Password -Force)
$_ | Enable-ADAccount }

 # Set an ExtensionAttribute
       $dn  = (Get-ADUser $sam).DistinguishedName
       $ext = [ADSI]"LDAP://$dn"
       $ext.SetInfo()
       Move-ADObject -Identity $dn -TargetPath $OU

       $newdn = (Get-ADUser $sam).DistinguishedName
       Rename-ADObject -Identity $newdn -NewName $_.DisplayName

       $output  = $date.ToString() + " CREATED - Naam: " + $_.DisplayName + " (login: "
       $output += $_.UPN + " / " + $_.Password + ")"
       $output | Out-File $logfile -append
      }
      Else
      {
       $output  = $date.ToString() + " SKIPPED - Naam: " + $_.DisplayName + " (inlognaam: "
       $output += $_.UPN + ")"
       $output | Out-File $logfile -append
}
"----------------------------------------" + "`n" | Out-File $logfile -append
}
 
 
Persoonlijk vind ik het makkelijk om Powershell ISE in Administrative mode op te starten en het script in te laden.
 
 
 
 
 
 

Unsupported VM Configuration SCVMM 2012 (error 13932)

In SCVMM de melding van een Unsupported VM Configuration: oorzaak error 13932: “register the share to the cluster”.
 
 
 
Error (13932)
The file \\SCVMM01.test.Local\MSSCVMMLibrary\ISO\SW_DVD5_11.ISO is in a share which is not registered to the cluster TS-HQ-CL01.testLocal.
 
Recommended Action
Register the share to the cluster, and then try the operation again.
 
Om de foutmelding weg te krijgen, in Hyper-V manager de ISO loskoppelen:
 
 

Irfanview batch conversie van jpg bestanden

JPG bestanden kunnen een enorme hoeveelheid opslagcapaciteit opslokken.
Zowel de Megapixels als het aantal foto’s die gebruikers nemen, neemt alleen maar toe.
 
Ik gebruik Irfanview al jaren om af en toe alle JPG bestanden op de fileserver te verkleinen.
 
Test eerst de instellingen op een test map, alvorens je alle JPG bestanden op de hele file server aanpakt. De instellingen kunnen namelijk ook per versie van Irfanview wel eens verschillen.
 
Irfanview batch conversie (minimale versie 4.23!!!)
 
 
Advanced options:
 
 
Met Treesize van Jam-software kun je precies zien hoeveel opslagcapaciteit de jpg bestanden innemen. 

vrijdag 28 juni 2013

DPM backup SQL 2012 databases

Tijdens het backuppen van een SQL 2012 database krijgen we onderstaande foutmelding:
 
 
Het blijkt dat SQL 2012 een security enhancement heeft gehad:
 
To enhance role separation, BUILTIN\administrators and Local System (NT AUTHORITY\SYSTEM) are not automatically provisioned in the sysadmin fixed server role. Local administrators can still access the Database Engine when in single user mode.
 
 
 
 
Door “NT AUTHORITY\SYSTEM” sysadmin rechten te geven is het probleem opgelost.

Genereer een random wachtwoord van een variabele lengte in Excel

Om een random wachtwoord te genereren van een variabele lengte die voldoet aan de complexiteitsregels heb ik de string in Excel uitgevoerd:
 
=LINKS(TEKEN(ASELECTTUSSEN(65;90))&ASELECTTUSSEN(1;9)&ASELECTTUSSEN(1;9)&TEKEN(ASELECTTUSSEN(97;122))&TEKEN(ASELECTTUSSEN(97;122))&TEKEN(ASELECTTUSSEN(65;90))&TEKEN(ASELECTTUSSEN(97;122))&ASELECTTUSSEN(1;9)&TEKEN(ASELECTTUSSEN(65;90))&ASELECTTUSSEN(1;9)&TEKEN(ASELECTTUSSEN(97;122))&TEKEN(ASELECTTUSSEN(65;90));ASELECTTUSSEN(9;12))
 
  • LINKS(ASELECTTUSSEN(7;9)) zorgt ervoor dat het wachtwoord uit 9, 10, 11 of 12 karakters bestaat
  • TEKEN(ASELECTTUSSEN(65;90)) zorgt ervoor dat er een random Hoofdletter gekozen wordt
  • TEKEN(ASELECTTUSSEN(97;122)) zorgt ervoor dat er een random kleine letter gekozen wordt
  • ASELECTTUSSEN(1;9) zorgt ervoor dat er een random cijfer gekozen wordt


Door 4 keer een kleine- een hoofdletter en een cijfer te genereren en het wachtwoord minimaal 9 karakters te maken zorg je ervoor dat er altijd een kleine letter een hoofdletter en een cijfer in het wachtwoord voorkomt.

Hierdoor voldoet deze meteen aan de complexiteitsregels.

Microsoft Excel 2010 function translations English - Dutch

Laatst had ik een complexe string gevonden op Internet om random wachtwoorden te genereren in Excel.
Nu was dit een “Engels” talige string. Gelukkig kon ik deze vertalen aan de hand van een tabel:

donderdag 16 mei 2013

Remove certain files older then n days

Door onderstaand commando te schedulen zorg je ervoor dat alle *.BAK bestanden ouder dan 3 dagen in de folder D:\Backup en onderliggende folders worden verwijderd.
 
forfiles /P d:\backup /S /M *.bak /D -3 /C "cmd /c del @path"