Summary:
Using Powershell to make a secure connection to Exchange. Why? Because no password should be stored plain text, ANYWHERE!
Versions:
Powershell: 4.0 or greater
Exchange: 2013
Instructions:
First you have to create a secure string from the password of an account. This should be done on the server/workstation that will make the connection in the future. Do this by executing:
read-host -assecurestring | convertfrom-securestring | out-file C:\temp\Cred\securestring.txt
As a result, you should get a file called ‘securestring.txt’ on the location specified. Please open it for verification:
- You will not be able to see your password.
- The file actually has content.
Next chunck of code is used for connecting to the Exchange using the secured file made in the previous step.
$ExchangeServerUrl = “http://exchangeserver.domain.local/powershell/”
#Build EXChange Remote Secure Connection
#Build $cred variabele using secure password file$username = “Domain\ServiceAccount”
$password = cat C:\temp\Cred\securestring.txt | convertto-securestring
$cred = new-object -typename System.Management.Automation.PSCredential `
-argumentlist $username, $password#Build and import secure session to Exchange 2013 on ExchangeServer using $cred credentials
#Now Exchange CMDlets can be used as if it concerns an Exchange Posh session
$session = new-pssession -configurationname MIcrosoft.eXchange -connectionuri $ExchangeServerUrl -authentication kerberos -credential $cred
Import-PSSession $Session
You are now connected to your Exchange server using Powershell. This allows you to perform various Exchange tasks from Powershell without opening the Exchange Console:
- Enable-MailUser
- Set-MailUser
- Get-MailUser
- Get-MailContact
- ….
When done, don’t forget you should clear your object from memory (should be done with any object):
Remove-PSSession $Session