【发布时间】:2014-10-15 19:47:30
【问题描述】:
我们希望在数据库中存储和管理 PowerShell 脚本并通过 C# 执行它们。 我们怎样才能在执行之前发现这样一个脚本的参数呢?因此我们可以将它们设置为已知值或提示用户输入值。
一些澄清:
我们创建了一个管理系统 MS。
- 管理员将 PowerShell 脚本存储在 MS 数据库中。
- 稍后,其他管理员从 MS 提供的列表中选择了此脚本。
- MS 发现脚本的参数。
- MS 提示管理员输入值。
-
MS 使用提供的参数执行脚本。
string testScript = @" { param( [ValidateNotNullOrEmpty()] [string]$Name ) get-process $name "; Dictionary<string,object> DiscoverParameters() { using (PowerShell psi = PowerShell.Create()) { psi.AddScript(testScript); var pars = new Dictionary<string,object>(); //How do we get at the parameters return pars; } } void ExecuteScript(Dictionary<string,object> pars) { using (PowerShell psi = PowerShell.Create()) { psi.AddScript(testScript); pars.ToList().ForEach(p => psi.AddParameter(p.Key, p.Value)); Collection<PSObject> PSOutput = psi.Invoke(); //... } }
【问题讨论】:
标签: c# powershell