问题标签 [powershell-5.1]

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 投票
2 回答
551 浏览

c# - 从 PowerShell 中的路径变量中删除双引号

我正在使用 PowerShell 5.1。

我有一个脚本可以从注册表中检索 HKLM:\SYSTEM\CurrentControlSet\Services<service>\ImagePath 值。获得返回的字符串如下所示:

"C:\Program Files\Dir1\Dir2"

请注意,双引号是字符串的一部分。

我需要获取此字符串表示的路径的父目录。我试过Split-Path了,但这会在返回值中留下前导双引号,这会导致Test-Path返回false确实存在的目录。例如,

为了解决这个问题,我尝试使用Trim()调用来删除任何前导或尾随双引号,但这似乎只是删除了前导双引号,即尾随双引号仍然存在。根据我String.Trim()在 C# 中的经验,这对我来说似乎是一个错误。

唯一可行的方法是将双引号替换为空字符串,如下所示:

但是,这对我来说是错误的。它适用于这种情况,因为路径不能有双引号,即双引号字符是非法的路径变量。但是,如果返回的注册表值在字符串中合法地包含双引号怎么办?这种粗暴的方法将删除该双引号。

我还是 PowerShell 的新手,所以我很可能忽略了一些可以做我想做的事情而不需要我使用Replace()调用的东西。任何帮助是极大的赞赏。

0 投票
1 回答
361 浏览

xml - 使用 PowerShell 删除 XML 节点

我正在尝试<Element>SlowPollGroup</Element>从下面的 XML 中删除。<Markers>在 XML 文件中有四个层次。我已经使用脚本找到<Markers>了 $markersExists 。$markersExists = $vendor.SelectSingleNode("./Markers")

我试过下面的脚本:

日志文件摘录如下所示:

但是,当我在 Win10 上的 Windows PowerShell ISE 中测试整个脚本时,输出如下所示:

PowerShell 错误 v01

我使用了下面的代码:

在下面的 XML 上

删除最后一个元素,即

它奏效了。我了解这两种 XML 结构是不同的,我怀疑顶部脚本中的 $element 仅包含 'SlowPollGroup',而不是<Element>SlowPollGroup</Element>. 周末我一直在尝试谷歌搜索提供的各种脚本,但没有骰子。任何帮助是极大的赞赏。

0 投票
1 回答
128 浏览

powershell - 重定向到文件时,Write-Host 会导致空行

片段

印刷

Write-Host为什么文本文件中每次调用后都有 2 个空白行?

更令人困惑的是当我们将所有流重定向到文件时的行为:

印刷

现在该文件包含所有内容两次,首先是 2 个空行,然后是正常的。为什么文件现在包含所有内容两次?

0 投票
0 回答
49 浏览

powershell - 获取 QADUser 邮箱?

我有一个非常通用/基本的问题。(如果不允许请关闭)

目前,我一直在添加quest.activeroles.admanagement管理单元来运行 QAD cmdlet。是否有人熟悉如何查找用户所附加的组织邮箱?他们的常规用户帐户被添加/授予其他用户权限,以便他们发送电子邮件和类似性质的东西。

以下是我一直在使用基于 AD 中的容器来获取用户所属发行版的内容:

不幸的是,由于这些对象是常规用户帐户,因此没有选项/参数可以搜索它们可能附加到的其他邮箱。

以下返回属于“Org Boxes”容器的用户/邮箱。

AD 中没有属性可以为我提供该信息(或至少我知道)。有谁知道如何做到这一点(关于查找用户所属的其他用户帐户/邮箱)?如果这令人困惑,请原谅。

我们所拥有的只是所有组织邮箱/帐户的列表,为该帐户中的每个用户查询

0 投票
2 回答
381 浏览

powershell - 测量多个属性?

我想使用 Get-ChildItem 查询一个目录,并创建一个包含路径、大小(以 Gb 为单位)、MinimumCreationTime、MaximumCreationTime 等列的表。在 foreach 循环中,我编写了 3 个测量命令。是否可以使用一个命令测量多个属性?

0 投票
2 回答
63 浏览

powershell - 为每个查询的系统添加分隔符?自定义对象

我在试图理解我的代码背后的逻辑以使其正常工作时遇到了麻烦。只是我得到的一个快速脚本,用于从远程系统检索软件版本并将输出转换为[PSCustomObject].

因此,当针对单台计算机运行时,它会返回以下内容,这是所需的输出:

....但是,当针对多个运行时,它会返回:

我想返回的是以下内容:

请原谅这是一个很长的帖子。只是有点坚持我做得不对。我认为这是我列举的方式[PSCustomObject],但不确定如何去做。有人对如何做到这一点有任何想法或更好的建议吗?

0 投票
1 回答
30 浏览

powershell - 需要 PowerShell 脚本中的过滤帮助

我有一个包含一些服务器数据的数组并有以下脚本:


它给了我以下输出:


我无法确定为什么输出中的最后一行会出现,因为
: The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.

有人可以解释这一点并帮助我解决这个未知警告吗?
另外,请让我知道是否有更好的方法来实现所需的输出。
注意:我正在使用-WhatIf选项,以便实际上不会删除服务器。

0 投票
0 回答
69 浏览

powershell - 如何推迟使用 curl 保存文件

我想通过 curl.exe 在 Windows PowerShell 中使用一些 GET 请求来下载几个zip文件,但一些响应正文不是zip,而是包含zip文件链接的json文件。

所以我的原创

$(curl.exe -X GET -H $H1 $requestURL -o "C:\path\filename.zip")

现在需要像

条件$jsonOrZip.count > 1000是我用来知道正文响应是zip文件(计数 > 1000)还是json文件(计数 < 1000)的条件

我需要知道如何将 $jsonOrZip 保存为 zip 文件。我确实尝试了以下

$jsonOrZip | Out-File -FilePath 'C:\path\filename.zip'

但我得到一个损坏的zip文件。

我可以解决此问题的另一种方法是重复先前的请求并将其输出为zip文件

$(curl.exe -X GET -H $H1 $requestURL -o 'C:\path\filename.zip')

但我不想两次下载同一个文件(压缩文件是非常大的文件,我有很多要下载)

有没有更合适的功能或其他方法来解决这个问题?

0 投票
1 回答
65 浏览

powershell - 如何让 PowerShell 执行脚本中的所有行?(而不是在 dotnet 上休息一下?)

我有一个 PowerShell 版本 5.1.19041.610 脚本,它大致执行以下操作

它工作正常,直到dotnet run劫持会话并输出:

脚本就停在那里。我需要它来执行命令 4。如何让 PowerShell 启动 dotnet 并继续执行下一个命令?

0 投票
1 回答
30 浏览

powershell - 为什么在传递将其传递给 for 循环以显示的排除参数时不显示完整的目录名称?

所以,我实际上不相信我传递给参数的字符串值是问题,我认为这是我的for循环如何显示它。

我觉得这应该像我在控制台中运行它时那样工作,就像这样Get-ChildItem -Path C:\users -Exclude "Abraham" -Directory:它只是排除了我的目录列表。

即使参数中没有指定任何内容,它仍然可以正常运行:Get-ChildItem -Path C:\users -Exclude "" -Directory关于列出所有目录,但是当我使用自制参数传递它时,它无法正确显示。我得到的是以下内容:

什么时候应该:

有人可以告诉我为什么它不显示完整的目录名称吗?

请注意,当-Exclude未指定参数时,它将列出所有目录。