Send SMS med Windows Powershell

Send SMS med Windows Powershell

I denne artikkelen skal vi se på hvordan man kan sende SMS fra Windows PowerShell, samt noen eksempler på praktisk bruk av dette.

I Microsoft Outlook finnes det et tillegg som heter “Microsoft Outlook SMS Add-in”, som gjør det mulig å sende SMS-meldinger. Dette tillegget er innebygd i Outlook 2010, men kan også lastes ned og installeres i Outlook 2003 og 2007.

Microsoft Office Online Hjelp finner man veiledninger på hvordan man setter opp en konto for SMS, samt hvordan man sender SMS-meldinger. Innstillinger for de ulike mobiloperatørene kan man finne på Microsofts nettsider.

Jeg har tatt en titt på COM-objektet for Outlook, og det viste seg å være forholdsvis enkelt å benytte dette API`et for å sende meldinger fra Windows PowerShell via SMS-tillegget for Outlook. Basert på dette har jeg laget en såkalt Advanced function i Windows PowerShell v2 som heter Send-SMSMessage.

For å kunne bruke denne funksjonen må den først defineres i PowerShell-sesjonen du bruker. Dette kan gjøres enten ved å kopiere og lime funksjonen direkte inn i sesjonen, lagre den som en ps1 script-fil og “dot source” den, legge den inn i profilen din eller i en modul. Skal du benytte den ofte vil jeg anbefale å legge den inn i PowerShell-profilen din, slik at den automatisk defineres når du starter PowerShell.

Når dette er på plass kan du som vanlig i PowerShell finne ut hvordan du bruker kommandoen med Get-Help cmdlet`en:

Eksempel på bruk:

Funksjonen sjekker om Outlook er installert, og stopper hvis sjekken feiler med en påfølgende advarsel:

Det kontrolleres også om det er satt opp en konto i Outlook for SMS:

Feilmeldinger som er relatert til selve SMS-tjenesten, feil syntaks på telefon nummer og så videre blir håndtert av SMS-tillegget. Disse feilmeldingene vil umiddelbart leveres i innboksen i Outlook:

Funksjonen er kun testet i Outlook 2010, men skal også fungere i 2003 og 2007 når SMS-tillegget er installert.

Siden funksjonen godtar “ValueFromPipeline” og “ValueFromPipelineByPropertyName” kan man “pipe” inndata til funksjonen fra eksempelvis Active Directory cmdlets for Windows PowerShell. Et gitt eksempel på dette henter alle brukere fra Active Directory som har et mobilnummer definert. Deretter sendes en SMS til disse brukerne som inneholder hver bruker`s brukernavn:

Et annet praktisk eksempel på bruk av Send-SMSMessage kan være i forbindelse med oppretting av brukere. Når nye Active Directory-brukere scriptes vil man samtidig kunne bruke Send-SMSMessage til å sende den nye brukeren en SMS-melding som inneholder brukernavn og passord.

Kom gjerne med flere forslag til praktisk bruk.

Bonus tips

  • Man kan også sende MMS-meldinger fra PowerShell med Outlook COM-objektet. For å gjøre dette, benytt “olMobileItemMMS” istedetfor “olMobileItemSMS” på følgende linje: $NewMessage = $outlook.CreateItem(“olMobileItemMMS”). Du bør også utforske andre egenskaper på MMS-objektet som opprettes, for eksempel Attachment-egenskapen som gjør det mulig å legge ved for eksempel bilder.
  • Om du har flere SMS-kontoer I Outlook kan du spesifiere hvilken som skal brukes for sending ved å sette SendUsingAccount-egenskapen.
  • Om du bruker Telenor skal “Service Provider URL” settes til https://telenormobil.no/smapi/services/omsv3_service i kontoinnstillingene.
Sender din rapport, vennligst vent...

Ved å rapportere en artikkel gjør du forfatteren oppmerksom på en eventuell feil i artikkelen. Dette vil hjelpe oss til å rette opp feilen så fort som mulig.


Rapport:
Skriv din rapport:
(frivillig)