You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一PowerShell脚本中使用psPAS模块连接不同CyberArk实例

在同一PowerShell脚本中同时连接两个CyberArk实例(基于psPAS模块)

psPAS模块本身不支持直接创建类似P1.New-PASSession这种命名空间式的实例,但可以通过会话变量绑定的方式,实现同时连接并操作两个不同的CyberArk环境,完全满足迁移场景下的跨环境数据导出/导入需求。

实现思路

psPAS的New-PASSession命令提供了-SessionVariable参数,能将当前会话的身份验证上下文(包含Cookie、API端点等信息)保存到指定变量中。后续所有psPAS命令(如Get-PASAccount、Add-PASAccount)都支持通过-WebSession参数传入这个变量,以此指定命令要操作的目标CyberArk实例。

实操示例

以下是完整的跨环境操作脚本示例:

# 准备两个环境的凭据(可通过Get-Credential交互式输入,或提前定义)
$OldEnvCred = Get-Credential -Message "输入旧CyberArk环境凭据"
$NewEnvCred = Get-Credential -Message "输入新CyberArk环境凭据"

# 1. 建立旧环境会话,保存到$OldCyberArkSession变量
$OldCyberArkSession = New-PASSession -BaseURI "https://old-cyberark.yourdomain.com" -Credential $OldEnvCred -SessionVariable OldCyberArkSession

# 2. 建立新环境会话,保存到$NewCyberArkSession变量
$NewCyberArkSession = New-PASSession -BaseURI "https://new-cyberark.yourdomain.com" -Credential $NewEnvCred -SessionVariable NewCyberArkSession

# 3. 从旧环境导出数据(指定使用旧会话)
Write-Host "正在从旧环境导出账户数据..."
$ExportedAccounts = Get-PASAccount -WebSession $OldCyberArkSession

# 4. 将数据导入新环境(指定使用新会话)
Write-Host "正在向新环境导入账户数据..."
foreach ($account in $ExportedAccounts) {
    # 根据实际需求调整Add-PASAccount参数,适配新环境配置
    Add-PASAccount -WebSession $NewCyberArkSession `
        -Name $account.Name `
        -PlatformID $account.PlatformID `
        -Address $account.Address `
        -UserName $account.UserName `
        -Secret (ConvertTo-SecureString $account.Secret -AsPlainText -Force)
}

# 5. 操作完成后关闭两个会话
Close-PASSession -WebSession $OldCyberArkSession
Close-PASSession -WebSession $NewCyberArkSession
Write-Host "跨环境数据迁移完成"

关键注意事项

  • 两个会话完全独立,操作过程中不会互相干扰,可同时执行跨环境的读写操作
  • 需确保psPAS模块版本与两个CyberArk环境的API版本兼容,若环境API版本差异较大,可能需要分别适配命令参数
  • 会话变量会自动维护身份验证状态,无需手动处理令牌或Cookie的同步

内容的提问来源于stack exchange,提问作者Piyush Garg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 09:02:20