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)

woensdag 28 december 2011

Zoeken in de AD met Powershell

Je kunt de AD doorzoeken door de ActiveDirectory module in Powershell te importeren.

Import-Module ActiveDirectory

Daarna kun je bijvoorbeeld met filters users in de AD vinden die een EmployeeID hebben dat eindigt op 005:

Get-ADUser -Filter 'EmployeeID -like "*005"' -Properties * | ft name,employeeid

Om te zien waar je op kunt filteren kun je het beste alle properties van één gebruiker bekijken:

Get-ADUser –Identity gebruikersnaam –Properties * | fl *

Export naar CSV van alle Users met een EmployeeID en die in OU Test staan:

Get-ADUser -Filter * -Properties * -SearchBase "OU=Test,DC=Domein,DC=LOCAL" | where {$_.EmployeeID -ne $null} | Select-Object EmployeeID,Name,StreetAddress,PostalCode,City,MobilePhone,Fax,telephoneNumber,Department,Company | Export-Csv ExportAD.csv

Users langer dan 3 maanden niet ingelogd:

Get-ADUser -properties lastLogonDate -filter * -SearchBase "OU=Test,DC=domein,DC=local"| where { $_.lastLogonDate -lt (get-date).addmonths(-3) -and $_.lastLogonDate -ne $null} | sort lastLogonDate | FT Name,LastLogonDate

Door deze te pipen naar Disable-ADAccount kun je deze accounts meteen disablen.
Bovenstaande query kun je ook uitvoeren met Get-ADComputer om alle computers van een domein te vinden welke al langer dan 12 maanden oid niet op het domein zijn ingelogd. 


Aantal users in een OU:
Met onderstaand script kun je het een weergave maken van alle gebruikers in bepaalde OU's.
Wijzig de OU# namen en verander de LDAP query. Plaats vervolgens het script in een ps1 bestand en voer deze uit.

(ik zal kijken of ik dit in een functie kan verwerken)

# PowerShell Counts users in Active Directory
 foreach ($targetou in 'OU1','OU2','OU3')
{
 "Processing information for OU $targetou"
$Dom='LDAP://OU='+$targetou+',DC=domein,DC=local'
$Root = New-Object DirectoryServices.DirectoryEntry $Dom
# Create a selector and start searching from the Root of AD
$selector = New-Object DirectoryServices.DirectorySearcher
$selector.SearchRoot = $root
$selector.filter = "(objectclass=user)"
$adobj= $selector.findall()
"There are $($adobj.count) users in $($root.name)"
}

Aantal users in een Group:
[array]$users = (Get-ADGroupMember -Identity "GroepNaam")
$users.count

Wie zit er in een bepaalde group:
Get-ADGroupMember -Identity "groep" | Get-ADUser -Properties * | ft name,UserPrincipalName,EmployeeID

Zoek een Universal group in AD m.b.v. wildcards:

Get-ADGroup -Filter 'Name -like "*dt*" -and GroupScope -eq "Universal"'
Verwijder disabled users in meerdere AD OUs met een modified date ouder dan 14 dagen

foreach ($targetou in 'OU=Verkoop','OU=Users,OU=Inkoop','OU=Users,OU=Marketing')
{
$SB = ''+$targetou+',DC=DOMEIN,DC=local'
Get-ADUser -properties Modified -filter * -SearchBase "$SB"| where { $_.Modified -lt (get-date).adddays(-14) -and $_.Enabled -eq $False} | Remove-ADUser
}

donderdag 15 december 2011

Verplaats Mailbox van Exchange lokaal naar Office365

Verbinding maken met de Remote Powershell

Connect Windows PowerShell to the Cloud-based service

$LiveCred = Get-Credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic –AllowRedirection

Import-PSSession $Session


Disconnect Windows PowerShell from the Cloud-based service

Als je klaar bent met de acties in de Remote Powershell kun je de sessie met het volgende commando beëindigen

Remove-PSSession $Session

Important If you close the Windows PowerShell window without disconnecting from the server-side session, your connection will remain open for 15 minutes. Your account can only have three connections to the server-side session at one time.


Plaats lokale credentials in een variabele

$RemoteCredential = Get-Credential

Verplaats de mailbox naar de cloud

New-MoveRequest -Identity "gebruiker@domein.nl" -Remote -RemoteHostName 'mail.domein.nl' -RemoteCredential $RemoteCredential -TargetDeliveryDomain 'service.domein.nl'

De status van de move actie kun je bekijken met:

Get-MoveRequest

Om meerdere mailboxen te verplaatsen kun je gebruik maken van onderstaand script:

Import-CSV movemb1.txt | ForEach {New-MoveRequest -Identity $_.UserPrincipalName -Remote -RemoteHostName 'mail.domein.nl' -RemoteCredential $RemoteCredential -TargetDeliveryDomain 'service.domein.nl'}

In het bestand movemb1.txt staan de identities. De eerste regel in het bestand is “UserPrincipalName”

ß snippet à

UserPrincipalName
gebruikera@domein.nl
gebruikerb@domein.nl
gebruikerc@domein.nl
gebruikerd@domein.nl
gebruikerd@domein.nl
etc..

ß snippet à

De status van de move actie kun je bekijken met:

Get-MoveRequest –MoveStatus InProgress

Om Requests te verwijderen kun je onderstaand gebruiken:

Remove-MoveRequest

dinsdag 13 december 2011

Aanmaken van een groot aantal mailboxen voor bestaande AD gebruikers

Export maken alle gebruikers in een bepaalde OU die nog geen mailbox hebben
Eerst een export gemaakt van alle gebruikers in de OU PMedewerkers die nog geen mailaccount ($_.mail –eq $null) hebben:

Get-ADUser -Filter * -Properties * -SearchBase "OU=PMedewerkers,OU=Bedrijf,DC=domein,DC=local" | where {$_.mail -eq $null} | ft UserPrincipalName -auto | Out-File c:\temp\pm_no_mail.txt

Bewerken van het export bestand
Hieronder een snippet van de export:

UserPrincipalName                  
-----------------                  

l.ascder@domein.local 
a.fefsen@domein.local  
m.vblmen@domein.local       

Alle spaties en de stippellijn uit bovenstaande export halen.

TEST:
Weergeven van de gebruikers in het bewerkte export bestand mbv loopscript

Import-CSV pm_no_mail.txt | ForEach {Write-host $_.UserPrincipalName}

Aanmaken van de mailboxen voor de gebruikers
Als de test er goed uit ziet voer je onderstaand commando uit om de mailboxen aan te maken:

Import-CSV pm_no_mail.txt | ForEach {Enable-Mailbox -Identity $_.UserPrincipalName –Database “Mailbox DB1”}

Extra info:
De gebruikersaccounts dienen wel enabled te zijn anders kun je geen mailbox aanmaken.

donderdag 8 december 2011

Validate if jumbo frames are configured end to end

Door gebruik te maken van Jumbo frames kun je de performance van de TCP connecties aanzienlijk verbeteren. Ook voor ISCSI.
Max frame size 9K (Kan de TCP/IP overhead terugbrengen tot wel 84%)
Je moet er wel op letten dat je dit van voor naar achteren doorvoert.
Je moet het dus op alle end points doorvoeren: switches, NICs en target devices.
(Virtual switch en NICs worden ook gedefineerd als end points)

Om te testen of of de Jumbo frames op alle end points zijn ingesteld voor je een ping uit:

Ø  Ping –n 1 –l 8000 –f (hostname)
o   -l (length)
o   -f (don’t fragment packet into multiple Ethernet frames)
o   -n (count)

Voorbeeld:
Ping –n 1 –l 8000 –f 192.168.1.150



donderdag 1 december 2011

Comparison RDSH / VDI / PC


RemoteFX w/ Remote Desktop Virtualization Host (RDVH/VDI) provides:
• Rich user experience for Virtual Desktop Infrastructure (VDI) via
- 3D virtual adapter
- intelligent codecs
- ability to redirect USB devices in virtual machines
• Requires (summarization - see above article for details)
- RemoteFX enabled on a Remote Desktop Virtualization Host server
- Windows 7 Enterprise/Ultimate running in a VM on the RemoteFX server
- RemoteFX compatible client
- Server-based GPU and other HW requirements as defined in this article
- Remote Desktop Connection performance set to LAN (10 Mbps or higher)
• Result: Full fidelity experience (e.g., 3D applications built on DirectX, Silverlight and Flash applications, etc.)

RemoteFX w/ Remote Desktop Session Host (RDSH/Terminal Server) provides:
• Rich user experience defined as:
- lower bandwidth usage as compared to Windows Server 2008 R2 when transferring rich graphics applications (i.e., intelligent codecs provide a better experience)
- Does not provide the same experience as RemoteFX w/ Remote Desktop Virtualization Host (RDVH/VDI)
• Does not provide:
- 3D virtual adapter
- ability to redirect USB devices in virtual machines
• Requires
- RemoteFX enabled on a Remote Desktop Session Host server
- RemoteFX compatible client
- Remote Desktop Connection performance set to LAN (10 Mbps or higher)
- No server-based GPU is required
• Result: Provides a better experience compared to Windows Server 2008 R2 without RemoteFX enabled but has fewer capabilites compared to RemoteFX w/ Remote Desktop Virtualization Host (RDVH/VDI).

Bron: