【AD】用于在AD域通过用户名或计算机名查询对应BitLocker恢复秘钥的Powershell脚本

部署运行你感兴趣的模型镜像

小小拷打了下GPT
主要功能是根据用户输入的计算机名或中文描述,查找对应计算机的 BitLocker 恢复密钥。包含以下主要逻辑:

输入检测:

1.如果输入为中文用户名,则将会其作为CN在域中查找对应的samAccountName,再将查找到的samAccountName作为计算机名进行查找
2.如果检测用户输入的非中文,则直接将其作为计算机名进行查找

混合查找

# 定义处理计算机的函数
function ProcessComputer {
    param (
        [string]$ADComputer
    )
    
    # 获取计算机的 DistinguishedName
    try {
        $DN = (Get-ADComputer -Identity $ADComputer).DistinguishedName
    } catch {
        Write-Warning "未找到计算机 '$ADComputer' 的信息: $_"
        return
    }

    # 获取与计算机相关的 msFVE-RecoveryInformation 对象
    $ADobj = Get-ADObject -Filter {objectclass -eq 'msFVE-RecoveryInformation'} -SearchBase $DN -Properties 'msFVE-RecoveryPassword'

    # 检查是否找到了相关的恢复信息
    if ($ADobj) {
        # 获取恢复密码
        $RecoveryPassword = $ADobj.'msFVE-RecoveryPassword'
        
        # 输出恢复密码,设置为浅绿色
        Write-Host "╔══════════════════════════════════════════════════════╗"
        Write-Host "     恢复密码为: $RecoveryPassword" -ForegroundColor Green
        Write-Host "╚══════════════════════════════════════════════════════╝"
                
        # 复制到剪贴板
        $RecoveryPassword | Set-Clipboard
        Write-Host "恢复密码已复制到剪贴板" -ForegroundColor Green
        Pause
    } else {
        Write-Warning "未找到与计算机 '$ADComputer' 相关的 BitLocker 恢复信息。"
        Pause
    }
}

# 提示用户输入计算机名或用户CN
$InputValue = Read-Host "请输入计算机名或姓名"

# 检测输入是否包含中文字符
if ($InputValue -match "[\u4e00-\u9fa5]") {
    # 输入为中文,视为用户CN
    try {
        # 获取所有匹配CN的用户
        $Users = Get-ADUser -Filter {cn -eq $InputValue} -Properties samAccountName
        if ($Users) {
            # 检查是否有多个匹配结果
            if ($Users.Count -gt 1) {
                Write-Host "检测到多个与姓名 '$InputValue' 匹配的用户,请在输出完毕之后按下回车继续显示:" -ForegroundColor Yellow
                
                # 遍历每个匹配用户
                $Users | ForEach-Object {
                    $ADComputer = $_.samAccountName
                    Write-Host "找到用户: 工号='$ADComputer'" -ForegroundColor Cyan

                    # 执行后续操作
                    ProcessComputer $ADComputer
                }
            } else {
                # 只有一个匹配结果
                $ADComputer = $Users.samAccountName
                Write-Host "检测到输入为姓名,当前工号为:$ADComputer" -ForegroundColor Cyan
                
                # 执行后续操作
                ProcessComputer $ADComputer
            }
        } else {
            Write-Warning "未找到对应的用户信息。请检查输入的 CN 是否正确。"
            exit
        }
    } catch {
        Write-Warning "获取用户信息时发生错误: $_"
        exit
    }
} else {
    # 输入为计算机名
    $ADComputer = $InputValue
    ProcessComputer $ADComputer
}

这段是单独通过计算机名查找

# 提示用户输入计算机名
$ADComputer = Read-Host "请输入计算机名"

# 获取计算机的 DistinguishedName
$DN = (Get-ADComputer -Identity $ADComputer).DistinguishedName

# 获取与计算机相关的 msFVE-RecoveryInformation 对象
$ADobj = Get-ADObject -Filter {objectclass -eq 'msFVE-RecoveryInformation'} -SearchBase $DN -Properties 'msFVE-RecoveryPassword'

# 检查是否找到了相关的恢复信息
if ($ADobj) {
    # 获取恢复密码
    $RecoveryPassword = $ADobj.'msFVE-RecoveryPassword'
    
    # 输出恢复密码,设置为浅绿色
    Write-Host "═════════════════════════════════════════════════"
    Write-Host "恢复密码为: $RecoveryPassword" -ForegroundColor Green
    
    # 复制到剪贴板
    $RecoveryPassword | Set-Clipboard
    Write-Host "═════════════════════════════════════════════════"
    Write-Host "恢复密码已复制到剪贴板" -ForegroundColor Green
} else {
    Write-Warning "未找到与计算机 '$ADComputer' 相关的 BitLocker 恢复信息。"
}

您可能感兴趣的与本文相关的镜像

GPT-oss:20b

GPT-oss:20b

图文对话
Gpt-oss

GPT OSS 是OpenAI 推出的重量级开放模型,面向强推理、智能体任务以及多样化开发场景

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值