AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1161527
Accepted
Halfdone
Halfdone
Asked: 2024-06-26 02:05:51 +0800 CST2024-06-26 02:05:51 +0800 CST 2024-06-26 02:05:51 +0800 CST

删除最终的 Exchange 服务器,无法遵循 Microsoft 的指示

  • 772

我正在按照 Microsoft 的说明( https://learn.microsoft.com/en-us/exchange/manage-hybrid-exchange-recipients-with-management-tools#permanently-shutting-down-your-last-exchange-server )查看删除环境中的最后一个 Exchange 服务器的过程。“永久关闭最后一个 Exchange 服务器”的第 5 步是删除为 OAuth 创建的服务主体凭据。它提供了一些 PowerShell 命令来确定和删除凭据:

5a. 在 Exchange 命令行管理程序中运行以下命令以获取 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. 找到与上面找到的 $credValue 相同的 KeyId,使用 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

这将给出其值与上面找到的 $credValue 匹配的密钥的 KeyId。

5c. 要删除服务主体凭据,请运行以下命令:

Import-Module Microsoft.Graph.Applications
$params = @{
  KeyId = $keyId
}
Remove-MgServicePrincipalKey -ServicePrincipalId $p.Id -BodyParameter $params

5b 中的最后一个 $keyId 赋值不是有效的 PowerShell 命令,其中有一个“$true”位置不对,并且有一个多余的结束括号。看起来命令已损坏。手动运行 Get-MgServicePrincipal 确实返回了一个 KeyCredentials 对象,但我没有看到它似乎在寻找的“Value”属性。这可能只是因为缺少部分命令。

有人知道我该如何完成这一步吗?是通过有效的 PowerShell 还是其他方法(例如 M365 门户)?另外,跳过这一步也可以吗,因为可能会留下一些垃圾?

powershell
  • 1 1 个回答
  • 97 Views

1 个回答

  • Voted
  1. Best Answer
    Peter
    2024-07-15T08:07:35+08:002024-07-15T08:07:35+08:00

    我遇到了和你一样的问题,并找到了这个来寻找答案。查看 Wayback Machine 中的页面,有问题的部分曾经是这样的:

    Connect-MsolService 
    $ServiceName = "00000002-0000-0ff1-ce00-000000000000" 
    $p = Get-MsolServicePrincipal -ServicePrincipalName $ServiceName 
    $keyId = (Get-MsolServicePrincipalCredential -AppPrincipalId $p.AppPrincipalId -ReturnKeyValues $true | ?{$_.Value -eq $credValue}).KeyId
    
    • 2

相关问题

  • 资源锁和电源外壳

  • 脚本 - 如何断开远程桌面会话?

  • 如何限制向通讯组发送到外部地址?

  • Powershell对值与数组的作用不同?

  • Windows Powershell Vim 键绑定

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve