join three command to one script

I have below three syntax, that i need to put in single script.

my purpose is that, i want the the below exchange server components state will come to email, as i will put this .ps1 file in schedule task.

i am using remote powershell

=========================================
$UserName = 'domain\username'
$Password = 'secret password'
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $UserName, (ConvertTo-SecureString $Password -asPlaintext -Force)

$session = New-PSSession –ConfigurationName Microsoft.Exchange -ConnectionUri "http://exchangecasarray.contoso.com/powershell" -Credential $Credential -Authentication Kerberos -AllowRedirection
Import-PSSession $session
Set-AdServerSettings -ViewEntireForest $true

===================================================================

second smtp setting

$smtpsettings = @{
    To =  "administrator@exchangeserverpro.net"
    From = "exchangeserver@exchangeserverpro.net"
    Subject = "$reportemailsubject - $now"
    SmtpServer = "smtp.exchangeserverpro.net"
    }

==================================================

output in email

Get-ExchangeServer | Get-ServerComponentState | ft



Please suggest, my purpose is to set this whole joined script in task scheudler and result will come on email.
LVL 5
Addy NadiaExpertAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Qlemo"Batchelor", Developer and EE Topic AdvisorCommented:
It's almost everything there already:
UserName = 'domain\username'
$Password = 'secret password'

$smtpsettings = @{
    To =  "administrator@exchangeserverpro.net"
    From = "exchangeserver@exchangeserverpro.net"
    Subject = "$reportemailsubject - $now"
    SmtpServer = "smtp.exchangeserverpro.net"
    }

# -----------

$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $UserName, (ConvertTo-SecureString $Password -asPlaintext -Force)

$session = New-PSSession –ConfigurationName Microsoft.Exchange -ConnectionUri "http://exchangecasarray.contoso.com/powershell" -Credential $Credential -Authentication Kerberos -AllowRedirection
Import-PSSession $session
Set-AdServerSettings -ViewEntireForest $true

# Send as plain text mail
Send-MailMessage @smtpsettings -Body (Get-ExchangeServer | Get-ServerComponentState | ft -a Name, Component, State | Out-String)

# or send as HTML mail.
# Send-MailMessage @smtpsettings -BodyAsHTML -Body (Get-ExchangeServer | Get-ServerComponentState |  select Name, Component, State | convertTo-HTML)

Open in new window

I've provided a choice between HTML and plain text body, with the plain text being active.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Addy NadiaExpertAuthor Commented:
so in this script, can i normally test it while running it in powershell?

and also i need to jst change username and password syntax above

You are Really a Champ !!

Thanks,
Andy
Addy NadiaExpertAuthor Commented:
Awsum.. i tried
 it runs perfectly fine.. thank you so much

but outlook comes like below in email, can this be adjusted correctly, as seen Name and component are together

Name Component                  State
---- ---------                  -----
     ServerWideOffline          Active
     HubTransport               Active
     FrontendTransport          Active
     Monitoring                 Active
     RecoveryActionsEnabled     Active
     AutoDiscoverProxy          Active
     ActiveSyncProxy            Active
     EcpProxy                   Active
     EwsProxy                   Active
     ImapProxy                  Active
     OabProxy                   Active
     OwaProxy                   Active
     PopProxy                   Active
     PushNotificationsProxy     Active
     RpsProxy                   Active
     RwsProxy                   Active
     RpcProxy                   Active
     UMCallRouter               Active
     XropProxy                  Active
     HttpProxyAvailabilityGroup Active
     ForwardSyncDaemon          Active
     ProvisioningRps            Active
     MapiProxy                  Active
     EdgeTransport              Active
     HighAvailability           Active
     SharedCache                Active
     ServerWideOffline          Active
     HubTransport               Active
     FrontendTransport          Active
     Monitoring                 Active
     RecoveryActionsEnabled     Active
     AutoDiscoverProxy          Active
     ActiveSyncProxy            Active
     EcpProxy                   Active
     EwsProxy                   Active
     ImapProxy                  Active
     OabProxy                   Active
     OwaProxy                   Active
     PopProxy                   Active
     PushNotificationsProxy     Active
     RpsProxy                   Active
     RwsProxy                   Active
     RpcProxy                   Active
     UMCallRouter               Active
     XropProxy                  Active
     HttpProxyAvailabilityGroup Active
     ForwardSyncDaemon          Active
     ProvisioningRps            Active
     MapiProxy                  Active
     EdgeTransport              Active
     HighAvailability           Active
     SharedCache                Active
     ServerWideOffline          Active
     HubTransport               Active
     FrontendTransport          Active
     Monitoring                 Active
     RecoveryActionsEnabled     Active
     AutoDiscoverProxy          Active
     ActiveSyncProxy            Active
     EcpProxy                   Active
     EwsProxy                   Active
     ImapProxy                  Active
     OabProxy                   Active
     OwaProxy                   Active
     PopProxy                   Active
     PushNotificationsProxy     Active
     RpsProxy                   Active
     RwsProxy                   Active
     RpcProxy                   Active
     UMCallRouter               Active
     XropProxy                  Active
     HttpProxyAvailabilityGroup Active
     ForwardSyncDaemon          Active
     ProvisioningRps            Active
     MapiProxy                  Active
     EdgeTransport              Active
     HighAvailability           Active
     SharedCache                Active
     ServerWideOffline          Active
     HubTransport               Active
     FrontendTransport          Active
     Monitoring                 Active
     RecoveryActionsEnabled     Active
     AutoDiscoverProxy          Active
     ActiveSyncProxy            Active
     EcpProxy                   Active
     EwsProxy                   Active
     ImapProxy                  Active
     OabProxy                   Active
     OwaProxy                   Active
     PopProxy                   Active
     PushNotificationsProxy     Active
     RpsProxy                   Active
     RwsProxy                   Active
     RpcProxy                   Active
     UMCallRouter               Active
     XropProxy                  Active
     HttpProxyAvailabilityGroup Active
     ForwardSyncDaemon          Active
     ProvisioningRps            Active
     MapiProxy                  Active
     EdgeTransport              Active
     HighAvailability           Active
     SharedCache                Active
     ServerWideOffline          Active
     HubTransport               Active
     FrontendTransport          Active
     Monitoring                 Active
     RecoveryActionsEnabled     Active
     AutoDiscoverProxy          Active
     ActiveSyncProxy            Active
     EcpProxy                   Active
     EwsProxy                   Active
     ImapProxy                  Active
     OabProxy                   Active
     OwaProxy                   Active
     PopProxy                   Active
     PushNotificationsProxy     Active
     RpsProxy                   Active
     RwsProxy                   Active
     RpcProxy                   Active
     UMCallRouter               Active
     XropProxy                  Active
     HttpProxyAvailabilityGroup Active
     ForwardSyncDaemon          Active
     ProvisioningRps            Active
     MapiProxy                  Active
     EdgeTransport              Active
     HighAvailability           Active
     SharedCache                Active
     ServerWideOffline          Active
     HubTransport               Active
     FrontendTransport          Active
     Monitoring                 Active
     RecoveryActionsEnabled     Active
     AutoDiscoverProxy          Active
     ActiveSyncProxy            Active
     EcpProxy                   Active
     EwsProxy                   Active
     ImapProxy                  Active
     OabProxy                   Active
     OwaProxy                   Active
     PopProxy                   Active
     PushNotificationsProxy     Active
     RpsProxy                   Active
     RwsProxy                   Active
     RpcProxy                   Active
     UMCallRouter               Active
     XropProxy                  Active
     HttpProxyAvailabilityGroup Active
     ForwardSyncDaemon          Active
     ProvisioningRps            Active
     MapiProxy                  Active
     EdgeTransport              Active
     HighAvailability           Active
     SharedCache                Active
     ServerWideOffline          Active
     HubTransport               Active
     FrontendTransport          Active
     Monitoring                 Active
     RecoveryActionsEnabled     Active
     AutoDiscoverProxy          Active
     ActiveSyncProxy            Active
     EcpProxy                   Active
     EwsProxy                   Active
     ImapProxy                  Active
     OabProxy                   Active
     OwaProxy                   Active
     PopProxy                   Active
     PushNotificationsProxy     Active
     RpsProxy                   Active
     RwsProxy                   Active
     RpcProxy                   Active
     UMCallRouter               Active
     XropProxy                  Active
     HttpProxyAvailabilityGroup Active
     ForwardSyncDaemon          Active
     ProvisioningRps            Active
     MapiProxy                  Active
     EdgeTransport              Active
     HighAvailability           Active
     SharedCache                Active
     ServerWideOffline          Active
     HubTransport               Active
     FrontendTransport          Active
     Monitoring                 Active
     RecoveryActionsEnabled     Active
     AutoDiscoverProxy          Active
     ActiveSyncProxy            Active
     EcpProxy                   Active
     EwsProxy                   Active
     ImapProxy                  Active
     OabProxy                   Active
     OwaProxy                   Active
     PopProxy                   Active
     PushNotificationsProxy     Active
     RpsProxy                   Active
     RwsProxy                   Active
     RpcProxy                   Active
     UMCallRouter               Active
     XropProxy                  Active
     HttpProxyAvailabilityGroup Active
     ForwardSyncDaemon          Active
     ProvisioningRps            Active
     MapiProxy                  Active
     EdgeTransport              Active
     HighAvailability           Active
     SharedCache                Active
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

Qlemo"Batchelor", Developer and EE Topic AdvisorCommented:
"Name and component are together" - not correct, the name is empty. You probably have a different Exchange release than I. But for better formatting, try the HTML mail version, and replace "Name" with "Identity":
# Send as plain text mail
# Send-MailMessage @smtpsettings -Body (Get-ExchangeServer | Get-ServerComponentState | ft -a Identity, Component, State | Out-String)

# or send as HTML mail.
Send-MailMessage @smtpsettings -BodyAsHTML -Body (Get-ExchangeServer | Get-ServerComponentState |  select Identity, Component, State | convertTo-HTML)

Open in new window

Addy NadiaExpertAuthor Commented:
i think you are not getting my query, i mean output that coming in email
is not in format

the data going here and dere like below

means if column status the below data not come below to status, it is not in format.
i mean exact like below it need to be

State
Active
Active
Active
Addy NadiaExpertAuthor Commented:
Thank you so much

i am so Thankful to EE to have so brilliant engineers, its worth to have a Subscription on EE
Qlemo"Batchelor", Developer and EE Topic AdvisorCommented:
With the latest change you get your email in HTML format. Maybe your mail client does not accept/display HTML mail - if this is the case, there is nothing we can do. For plain text to be properly formatted you need to have a mono-spaced (non-proportional) font in your email client.
Addy NadiaExpertAuthor Commented:
Got it.. Many thanksss
Addy NadiaExpertAuthor Commented:
Got it.. Many thanksss
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Exchange

From novice to tech pro — start learning today.