【发布时间】:2013-07-01 19:08:21
【问题描述】:
我的理解是,Windows Server 2012 中各种 GUI 组件(例如,在磁盘管理中)所做的几乎所有“实际工作”都是通过调用 Powershell 来执行的。 (也就是说,没有什么可以在 GUI 中完成,而 Powershell 则无法完成。)
在您使用 GUI 时查看和/或收集 Windows 执行的各种 Powershell 操作的能力将非常有价值。您将打开此功能,执行您需要执行的配置工作,然后将其关闭,从而生成一个或多个 Powershell 脚本,这些脚本可以自动执行您刚刚手动执行的操作。 (当然,脚本可能会以各种方式进行参数化。)不必弄清楚哪些 cmdlet 用于执行各种任务以及传递给它们的选项所节省的时间将是巨大的——甚至只需知道使用了哪些 cmdlet,就可以帮助您弄清楚如何实现自动化。
此功能就像在 Excel 中打开宏记录器,执行您的操作,然后将其关闭 - 检查生成的宏会告诉您正在操作哪些底层对象,以及如何获得您得到的结果轻松使用 Excel GUI。
这种能力存在吗?你如何打开和关闭它? (我在谷歌上搜索并把自己弄傻了,但没有看到任何说明如何做到这一点的东西——甚至没有明确表示这是可能的——尽管我可以发誓我已经在一些博客或播客上读过/听说过它,回到我不关心 Powershell 的时候。)
任何信息将不胜感激。
【问题讨论】:
-
我相信你听到的恰恰相反:automating the UI with Powershell.
-
某些产品(例如 System Center)允许您显示生成的 PowerShell 代码,但 AFAIK 没有系统范围的宏记录器。如果您想将生成的代码变成有用的脚本,还需要进行相当多的调整。
-
我认为绝大多数 Windows 组件/产品都是“宿主”powershell。他们使用
system.management.automation中的.NET 类将powershell 支持编译到组件中。因此,必须将宏功能内置到(中等)低级 Powershell API 中。 (在这个级别没有 Powershell 命令行或 ISE GUI,它只是 API)由于该组件正在“驱动”API,因此它必须是打开宏记录器的组件。因此,即使有宏录制,它仍然会导致 Ansgar 所说的 - 支持将逐个组件地进行。
标签: powershell powershell-3.0 windows-server-2012