【Power Automate】获取Windows凭证的方法

项目背景&前言

Uipath许可价格不断提高,且逐渐退出中国市场,原有的Uipath流程打算迁移至Power Automate上运行,就项目过程中出现的一些问题,用文章的形式做分享,希望能帮到各位。

问题

Uipath里面能直接获取Windows凭证里面的账号密码,而Power Automate没找到直接实现的方法。

解决方法

终究是Windows的软件,用系统自带的程序去解决兼容性应该是更好的,所以这次优先使用调用Power Shell脚本的方法去解决。

前置条件:安装 CredentialManager 模块

不一定需要,但保险起见先安装一下。

Install-Module -Name CredentialManager -Force -Scope CurrentUser

步骤1:编辑代码

  1.这里直接贴出能用的脚本,中间修改了几版,踩了几次雷,就不全贴出来了。

  2.Power automate的这个调用只能输出一个变量,所以要把输出用户名跟输出密码拆开。

  3.添加这个if主要是测试流程的时候可以清晰的看到调用是否成功,因为获取空白对这次调用来说都是成功的,不会报错。

  4.其中%凭证名%换成需要的凭证名即可。

输出用户名的代码

# 导入 CredentialManager 模块 ,亲测调用时这句可忽略
Import-Module CredentialManager

# 获取名为 %凭证名% 的凭证
$credential = Get-StoredCredential -Target '%凭证名%'

# 检查凭证是否存在
if ($credential) {
    # 输出用户名
    $username = $credential.UserName
    Write-Output "Username: $username"
} else {
    Write-Output "未找到名为 %凭证名% 的凭证。"
}

输出用户名的代码

Import-Module CredentialManager
$credential = Get-StoredCredential -Target '%凭证名%'
if ($credential) {
    $securePassword = $credential.Password
# 转换密码为明文
    $password = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto(
        [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($securePassword))
    Write-Output "Password: $password"
} else {
    Write-Output "未找到名为 %凭证名% 的凭证。"
}

步骤2:调用脚本

步骤3:测试

添加一个消息窗口测试输出的变量是否有问题。

成功界面

失败界面

PS:如果使用凭据名是变量最好是从给变量赋值那一步开始,因为每次运行都会清空变量值。

总结

低代码的工具使用起来非常灵活,选择调用脚本或者工具时可以尽量往简便高效的方面出发,也可以在实现功能时多使用AI工具,把想法落地。需要注意的是目前AI工具对Power Automate的回答与实际有出入,还是需要拼接一下各种问题获得解决方案。这个软件难用是难用了点,但是架不住是免费的哇,只能埋头苦干了哈哈。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值