Categorie archief: PowerShell

Waarschuwingen in e-mail

Microsoft controleert of de verzender van een e-mail legitiem is. Dit doen zij onder andere door het controleren van het SPF record. Wanneer het SPF record niet gecontroleerd kan worden zal er de volgende melding worden gegeven

“Deze afzender heeft onze fraudedetectiecontroles niet doorstaan en gebruikt mogelijk een vals adres”

Er zijn redenen waardoor je dit uit zo willen zetten. Dit kan met de volgende code

Set-HostedContentFilterPolicy -Identity "default" -InlineSafetyTipsEnabled $false

Hier wordt er wel vanuit gegaan dat de default policy gebruikt wordt. Indien er een aangepast policy gemaakt is, moet “default” aangepast wordt naar de aangepaste naam.

Onbelangrijke mail uitzetten

Microsoft heeft een nieuwe functie geïntroduceerd: Onbelangrijke mail. Met deze functie worden berichten die volgens Microsoft niet belangrijk zijn in een aparte map geplaatst. Dit zou de gebruiker tijd besparen, je hoeft immers niet alle “nutteloze” e-mail berichten te lezen.

Het systeem is zelf lerend, je kan hier geen mails aan toevoegen of expliciet uitzonderen. Je kan het leren wel helpen door onbelangrijke mail handmatig te verslepen naar de map. Er zijn daarom talloze redenen om de functie uit te zetten voor de hele organisatie of voor een enkele gebruiker.

Een gebruiker kan dit zelf uit zetten door in het postvak te gaan naar Opties, Onbelangrijke e-mail en vervolgens het vinkje voor “Items geïdentificeerd als onbelangrijke e-mail afzonderen” uit te zetten.

Om dit voor de hele organisatie te doen kan je de volgende PowerShell code gebruiken

Get-Mailbox | Set-Clutter -Enable $false

Voor een enkele gebruiker gebruik je het volgende commando, waar je gebruiker@office365blog.nl vervangt door de gebruikersnaam van de user

Set-Clutter -Identity gebruiker@office365blog.nl -Enable $false

Om de onbelangrijke mail weer aan te zetten vervang je $false door $true

Meerdere domeinen toevoegen

Het is niet veel werk om een enkel domein toe te voegen, het tekstrecord op te vragen en vervolgens de overige records op te vragen. Voor een hoop domeinen tegelijk kan PowerShell het iets makkelijker maken. De domeinen toevoegen plus het opvragen en valideren van de tekst records is via PowerShell te doen. Het in bulk opvragen van de mx records helaas niet.

Eerst is er een lijst met domeinen nodig. Maak een tekstbestand met op elke regel een domein. Sla deze op als Domeinen.txt Bijvoorbeeld:

domein1.nl
domein2.nl
domein3.nl

Vervolgens kan je de domeinen importeren in je tenant

$Domeinen = Get-Content .\Domeinen.txt

De .\ staat dan voor de folder waarin je PowerShell opent, je kan deze dus ook veranderen naar een ander pad.

Nu kan je alle domeinen toevoegen als nieuw domein in Office365

foreach ($domain in $Domeinen) {New-MsolDomain -Name $domain}

Wanneer alle domeinen zijn toegevoegd kan je het TXT records opvragen om aan te passen in je DNS

foreach ($domain in $Domeinen) {Get-MsolDomainVerificationDns -DomainName $domain -Mode DnsTxtRecord}

Je krijgt nu een lijst waar je per domein het toe te voegen TXT-record ziet samen met de TTL. Als de DNS is aangepast kan je de volgende code gebruiken om de domeinen te controleren.

$Domeinen | Confirm-MsolDomain 

Helaas zal de rest via de website moeten, maar dit bespaart een hoop tijd.

Niet kunnen inloggen, geen foutmelding en dirsync

De titel is misschien een beetje onduidelijk, maar dat is het probleem ook. Wanneer je met verkeerde credentials inlogt bij Office 365, krijg je netjes een foutmelding. Met de juiste gegevens zou je moeten kunnen inloggen. In een specifiek geval konden bepaalde gebruikers niet inloggen en kregen geen foutmelding te zien.

De omgeving bestond uit een E3 tenant met DirSync. Gebruikers stonden in de zelfde OU als andere gebruikers en hadden geen verschillen in rechten. Het forceren van de DirSync op zich had geen effect. Onderstaande stappen hebben het probleem verholpen.

Eerst moet de gebruiker verwijderd worden. Doordat het adres via DirSync is aangemaakt, kan het adres niet via de portal worden verwijderd. Hiervoor gebruiken we powershell.

Remove-MsolUser –UserPrincipalName user@office365blog.nl

Vervolgens moeten we de verwijderde gebruikers ook leegmaken. Doe je dit niet, dan zal het account worden hersteld bij de volgende Sync. De prullenbak kunnen we leegmaken via onderstaand commando

Get-MsolUser -ReturnDeletedUsers | Remove-MsolUser –RemoveFromRecycleBin –Force

Wanneer je hierna een Sync van je AD doet, komt de gebruiker weer in Office365 te staan. Probleempje, het inloggen zal niet lukken. Wanneer je Password Sync hebt aanstaan zal je het password syncen nog moeten forceren. Dit doe je door DirSyncConfigShell.psc1 als Administrator uit te voeren en het volgende in te voeren

Set-FullPasswordSync

Zelfs nu is het password nog niet gesynchroniseerd er is nog één handeling nodig. De service Forefront Identity Manager Synchronization Service moet herstart worden. Hierna is het password gesynchroniseerd en zal het account weer werken.

Het account in Office365 is nieuw. Alle rechten zullen opnieuw toegekend moeten worden. Ook de licentie zal toegevoegd moeten worden.

Beheer beveiligingsgroepen met PowerShell

Beveiligingsgroepen wil je af en toe kunnen aanpassen, er moet een lid bij of af. Wanneer je in het beheerpaneel een wijziging wil maken aan een beveiligingsgroep kan je de volgende melding krijgen:

“You don’t have sufficient permissions”

Wanneer je kijkt bij eigenaren zal je zien dat hier ook geen personen zijn toegevoegd. Om dit op te lossen kan je jezelf via PowerShell eigenaar maken. Als je ingelogd bent op Powershell gebruik je de volgende regel:

Set-DistributionGroup <NameOfGroup> -ManagedBy "Admin@office365blog.nl" -BypassSecurityGroupManagerCheck

Hier vervang je <NameOfGroup> door de naam van de beveiligingsgroep. Let op de  dat je jou beheer adres tussen aanhalingstekens zet zoals in het voorbeeld.

Via PowerShell kan je ook personen toevoegen aan een group. Dit doe je met:

Add-DistributionGroupMember -Identity <NameOfGroup> -Member gebruiker@office365blog.nl

En verwijderen:

Remove-DistributionGroupMember -Identity <NameOfGroup> -Member gebruiker@office365blog.nl

Let op: Hier staat het adres zonder aanhalingstekens.

Opvragen van gegevens kan met het volgende commando

Get-DistributionGroupMember -identity <NameOfGroup>|fl DisplayName,WindowsLiveID,RecipientType

En je kan ook een hele groep verwijderen

Remove-DistributionGroup <NameOfGroup> -BypassSecurityGroupManagerCheck

Alle gebruikers met licenties

In grotere organisaties kan het voorkomen dat je een aantal gebruikers met licentie hebt die helemaal geen licentie nodig hebben. Met de volgende code maak je een overzicht van alle gebruikers met licentie.

Eerst maken we verbinding met de MSOL service. Vervolgens gebruiken we de volgende code

Get-MsolUser | Where-Object { $_.isLicensed -eq "TRUE" } | Select-Object UserPrincipalName, DisplayName | Export-Csv c:\LicensedUsers.csv

Door te kiezen voor UserPrincipalName en DisplayName krijg je het emailadres en de weergavenaam in de csv bestand. Je kan nog veel meer opties kiezen zoals Department en Country.

Wil je een overzicht met alle gegevens van een gebruiker gebruik je de volgende code

Get-MsolUser | Where-Object { $_.isLicensed -eq "TRUE" } | Export-Csv c:\LicensedUsers.csv

Bulk wachtwoorden aanpassen

Wanneer je bijvoorbeeld voor een nieuwe omgeving gebruikers hebt aangemaakt krijg je allemaal verschillende wachtwoorden. Er zijn meerdere redenen te bedenken om alle wachtwoorden het zelfde te hebben. Handmatig kan dit best een klus zijn, met PowerShell kan dit in enkele commando’s.

We beginnen met een lijst van de huidige gebruikers te maken. Zoals je zit moet je dit doen via MSOL. Hier staat beschreven hoe je verbinding kan maken met MSOL.

Get-MSOLUser | Select UserPrincipalName|Export-Csv c:\password.csv

Het net gemaakte bestand staat nu op de c-schijf wat weer geïmporteerd kan worden. Je eigen administrator adres staat hier dus ook tussen. Om te importeren gebruiken we de volgende code

Import-Csv c:\password.csv|%{Set-MsolUserPassword -userPrincipalName $_.UserPrincipalName -NewPassword somestaticpassword -ForceChangePassword $false}

Bron: http://community.office365.com/en-us/forums/158/t/22393.aspx

Connect met Office 365

Om überhaupt iets te kunnen doen met Office 365 PowerShell heb je wel de juiste tools nodig. Met standaard PowerShell kom je er niet.

Op deze pagina staan 2 downloads voor 64 bit computers. Deze tools heb je nodig om naar Office 365 te connecten met PowerShell

Vervolgens open je PowerShell als administrator.

Als eerste moeten we inloggen in Office 365. Gebruik daarvoor de volgende PowerShell code en vul je Administrator gegevens van Office 365 in.

$UserCredential = Get-Credential

Vervolgens kan je onderstaande code invoeren om een sessie te maken

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

En als laatst de sessie gebruiken

Import-PSSession $Session

Nu kan je gebruik maken van de PowerShell mogelijkheden van Office 365.

Wanneer je gebruik wil maken van MSOL services moet je ook hier nog een connectie mee maken. Dit kan door het volgende commando te gebruiken.

Connect-MsolService -Credential $UserCredential

Het stukje -Credential $UserCredential zorgt er voor dat je dezelfde inloggegevens gebruikt. Je kan dit ook weg laten en nieuwe gegevens opgeven.