Oracle的 RemoteOperationException: ERROR: Wrong password for user 问题解决方案

当在Oracle10gOEM中遇到输入操作系统用户名密码总是返回错误提示时,可以通过本地安全策略设置来解决这一问题。具体步骤包括:1. 打开本地安全策略;2. 定位到“作为批处理作业登录”的用户权利指派;3. 将所需用户添加到此策略中。
在oracle 10g OEM中有些操作需要输入操作系统的用户名密码才能继续下去,但是无论怎样输入,总是会返回RemoteOperationException: ERROR: Wrong password for user.(错误的用户名密码)的错误。
解决的方法就是在用户策略里面将你需要使用的用户授予“作为批处理作业登录”的权限。

1. 点击开始 —— 程序 —— 管理工具 —— 本地安全策略 或者 开始 —— 设置 —— 控制面板 —— 管理工具中 —— 本地安全策略也可……

2. ”本地计算机“策略 —— Windows 设置 —— 安全设置 —— 在地策略 —— 用户权利指派。
3. 在右侧找到 “作为批处理作业登录” 选项双击……

4. 选择本地安全设置 —— 添加用户或组 —— 高级 —— 立即查找 —— 选择“名称”为“Administrator“ 一项 —— 确定 —— 确定就可以了……
public bool StartJob(string jobName, Dictionary<int, NMC.Scheduling.Route> routes, string src, string dest, int cycleNum, string mode, bool isProcess, bool isUnload, bool isHigh, string runID, Dictionary<string, string> preProcesses, string category, ref string err) { try { err = ""; bool needCool = false; foreach (KeyValuePair<int, NMC.Scheduling.Route> kvp in routes) { this.GetLogger().WarnFormat("Slot{{0}}: Route({1})", kvp.Key, kvp.Value.Name); for (int i = 0; i < kvp.Value.GetStepNum(); ++i) { this.GetLogger().WarnFormat(" Step({0})", i); bool containCoolingChamber = false; bool allCoolingChamberOK = true; for (int j = 0; j < kvp.Value.RouteSteps[i].GetVisitNum(); ++j) { this.GetLogger().WarnFormat(" Visit({0}).StationName: {1}", j, kvp.Value.RouteSteps[i].GetVisit(j).StationName); this.GetLogger().WarnFormat(" Visit({0}).SlotID: {1}", j, kvp.Value.RouteSteps[i].GetVisit(j).SlotID); this.GetLogger().WarnFormat(" Visit({0}).ProcessRecipe: {1}", j, kvp.Value.RouteSteps[i].GetVisit(j).ProcessRecipe); if (!string.IsNullOrEmpty(kvp.Value.RouteSteps[i].GetVisit(j).ProcessRecipe)) { this.mCtrlNodes[this.mUniqueCtrlNode].GetRecipeInfo("SCOPE", kvp.Value.RouteSteps[i].GetVisit(j).ProcessRecipe); // RemoteOperationException, yangy 20170605: check recipe exist or not } // <><><> yangy: add 'else' check ??? post alarm when no process recipe attached <><><> // xianghf_20191015, for CXMT: wafer need be cool down before move to LL // when ChA/ChB were set as cooling chamber, but no recipe is linked to ChA where ChA parallel with ChB in sequence // if (this.mCoolingChkEnabled) { if (this.mHighTempModules.Contains(kvp.Value.RouteSteps[i].GetVisit(j).StationName)) { needCool = true; // 并行chamber中任意一chamber为high, 则设置needCool为true } if (this.mCoolingModules.Contains(kvp.Value.RouteSteps[i].GetVisit(j).StationName)) //&& !string.IsNullOrEmpty(kvp.Value.RouteSteps[i].GetVisit(j).ProcessRecipe)) { containCoolingChamber = true; for (int p = 0; p < kvp.Value.RouteSteps[i].GetVisitNum(); ++p) { if (!this.mCoolingModules.Contains(kvp.Value.RouteSteps[i].GetVisit(p).StationName)) { allCoolingChamberOK = false; break; } else if (string.IsNullOrEmpty(kvp.Value.RouteSteps[i].GetVisit(p).ProcessRecipe)) { allCoolingChamberOK = false; break; } } } } } if (this.mCoolingChkEnabled) { // 并行chamber中所有cooling chamber必须link recipe if (containCoolingChamber && allCoolingChamberOK) { needCool = false; } } } if (needCool) { this.GetLogger().ErrorFormat("Coordinator::StartJob(): There is NO cooling recipe in job '{0}'.", jobName); #if SCOPE_LANG_CH { err = string.Format("任务 '{0}' 中缺少冷却工艺步骤!", jobName); AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("'{2}'关联的任务'{0}[{1}]'启动失败!", jobName, runID, src), err); } #else { err = string.Format("There is NO cooling recipe in job '{0}'.", jobName); AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("Start job '{0}[{1}]' on '{2}' failed!", jobName, runID, src), err); } #endif // AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("Start job '{0}[{1}]' on '{2}' failed!", jobName, runID, src), err); return false; } } // <><><> check dup base on 'jobName' if (TaskManager.GetIns().GetTaskID(jobName) > 0) { this.GetLogger().ErrorFormat("Coordinator::StartJob(): Job named '{0}' has been existed.", jobName); #if SCOPE_LANG_CH { err = string.Format("任务 '{0}' 已经存在!", jobName); AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("'{2}'关联的任务'{0}[{1}]'启动失败!", jobName, runID, src), err); } #else { err = string.Format("Job '{0}' has been existed.", jobName); AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("Start job '{0}[{1}]' on '{2}' failed!", jobName, runID, src), err); } #endif //err = string.Format("Job '{0}' has been existed.", jobName); //AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("Start job '{0}[{1}]' on '{2}' failed!", jobName, runID, src), err); return false; } if (TaskManager.GetIns().IsOverridePreJob(src, routes)) { this.GetLogger().ErrorFormat("Coordinator::StartJob(): Job named '{0}' overrides the previous job.", jobName); #if SCOPE_LANG_CH { err = string.Format("任务 '{0}'与已其它任务有重合!", jobName); AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("'{2}'关联的任务'{0}[{1}]'启动失败!", jobName, runID, src), err); } #else { err = string.Format("Job '{0}' overrides the previous job.", jobName); AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("Start job '{0}[{1}]' on '{2}' failed!", jobName, runID, src), err); } #endif //err = string.Format("Job '{0}' overrides the previous job.", jobName); //AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("Start job '{0}[{1}]' on '{2}' failed!", jobName, runID, src), err); return false; } } catch (Exception ex) { this.GetLogger().ErrorFormat("Coordinator::StartJob(): {0}", ex.Message); err = ex.Message; #if SCOPE_LANG_CH { AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("'{2}'关联的任务'{0}[{1}]'启动失败!", jobName, runID, src), err); } #else { AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("Start job '{0}[{1}]' on '{2}' failed!", jobName, runID, src), err); } #endif //AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("Start job '{0}[{1}]' on '{2}' failed!", jobName, runID, src), err); return false; } // <><> yangy 20160505: add Time Synchronizer check //// try { if (TimeSynchronizer.GetIns().CriticalZoneBegin(ref err)) { return TaskManager.GetIns().StartTask(new Job(jobName, routes, src, dest, cycleNum, (JobMode)Enum.Parse(typeof(JobMode), mode), isProcess, isUnload, isHigh, runID, preProcesses, "", category)); } return false; } catch (Exception ex) { this.GetLogger().ErrorFormat("Coordinator::StartJob(): {0}", ex.Message); #if SCOPE_LANG_CH { AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("'{2}'关联的任务'{0}[{1}]'启动失败!", jobName, runID, src), err); } #else { AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("Start job '{0}[{1}]' on '{2}' failed!", jobName, runID, src), err); } #endif //err = ex.Message; //AlarmManager.GetIns().PostAlarmAndForget(string.Format("{0}[{1}]", jobName, runID), AlarmType.StartJobFailed, string.Format("Start job '{0}[{1}]' on '{2}' failed!", jobName, runID, src), err); return false; } finally { TimeSynchronizer.GetIns().CriticalZoneEnd(); } }
09-03
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值