javascript - 自动化服务器无法创建对象:ActiveXObject 创建错误
问题描述
我在 oracle 程序中有一个非常简单的 javascript 代码,用于获取 Active Directory 的用户名,因为我的应用程序没有任何用户界面。
htp.p('function disp_alert()');
htp.p('{');
htp.p('var WinNetwork = new ActiveXObject("WScript.Network")');
htp.p(' WinNetwork = WinNetwork.UserName');
htp.p('alert(WinNetwork)');
htp.p('}');
它抛出异常ActiveXObject creation error
:Automation server can't create object
我尝试将浏览器设置更改script ActiveX controls marked safe for scripting
为enable
并且它有效。
但在我的情况下,客户端网络中的用户可以访问应用程序,我们无法调整网络中每台机器的安全设置。任何人都可以提出替代解决方案或任何其他方法来获取 Windows 用户名吗?
解决方案
如果您绝对必须使用 WScript.Shell 来完成任何您想要完成的任务,您可以通过 GPO 为您的 Intranet 区域设置选项。
您可以在该站点的帮助下找到相应的 GPO 设置:https ://getadmx.com/?Category=InternetExplorer&Policy=Microsoft.Policies.InternetExplorer::IZ_PolicyScriptActiveXMarkedSafe_3
推荐阅读
- postgresql - 无法使用 Docker 与 postgreSQL 数据库通信
- node.js - 如何使用 mongoose findOneAndUpdate 更新 mongoDB 中的文档字段?
- react-native - 从状态中删除项目后,平面列表不会重新呈现
- dynamics-crm - Microsoft Daynamics WebApi - 导航属性“bpf_quoteid”没有扩展值,也没有“odata.bind”属性注释
- java - Java 在一个窗口大小的周期内计数(例如 size=3)
- python - 递归提取嵌套的json键
- python - Flask - 在递归函数调用时忽略默认参数(在单独调用之间累积的值)
- python - how to add **** at the end of each row in a dataframe?
- laravel - Laravel Blade:嵌套部分在这里做什么?
- html - Blazor with Bootstrap(表单选择)