$theTitle=wp_title(" - ", false); if($theTitle != "") { ?>
About Virtualization, VDI, SBC, Application Compatibility and anything else I feel like
4 Nov // php the_time('Y') ?>
For a script I needed to create an AQS (Advanced Query Syntax) Query that contained a date range.
An example of such is a range is: date:11/05/04..11/10/04
However we need to account for regional settings where for example the data seperator and the order of day and month may be different.
In my example I wanted to match any data that is 30 days or older so let’s do this in PowerShell:
28 Sep // php the_time('Y') ?>
In Part 2 I showed some details about Mailbox Rule corruptions that can disturb Mailbox Moves.
For this part the topic is Mailbox size, which can be an important factor in deciding which mailboxes you want to move first.
In my case the mailbox size was important because we agreed to move smaller mailboxes during the day but larger mailboxes only outside working hours.
For Exchange 2010 mailboxes it’s very easy to obtain the size using PowerShell.
Example:
1 | Get-Mailbox "rweijnen" | Get-MailboxStatistics | select DisplayName, ItemCount, TotalItemSize |
DisplayName | ItemCount | TotalItemSize |
Remko Weijnen | 313 | 34.87 MB (36,564,183 bytes |
But how can we get the Mailbox Size for Exchange 2003 mailboxes?
28 Sep // php the_time('Y') ?>
Sometimes I want to process a list of “things” easily in PowerShell where the list is not in an external file but in the script itself.
Ideally this list would not be separated by e.g. a comma so it can be easily copy/pasted from external data sources.
Something like this:
1 2 3 4 5 6 | $List = @(" John Doe Jane Doe James Bond And so the list goes on ") |
2 Sep // php the_time('Y') ?>
I am currently creating a PowerShell script that creates a user with all needed Active Directory attributes, Exchange mailbox, (TS) Home- and Profile directories and so on.
In such a script you can easily get failures because of Active Directory replication.
2 Sep // php the_time('Y') ?>
Function below can be used to check if a given Username exists in Active Directory:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function UserExists([string]$Username) { $strFilter = "(&(objectCategory=person)(sAMAccountName=$Username))" $objDomain = New-Object System.DirectoryServices.DirectoryEntry $objSearcher = New-Object System.DirectoryServices.DirectorySearcher $objSearcher.SearchRoot = $objDomain $objSearcher.PageSize = 1000 $objSearcher.Filter = $strFilter $objSearcher.SearchScope = "Subtree" $colResults = $objSearcher.FindAll() return [bool]($colResults -ne $null) } |
16 Aug // php the_time('Y') ?>
I needed to adapt some scripts that create a user with mailbox for Exchange 2010. The existing scripts had a hardcoded database for new mailboxes.
I wanted the mailbox to be created in the smallest database, but how do we determine this?
For Exchange 2010 this is fairly easy using PowerShell:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # Add Exchange Snapins if ((Get-PSSnapin | where {$_.Name -match "Exchange.Management"}) -eq $null) { Add-PSSnapin Microsoft.Exchange.Management.* } # Get largest possible size $size = [Microsoft.Exchange.Data.ByteQuantifiedSize]::MaxValue.ToBytes() foreach ($db in Get-MailboxDatabase -Status) { # Write-Host "Database:" $db.Name "Size:" $db.DatabaseSize.ToBytes() $db | select ServerName,Name,DatabaseSize # Is the Database smaller than previous smallest size if ( $db.DatabaseSize.ToBytes() -lt $size ) { # This database is smaller, store size and db $size = $db.DatabaseSize.ToBytes() $ExDB = $db } } Write-Host "`nSmallest Database:" $ExDB | select ServerName,Name,DatabaseSize |
15 Aug // php the_time('Y') ?>
By default Exchange 2007 and 2010 are installed in Trial mode so before going into production you need to enter the Product Key.
The Exchange Management Console will warn you if one or more servers are still in trial mode:
10 Aug // php the_time('Y') ?>
I am currently working on an Exchange migration from 2003 to 2010. For the implementation of a load balancing solution for the CAS/HUB servers I needed to set Static RPC Ports for the RPC Client Access Service and the Exchange Address Book Service.
The procedure of changing these ports is described on the Technet Wiki: Configure Static RPC Ports on an Exchange 2010 Client Access Server
Since I am lazy I decided to do this with a PowerShell script that would automatically do this for all CAS/HUB servers in my 2010 environment.
27 Jun // php the_time('Y') ?>
In my previous post I wrote about a problem I had with duplicate RID Allocation pools.
But how do we get more insight into these RID Allocation pools?
The DCDIAG tool can display this information per domain controleler using the following syntax
1 | dcdiag /s:server /v /test:ridmanager |
Example output:
But where in Active Directory is this information stored and can we display it for all Domain Controllers at once for larger environments?
24 Jun // php the_time('Y') ?>
Today I was testing the installation of Exchange 2010 in a VMWare sandbox environment. We created the sandbox to test migration from a 2003 AD and Exchange environment to 2008 R2 with Exchange 2010.
We used a P2V to get real copies of the Active Directory and the AD upgrade to 2008 R2 was already tested.
But during the Exchange installation in the sandbox I got the following error: