问题标签 [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.
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()
调用的东西。任何帮助是极大的赞赏。
xml - 使用 PowerShell 删除 XML 节点
我正在尝试<Element>SlowPollGroup</Element>
从下面的 XML 中删除。<Markers>
在 XML 文件中有四个层次。我已经使用脚本找到<Markers>
了 $markersExists 。$markersExists = $vendor.SelectSingleNode("./Markers")
我试过下面的脚本:
日志文件摘录如下所示:
但是,当我在 Win10 上的 Windows PowerShell ISE 中测试整个脚本时,输出如下所示:
我使用了下面的代码:
在下面的 XML 上
删除最后一个元素,即
它奏效了。我了解这两种 XML 结构是不同的,我怀疑顶部脚本中的 $element 仅包含 'SlowPollGroup',而不是<Element>SlowPollGroup</Element>
. 周末我一直在尝试谷歌搜索提供的各种脚本,但没有骰子。任何帮助是极大的赞赏。
powershell - 重定向到文件时,Write-Host 会导致空行
片段
印刷
Write-Host
为什么文本文件中每次调用后都有 2 个空白行?
更令人困惑的是当我们将所有流重定向到文件时的行为:
印刷
现在该文件包含所有内容两次,首先是 2 个空行,然后是正常的。为什么文件现在包含所有内容两次?
powershell - 获取 QADUser 邮箱?
我有一个非常通用/基本的问题。(如果不允许请关闭)
目前,我一直在添加quest.activeroles.admanagement
管理单元来运行 QAD cmdlet。是否有人熟悉如何查找用户所附加的组织邮箱?他们的常规用户帐户被添加/授予其他用户权限,以便他们发送电子邮件和类似性质的东西。
以下是我一直在使用基于 AD 中的容器来获取用户所属发行版的内容:
不幸的是,由于这些对象是常规用户帐户,因此没有选项/参数可以搜索它们可能附加到的其他邮箱。
以下返回属于“Org Boxes”容器的用户/邮箱。
AD 中没有属性可以为我提供该信息(或至少我知道)。有谁知道如何做到这一点(关于查找用户所属的其他用户帐户/邮箱)?如果这令人困惑,请原谅。
我们所拥有的只是所有组织邮箱/帐户的列表,为该帐户中的每个用户查询
powershell - 测量多个属性?
我想使用 Get-ChildItem 查询一个目录,并创建一个包含路径、大小(以 Gb 为单位)、MinimumCreationTime、MaximumCreationTime 等列的表。在 foreach 循环中,我编写了 3 个测量命令。是否可以使用一个命令测量多个属性?
powershell - 为每个查询的系统添加分隔符?自定义对象
我在试图理解我的代码背后的逻辑以使其正常工作时遇到了麻烦。只是我得到的一个快速脚本,用于从远程系统检索软件版本并将输出转换为[PSCustomObject]
.
因此,当针对单台计算机运行时,它会返回以下内容,这是所需的输出:
....但是,当针对多个运行时,它会返回:
我想返回的是以下内容:
请原谅这是一个很长的帖子。只是有点坚持我做得不对。我认为这是我列举的方式[PSCustomObject]
,但不确定如何去做。有人对如何做到这一点有任何想法或更好的建议吗?
powershell - 需要 PowerShell 脚本中的过滤帮助
我有一个包含一些服务器数据的数组并有以下脚本:
它给了我以下输出:
我无法确定为什么输出中的最后一行会出现,因为
: The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
有人可以解释这一点并帮助我解决这个未知警告吗?
另外,请让我知道是否有更好的方法来实现所需的输出。
注意:我正在使用-WhatIf
选项,以便实际上不会删除服务器。
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')
但我不想两次下载同一个文件(压缩文件是非常大的文件,我有很多要下载)
有没有更合适的功能或其他方法来解决这个问题?
powershell - 如何让 PowerShell 执行脚本中的所有行?(而不是在 dotnet 上休息一下?)
我有一个 PowerShell 版本 5.1.19041.610 脚本,它大致执行以下操作
它工作正常,直到dotnet run
劫持会话并输出:
脚本就停在那里。我需要它来执行命令 4。如何让 PowerShell 启动 dotnet 并继续执行下一个命令?
powershell - 为什么在传递将其传递给 for 循环以显示的排除参数时不显示完整的目录名称?
所以,我实际上不相信我传递给参数的字符串值是问题,我认为这是我的for
循环如何显示它。
我觉得这应该像我在控制台中运行它时那样工作,就像这样Get-ChildItem -Path C:\users -Exclude "Abraham" -Directory
:它只是排除了我的目录列表。
即使参数中没有指定任何内容,它仍然可以正常运行:Get-ChildItem -Path C:\users -Exclude "" -Directory
关于列出所有目录,但是当我使用自制参数传递它时,它无法正确显示。我得到的是以下内容:
什么时候应该:
有人可以告诉我为什么它不显示完整的目录名称吗?
请注意,当-Exclude
未指定参数时,它将列出所有目录。