【发布时间】:2016-04-07 09:32:09
【问题描述】:
第一次发帖,如有错误请见谅
我是 IT 系统管理员/一般 IT 管理员
背景: 我创建了一些单独的 powershell 脚本来执行一些基本的重复性任务,这可能是添加防火墙规则、重命名计算机、在 PC 上创建本地帐户。为了绕过计算机上的 powershell 脚本执行策略,我有一个 .bat 和一个 ps1 文件。我启动相关的 .bat,然后启动 ps1 文件来完成这项工作。这些对我自己来说很好,因为我知道它们是如何工作的,而且我不介意使用 powershell 控制台等,但是将所需的 .bat/ps1 文件复制到计算机上,执行然后删除文件,然后再运送到一个有点痛苦客户
最终目标:
- 无需将多个 .bat/.ps1 复制到 PC 并单独运行每个脚本
- 消除用户输入等的 powershell 控制台视图
- 尝试只获取 1 个 .exe(其中嵌入了我的所有脚本),我可以将它提供给团队的其他成员,它与 powershell 脚本基本相同,但看起来更好
我的想法是:创建一个 c# 程序(我以前从未使用过 c#)但是如果我能学到足够的知识来创建一个程序,你可以按下一些按钮来启动我的特定 powershell 脚本。
- 低级 - 一个基本的表单,用于启动硬编码 powershell 脚本的按钮(本质上是将我的脚本复制粘贴到按钮代码中)
- high level - 一个漂亮的 GUI,带有从 Internet 启动 powershell 脚本或在 .exe 中分离嵌入式资源的按钮,如果需要提示用户输入,它会在 Nice GUI 中进行提示,然后将其传递回脚本?
到目前为止我知道什么?
我看过一些链接,例如: https://blogs.msdn.microsoft.com/kebab/2014/04/28/executing-powershell-scripts-from-c/ 我可以将各个脚本代码硬编码到我猜的每个按钮中吗?但是如果我的脚本随着即时测试/改进而改变,我需要继续重建 .exe 并更改每个按钮
你能在 .exe 中嵌入 .ps1 资源之类的吗?所以我可以在按钮启动时硬编码“.\Script1.ps”?而不是 D:\Temp\Script.ps1..我知道我仍然需要每次编译 .exe,但至少它会更整洁一些
我试过在这里搜索和谷歌搜索,但我还没有完全找到我要找的东西。 这是最佳做法吗?我在互联网上看到人们说 powershell 可以做 C# 所做的事情,反之亦然......我想这样做的原因是我已经创建了 powershell 脚本,而它的 c# 方面只是让我得到一个漂亮的图形用户界面,希望能把所有东西放在一起
非常感谢您的帮助,如果这个问题太长/太混乱,我深表歉意
【问题讨论】:
-
你可以添加任何东西作为嵌入资源
标签: c# .net powershell