Çarşamba , 23 Nisan 2025

Teams Exchange Calendar Sync

Local exchange ler ile teams kullanıldığında takvim senkronizasyonu default ta çalışmmaktadır.

Exchange Hybrid Wizard ile yapılan kurulum sonrasında OAuth otomatik configure edildği için outlook takvimi ile teams takvimi sync olarak çalışmaktadır. hybrid wizard olmadan ise yapılacaklar aşağıdaki gibidir.

Exchange üzerinde aşağıdaki komutlar çalıştırılır.

New-AuthServer -Name “WindowsAzureACS” -AuthMetadataUrl https://accounts.accesscontrol.windows.net/atahanozturk.com.tr/metadata/json/1

New-AuthServer -Name “evoSTS” -Type AzureAD -AuthMetadataUrl https://login.windows.net/atahanozturk.com.tr/federationmetadata/2007-06/federationmetadata.xml

Text

Description automatically generated with medium confidence

Daha sonra aşağıdaki komut ile Partner Application enable edilir.

Get-PartnerApplication | ?{$_.ApplicationIdentifier -eq “00000002-0000-0ff1-ce00-000000000000” -and $_.Realm -eq “”} | Set-PartnerApplication -Enabled $true

Exchange sertifikası exchange üzerinden export edilir.

$ThumbPrint = (Get-AuthConfig).CurrentCertificateThumbprint

If((Test-Path $ENV:SYSTEMDRIVE\OAuthConfig) -eq $false)

{

md $ENV:SYSTEMDRIVE\OAuthConfig

}

CD $ENV:SYSTEMDRIVE\OAuthConfig

$oAuthCert = (dir Cert:\LocalMachine\My) | ?{$_.ThumbPrint -Match $ThumbPrint}

$CertType = [System.Security.Cryptography.X509Certificates.X509ContentType]::Cert

$CertBytes = $oAuthCert.Export($CertType)

$CertFile = “$env:SYSTEMDRIVE\OAuthConfig\OAuthCert.cer”

[System.IO.File]::WriteAllBytes($CertFile, $CertBytes)

Graphical user interface, application

Description automatically generated

Export edilen sertifikayı Azure AD uygulaması sunucusunda c diskine alıp aşağıdaki komutları çalıştırıyorum.

Install-Module MSOnline

Import-Module MSOnline

$Cred = Get-Credential

Connect-MSOLService -Credential $Cred

$CertFile = “$ENV:SYSTEMDRIVE\OAuthConfig\OAuthCert.cer”

$objFSO = New-Object -ComObject Scripting.FileSystemObject

$CertFile = $objFSO.GetAbsolutePathName($CertFile)

$CER = New-Object System.Security.Cryptography.X509Certificates.X509Certificate

$CER.Import($CertFile)

$binCert = $cer.GetRawCertData()

$CredValue = [System.Convert]::ToBase64String($binCert)

$ServiceName = “00000002-0000-0ff1-ce00-000000000000”

$P = Get-MsolServicePrincipal -ServicePrincipalName $ServiceName

New-MsolServicePrincipalCredential -AppPrincipalId $P.AppPrincipalId -Type asymmetric -Usage Verify -Value $credValue

A screenshot of a computer

Description automatically generated with medium confidence

Daha sonra aşağıdaki gibi service principal name leri kendi domainime göre düzenleyip çalıştıyorum.

$ServiceName = “00000002-0000-0ff1-ce00-000000000000”;

$x = Get-MsolServicePrincipal -AppPrincipalId $ServiceName;

$x.ServicePrincipalnames.Add(https://mail.atahanozturk.com.tr);

$x.ServicePrincipalnames.Add(https://autodiscover.atahanozturk.com.tr);

Set-MSOLServicePrincipal -AppPrincipalId $ServiceName -ServicePrincipalNames $x.ServicePrincipalNames;

Test için aşağıdaki komutu çalıştırıp success ve true olarak komutun çıktısını aldıysanız işlem tamamdır,

Test-OAuthConnectivity -Service EWS -TargetUri https://outlook.office365.com/ews/exchange.asmx -Mailbox emrah.ozturk@atahanozturk.com.tr -Verbose | Format-List

ResultType  : Success

Identity    : Microsoft.Exchange.Security.OAuth.ValidationResultNodeId

IsValid     : True

ObjectState : New

A picture containing graphical user interface

Description automatically generated

Graphical user interface, application

Description automatically generated

Yoruma kapalı.

%d blogcu bunu beğendi: