Exchange 2003-postvakken converteren naar gebruikers met e-mail

Nadat u een gefaseerde migratie hebt voltooid, converteert u de postvakken naar gebruikers met e-mail zodat de postvakken automatisch verbinding kunnen maken met het postvak in de cloud.

Waarom postvakken converteren naar gebruikers met e-mail?

Als u klaar bent met een gefaseerde migratie van Exchange om de on-premises Exchange 2003-postvakken in uw organisatie te converteren naar Office 365 en als u cloudgebruikers wilt beheren vanuit uw on-premises organisatie (met behulp van Active Directory), moet u de on-premises postvakken converteren naar e-mail-gemachtigde gebruikers (mail-enabled users, MEU).

Dit artikel bevat een Windows PowerShell-script waarmee gegevens uit de postvakken in de cloud worden verzameld en een Visual Basic-script dat u kunt uitvoeren om Exchange 2003-postvakken te converteren naar e-mail-gemachtigde gebruikers. Wanneer u dit script uitvoert, worden de proxyadressen van het postvak in de cloud gekopieerd naar de e-mail-gemachtigde gebruiker, die zich in Active Directory bevindt. Op basis van de eigenschappen van de e-mail-gemachtigde gebruiker kan het hulpprogramma Azure Active Directory-synchronisatie (DirSync) bovendien controleren of de e-mail-gemachtigde gebruiker overeenkomt met het bijbehorende postvak in de cloud.

Het raadzaam om on-premises postvakken voor een migratiebatch te converteren naar e-mail-gemachtigde gebruikers. Als een gefaseerde Exchange-migratiebatch is voltooid en u hebt gecontroleerd of alle postvakken in de batch zijn gemigreerd, en als de eerste synchronisatie van postvakitems met de cloud is voltooid, zet u de postvakken in de migratiebatch om in e-mail-gemachtigde gebruikers.

PowerShell-script om gegevens te verzamelen uit postvakken in de cloud

U kunt de onderstaande scripts gebruiken om informatie te verzamelen over postvakken in de cloud en om Exchange 2007-postvakken te converteren naar e-mail-gemachtigde gebruikers.

Met het volgende script worden gegevens over uw postvakken in de cloud verzameld en opgeslagen in een CSV-bestand. Voer dit script eerst uit.

Kopieer het volgende script naar een TXT-bestand en sla het bestand op als ExportO365UserInfo.ps1.

Param($migrationCSVFileName = "migration.csv")
function O365Logon
#Check for current open O365 sessions and allow the admin to either use the existing session or create a new one
$session = Get-PSSession | ?{$_.ConfigurationName -eq 'Microsoft.Exchange'}
if($session -ne $null)
$a = Read-Host "An open session to Office 365 already exists. Do you want to use this session? Enter y to use the open session, anything else to close and open a fresh session."
if($a.ToLower() -eq 'y')
Write-Host "Using existing Office 365 Powershell Session." -ForeGroundColor Green
$session | Remove-PSSession
Write-Host "Please enter your Office 365 credentials" -ForeGroundColor Green
$cred = Get-Credential
$s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri -Credential $cred -Authentication Basic -AllowRedirection
$importresults = Import-PSSession $s

function Main

#Verify the migration CSV file exists
if(!(Test-Path $migrationCSVFileName))
Write-Host "File $migrationCSVFileName does not exist." -ForegroundColor Red

#Import user list from migration.csv file
$MigrationCSV = Import-Csv $migrationCSVFileName

#Get mailbox list based on email addresses from CSV file
$MailBoxList = $MigrationCSV | %{$_.EmailAddress} | Get-Mailbox
$Users = @()

#Get LegacyDN, Tenant, and On-Premise Email addresses for the users
foreach($user in $MailBoxList)
$UserInfo = New-Object System.Object

$CloudEmailAddress = $user.EmailAddresses | ?{($_ -match 'onmicrosoft') -and ($_ -cmatch 'smtp:')}
if ($CloudEmailAddress.Count -gt 1)
$CloudEmailAddress = $CloudEmailAddress[0].ToString().ToLower().Replace('smtp:', '')
Write-Host "$user returned more than one cloud email address. Using $CloudEmailAddress" -ForegroundColor Yellow
$CloudEmailAddress = $CloudEmailAddress.ToString().ToLower().Replace('smtp:', '')

$UserInfo | Add-Member -Type NoteProperty -Name LegacyExchangeDN -Value $user.LegacyExchangeDN
$UserInfo | Add-Member -Type NoteProperty -Name CloudEmailAddress -Value $CloudEmailAddress
$UserInfo | Add-Member -Type NoteProperty -Name OnPremiseEmailAddress -Value $user.PrimarySMTPAddress.ToString()

$Users += $UserInfo

#Check for existing csv file and overwrite if needed
if(Test-Path ".\cloud.csv")
$delete = Read-Host "The file cloud.csv already exists in the current directory. Do you want to delete it? Enter y to delete, anything else to exit this script."
if($delete.ToString().ToLower() -eq 'y')
Write-Host "Deleting existing cloud.csv file" -ForeGroundColor Red
Remove-Item ".\cloud.csv"
Write-Host "Will NOT delete current cloud.csv file. Exiting script." -ForeGroundColor Green
$Users | Export-CSV -Path ".\cloud.csv" -notype
(Get-Content ".\cloud.csv") | %{$_ -replace '"', ''} | Set-Content ".\cloud.csv" -Encoding Unicode
Write-Host "CSV File Successfully Exported to cloud.csv" -ForeGroundColor Green



Met het volgende Visual Basic-script worden on-premises Exchange 2003-postvakken omgezet in e-mail-gemachtigde gebruikers. Voer dit script uit nadat u het script voor het verzamelen van informatie uit de postvakken in de cloud hebt uitgevoerd.

Kopieer het volgende script naar een TXT-bestand en sla het bestand op als Exchange2003MBtoMEU.vbs.


Dim UserDN
Dim remoteSMTPAddress
Dim remoteLegacyDN
Dim domainController
Dim csvMode
csvMode = FALSE
Dim csvFileName
Dim lastADLookupFailed

Class UserInfo
public OnPremiseEmailAddress
public CloudEmailAddress
public CloudLegacyDN
public LegacyDN
public ProxyAddresses
public Mail
public MailboxGUID
public DistinguishedName

Public Sub Class_Initialize()
Set ProxyAddresses = CreateObject("Scripting.Dictionary")
End Sub
End Class

'Command Line Parameters
If WScript.Arguments.Count = 0 Then
'No parameters passed
WScript.Echo("No parameters were passed.")
ElseIf StrComp(WScript.Arguments(0), "-c", vbTextCompare) = 0 And WScript.Arguments.Count = 2 Then
WScript.Echo("Missing DC Name.")
ElseIf StrComp(WScript.Arguments(0), "-c", vbTextCompare) = 0 Then
'CSV Mode
csvFileName = WScript.Arguments(1)
domainController = WScript.Arguments(2)
csvMode = TRUE
WScript.Echo("CSV mode detected. Filename: " & WScript.Arguments(1) & vbCrLf)
ElseIf wscript.Arguments.Count <> 4 Then
'Invalid Arguments
WScript.Echo WScript.Arguments.Count
Call ShowHelp()
'Manual Mode
UserDN = wscript.Arguments(0)
remoteSMTPAddress = wscript.Arguments(1)
remoteLegacyDN = wscript.Arguments(2)
domainController = wscript.Arguments(3)
End If


'Main entry point
Sub Main

'Check for CSV Mode
If csvMode = TRUE Then
UserInfoArray = GetUserInfoFromCSVFile()
WScript.Echo "Manual Mode Detected" & vbCrLf
Set info = New UserInfo
info.CloudEmailAddress = remoteSMTPAddress
info.DistinguishedName = UserDN
info.CloudLegacyDN = remoteLegacyDN
End If

End Sub

'Process a single user (manual mode)
Sub ProcessSingleUser(ByRef UserInfo)

userADSIPath = "LDAP://" & domainController & "/" & UserInfo.DistinguishedName
WScript.Echo "Processing user " & userADSIPath
Set MyUser = GetObject(userADSIPath)
proxyCounter = 1
For Each address in MyUser.Get("proxyAddresses")
UserInfo.ProxyAddresses.Add proxyCounter, address
proxyCounter = proxyCounter + 1
UserInfo.OnPremiseEmailAddress = GetPrimarySMTPAddress(UserInfo.ProxyAddresses)
UserInfo.Mail = MyUser.Get("mail")
UserInfo.MailboxGUID = MyUser.Get("msExchMailboxGUID")
UserInfo.LegacyDN = MyUser.Get("legacyExchangeDN")

End Sub

'Populate user info from CSV data
Function GetUserInfoFromCSVFile()

CSVInfo = ReadCSVFile()
For i = 0 To (UBound(CSVInfo)-1)
lastADLookupFailed = false
Set info = New UserInfo
info.CloudLegacyDN = Split(CSVInfo(i+1), ",")(0)
info.CloudEmailAddress = Split(CSVInfo(i+1), ",")(1)
info.OnPremiseEmailAddress = Split(CSVInfo(i+1), ",")(2)
WScript.Echo "Processing user " & info.OnPremiseEmailAddress
WScript.Echo "Calling LookupADInformationFromSMTPAddress"
If lastADLookupFailed = false Then
WScript.Echo "Calling ProcessMailbox"
End If
set info = nothing

End Function

'Populate user info from AD
Sub LookupADInformationFromSMTPAddress(ByRef info)

'Lookup the rest of the info in AD using the SMTP address
Set objRootDSE = GetObject("LDAP://RootDSE")
strDomain = objRootDSE.Get("DefaultNamingContext")
Set objRootDSE = nothing
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand = CreateObject("ADODB.Command")
BaseDN = "<LDAP://" & domainController & "/" & strDomain & ">"
adFilter = "(&(proxyAddresses=SMTP:" & info.OnPremiseEmailAddress & "))"
Attributes = "distinguishedName,msExchMailboxGUID,mail,proxyAddresses,legacyExchangeDN"
Query = BaseDN & ";" & adFilter & ";" & Attributes & ";subtree"
objCommand.CommandText = Query
Set objCommand.ActiveConnection = objConnection
On Error Resume Next
Set objRecordSet = objCommand.Execute

'Handle any errors that result from the query
If Err.Number <> 0 Then
WScript.Echo "Error encountered on query " & Query & ". Skipping user."
lastADLookupFailed = true
End If

'Handle zero or ambiguous search results
If objRecordSet.RecordCount = 0 Then
WScript.Echo "No users found for address " & info.OnPremiseEmailAddress
lastADLookupFailed = true
ElseIf objRecordSet.RecordCount > 1 Then
WScript.Echo "Ambiguous search results for email address " & info.OnPremiseEmailAddress
lastADLookupFailed = true
ElseIf Not objRecordSet.EOF Then
info.LegacyDN = objRecordSet.Fields("legacyExchangeDN").Value
info.Mail = objRecordSet.Fields("mail").Value
info.MailboxGUID = objRecordSet.Fields("msExchMailboxGUID").Value
proxyCounter = 1
For Each address in objRecordSet.Fields("proxyAddresses").Value
info.ProxyAddresses.Add proxyCounter, address
proxyCounter = proxyCounter + 1
info.DistinguishedName = objRecordSet.Fields("distinguishedName").Value
End If

objConnection = nothing
objCommand = nothing
objRecordSet = nothing
On Error Goto 0

End Sub

'Populate data from the CSV file
Function ReadCSVFile()

'Open file
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFS.OpenTextFile(csvFileName, 1, false, -1)

'Loop through each line, putting each line of the CSV file into an array to be returned to the caller
counter = 0
Dim CSVArray()
Do While NOT objTextFile.AtEndOfStream
ReDim Preserve CSVArray(counter)
CSVArray(counter) = objTextFile.ReadLine
counter = counter + 1

'Close and return
Set objTextFile = nothing
Set objFS = nothing
ReadCSVFile = CSVArray

End Function

'Process the migration
Sub ProcessMailbox(User)

'Get user properties
userADSIPath = "LDAP://" & domainController & "/" & User.DistinguishedName
Set MyUser = GetObject(userADSIPath)

'Add x.500 address to list of existing proxies
existingLegDnFound = FALSE
newLegDnFound = FALSE

'Loop through each address in User.ProxyAddresses
For i = 1 To User.ProxyAddresses.Count
If StrComp(address, "x500:" & User.LegacyDN, vbTextCompare) = 0 Then
WScript.Echo "x500 proxy " & User.LegacyDN & " already exists"
existingLegDNFound = true
End If
If StrComp(address, "x500:" & User.CloudLegacyDN, vbTextCompare) = 0 Then
WScript.Echo "x500 proxy " & User.CloudLegacyDN & " already exists"
newLegDnFound = true
End If

'Add existing leg DN to proxy list
If existingLegDnFound = FALSE Then
WScript.Echo "Adding existing legacy DN " & User.LegacyDN & " to proxy addresses"
User.ProxyAddresses.Add (User.ProxyAddresses.Count+1),("x500:" & User.LegacyDN)
End If

'Add new leg DN to proxy list
If newLegDnFound = FALSE Then
'Add new leg DN to proxy addresses
WScript.Echo "Adding new legacy DN " & User.CloudLegacyDN & " to existing proxy addresses"
User.ProxyAddresses.Add (User.ProxyAddresses.Count+1),("x500:" & User.CloudLegacyDN)
End If

'Dump out new list of addresses
WScript.Echo "Original proxy addresses updated count: " & User.ProxyAddresses.Count
For i = 1 to User.ProxyAddresses.Count
WScript.Echo " proxyAddress " & i & ": " & User.ProxyAddresses(i)

'Delete the Mailbox
WScript.Echo "Opening " & userADSIPath & " as CDOEXM::IMailboxStore object"
Set Mailbox = MyUser
Wscript.Echo "Deleting Mailbox"
On Error Resume Next

'Handle any errors deleting the mailbox
If Err.Number <> 0 Then
WScript.Echo "Error " & Err.number & ". Skipping User." & vbCrLf & "Description: " & Err.Description & vbCrLf
Exit Sub
End If
On Error Goto 0

'Save and continue
WScript.Echo "Saving Changes"
WScript.Echo "Refeshing ADSI Cache"
Set Mailbox = nothing

'Mail Enable the User
WScript.Echo "Opening " & userADSIPath & " as CDOEXM::IMailRecipient"
Set MailUser = MyUser
WScript.Echo "Mail Enabling user using targetAddress " & User.CloudEmailAddress
MailUser.MailEnable User.CloudEmailAddress
WScript.Echo "Disabling Recipient Update Service for user"
MyUser.PutEx ADS_PROPERTY_APPEND, "msExchPoliciesExcluded", Array("{26491CFC-9E50-4857-861B-0CB8DF22B5D7}")
WScript.Echo "Saving Changes"
WScript.Echo "Refreshing ADSI Cache"

'Add Legacy DN back on to the user
WScript.Echo "Writing legacyExchangeDN as " & User.LegacyDN
MyUser.Put "legacyExchangeDN", User.LegacyDN

'Add old proxies list back on to the MEU
WScript.Echo "Writing proxyAddresses back to the user"
For j=1 To User.ProxyAddresses.Count
MyUser.PutEx ADS_PROPERTY_APPEND, "proxyAddresses", Array(User.ProxyAddresses(j))

'Add mail attribute back on to the MEU
WScript.Echo "Writing mail attribute as " & User.Mail
MyUser.Put "mail", User.Mail

'Add msExchMailboxGUID back on to the MEU
WScript.Echo "Converting mailbox GUID to writable format"
Dim mbxGUIDByteArray
Call ConvertHexStringToByteArray(OctetToHexString(User.MailboxGUID), mbxGUIDByteArray)
WScript.Echo "Writing property msExchMailboxGUID to user object with value " & OctetToHexString(User.MailboxGUID)
MyUser.Put "msExchMailboxGUID", mbxGUIDByteArray

WScript.Echo "Saving Changes"
WScript.Echo "Migration Complete!" & vbCrLf

End Sub

'Returns the primary SMTP address of a user
Function GetPrimarySMTPAddress(Addresses)
For Each address in Addresses
If Left(address, 4) = "SMTP" Then GetPrimarySMTPAddress = address
End Function

'Converts Hex string to byte array for writing to AD
Sub ConvertHexStringToByteArray(ByVal strHexString, ByRef pByteArray)

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Stream = CreateObject("ADODB.Stream")

Temp = FSO.GetTempName()
Set TS = FSO.CreateTextFile(Temp)

For i = 1 To (Len (strHexString) -1) Step 2
TS.Write Chr("&h" & Mid (strHexString, i, 2))


Stream.Type = 1
Stream.LoadFromFile Temp

pByteArray = Stream.Read

FSO.DeleteFile Temp

Set Stream = nothing
Set FSO = Nothing

End Sub

'Converts raw bytes from AD GUID to readable string
Function OctetToHexString (arrbytOctet)

OctetToHexStr = ""
For k = 1 To Lenb (arrbytOctet)
OctetToHexString = OctetToHexString & Right("0" & Hex(Ascb(Midb(arrbytOctet, k, 1))), 2)

End Function

Sub ShowHelp()

WScript.Echo("This script runs in two modes, CSV Mode and Manual Mode." & vbCrLf & "CSV Mode allows you to specify a CSV file from which to pull user names." & vbCrLf& "Manual mode allows you to run the script against a single user.")
WSCript.Echo("Both modes require you to specify the name of a DC to use in the local domain." & vbCrLf & "To run the script in CSV Mode, use the following syntax:")
WScript.Echo(" cscript Exchange2003MBtoMEU.vbs -c x:\csv\csvfilename.csv")
WScript.Echo("To run the script in Manual Mode, you must specify the users AD Distinguished Name, Remote SMTP Address, Remote Legacy Exchange DN, and Domain Controller Name.")
WSCript.Echo(" cscript Exchange2003MBtoMEU.vbs " & chr(34) & "CN=UserName,CN=Users,DC=domain,DC=com" & chr(34) & " " & chr(34) & "" & chr(34) & " " & chr(34) & "/o=Cloud Org/ou=Cloud Site/ou=Recipients/cn=CloudUser" &
chr(34) & "")

End Sub

Wat doen de scripts?


Dit is een Windows PowerShell-script dat u in uw organisatie in de cloud uitvoert voor het verzamelen van informatie over de cloudpostvakken die u hebt gemigreerd tijdens de gefaseerde migratie van Exchange. Het script maakt gebruik van een CSV-bestand om het bereik van de gebruikersgroep te bepalen. Het raadzaam om hetzelfde migratiebestand in CSV-indeling te gebruiken als voor het migreren van een groep gebruikers.

Wanneer u het script ExportO365UserInfo uitvoert, gebeurt het volgende:

  • De volgende eigenschappen van cloudpostvakken worden verzameld voor de gebruikers in het CSV-bestand dat wordt gebruikt:

    • het primaire SMTP-adres

    • het primaire SMTP-adres van het bijbehorende on-premises postvak

    • andere proxyadressen voor het postvak in de cloud

    • LegacyExchangeDN

  • De verzamelde eigenschappen worden opgeslagen in een CSV‐bestand met de naam Cloud.csv.


Dit is een Visual Basic-script dat u uitvoert in uw on-premises Exchange 2003-organisatie om postvakken te converteren naar e-mail-gemachtigde gebruikers. Het script gebruikt het bestand Cloud.csv, dat het resultaat is van het script ExportO365UserInfo.

Wanneer u het script Exchange2003MBtoMEU.vbs uitvoert, wordt de volgende actie uitgevoerd voor elk postvak in het CSV-bestand dat als invoer wordt gebruikt:

  • Er worden gegevens verzameld uit het gebruikte CSV-bestand en het on-premises postvak.

  • Er wordt een lijst gemaakt met proxyadressen van het on-premises postvak en het postvak in de cloud voor de e-mail-gemachtigde gebruiker.

  • Het on-premises postvak wordt verwijderd.

  • Er wordt een e-mail-gemachtigde gebruiker gemaakt met de volgende eigenschappen:

    • legacyExchangeDN: waarde van het on-premises postvak.

    • mail: het primaire SMTP-adres van het postvak in de cloud.

    • msExchMailboxGuid: waarde van het on-premises postvak.

    • proxyAddresses: waarden van het on-premises postvak en het postvak in de cloud.

    • targetAddress : gelezen van het on-premises postvak; de waarde is het primaire SMTP-adres van het postvak in de cloud.

      Belangrijk: Als u overzetten van Office 365 naar Exchange 2003 wilt inschakelen, moet u de waarde van msExchMailboxGuid voor de e-mail-gemachtigde gebruiker vervangen door de GUID van het postvak in de cloud. Voer de volgende PowerShell-opdracht uit om de GUID's voor de postvakken in uw organisatie in de cloud op te halen en op te slaan in een CSV-bestand:

      Get-Mailbox | Select PrimarySmtpAddress, Guid | Export-csv -Path .\guid.csv

      Deze opdracht haalt het primaire SMTP-adres en de GUID op voor alle postvakken in de cloud en slaat ze op in het bestand guid.csv. Dit bestand wordt opgeslagen in de huidige map.

In plaats van het invoerbestand in CSV-indeling te gebruiken om een reeks postvakken te converteren, kunt u het script Exchange2003MBtoMEU.vbs uitvoeren in de handmatige modus om één postvak per keer te converteren. Hiertoe geeft u de volgende invoerparameters op:

  • De DN-naam (Distinguished Name) van het on-premises postvak.

  • Het primaire SMTP-adres van het postvak in de cloud.

  • De verouderde Exchange DN-naam voor het postvak in de cloud.

  • Een domeincontrollernaam in uw Exchange 2003-organisatie.

Stappen om on-premises postvakken te converteren naar e-mail-gemachtigde gebruikers

  1. Voer het script ExportO365UserInfo uit in uw organisatie in de cloud. Gebruik het CSV-bestand voor de migratiebatch als invoerbestand. Het script maakt een CSV-bestand met de naam Cloud.csv.

    .\ExportO365UserInfo.ps1 <CSV input file>


    .\ExportO365UserInfo.ps1 .\MigrationBatch1.csv

    In dit voorbeeld wordt ervan uitgegaan dat het script en het invoerbestand in CSV-indeling zich in dezelfde map bevinden.

  2. Kopieer Exchange2003MBtoMEU.vbs en Cloud.csv naar dezelfde map in uw on-premises organisatie.

  3. Voer de volgende opdracht uit in uw on-premises organisatie:

    cscript Exchange2003MBtoMEU.vbs –c .\Cloud.csv <FQDN of on-premises domain controller>


    cscript Exchange2003MBtoMEU.vbs –c .\Cloud.csv

    Voer de volgende opdracht uit om het script in de handmatige modus uit te voeren. Gebruik spaties tussen de waarden.

    cscript Exchange2003MBtoMEU.vbs “<DN of on-premises mailbox>” “
    <Primary SMTP of cloud mailbox>” “<ExchangeLegacyDN of cloud mailbox>”
    <FQDN of on-premises domain controller>


    cscript Exchange2003MBtoMEU.vbs “CN=Ann Beebe,
    “” “/o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=d808d014cec5411ea6de1f70cc116e7b-annb”
  4. Controleer of de nieuwe e-mail-gemachtigde gebruikers zijn gemaakt. Voer een van de volgende handelingen uit in Active Directory: gebruikers en computers:

    1. Klik op Actie > Zoeken.

    2. Klik op het tabblad Exchange.

    3. Selecteer Alleen Exchange-geadresseerden weergeven en vervolgens Gebruikers met een extern e-mailadres.

    4. Klik op Nu zoeken.

    De postvakken die zijn geconverteerd naar e-mail-gemachtigde gebruikers worden weergegeven onder Zoekresultaten.

  5. Gebruik Active Directory: gebruikers en computers, ADSI Edit of Ldp.exe om te controleren of de volgende eigenschappen voor e-mail-gemachtigde gebruikers de juiste informatie bevatten.

    • legacyExchangeDN

    • mail

    • msExchMailboxGuid *

    • proxyAddresses

    • targetAddress

    * Zoals eerder beschreven, behoudt het script Exchange2003MBtoMEU.vbs de waarde msExchMailboxGuid uit het on-premises postvak. Als u overzetten van Office 365 naar Exchange 2003 wilt inschakelen, moet u de waarde van de eigenschap msExchMailboxGuid voor de e-mail-gemachtigde gebruiker vervangen door de GUID van het postvak in de cloud.

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.