千家信息网

Html+JS+PowerShell打造Web版AD管理系统(二)

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,最近发现gihub上早已有人把powershell的restful webapi做好了,而且是自宿主的owin。比上次用到的httplistener健壮许多。貌似还是支持job,runspace的。h
千家信息网最后更新 2026年11月03日Html+JS+PowerShell打造Web版AD管理系统(二)

最近发现gihub上早已有人把powershell的restful webapi做好了,而且是自宿主的owin。比上次用到的httplistener健壮许多。貌似还是支持job,runspace的。
https://github.com/DimensionDataCBUSydney/PowerShell.REST.API

过程其实比较简单,html不用变,js只需要把拼装webapi url的地方修改下就好,后台的powershell webapi整个替换掉就ok了。

下载源码,直接生成即可。我用的vs2017。然后就可以直接使用了,唯一的问题就是跨域。

一开始在jquery.ajax用jsop,但debug的响应里能看到返回的json对象,可是ajax就是接收不到,也就无法在页面显示,而且console.log(返回的json对象);里面完全没有responseText

网上搜的大部分都没什么用。

前端不行那就只好改后端了。主要是不想修改人家已经成熟的代码,怕会有问题发生,但没办法。
经过一番研究,最终确定,要在owin中加入跨域的代码:
1.安装 Microsoft.AspNet.WebApi.Cors
2.DynamicPowerShellApi.Owin的Startup.cs 加入 using System.Web.Http.Cors;
3.line116处加入跨域配置 config.EnableCors(new EnableCorsAttribute("", "", "*"));

然后重新生成,就可以了,多了10个警告回头再说- -~,经过测试,跨域问题解决。页面可以正常显示。

今天发现中文无法显示,原来PowerShellRunner.cs的Line123中
? Regex.Replace(psOutput.LastOrDefault().ToString(), @"[^\u0000-\u007F]", string.Empty) 用正则匹配了所有的非拉丁字符并替换成空,会导致英文以外的文字都无法输出。

解决办法改正则
例如 ? Regex.Replace(psOutput.LastOrDefault().ToString(), @"", @"") 什么都不替换就是了

后端基本就是这个样子了,如果大家有更好的方案可以交流下。
至于前端,用了下vue,感觉还是很不错的。组件化真的挺方便。

就是 问题 代码 前端 办法 对象 正则 还是 页面 生成 不行 不错 健壮 成熟 没什么 不用 后台 地方 大部分 字符 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南京欣网互联网络科技有限公司 广东猪兼强互联网科技有限公司 互联网巨头反垄断金融科技 亿策互联网科技 万达互联网科技 互联网科技博客 广西拼得多互联网科技有限公司 互联网科技公司招聘 卫星互联网科技股票 银川新华互联网科技职业技术培训学校图片 互联网科技有哪些公司 本届互联网博览会上的黑科技 合肥互联网科技公司公章图片 银行科技岗属于互联网吗 互联网科技快讯热点 陕西云淼互联网科技公司 扫呗互联网科技有限公司 华人运通互联网科技公司 河南商务圈互联网科技有限公司 现代科技的标志之一的互联网 小马过河互联网科技 上游互联网科技 华中科技有哪些互联网大佬 农村开互联网科技讲堂 互联网科技博主是什么意思 互联网企业和科技型企业 互联网5g黑科技有哪些 未来五年的互联网科技 佛山市拉法互联网科技有限公司 广州燕处互联网科技有限公司
0