Today i faced a very complex problem. My Clients were complaining that they are are getting Citrix Protocol Driver Error. After initial troubleshooting i found that there were some http errors on my web interface servers. I restarted IIS on WIS but no luck. I restarted IMA service on Presentations servers but issue still remained same. It was strange that i am getting this error for all Applications published on different servers this means that this error is not server dependent. i have tried Citrix article http://support.citrix.com/article/CTX106531 published on same issue and also tried disabling Session reliability http://support.citrix.com/article/CTX108439 but no luck. My Citrix environment consists of 2 Access gateway servers, 2 Web interface servers, 4 presentation servers and 1 license servers and we are using Netscaler device for load balancing. For narrowing issue i have disabled one web interface server from Load balancer and configured application to use only one presentation server but it didn’t solved the problem. I also restarted whole farm but no luck. Then i focused on Access gateway appliance and removed 1 appliance from Load balancing but issue remained same after that i enabled 1st device in Load balancing and removed second device from load balancing then after test i found that the issue is not occurring again and it is solved. I then logged on to the the troubled access gateway and found that this sever is not able to connect to the license server also this server is not configured to accept connections on port 80 only https. i am not sure why the sessions are not going to the other Access gateway which have correct configuration. I have to still fixed the licensing server connection issue but till now i haven't got any complain from the user.
Blogs about my Technical experience and Activities (I am also maintaining my blog on wordpress http://khurramullah.wordpress.com)
Monday, May 4, 2009
Thursday, April 30, 2009
My Wordpress Blog
I am now very annoyed with blogger and now decided to setup my wordpress tech blog also. Wordpress has more features and have awesome templates. From now onwards i will publish all my tech blogs on both wordpress and blogger. following is my wordpress tech blog address
Powershell Command for public folder permissions
If you want to replicate all permissions which parent public folder have to all child PFs, then you need to run following powershell script
adduserstopfrecursive.ps1 -toppublicfolder "<Parent Public Folder Name" -user "<User or group name>" -permissions –<permissions>
for example:
adduserstopfrecursive.ps1 -toppublicfolder "\SALES" -user "PFOwners" -permissions owner
Sunday, April 12, 2009
BlackBerry Permissions Configuration on Exchange 2007
If you are planning to install Blackberry services in your environment then you have to consider permissions required by BB on Exchange setup.
BB required following set of rights in order to perform operations on user mailboxes;
1. Send-As permissions on user mailboxes.
2. Receive-As permissions on mailboxes.
3. Ms-Exch-Store-Admin permissions.
You have to provide the above permissions to blackberry service accounts; following is the method for doing this;
Step one:
Provide View only Admin rights to BlackBerry Service Account
get-mailboxserver <mail_server_name> | add-exchangeadministrator BESAdmin –role ViewOnlyAdmin
Step Two:
Provide Send-As, Receive-As and MS-Exch-Store-Admin to BlackBerry service Account.
get-mailboxserver <mail_server_name> | add-adpermission –user BESAdmin –accessrights ExtendedRight –extendedrights Send-As, Receive-As, ms-Exch-Store-Admin
Wednesday, April 8, 2009
Microsoft Exchange Server Build numbers and release dates
Following is the list of all exchange server versions released by Microsoft with their build numbers and release dates for reference,
| Version | Build Number | Release Date |
| Microsoft Exchange Server 4.0 | 4.0.837 | Apr-96 |
| Microsoft Exchange Server 4.0 (a) | 4.0.993 | Aug-96 |
| Microsoft Exchange Server 4.0 SP1 | 4.0.838 | May-96 |
| Microsoft Exchange Server 4.0 SP2 | 4.0.993 | Aug-96 |
| Microsoft Exchange Server 4.0 SP3 | 4.0.994 | Nov-96 |
| Microsoft Exchange Server 4.0 SP4 | 4.0.995 | Apr-97 |
| Microsoft Exchange Server 4.0 SP5 | 4.0.996 | May-98 |
| Microsoft Exchange Server 5.0 | 5.0.1457 | Mar-97 |
| Microsoft Exchange Server 5.0 SP1 | 5.0.1458 | Jun-97 |
| Microsoft Exchange Server 5.0 SP2 | 5.0.1460 | Feb-98 |
| Microsoft Exchange Server 5.5 | 5.5.1960 | Nov-97 |
| Microsoft Exchange Server 5.5 SP1 | 5.5.2232 | Jul-98 |
| Microsoft Exchange Server 5.5 SP2 | 5.5.2448 | Dec-98 |
| Microsoft Exchange Server 5.5 SP3 | 5.5.2650 | Sep-99 |
| Microsoft Exchange Server 5.5 SP4 | 5.5.2653 | Nov-00 |
| Microsoft Exchange 2000 Server | 6.0.4417 | Oct-00 |
| Microsoft Exchange 2000 Server (a) | 6.0.4417 | Jan-01 |
| Microsoft Exchange 2000 Server SP1 | 6.0.4712 | Jul-01 |
| Microsoft Exchange 2000 Server SP2 | 6.0.5762 | Dec-01 |
| Microsoft Exchange 2000 Server SP3 | 6.0.6249 | Aug-02 |
| Microsoft Exchange 2000 Server post-SP3 | 6.0.6487 | Sep-03 |
| Microsoft Exchange 2000 Server post-SP3 | 6.0.6556 | Apr-04 |
| Microsoft Exchange 2000 Server post-SP3 | 6.0.6603 | Aug-04 |
| Microsoft Exchange Server 2003 | 6.5.6944 | Oct-03 |
| Microsoft Exchange Server 2003 SP1 | 6.5.7226 | May-04 |
| Microsoft Exchange Server 2003 SP2 | 6.5.7638 | Oct-05 |
| Microsoft Exchange Server 2007 | 8.0.685.24 or 8.0.685.25 | Dec-06 |
| Microsoft Exchange Server 2007 SP1 | 8.1.0240.006 | Nov-07 |
*Source Microsoft TechNet
Shrinking SQL 2000, 2005 Databases
If you ever run in a situation like you have only MBs of space left on production SQL servers and your transaction logs are growing bigger and bigger and you want to claim disk space immediately then you might need to run following command
Backup log <Database name> with no_log
This command is not recommended to run in normal circumstances and after this you are not able to recover your database point in time. if you have proper backups configured then you don't need to run this command because after each full backup the transaction logs are automatically truncated. Also in case you have log shipping configured then this command will break your log shipping sequences. Only use if you don't have any space left on physical disk and you don't have any other alternatives available.
if you don't required point in time recovery then change your database recovery model to ‘Simple’ doing this will ensure that your transaction log will not get bigger.
The above command will not reclaim disk space, you have to run DBCC shrink statement or go to the SQL management studio and manually shrink log file.
Wednesday, March 4, 2009
Granting Permissions on Mailboxes using Power shell
If you have some accounts which needs to have full access permission on lots of mailboxes then following power shell command is for you. In order to use this command you have to perform below steps;
1. Create one csv file name it users.csv and save it to C:\ drive.
2. Type text name in first line. Please make sure that there is no space or any other special character after text name otherwise the command will not run.
3. Copy all user ids on which you want to add permissions after text name in same column.
4. Open Exchange Management Shell and type following command and press enter;
Import-CSV "C:\users.csv" | ForEach{Add-MailboxPermission –ID $_.name –AccessRights FullAccess –User [Account id]}
Replace [Account id] with the account id which you want to grant full access permissions on mailboxes.
for verifying that the permissions has been granted, Run following command;
Import-CSV "C:\users.csv" | ForEach{Get-MailboxPermission –ID $_.name –User [Account id}
You can add more columns in you text file if you want by using comma ‘,’ and can reference it in the command as same as you are referencing the first column.
If you don’t have aliases or Ids and have only display names and these display names are in last name first name format such as smith, john then you have to add your names in your .csv file like this “smith, john”
if you want to do opposite and wants to add full access permission for lots users on one mailbox then following will be your command
Import-Csv c:\users.csv | foreach {Add-MailboxPermission –Identity [Account Id] -User $_.users -Accessright Fullaccess -InheritanceType all}
Replace [Account Id] with the mailbox alias or name.