如何用pmcmd/.ksh运行Informatica工作流?UM_10205认证失败求助
这种情况确实挺费解的——明明Workflow Manager能顺利登录运行工作流,用pmcmd却碰上个认证失败,我帮你梳理几个最可能的原因和解决步骤:
1. 加密密码的环境兼容性问题
你用-pv传入的加密密码,大概率是问题所在。pmcmd的密码加密是依赖本地执行环境的,比如执行加密的用户账号、Informatica安装目录权限、甚至机器环境都有关系。如果这个加密密码是在其他机器、其他用户下生成的,拿到当前环境用肯定会认证失败。
- 排查测试:先临时用明文密码参数
-p替换-pv来执行命令(注意生产环境别这么干,仅用于排查),如果能成功,就坐实是加密密码的问题。 - 解决办法:在当前运行pmcmd的环境下,重新生成加密密码:
把生成的新密码替换到原来的命令里就行。pmcmd encrypt -d Domain_name -usd e-directory -u user
2. 安全域参数的精确匹配问题
别小看拼写和大小写!Informatica的安全域名称是大小写敏感的,命令里的-usd e-directory必须和Workflow Manager里显示的安全域名称完全一致——哪怕多一个空格、大小写不一样,都会触发认证失败。
- 解决办法:打开Workflow Manager,复制粘贴安全域的精确名称到pmcmd命令的
-usd参数中,确保完全匹配。
3. Integration Service的认证配置差异
Workflow Manager是直接连接到Domain,而pmcmd是连接到指定的Integration Service(-sv intg_ser),有可能这个Integration Service的认证规则和Domain不一致:
比如Integration Service没有被授权验证e-directory域的用户;
或者它的服务账号没有权限访问e-directory服务器。
解决办法:
- 登录Informatica Administrator,检查
intg_ser这个Integration Service的配置,确认它的安全域设置允许e-directory用户访问; - 去看Domain日志(错误提示里提到的日志),找更详细的报错细节——比如是不是Integration Service连不上e-directory,或者用户没有被授权访问这个服务。
- 登录Informatica Administrator,检查
4. 执行pmcmd的用户权限问题
运行pmcmd的用户(比如ksh脚本的执行账号),可能没有权限访问Informatica的关键配置文件,比如pmcmd.ini或者Domain的连接配置文件。而你用Workflow Manager登录的是桌面用户,权限足够,所以能正常运行。
- 解决办法:
- 检查执行pmcmd的用户对Informatica安装目录(尤其是
$INFA_HOME/server/bin和$INFA_HOME/domain)有没有读写权限; - 试试用和Workflow Manager相同的用户账号来运行pmcmd,看能不能成功。
- 检查执行pmcmd的用户对Informatica安装目录(尤其是
5. pmcmd命令参数的格式/顺序问题
再仔细核对你的命令:
pmcmd startworkflow -sv intg_ser -d Domain_name -usd e-directory -u user -pv encrypted_passwd -f app_CCMLB_FPERX -wait wf_4100_CCML_CAP_PKG_EXT
有些版本的pmcmd对参数顺序有要求,比如-d(Domain)要放在-sv(Integration Service)前面;另外也要确认工作流名称wf_4100_CCML_CAP_PKG_EXT在文件夹app_CCMLB_FPERX下确实存在,拼写完全一致。
- 解决办法:调整参数顺序试试(比如把
-d Domain_name移到最前面),或者核对所有参数的拼写和对应关系。
内容的提问来源于stack exchange,提问作者Phantom

