Monday, May 4, 2009

Citrix Protocol Driver Error

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.

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

http://khurramullah.wordpress.com

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.