项目背景&前言
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的回答与实际有出入,还是需要拼接一下各种问题获得解决方案。这个软件难用是难用了点,但是架不住是免费的哇,只能埋头苦干了哈哈。
9359

被折叠的 条评论
为什么被折叠?



