问题标签 [powershell-3.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 投票
3 回答
8624 浏览

powershell - 捕获工作流中的错误

我一直在玩 PS 3.0 RC 中的 PowerShell 工作流,到目前为止,我很喜欢。但是,您可以在工作流程中使用和不能使用的东西有很多限制。我目前挂断的一个是 $Error 变量。调用我的工作流程时,我收到以下错误:

有谁知道如何在工作流程中捕获错误文本,或者如果您不熟悉工作流程,有关于错误捕获替代方法的建议吗?我一直在四处寻找,几乎找不到有关工作流程细节的信息。谢谢!

我正在尝试做这样的事情:

0 投票
1 回答
417 浏览

powershell-3.0 - 尝试匹配行首的字符串,然后提取直到出现相同的字符串

您好,我正在尝试提取一个以目标“值”开头的字符串,然后将提取其间的所有信息,然后当它看到相同的标记“值”时,它将停止提取。我正在处理一个txt文件。

前任:

80 E4 00 80 09 4F 07 A0 00 00 01 51 53 7F 00 A4 04 00 00 80 E6 02 00 22 09 A0 00 00 00 18 20 41 43 54 00 14 AD 15 C6 80 E8 00 00 C0 E2 01 00 00 18 10 01 08 01 00 00 80 E8 00 01 C0 A0 00 00 00 18 20 01 04 05 00 02 08 A0 00 00 80 E8 00 02 C0 FF 00 01 00 00 00 07 0A C7 7 06 01 0 8 F E6 0C 00 4E 09 A0 00 00 00 18 20 41 43 54 0A A0 00 00 00 18 20 80 E8 02 00 21 08 A0 00 00 00 18 10 01 07 00 14 4F 7E 23 A9 73 80 E6 02 00 00 18 10 01 07 09 A0 00 00 00 18 10 80 C0 00 00 01 00 00 A4 04 00 0F A0 00 00 00 18 10 01 08 01 00 00 00 BA FE 02

所以我想从它从“80 E6”开始的地方提取,然后提取其间的所有信息,直到它再次显示“80 E6”的标签。

所以输出将是:

80 E6 02 00 22 09 A0 00 00 00 18 20 41 43 54 00 14 AD 15 C6 80 E8 00 00 C0 E2 1B 4F 0F A0 00 00 00 18 10 01 08 01 00 00 80 E8 00 01 0 1 C0 A0 20 01 04 05 00 02 08 A0 00 00 80 E8 00 02 C0 FF 00 01 00 00 00 07 0A C7 06 00 F3 80 77 01 80 E6 0C 00 4E 09 A0 00 00 00 180A 20 41 0 43 0 4 18 20 80 E8 02 00 21 08 A0 00 00 00 18 10 01 07 00 14 4F 7E 23 A9 73

到目前为止,我有这个作为我的脚本:

我是不是做错了什么,因为这在其他情况下对我很有用..

谢谢!

0 投票
2 回答
534 浏览

c# - 如何使用与其他 DLR 语言类似的 API 在 ac# 应用程序中托管 PowerShell 3.0

我一直在使用托管 IronPython、IronRuby 和(希望如此)PowerShell 的 ac# 应用程序。由于 IronPython 和 IronRuby 完全建立在 DLR 之上,因此使用它们的 API 几乎相同。

两者都创建Microsoft.Scripting.Hosting.ScriptEngine的实例。有没有希望强制 PowerShell 3.0 创建一个 ScriptEngine?我在这个主题上找不到太多东西,除了 PowerShell 3.0 似乎比以前的版本更多地构建在 DLR 上(参见http://huddledmasses.org/powershell-3-finally-on-the-dlr

您似乎无法将使用以下内容创建的 PowerShell 引擎强制转换为 ScriptEngine。

我怀疑如果我真的想通过相同的 API 处理 PowerShell,我需要创建自己的 ScriptEngine 来包装 PowerShell 主机。

0 投票
3 回答
822 浏览

powershell - 为什么 $hash.key 语法在 ExpandString 方法中不起作用?

以下 Powershell 脚本演示了该问题:

任何人都知道为什么$hash.key语法在任何地方都有效,但在显式扩展中?这可以解决吗,还是我必须接受它并使用$hash[''key'']语法?

0 投票
6 回答
51085 浏览

powershell - 检查是否存在 AD 对象;如何避免丑陋的错误消息?

我有一些看起来像这样的代码:

不幸的是,当 Get-ADUser DN 找不到用户时(这很好,这意味着对象名称没有被占用),它抛出并吐出一个错误。我知道它会失败,这很好,这就是为什么我有一个-ErrorActionto SilentlyContinue。不幸的是,它似乎什么也没做......我仍然对脚本输出感到厌烦。该代码有效,只是由于控制台吐出错误而很难看。

  • 有没有更好的方法来测试特定对象是否存在?
  • 如果没有,有没有办法让 ErrorAction 正确地保持沉默?
0 投票
2 回答
2040 浏览

powershell - PowerShell $PSVersionTable

我安装了 PowerShell 3.0,我希望模拟 v1.0

当我使用 -Version 1 $PSVersionTable 报告启动 PowerShell 3.0 时:

名称 值
---- -----
CLRVersion 2.0.50727.5456
BuildVersion 6.1.7601.17514
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1

如果我使用 -Version 2 参数,我会得到相同的结果
如果我使用 -Version 3 参数,我会得到版本 3。

问题,为什么我不能模拟版本 1?

0 投票
1 回答
3971 浏览

powershell - 在 powershell 中通过 HTTP POST 上传文件

我正在使用文件主机在云上备份我的硬盘驱动器。这个文件主机提供了一个 API 来做到这一点,但我无法让它在 powershell 上运行。

在他们的 API 网站(http://code.google.com/p/filecloud/wiki/Uploading)上,他们声称“我们通过 HTTP POST 请求上传文件”,所以我使用了我信任的POST_Request函数:

由于他们的网站声称他们需要发送 2 个参数才能上传(我的帐户和文件的一种 id),所以我不能UploadFileSystem.Net.WebClient对象中使用。

总之,我的问题是:如何传递参数(id)和要通过 POST 上传的文件?(也许一个技巧UploadFile可以做到)

提前谢谢了!

0 投票
2 回答
6538 浏览

powershell - 在 Windows 8 上使用 PowerShell 2 作为默认版本

我想在不指定-Version开关的情况下使用 PowerShell 2 作为 Windows 8 上的默认 PowerShell 版本。

我开始使用 PowerShell 3 附带的 Windows 8 RTM,并且我的脚本与 PowerShell 3 不兼容。

0 投票
2 回答
604 浏览

powershell - PowerShell 3 中的成员枚举如何工作?

在 PoweShell 2 中,我们做了:

在 Powershell 3 中,我们这样做:

但是它是如何工作的,我在 MSDN 上阅读了这篇博文,他们说它更快,因为 foreach 循环没有运行?那么它如何枚举属性呢?

0 投票
2 回答
579 浏览

powershell - PowerShell 管道

如果我运行以下命令:

第二个表达式总是比第一个更快,我猜是因为它不必使用管道。

我想也许在 Pipeline 方法中,PowerShell 递归了我的驱动器并将一组对象传递给 where 子句,这将不得不再次遍历这些项目,但我排除了这一点,因为如果你运行第一个表达式,你可以看到它返回输出,因为它是递归的。那么为什么 Pipeline 方法比较慢呢?