Estou revisando o processo para remover o último servidor Exchange em um ambiente seguindo as instruções da Microsoft em https://learn.microsoft.com/en-us/exchange/manage-hybrid-exchange-recipients-with-management-tools# desligando permanentemente seu último servidor de troca . A etapa 5 de "Desligar permanentemente seu último Exchange Server" consiste em remover as credenciais principais de serviço criadas para OAuth. Ele fornece alguns comandos do PowerShell para determinar e excluir as credenciais:
5a. Execute estes comandos no Shell de Gerenciamento do Exchange para obter o OAuth credValue:
$thumbprint = (Get-AuthConfig).CurrentCertificateThumbprint $oAuthCert = (dir Cert:\LocalMachine\My) | where {$_.Thumbprint -match $thumbprint} $certType = [System.Security.Cryptography.X509Certificates.X509ContentType]::Cert $certBytes = $oAuthCert.Export($certType) $credValue = [System.Convert]::ToBase64String($certBytes)
5b. Encontre o KeyId igual ao $credValue encontrado acima e execute os comandos a seguir como administrador de locatário usando o Microsoft Graph PowerShell.
Import-Module Microsoft.Graph.Applications Connect-MgGraph -Scopes "Application.Read.All" $ServiceName = "00000002-0000-0ff1-ce00-000000000000" $p = Get-MgServicePrincipalByAppId -AppId $ServiceName $keyId = (Get-MgServicePrincipal -ServicePrincipalId $p.Id).KeyCredentials $true | ?{$_.Value -eq $credValue}).KeyId
Isso fornece o KeyId da chave cujo valor corresponde ao $credValue encontrado acima.
5c. Para remover a credencial da entidade de serviço, execute o seguinte comando:
Import-Module Microsoft.Graph.Applications $params = @{ KeyId = $keyId } Remove-MgServicePrincipalKey -ServicePrincipalId $p.Id -BodyParameter $params
Essa última atribuição $keyId em 5b não é um comando válido do PowerShell, há um "$true" que está fora do lugar e há um parêntese final extra. Parece que o comando foi corrompido. A execução manual de Get-MgServicePrincipal retorna um objeto KeyCredentials, mas não vejo uma propriedade "Value" que parece estar procurando. Isso pode ocorrer apenas porque parte do comando está faltando.
Alguém sabe como posso concluir esta etapa? Através do PowerShell funcional ou de outro método, como o portal M365? Também seria aceitável pular esta etapa, entendendo que isso pode deixar sujeira para trás?