Basic Office365 Users and Group Management with PowerShell

The script comments will be enought to explain each step.  Its kind of Hello World scripts.  But may help someone for copy paste 🙂

#http://technet.microsoft.com/en-us/library/hh974317.aspx
# First Get the Stuff you need. You do not need a server.  Windows 7, Windows 8 is good enought 🙂 But 64Bit.
#Connecting with Office 365
$CRed = Get-Credential
Connect-MsolService -Credential $CRed

#Listing Users
Get-MsolUser | Select UserPrincipalName, DisplayName, ObjectId

#Listing New User
New-MsolUser -UserPrincipalName "username@domain.onmicrosoft.com" -DisplayName "FirstName LastName" -FirstName "FirstName" -LastName "LastName"

New-MsolUser -UserPrincipalName "testusername@domain.onmicrosoft.com" -DisplayName "FirstName LastName" -FirstName "FirstName" -LastName "LastName"

#Sending to REcyle Bin
Remove-MsolUser -UserPrincipalName "testusername@domain.onmicrosoft.com"

#Restoring the User from Recyle Bin
Restore-MsolUser -UserPrincipalName "testusername@domain.onmicrosoft.com"

#Sending to Permanently Removing
Remove-MsolUser -UserPrincipalName "testusername@domain.onmicrosoft.com" -RemoveFromRecycleBin -Force

#Findig User
Get-MsolUser | ? DisplayName -eq "FirstName LastName" 
Get-MsolUser | ? UserPrincipalName -eq "username@domain.onmicrosoft.com"

#Getting and chaning User information.  Assigning Usage Location to assing Licneses
$TestUser = Get-MsolUser | ? UserPrincipalName -EQ "username@domain.onmicrosoft.com"
Set-MsolUser -ObjectId $TestUser.ObjectId -UsageLocation "US"
Set-MsolUser -ObjectId $TestUser.ObjectId -DisplayName "Changed First, LastName" -FirstName "NewFirstName" -LastName "NewLastName"

#Display Licenses
Get-MsolUser | ft displayname, Licenses

#List the Office 365 Subscription or Sku
Get-MsolAccountSku

#Set the License for User (This will assign all the Available Licenses)
Set-MsolUserLicense -ObjectId $TestUser.ObjectId -AddLicenses (Get-MsolAccountSku).AccountSkuId
Set-MsolUserLicense -UserPrincipalName $TestUser.UserPrincipalName -AddLicenses (Get-MsolAccountSku).AccountSkuId

#DisplayUser Information
Get-MsolUser | ft displayname, Licenses

#List All Plans
Get-MsolAccountSku | Where-Object {$_.SkuPartNumber -eq "ENTERPRISEPACK"} | ForEach-Object {$_.ServiceStatus}
#YAMMER_ENTERPRISE PendingInput 
#RMS_S_ENTERPRISE Success 
#OFFICESUBSCRIPTION Success 
#MCOSTANDARD Success 
#SHAREPOINTWAC Success 
#SHAREPOINTENTERPRISE Success 
#EXCHANGE_S_ENTERPRISE

#Making a Sub Option object for Selective values
$Options = New-MsolLicenseOptions -AccountSkuId (Get-MsolAccountSku).AccountSkuId -DisabledPlans SHAREPOINTWAC, EXCHANGE_S_ENTERPRISE

#Assigning it user object 
Set-MsolUserLicense -UserPrincipalName $TestUser.UserPrincipalName -LicenseOptions $Options -Verbose

#Creating a New Office 365 Group 
$Group = New-MsolGroup -DisplayName "ATM" -Description "ATM Users"
#Getting the Group
$Group = Get-MsolGroup | ? DisplayName -EQ "ATM"
#Adding Member to Group
Add-MsolGroupMember -GroupObjectId $Group.ObjectId -GroupMemberObjectId $TestUser.ObjectId
Get-MsolGroupMember -GroupObjectId $Group.objectId

#Reading Properties of Users in a Group
Get-MsolGroupMember -GroupObjectId $Group.ObjectId -All | Select ObjectId, DisplayName, EmailAddress

#REmvoing Group Peramentnly - not Recylebin here 🙂
Remove-MsolGroup -ObjectId $Group.ObjectId

#Sampe CSV
#https://portal.office.com/UserManagement/Samples/Import_User_Sample_en.csv
#Blank CSV
#https://portal.office.com/UserManagement/Templates/Import_User_Template_en.csv

#Build Import Users from CSV (Please Remove Formatting if it does not work :))
Import-Csv -Path c:\Users.csv | ForEach-Object 
    { 
        New-MsolUser -UserPrincipalName $_."UPN"   -AlternateEmailAddresses $_."AltEmail" 
                    -FirstName $_."FirstName"     -LastName $_."LastName" 
                    -DisplayName $_."DisplayName" -BlockCredential $False 
                    -ForceChangePassword $False   -LicenseAssignment $_."LicenseAssignment" 
                    -Password $_."Password"       -PasswordNeverExpires $True 
                    -Title $_."Title"             -Department $_."Department" 
                    -Office $_."Office"           -PhoneNumber $_."PhoneNumber" 
                    -MobilePhone $_."MobilePhone" -Fax $_."Fax" 
                    -StreetAddress $_."StreetAddress" -City $_."City" 
                    -State $_."State"                 -PostalCode $_."PostalCode" 
                    -Country $_."Country"             -UsageLocation $_."UsageLocation" 
    }
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s