$theTitle=wp_title(" - ", false); if($theTitle != "") { ?>
About Virtualization, VDI, SBC, Application Compatibility and anything else I feel like
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 |
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:
11 Aug // php the_time('Y') ?>
The GetTokenInformation function can be used with the TokenLinkedToken Information Class on Windows Vista and higher to the linked (Elevated) token.
This is useful when User Account Control is enabled and you want to launch an elevated process e.g. from a service.
This example code fails however when User Account Control is disabled:
1 2 3 4 5 6 7 8 9 | if (bElevate) { ZeroMemory(&tlt, sizeof(tlt)); bResult = GetTokenInformation(hToken, TokenLinkedToken, &tlt, sizeof(tlt), &RetLength); if (!bResult) { // Handle error here } } |
GetLastError() returns 1312 which is defined in winerror.h as ERROR_NO_SUCH_LOGON_SESSION with description “A specified logon session does not exist. It may already have been terminated.”
So you should check if User Account Control is enabled in such cases (or make this error non critical).
11 Aug // php the_time('Y') ?>
Snippet below can be used to programmatically determine if User Account Control is enabled:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | uses JwaWinbase, JwaWinNt; function IsUACEnabled: Boolean; var hToken: THandle; tet: TOKEN_ELEVATION_TYPE; dwSize: DWORD; begin Win32Check(OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, hToken)); // TokenElevationType class only available on Vista+ Win32Check(GetTokenInformation(hToken, TokenElevationType, @tet, SizeOf(tet), dwSize)); Result := tet <> TokenElevationTypeDefault; end; |
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.
5 Jul // php the_time('Y') ?>
I got the following error while installing Exchange 2010: “There are no more endpoints available from the endpoint mapper. (Exception from HRESULT: 0x800706D9)”
I looked up HRESULT 0x800706D9 which is defined in winerror.h as EPT_S_NOT_REGISTERED with the same error text.
I looked at the ExchangeSetup.log in C:\ExchangeSetupLogs and this indicates that the error occurs when the install-ADTopologyService cmdlet tries to add some rules to the firewall:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | [07-04-2011 14:03:04.0111] [2] Beginning processing install-ADTopologyService [07-04-2011 14:03:04.0189] [2] [WARNING] An unexpected error has occurred and a Watson dump is being generated: There are no more endpoints available from the endpoint mapper. (Exception from HRESULT: 0x800706D9) [07-04-2011 14:03:04.0189] [2] [ERROR] There are no more endpoints available from the endpoint mapper. (Exception from HRESULT: 0x800706D9) [07-04-2011 14:03:13.0751] [1] The following 1 error(s) occurred during task execution: [07-04-2011 14:03:13.0751] [1] 0. ErrorRecord: There are no more endpoints available from the endpoint mapper. (Exception from HRESULT: 0x800706D9) [07-04-2011 14:03:13.0751] [1] 0. ErrorRecord: System.Runtime.InteropServices.COMException (0x800706D9): There are no more endpoints available from the endpoint mapper. (Exception from HRESULT: 0x800706D9) at Interop.NetFw.INetFwRules.Add(NetFwRule rule) at Microsoft.Exchange.Security.WindowsFirewall.ExchangeFirewallRule.Add() at Microsoft.Exchange.Configuration.Tasks.ManageService.Install() at Microsoft.Exchange.Management.Tasks.InstallADTopologyService.InternalProcessRecord() at Microsoft.Exchange.Configuration.Tasks.Task.ProcessRecord() at System.Management.Automation.CommandProcessor.ProcessRecord() [07-04-2011 14:03:13.0751] [1] [ERROR] The following error was generated when "$error.Clear(); if (!(get-service MSExchangeADTopology* | where {$_.name -eq "MSExchangeADTopology"})) { install-ADTopologyService } " was run: "There are no more endpoints available from the endpoint mapper. (Exception from HRESULT: 0x800706D9)". [07-04-2011 14:03:13.0751] [1] [ERROR] There are no more endpoints available from the endpoint mapper. (Exception from HRESULT: 0x800706D9) |
The Windows Firewall service was disabled, so I set it to Automatic, started it and enabled it and then the setup ran without errors
I am running a virtualized Mac OS X machine in my VMWare Workstation but I noticed that after a period of inactivity the virtual machine would sometimes freeze.
Because this only happens after inactivity I assumed it had something to do with Power Saving so I changed the Energy Saver settings and that fixed it!
I have used the WP-Postviews WordPress plugin for a while to keep track of the number of times my blog posts are being read.
But after installing the W3 Total Cache plugin I noticed that the read counters weren’t properly updated anymore. I figured this was a consequence of using a cache.
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?
I encountered another interesting error during Exchange 2010 installation today. During the Organization Preparation I got the following error:
The setup.log doesn’t give us much more detailed info:
1 2 3 4 5 6 7 8 9 10 11 | [06-22-2011 11:16:29.0614] [2] [ERROR] Active Directory operation failed on dc001.zorg.local. This error is not retriable. Additional information: The requested object has a non-unique identifier and cannot be retrieved. Active directory response: 0000219D: SvcErr: DSID-031A0FC0, problem 5003 (WILL_NOT_PERFORM), data 0 [06-22-2011 11:16:29.0630] [2] [ERROR] The server cannot handle directory requests. [06-22-2011 11:16:29.0630] [2] Ending processing initialize-ExchangeUniversalGroups [06-22-2011 11:16:29.0630] [1] The following 1 error(s) occurred during task execution: [06-22-2011 11:16:29.0630] [1] 0. ErrorRecord: Active Directory operation failed on dc001.zorg.local. This error is not retriable. Additional information: The requested object has a non-unique identifier and cannot be retrieved. Active directory response: 0000219D: SvcErr: DSID-031A0FC0, problem 5003 (WILL_NOT_PERFORM), data 0 [06-22-2011 11:16:29.0630] [1] 0. ErrorRecord: Microsoft.Exchange.Data.Directory.ADOperationException: Active Directory operation failed on dc001.zorg.local. This error is not retriable. Additional information: The requested object has a non-unique identifier and cannot be retrieved. Active directory response: 0000219D: SvcErr: DSID-031A0FC0, problem 5003 (WILL_NOT_PERFORM), data 0 |
I remembered from a Tweet by Helge Klein recently that the Active Directory schema has no mechanism for enforcing uniqueness of an attribute.