I do this all the time for the same reason as you. Not enough room on the exchange server.
You need to have a mapped drive to a server with more room. For our purposes, lets call it drive G:
First I stop all exchange server services.
Next, I copy the priv.edb file to the g:\exchange directory on the other server (best to have a copy in case something goes wrong).
Then I run the following command:
eseutil /d /ispriv /tg:\exchange\tempdfrg.edb
/d - is a database switch
/ispriv - Private Information Store
/t<filename> - Creates and renames the new compacted database in the specified path
This will defrag your Exchange database to an alternate server. Once the defrag is complete, it copies the defragged tempdfrg.edb file back to your original priv.edb file on your Exchange server.
Please note that performing this operation over a network connection, that it will take a bit longer (in my case about 2 hours). The first hour for compression, and the second hour to copy back to the original database. The utililty will look like it has stalled (ie second hour), but be patient, and wait until you are returned to the command prompt.
Once completed, I normally reboot the Exchange server to get Exchange services restarted. Test it out to make sure it is running, and if all is well, you can go back to the second file server and delete tempdfrg.edb and your copy of priv.edb.
Help! I've fallen and I can't reach my beer.