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:

dinsdag 29 november 2011

Citrixdag recap

Eind november 2011 heb ik een Citrix congres bijgewoond. Hier een recap:

Shadow IT (sh.it)
mifi
3pc (private, personal, public cloud)

citrix cag standard limiet van 1 fqdn
cag enterprise is netscaler (3 ip adressen nsip,vip,nip)
beide verkrijgbaar als virtual app. of als fysieke appliance.
Cag babbelt met radius en alle 2key pw tokens die radius ondersteunen werken ermee.
Redirection niet standaard maar op te lossen met xtra lolad ballancing site aan te maken.

Provisioning 6.0
Machine creation services (MCS) alleen voor xendesktop
provisioning zowel xenapp all xendesktop
sql database
tftp voor pxe
streamt van golden image
kleine lokale schijf voor app-v cache of printspooler of log
tot 200/300 desktops kunnen gebruik maken van 1 image over gigabit netwerk.
Extra wizards streamt vm setup wizard / xendesktop setup wizard
vanaf 6.0 gebruik versions (bespaart schijfruimte en is sneller)
vhd chaining vdisk avhd promoot je naar parent.
Maintenance (=rw /1 pc toegang) test (=read only / paar pc toegang) productie (=read only / iedereen toegang)
zit geen replicatie in wel een check. Replicatie moet dmv alternatief zoals dfs-r of robocopy, oid.
Automated of handmatig vDisk update dmv sccm of wsus.
Sysprep domain membership wordt beheerd vanuit provisioning en wordt opgeslagen in aparte sql database.

Xenapp 6.5
Session prelaunch: ctx130793
session linger: ctx130110
windows desktop integration experience
ica multistream max 5 (granular QOS)
printer optimizations
universal printer server (thinprint achtig) voor clients waar geen printer aan gekoppeld zit.
http://blogs.citrix.com/2011/11/17/project-phaser-universal-print-server-tech-preview-released/
AppCenter console
Migration center van oude farm naar nieuwe farm.
Ook voor 6.5 naar 6.5 (PoC, otap, productie2test)
XenApp Session host mode (session-only)
Load Evaluator nu via policies ipv server
Worker groups is verzameling servers met zelde rol.
Desktop Director is servicedesk hulptool in xenapp moet je wel wat extra werk verrichten om te installeren tov xendesktop.

Citrix tips:
server reboot: memory leak / temp files.
Change logon disable of drain
- geen rdp sessie mogelijk
- disconnected sessies reconnect (drain wel)
met load evaluator kan bovenstaande wel schedulen
LE: xenapp 5 script, xenapp 6 powershell, xenapp 6.5 policy
werken met workergroups
Loggen van de activiteiten during reboot mbv script.
Informatie naar eindgebruiker mbv script command msg.
Controle op beschikbaarheid overige servers met script (ping)
met sc.exe tjekken of imaservice draait (liever testsessie starten)
maintenance taken na (geen locks oid) herstart: temp files etc.
Dan weer juiste workergroup plaatsen.
Initiatie herstart. Centraal of lokaal combi beste. Logging liefst centraal echter herstart liever lokaal ivm availability.
Ping met parameter als pauzeer middel.

Vdi & storage
Add=applicatie en desktop delivery
desktop virtualisatie: clentside (local execution / bare-metal of hosted) of serverhost (remote execution / shared, etc)
serverhosted uniform workspace, performance, security, management, access anywhere, sustainability (powermanagement), enduser experience = (flash,Lync, performance, etc) aandacht ding. Statefull vDesktop.
MS licenties 2 smaken: vda of software assurance?
TCO/ROI brian madden
in echte wereld meer write dan read io's.
Raid impact raid0 read en write redelijk hetzelfde
raid1 al wat meer write dan read. Bij raid5 nog meer.
Iops and MBs per blocksize
latency (response tijd) moet onder 20ms zijn, anders merkt gebruiker het.

1000cc users met read/write iops ratio 30/70
raid5 heeft 210 disks nodig. Met raid1 128 disks

halverwege de dag worden er meer write dan read io uitgevoerd.
Mensen zijn ingelogd apps zijn opgestart zijn gecached etc.

Blocksize 4kb in 1 io wordt dan 4kb gelezen.
Io impact 1 io door app werd 100 ios op storage niveau

ultra deep impact, verschil van impact in OS (winxp/7)

oplossingen: greenbytes whiptail

random read write acties omzetten naar sequentieel zodat deze in 1 io in een keer weggeschreven kunnen worden. Sommige disken kunnen nl 16 read write acties in 1 io (sequentieel) wegschrijven. 
 
Machine Creation Services
werkt alleen met Xendesktop, kan op hyper-v etc.
Maak van master image golden image
mcs maakt snapshot (thin)
per image 3 disken vm (snapshot), disk 1 (identity disk 16MB) en disk 2 (differing disk)
iedere disk maakt disk1 en disk2 aan en gebruikt vm image.
Verschillende types desktops. (Pooled-random,pooled-static,dedicated)
updaten pooled geen probleem maar met dedicated heb je het probleem dat je veel verschillende versies krijgt. Citrix heeft cube oid aangekocht om dit probleem te takelen.

MCS is handig voor PoC of testen en voor productie is Provisioning beter. MCS is snel op te zetten. Op storage is provisioning ook beter minder belastend.

Citrix intellicache is alleen beschikbaar op xenserver versie x.
Geeft reductie van iops op san.

Raid 0 write penalty = 0
Raid 10 write penalty = 2
Raid 50 write penalty = 4

cachen
alignment: zorg dat blocksize zelfde is in windows (vDisk) als op storageniveau.

Citrix TargetOSoptimizer

taas.citrix.com voor uploaden en analyseren van rapportages.
Analyseerd door de stacks (bijvb xendesktop op xenserver) heen. 

woensdag 16 november 2011

Exporteren / Importeren Hyper-V VMs


Microsoft heeft twee opties om een VM naar een nieuwe host te verplaatsen.

1.       De VM exporteren en op de nieuwe host importeren
2.       De VHD kopiëren naar de nieuwe host en daar een nieuwe VM aanmaken die gebruik maakt van deze VHD

Optie 2 is sneller echter moet je dan de netwerk settings opnieuw ingeven.
Tevens worden snapshots dan niet meegenomen.

Hieronder een uitleg hoe je een VM exporteert en vervolgens importeert.




Op deze locatie wordt een map aangemaakt met dezelfde naam als de VM vervolgens worden onderstaande mappen aangemaakt:


Kopieer deze map vervolgens naar de Hyper-V host waar deze VM op geïmporteerd moet worden.


De kans is groot dat na het importeren een foutmelding verschijnt:


Kijk je in de event log dan zie je waarschijnlijk dat de netwerkkaart niet geïnstalleerd kon worden.

De VM wordt geimporteerd naar de standaard locatie die opgegeven staan bij de Hyper-V settings: