sábado, 18 de octubre de 2014

[FastToUse] Send mail with Exchange Web Service(EWS) using PowerShell

What?
How to send emails from inside or outside your organization with Exchange 2007/2010/2013/Online and PowerShell.

Fast instructions:
  • First of all you need to download and install the latest Microsoft EWS managed API.
  • After that,
    • Select the right DLL path
    • Replace the username, password, EWS url
    • copy&paste 
    • And run it in PowerShell!

PowerShell Code:


#Import the DLL of Microsoft EWS, choose one
##Version 2.2
Import-module "C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll"
##For example if your version is 2.1 with x32 it will be
Import-module "C:\Program Files (x86)\Microsoft\Exchange\Web Services\2.1\Microsoft.Exchange.WebServices.dll"


#Create a Service Object and set Exchange 2010_SP2 version.
#If you don't set it, the default one is Exchange 2013
$version = [Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP2
$service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService($version)

#Set credentials
$username = "domain\username"
$password = "Your_Password"
$service.Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials -ArgumentList $username, $password

#EWS URL, if you do not want to use autodiscover
$url = "https://mail.domain.com/EWS/Exchange.asmx"
$service.Url = $url

#Create the Object and send e-mail
$message = New-Object Microsoft.Exchange.WebServices.Data.EmailMessage -ArgumentList $service
$message.From = "mail@domain.com"
$message.ToRecipients.Add('Recipient Name','recipient_1@domain.com')
$message.ToRecipients.Add('Recipient Name','recipient_2@domain.com')
##You can add more recipients, copying the line before
$message.Subject = "This is a test email"
$message.Body = "Message body. Mail from EWS."

#Send email, choose one
##If you want to send it directly
$message.SendAndSaveCopy()
##If you do not want to send it, only to save to drafts and send later
$message.Save()

More information:



Hope it helps!

[FastToUse] A new series of articles

Hi all,

Sometimes we do not want to read large articles explaining all the detailed information about an issue, code or anything else. We want it fast and running in not much time.

This is the reason of these new series of articles which always will have this structure:

  • [FastToUse] - Tag in the subject
  • What? - A short summary about the article
  • Fast Instructions - The instructions, if needed
  • Code/Bug/... - The core of the article with "the information"
  • More information - Links with detailed information if you want to explore more.
let's go to write!

lunes, 13 de octubre de 2014

Error starting cluster service in a Windows 2008 R2 Cluster

This post born after hours trying to resolve a Cluster issue, and without finding nothing clear in internet!

The problem:
Suddenly the second node of a Windows 2008 R2 Cluster, gets down and there are no way to start it up! The Event Viewer shows the following errors in System log:

Source: Service Control Manager
Event Id:7031
The Cluster Service service terminated unexpectedly. It has done this 1 time(s). The following corrective action will be taken in 60000 milliseconds: Restart Service
Source: Microsoft-Windows-FailoverClustering
Event Id:1069
Cluster resource 'Cluster Disk 1' in clustered service or application 'Cluster group' failed.
Source: Microsoft-Windows-FailoverClustering
Event Id:1573
Node 'node_name' failed to form a cluster. This was because the witness was not accessible. Please ensure that the witness resource is online and available.

Solution:
I tried to restart the server and to stop and start the cluster service with no success.

After that, I checked out the iSCSI configuration in the server and in the SAN, and I found some misconfigurations. After solving it, the problem continues, perhaps this is the origin of the problem, but not all is solved.

My third step is to run cluster service with log using the command:
cluster log /g
You can find the result in %windir%\cluster\reports. I could not see anything useful and went to revise every key of cluster in the regedit configuration at HKLM/Cluster, following some errors found in cluster service log....again no success.

Finally I decide to remove the node from the cluster and rejoin, and SOLVED. Some times its better to start from the end.

To remove a failed node from a cluster:

  1. Run this command from the failed node in elevated Power Shell:
    1. Import-Module FailoverClusters
    2. Clear-clusternode
  2. From the cluster administration MMC > right click on failed server, under nodes > More Actions > Evict
After step 2, you can add the node again into the cluster, and check Event Viewer for additional bugs.

Hope it helps!