### -----------------------------------------------------------------
### Written by Matt Brown - 11/16/2010
###
### Powershell script requires a csv text file in the following Format:
### > email
### > address1@domain.com
### > user2@domain.com
### -----------------------------------------------------------------
## Setup Vars
$ImportFile = "C:\live-email-list.csv"
$Language = "en-US"
$Timezone = "Pacific Standard Time"
$DateFormat = "M/d/yyyy"
$TimeFormat = "h:mm tt"
## get the email accounts to change
$EmailAccounts = import-csv $ImportFile
Write-Host " Accounts Found in CSV File" $EmailsToCheck.Length
if($EmailsToCheck.Length -gt 0) {
## Setup Outlook Session Session and modify accounts
$LiveCred = Get-Credential
$loop = 5
while($loop -gt 0) {
# this loops handles reconnect if connection to Live fails on first try.
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
if($Session) {
$loop = 0
Import-PSSession $Session
$EmailAccounts | foreach {
$Check = Get-MailboxRegionalConfiguration $_.email
if($Check -ne $Timezone) {
Write-Host $_.email
Set-MailboxRegionalConfiguration $_.email -TimeZone $Timezone -Language $Language -DateFormat $DateFormat -TimeFormat $TimeFormat
}
}
} else {
Write-Host "Session not created... trying again"
$loop -= 1
}
}
}
Remove-PSSession $Session.Id
Ramblings from University IT... VMWare, NetApp, Powershell,Active Directory, Exchange and Scripting.
Tuesday, November 16, 2010
Powershell: Update Timezone Region for Outlook.com Live@Edu Accounts
Here's a quick script to update the Timezone and Language of all your Outlook Live Accounts using remote powershell.
Subscribe to:
Post Comments (Atom)
Hi Matt
ReplyDeleteThanks for producing the script but i'm having issues when i run it. I'm a complete PS Novice so please be patient! i either get this error:
Accounts Found in CSV File
Import-PSSession : Cannot validate argument on parameter 'Session'. The argument is null. Supply a non-null argument and try the comman
d again.
At line:44 char:26
+ Import-PSSession <<<< $Session
+ CategoryInfo : InvalidData: (:) [Import-PSSession], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.ImportPSSessionCommand
or if move the $Session.Id to a diffrent line i get a popup box : cmdlet import-pssession at command line postion 1 supply value
and if i remove the session.id totally i just Accounts Found in CSV File
Please can you advise
The connection redirects a couple of times, so your Network needs to allow redirections. Also, you need to connect with a valid office 365 admin account.
DeleteThis comment has been removed by a blog administrator.
ReplyDelete