[玩转系统] 使用 Invoke-MgGraphRequest 获取 Azure AD LAPS 密码
作者:精品下载站 日期:2024-12-14 06:49:26 浏览:17 分类:玩电脑
使用 Invoke-MgGraphRequest 获取 Azure AD LAPS 密码
Invoke-MgGraphRequest cmdlet 可用于查看由 Intune 使用 PowerShell 管理的设备的 Azure AD LAPS 密码,这是当前唯一的方法。当然,最新版本的 Windows 10/11 中内置的 LAPS 模块包括 Get-LapsAADPassword cmdlet,但是,该 cmdlet 仅引用由 Microsoft 员工构建并在更新期间与 LAPS 模块一起安装的嵌套 PowerShell 脚本,这正是我将在本教程中向您展示如何执行的操作。
因此,在本教程中,我将向您展示如何使用 Invoke-MgGraphRequest cmdlet 通过 PowerShell 向 Microsoft Graph 发送 GET 请求,并在 Intune 中检索托管设备的 LAPS 密码。
先决条件
要完成此任务,您必须在当前用户或所有用户上下文中的系统上安装 Microsoft Graph PowerShell SDK。无论您安装的是哪个版本的 SDK,但是为了一致性和稳定性,我建议您通过运行以下命令来安装最新的稳定版本:
Install-Module Microsoft.Graph -scope Currentuser -Force
这将在当前用户上下文中强制在您的计算机上安装最新稳定版本的 Microsoft Graph PowerShell 模块,这不需要本地管理员权限。
有关安装和升级 Microsoft Graph PowerShell 模块的更详细教程,请在此处查看我的指南:如何安装 Microsoft Graph PowerShell 模块
使用 Invoke-MgGraphRequest 获取 Azure AD LAPS 密码的目的
Invoke-MgGraphRequest 是一个 PowerShell cmdlet,如果尚无支持该任务的 cmdlet,它允许您发出任何/大多数 Microsoft Graph API 请求。
查看:如何将 Invoke-MgGraphRequest 与 PowerShell 结合使用
还值得注意的是,与微软文档详细介绍了使用 Windows 10/11 4 月更新预装的 LAPS 模块来检索 LAPS 密码不同,无需 4 月更新也可以完成此操作。
在幕后,随 Windows 四月更新预装的 LAPS 模块在其中嵌套了一个名为 Get-LapsAADPassword 的脚本模块。这个嵌套模块使用 Microsoft Graph Invoke-MgGraphRequest 的方式与我将向您展示检索 LAPS 密码的方式相同,它只是内置到一个有用的模块中。通过学习如何使用 Invoke-MgGraphRequest 方法获取 LAPS 密码,您可以构建自己的模块,以便以编程方式方便地访问所需的信息。
权限和身份验证
使用此方法查看 LAPS 密码所需的最低权限是 Device.Read.All 和 DeviceLocalCredential.Read.All 权限。
Device.Read.All 将允许您使用 Get-MgDevice cmdlet 从设备读取信息。这样,您就可以检索 DeviceId 值,您将需要该值来添加 Invoke-MgGraphRequest 命令的 URI(或简单的网址)来查找您的设备。
DeviceLocalCredential.Read.All 权限允许您读取 Intune 托管设备的 LAPS 密码。
此外,为了使该脚本按预期运行,当您运行 Connect-MgGraph cmdlet 时,您将需要使用全局管理员登录。这是因为连接时,需要将指定的权限委派给 Azure Active Directory 中的 Microsoft Graph 命令行工具应用,这只能由全局管理员完成。
如何使用 Invoke-MgGraphRequest 获取 Azure AD LAPS 密码 - 细分
首先使用 Connect-MgGraph cmdlet 连接到 Microsoft Graph,并指定您希望同意的权限:
Connect-Mggraph -Scope DeviceLocalCredential.Read.All, Device.Read.All
您可以使用 Get-MgContext cmdlet 验证您的会话是否被适当分配了正确的权限:
现在已完成,我们需要从 Intune 中的目标设备检索 DeviceId 值,以便我们可以在脚本中进一步重用它。我们使用 Get-MgDevice cmdlet 来执行此操作,这就是需要 Device.Read.All 权限的原因。
$DeviceName = "Win11Desktop02"
$DeviceId = (Get-MgDevice | Where-Object {$_.DisplayName -eq $DeviceName} | Select DeviceId).DeviceId
然后,我们需要生成一个新的、唯一的相关 ID,该 ID 将添加到我们的请求标头中。然后,这将用于识别跨多个服务的请求的上下文。
$correlationID = [System.Guid]::NewGuid()
URI(通用资源标识符)是一个地址路径,它将指定在何处可以找到特定资源,在本例中是在 Microsoft Graph 中。我们的 URI 将包含所需信息类型的路径以及我们需要 LAPS 密码的对象的唯一 DeviceId。
$uri = 'beta/deviceLocalCredentials/' + $DeviceId
$uri = $uri + '?$select=credentials'
现在我们需要构建请求的标头,让我们看看添加到标头中的每一位信息:
- ocp-client-name - 此标头是执行 API 调用的应用程序的名称。它是可选的,但将有助于识别任何问题(如果有)。
- ocp-client-version - 同样,此值是可选的,如果您正在管理 PowerShell 脚本/应用程序的版本历史记录,它将有助于调试。
- Client-request-id - 这也将有助于调试,如果您希望寻求 Microsoft 支持来帮助解决您的问题,则这是必要的。
使用以下代码在 $header 变量中构建标头:
$headers = @{}
$headers.Add('ocp-client-name', 'Get-LapsAADPassword Windows LAPS Cmdlet')
$headers.Add('ocp-client-version', '1.0')
$headers.Add('client-request-id', $correlationID)
现在我们已准备好将请求发送到 Microsoft Graph。使用以下Invoke-MgGraphRequest命令和GET方法来查询图形API,然后我们将响应保存在$Response变量中。
$Response = Invoke-MgGraphRequest -Method GET -Uri $URI -Headers $headers
要检查我们的请求是否返回了预期的信息,请在命令行中输入 $Response 或 $Response.Credentials,输出应如下所示:
由于我们的 LAPS 帐户的密码是采用 Base64 编码的,因此我们必须将其解码为纯文本。这可以在我们的 PowerShell 脚本中使用以下命令轻松完成:
$passwordb64 = ($Response.credentials).PasswordBase64
$passwordb64 | %{[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($_))}
您的输出将如下所示:
完整剧本
您可以在下面轻松地将我的代码复制并粘贴到文本编辑器中,更改 $devicename 值并使用 PowerShell 运行脚本来检索设备的圈数密码。
您还可以下载我在 Github 上编写的此脚本的更详细版本,该版本可以作为完整脚本运行,并将设备名称作为参数。
#Connect to Microsoft Graph
Connect-Mggraph -Scope DeviceLocalCredential.Read.All, Device.Read.All
#Define your device name here
$DeviceName = "Win11Desktop02"
#Store the device id value for your target device
$DeviceId = (Get-MgDevice | Where-Object {$_.DisplayName -eq $DeviceName} | Select DeviceId).DeviceId
#Generate a new correlation ID
$correlationID = [System.Guid]::NewGuid()
#Define the URI path
$uri = 'beta/deviceLocalCredentials/' + $DeviceId
$uri = $uri + '?$select=credentials'
#Build the request header
$headers = @{}
$headers.Add('ocp-client-name', 'Get-LapsAADPassword Windows LAPS Cmdlet')
$headers.Add('ocp-client-version', '1.0')
$headers.Add('client-request-id', $correlationID)
#Initation the request to Microsoft Graph for the LAPS password
$Response = Invoke-MgGraphRequest -Method GET -Uri $URI -Headers $headers
#Decode the LAPS password from Base64
$passwordb64 = ($Response.credentials).PasswordBase64
$passwordb64 | %{[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($_))}
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag