问题标签 [powershell-2.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2705 浏览

powershell - 哪些对象适合添加成员?

文档指出:

将用户定义的自定义成员添加到 Windows PowerShell 对象的实例。

“Windows PowerShell 对象”代表什么?

这工作正常:

但这不会:

实际上,我正在尝试将属性添加到 $error[0]。

0 投票
1 回答
1476 浏览

powershell - PowerShell 元编程 - 生成高级函数

我正在研究动态构建一堆高级功能。为此,我一直在使用New-PSScript,但它并不能提供我正在寻找的所有灵活性。

我正在阅读有关函数高级参数的手册页,并在帮助文章的末尾看到了有关动态参数的内容,该文章提供了以下示例代码

我想知道是否可以使用 RuntimeDefinedParameter 和属性集合来生成新函数。

一些半伪代码可能看起来像这样。我(认为)我正在尝试构建的两个关键功能是 New-Parameter 和 Add-Parameter。

我是在完全吠叫错误的树吗?如果有其他方法可以做到这一点,我对可能性持开放态度。

0 投票
3 回答
1500 浏览

powershell - 使用 PowerShell 自动化 Virtual PC 2007?

这基本上是这个问题的副本,但接受的答案是“否”,我想保持这个问题开放,直到得到实际答案,而不是接受“否”并放弃。

Stephen Rose通过 Twitter DM 告诉我使用 PowerShell 来启动和停止 Virtual PC VM,并执行诸如运行安装、自动更新和病毒扫描之类的操作,但他还没有回应我对任何描述如何做的资源链接的请求所以。

我已经开始学习 PowerShell,但我不知道如何获取或使用 Virtual PC 中 VM 列表中的任何信息。

编辑: Windows Virtual PC(Windows 7 XP 模式)与 Virtual PC 2007 不同。我正在运行 Windows 7 作为我的主机操作系统,但我仍在使用 Virtual PC 2007,因为我需要保持运行来宾的能力Vista 或 XP 主机上没有新的 Windows Virtual PC 的计算机。我简单地安装了 Windows Virtual PC 来检查它,它必须对我的虚拟映像进行大量转换。@x0n ( $vpc = new-object -com virtualpc.application) 的建议在我的系统上产生以下错误:

编辑 2:我使用此答案中的 Jeff 的代码列出了我系统上的所有 COM 对象,但找不到任何看起来像是 Virtual PC 的对象。所以现在我认为“不可能”的答案可能是正确的,但我仍然会留下这个问题,以防有人对让 PowerShell 与 Virtual PC 2007 一起工作有任何进一步的建议。同时,我强烈考虑在 Windows 7 中跳转到新的 Windows Virtual PC,只是不担心让我的所有虚拟机与早期版本的 Windows 兼容。

0 投票
9 回答
41748 浏览

.net - 等效于 C# 在 powershell 中的“使用”关键字?

当我在 C# 的 .net-Framework 中使用另一个对象时,我可以通过使用 using 指令来节省大量输入。

那么Powershell中有没有办法做类似的事情呢?我正在访问很多 .net 对象,但不满意必须输入

每时每刻。

0 投票
4 回答
1971 浏览

c#-3.0 - Powershell v2 ctp3 的 Powershell 参考程序集

我已经从 ms 下载安装了 powershell v2 ctp3,并且想知道通常的参考程序集存储在哪里,以便在此版本的 c# 中使用。我知道对于 v1 版本,它们在程序文件\etc\reference assembly\powershell.... 但是对于 v2 ctp3 版本它们在哪里。我专门寻找新的 System.Management.Automation.dll

问候鲍勃。

0 投票
3 回答
262 浏览

c# - 如何从 c# 访问 powershell v2 ctp3 程序集

我知道 System.Management.Automation.dll 程序集放在 GAC 版本 6.1.6949.0 中,我知道它是 ctp3 程序集。当我浏览它时,在 c# 中将其添加为 VS 2008TS 中的引用时,它不会显示。任何人都知道我可以如何添加它。

关于 scope_creep

0 投票
3 回答
474 浏览

c# - Windows 2008 无法执行 c# powershell 应用程序。返回访问异常

有谁知道为什么我无法访问 Windows 2008 Ent 中我的 powershell 脚本所在的文件夹。当我尝试使用文本板创建脚本时,它会出错。当我尝试执行存储在另一个 win 2003 驱动器上的 ac# powershell 应用程序时,它也会出现访问异常。对于普通用户和管理员用户,我已将 powershell 执行策略设置为不受限制,并且在 powershell 上使用“以管理员身份运行”,但这似乎没有什么不同。必须有一个策略设置,不允许脚本访问目录,但是在哪里以及如何设置它。

任何帮助,将不胜感激。
scope_creep

0 投票
3 回答
12100 浏览

c# - 从 C# 以编程方式调用 CmdLet 时如何捕获 Powershell CmdLet 的详细输出

背景

  • 我在 Windows 7 上使用 Powershell 2.0。
  • 我正在 Powershell 模块中编写一个 cmdlet(“模块”是 Powershell 2.0 的新功能)。
  • 为了测试 cmdlet,我正在 Visual Studio 2008 中编写以编程方式调用 cmdlet 的单元测试。

参考

  • MSDN 上的这篇名为“如何从 Cmdlet 中调用 Cmdlet”的文章展示了如何从 C# 调用 cmdlet。

源代码

  • 这是我的实际代码的精炼版本——我已经把它做得尽可能小,这样你就可以清楚地看到我遇到的问题:

    /li>

注释

  • 我了解如何从 Powershell 命令行启用和捕获详细输出;那不是问题。
  • 在这种情况下,我以编程方式从 C# 调用 cmdlet。
  • 我发现没有任何东西可以解决我的具体情况。一些文章建议我应该实现自己的 PSHost,但似乎很昂贵,而且似乎必须将 cmdlet 作为文本调用,我想避免这种情况,因为它不是强类型的。

2009-07-20 更新

这是基于以下答案的源代码。

有些事情我仍然不清楚: * 如何调用“Get-Colors” cmdlet(理想情况下不必将其作为字符串传递给 ps 对象) * 如何在生成时获取详细输出而不是获取最后收集它们。

上面的代码生成这个输出:

2010-01-16 更新

通过使用 Powershell 类(在 System.Management.Automation 中找到,但仅在 powershell 2.0 SDK 附带的程序集版本中,而不是在 Windows 7 上开箱即用的版本中)我可以以编程方式调用 cmdlet 和得到详细的输出。剩下的部分是实际向该 powershell 实例添加一个自定义 cmdlet——因为这是我最初的目标——对我的 cmdlet 进行单元测试,而不是那些带有 powershell 的。

0 投票
4 回答
923 浏览

c# - 什么是包装 ac# 类以供 powershell 脚本使用的最佳方法

我有一个执行 powershell 脚本的引擎,当它们执行时,需要将一些 xml 反馈给调用者。引擎仅将 i/o 作为 idmef xml 消息。所以脚本需要返回一个类似格式的 xml 消息。我有一个类为我进行格式化,它希望脚本编写者使用它。

所以问题是我想包装 ac# 类以使其能够被 powershell 使用。

我看到了一些你可以使用方括号 mob 来引用 c# 类的东西,例如。

如何使 c# 可以像这样使用。我认为它需要被制作成类库并以某种方式加载到 powershell 运行时,但是如何加载。另外,当我从 c# 运行 powershell 时,我该如何将它添加到环境中。

任何帮助,将不胜感激。鲍勃。

0 投票
2 回答
1357 浏览

powershell - Powershell 2.0 输出文件格式的噩梦

如何让 Powershell 输出与以下命令生成的文件相同的文件?

目录 /s /b /ad *.* > C:\files.txt

应该很容易吧?!!

编辑:我发现 ps 正在根据屏幕缓冲区宽度截断输出。用格式表修复它并用空格填充......尝试格式列表,你会得到属性标题......你明白了。