Scritps do Office365 – parte1: Habilitando usuários contidos em um arquivo texto

São Carlos (esse final de semana tem F1) Estou iniciando essa semana uma sequência de posts sobre scripts para administração e deploy do Office365 / BPOS, tanto em PowerShell quanto em VBS. Esses scritps foram gentilmente disponibilizados pelo grande profissional em Office365, o Cristiano Gonçalves.

Nesse primeiro script (em PowerShell), vamos abordar como habilitar os usuários contidos em um arquivo texto. O arquivo deverá ter um endereço SMTP por linha.

Salvem o código em um arquivo chamado BPOS_EnableUsers.ps1.

O uso do mesmo é simples: BPOS_EnableUsers [nome do arquivo txt]

Eis o código:

#This script enables users contained in a txt file in BPOS
#Must be used as BPOS_EnableUsers [filename]
#The file must have one smtp user address per line
#Author: Cristiano Gonçalves

#gets the name of the users file
$SourceFile = $args[0]

#gets the user list content
$userlist = Get-Content $SourceFile

#getting credentials
$targetcred = $host.ui.PromptForCredential(“Need credentials”, “Please enter TARGET credentials.”, “”, “NetBiosUserName”)

#getting the subscriptionid
$subscriptions = Get-MSOnlineSubscription -Credential $targetcred
foreach($subscription in $subscriptions)
{
$write = “Subscription ID: ” + $subscription.SubscriptionId + “`r`n”
foreach($type in $subscription.SubscriptionServiceTypes)
{
$write += ”                 ” + $type + “`r`n”
}
Write-Host $write
}

Write-Host ‘Enter the Subscription ID to assign:’ -foreground “yellow”
$subscriptionid = Read-Host
Write-Host “”

#creating the logfile
$date = Get-Date -format “ddMMyyyy”
$LogFile = $date + “_activation.txt”
remove-item $LogFile -ea SilentlyContinue

#function to generate passwords
$strChar =  “A”,”B”,”C”,”D”,”E”,”F”,”G”,”H”,”I”,”J”,”K”,”L”,”M”,”N”,”O”,”P”,”Q”,”R”,”S”,”T”, “U”,”V”,”W”,”X”,”Y”,”Z”,”a”,”b”,”c”,”d”,”e”,”f”,”g”,”h”,”i”,”j”,”k”,”l”,”m”,”n”,”o”,”p”,”q”,”r”,”s”,”t”,”u”,”v”,”w”,”x”,”y”,”z”
$strNum =  “1”,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9″,”0″
$strComp =  “!”,”@”,”#”,”$”

#returns a complex password with 6 characters, two numbers and one special char
function generate-password
{
$pw = $null
for ($i=0; $i -lt 6; $i++)
{
$pw += get-random -InputObject $strChar
}
for ($i=0; $i -lt 2; $i++)
{
$pw += get-random -InputObject $strNum
}
$pw += get-random -InputObject $strComp
return $pw
}

#process the user list
$error.Clear()
foreach($user in $UserList)
{
$message = $(Get-Date -Format “ddMMyy hh:mm:ss”) +” Enabling User -> ” + $user
write-output $message
$passwd = generate-password
#Enables the online user with 25GB and for Trinidad & Tobago (NGC)
Enable-MSOnlineUser -Identity $user -Password $passwd -SubscriptionIDs $subscriptionid -UserLocation “TT” -MailboxQuotaSize 25GB -Credential $targetcred -Verbose
if($error.Count -ne 0)
{
$message = $(Get-Date -Format “ddMMyy hh:mm:ss”) + ” ERROR: User ” + $user + ” failed to enable.”
write-output $message | out-file -filePath $LogFile -append -noClobber
$message = $(Get-Date -Format “ddMMyy hh:mm:ss”) + ” ERROR:::: ” + $error[0].ToString()
write-output $message | out-file -filePath $LogFile -append -noClobber
$error.Clear()
}
else
{
$message = $(Get-Date -Format “ddMMyy hh:mm:ss”) + ” ENBLE: User ” + $user + ” enabled with passwd [” + $passwd + “].”
write-output $message | out-file -filePath $LogFile -append -noClobber
}
}

Abraços,

Carlos Monteiro.

Tags: , , , , , , ,

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s


%d blogueiros gostam disto: