About Terminal Server, Citrix, Delphi and other stuff
I recently had some time to play with VCDS and a friend’s RNS 315 navigation. By default there is no test mode or hidden menu with extra features like on some other Volkswagen systems.
Using VCDS we can however (temporarily) enable the Developer mode.
I was testing outgoing mail flow in my new Exchange 2010 setup, which should go from the CAS Servers to the Edge server in the DMZ.
After configuring the Edge subscription I noticed that outgoing mails got stuck in the queue with the following error:
“451 4.4.0 Primary target IP address responded with: "451 5.7.3 Cannot achieve Exchange Server authentication." Attempted failover to alternate host, but that did not succeed. Either there are no alternate hosts, or delivery failed to all alternate hosts.“
I verified that name resolution back and forth was ok and that I could communicate on port 25, 50389 and 50636.
Today I was reusing some old (pre vista) code the retrieves the Logon SID that I wrote a few years ago. The Logon SID is a special SID that identifies a logon session that has the form S-1-5-5-X-Y.
You can view your Logon SID with Process Explorer, right click a GUI process, select Properties and goto the Security Tab:
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:
# 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:
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:
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).
Snippet below can be used to programmatically determine if User Account Control is enabled:
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;
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.
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:
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!
Active Directory Altiris bug Citrix Dell Delphi Exchange Exchange2003 Exchange2010 Hewlett-Packard HP iOS Jailbreak Java LinkedIn Linux MSI MySQL Navigation Objects Office Outlook Passat PowerPoint PowerShell referall was returned RNS315 RNS510 SasLibEx script slow Terminal Server ThinApp TSAdmin TSAdminEx VBS VCDS Vista VMWare Volkswagen Windows PE WLAN Wordpress WTSWaitSystemEvent wts_event_flush
WP Cumulus Flash tag cloud by Roy Tanck requires Flash Player 9 or better.