问题标签 [powershell-7.2]

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 投票
0 回答
28 浏览

c# - 如何在 ICommandPredictor 中正确执行带有 SessionState 的 ScriptBlock?

嗨,我正在尝试使用 a内部ScriptBlock的特定来执行 a ,但是如果其中有一个管道,它将永远挂起(可能是死锁)。SessionStateICommandPredictorScriptBlock

我有一个在这里重现问题的项目。

要重新创建问题:

  1. 克隆仓库
  2. 在 Visual Studio 2021 中打开
  3. Predictor.cs第 23 行设置断点
  4. 从调试开始
  5. 在打开的终端中输入一个字符。
  6. Visual Studio 应弹出断点命中
  7. 按 F10(跳过)
  8. 因为我们被困住了,你永远不会到达第 2831行。

所以我在执行 ScriptBlocks 的方式上可能做错了什么。但流程是:

  1. 当终端启动时,它会执行Install-ScriptBlock
    1. ScriptBlock使用一个新的 Session 执行 a ,该 Session 又执行set-scriptblockset-scriptblock存储提供ScriptBlock的和新的SessionState
    2. 创建一个 ICommandPredictor 并将其注册到子系统。
  2. 当您在终端中键入ICommandPredictor被调用时,这反过来会尝试执行set-scriptblock使用同一会话保存的脚本块。

我希望这是有道理的,并且我知道流程有些复杂,但是我无法在不破坏我的用例的情况下删除流程中的任何步骤..

那么有什么方法可以改变它以允许我在执行 aScriptBlockICommandPredictor执行SessionStateaScriptBlock而不导致它挂起?

万一我的链接中断了,它有以下代码:

0 投票
1 回答
69 浏览

powershell - 为什么 ($false || $true) 在 Powershell 7+ 中评估为 False?

在 Powershell 7.2Write-Output ($false || $true)中将输出False. 为什么?

0 投票
1 回答
56 浏览

powershell - 在 PowerShell 中的调用命令会话中将文件从远程计算机复制到本地计算机

我使用 pwsh 代码连接到远程计算机以生成 CSV 文件。

  1. 我通过调用命令执行此操作,代码运行良好,在服务器上生成一个 CSV 文件。
  2. CSV 文件的名称是动态生成的。

但是,我无法将该文件从远程计算机复制到本地计算机。

有没有办法在调用命令中使用复制项?

请建议/指导。

代码片段如下所示。


0 投票
0 回答
15 浏览

powershell-7.2 - PowerShell Core for Windows 更新选项有什么区别?

PowerShell 安装程序附带两个不同的选项,用于将 Windows 更新用作 PowerShell 核心更新服务。

这两者之间有什么特别的区别?它们似乎只是对另一个的改写:

PowerShell 7.2 MSI 包包括以下命令行选项:

USE_MU– 此属性有两个可能的值:

  • 1(默认)- 选择通过 Microsoft Update、WSUS 或 SCCM 进行更新
  • 0 - 不选择通过 Microsoft Update、WSUS 或 SCCM 进行更新

ENABLE_MU

  • 1(默认)- 选择使用 Microsoft Update 进行自动更新
  • 0 - 不选择使用 Microsoft 更新

/参考:https ://docs.microsoft.com/powershell/scripting/install/installing-powershell-on-windows#support-for-microsoft-update-in-powershell-72

0 投票
1 回答
44 浏览

powershell - 如何使“Tee-Object”不在 PowerShell 中添加尾随换行符?

Tee-Object没有-NoNewline像许多其他输出到文件 cmdlet 那样的开关(例如Out-File, Set-Content)。在幕后Tee-Object用于Out-File写入文件,默认情况下添加尾随换行符。

由于我(当前)无法通过-NoNewlineswitch through Tee-Object,是否有另一种方法可以强制底层Out-File不会添加尾随换行符?看看 的实现Out-File,现在可能有办法,但也许有人知道一些技巧/黑客来实现它?

一些限制:

  • 我想Tee-Object在管道中使用(或替代解决方案)
  • 我不想对由Tee-Object(或替代解决方案)生成的文件进行后处理,例如再次打开它们并删除(最后一个)换行符。

复制代码:

在 Windows 上,生成的文件file将包含 6 个字节,如以下 hexdump 所示:

不幸的是,其中包含 Windows 中的附加字节0D 0Aaka`r`n或 CR&LF。

0 投票
1 回答
64 浏览

powershell - 命令不适用于Powershell中的变量

我查看了类似的问题,但没有找到适用于此的答案。我也一直在 docs.microsoft.com 上阅读和挖掘。抱歉,如果之前回答过这个问题并且我找不到它。

当我在 Powershell 中为其提供变量时,带有 CLI 的地理定位 API 不起作用。

命令:(本帖更改了站点、API 密钥和 IP) curl.exe 'https://api.xyz.com/ipgeo?apiKey=XXXX&ip=4.3.2.1'

我拥有的脚本:

我从powershell运行它geo 4.3.2.1

起初我没有使用 [string] 变量类型表示法,但在它不起作用并且我在 docs.microsoft.com 上进行了一些阅读之后,我意识到我希望将其视为字符串,所以我添加了它。

echo 语句只是我检查变量的处理方式,并将从最终脚本中删除。它们都正确显示了 IPv4 地址。

我已经尝试过最初的脚本

然后在变量周围添加双引号。都不工作。

如果我在脚本中编辑该行,并在其中放置一个 IPv4 地址并运行它,它会正确输出,所以我知道它不是 API 或它的命令,而是从 powershell 传递变量的方式。

使用该变量时,我从 API 收到错误消息。

我已经在旧的 powershell 中尝试过这个,今天安装了 powershell 7.2 并得到了相同的结果。

0 投票
0 回答
42 浏览

python - Python 和 windows 终端 (Powershell 7)

非常隐秘地进入编程世界,只是为了让我在业余时间忙碌。目前正在学习 python 编程语言。我正在尝试做的一件事是打破在 IDE 和形式中运行代码的习惯,而是在 VS 代码和 windows 终端(powershell 7)中运行代码。只是为了通过terminl了解某些命令。我知道在 CMD "python --version" 命令中会显示我本地机器上安装的 python 的版本号,在这种情况下是 3.10.1

但是当尝试在 Windows 终端(powershell 7)中使用相同的命令时,我得到一个对话框,询问我“你想如何打开这个文件,这很有意义,这与其他 python 命令输入时的情况相同到windows termain(powershell 7)。我已经检查了python是否已添加到我的本地机器中的PATH中,并且这些命令确实可以在基本CMD中运行,但不太清楚为什么它们在windows termain(powershell 7)中不起作用。请参阅随附的屏幕截图了解一下

PowerShell中的Python命令

0 投票
1 回答
39 浏览

https - HTTPWebRequest.GetResponse() - 无法建立 SSL 连接,请参阅内部异常(无法索引到空数组)

我尝试使用来自https://www.powershellgallery.com/packages/HPERedfishCmdlets/1.1.0.0的 HPECMDLets 。

当我连接到 HPE 服务器时,我收到以下错误:

InnerException ($Errors[0].Exception.InnerException | FL *) 是:

我将 Windows Server 2012R2 与 PowerShell 7.2 一起使用。

我还尝试弄清楚 Connect-HPERedfish 函数的结构并创建自己的脚本:

到目的地的 Invoke-Webrequest 成功:

另外 - 使用 PowerShell 5,使用上述脚本连接到服务器是成功的!那么,为什么我在使用 PowerShell 7 时出现错误?

我非常感谢任何帮助

PS:有时复制粘贴错误可能是致命的:内部异常现在给了我正确的输出:

我找到了以下线程:https://github.com/PowerShell/PowerShell/issues/11658,但那里指向所谓的解决方案的链接不起作用..

PPS:关于https://www.agilepointnxblog.com/powershell-error-there-is-no-runspace-available-to-run-scripts-in-this-thread我删除了 ServerCertificateValidationCallback 属性:

但这会导致 innerException:

所以我需要将 [System.Net.ServicePointManager]::ServerCertificateValidationCallback 设置为 $true 以跳过证书检查..

0 投票
1 回答
244 浏览

azure - 添加 AzureADDirectoryRoleMember cmdlet 不起作用

以下脚本应在 Azure 中创建服务主体并为其分配给定的 Azure AD 角色,但在最后一步中失败,正是在将角色分配给服务主体时。

服务主体确实是在 Azure AD 中创建的,但该脚本未能分配 Azure AD 角色。通过观察错误消息,似乎/在 URL 中添加了额外内容,如下所示:https://graph.windows.net//

错误如下:

我正在使用powershell 7.2. 以下是有关环境的更多信息:

知道这是一个错误,还是我做错了什么?还是有人以不同的方式完成这项任务?

0 投票
1 回答
27 浏览

azure - Azure Powershell - 根据私有 IP 查找 NIC

我对 Azure 和 Powershell 非常陌生。我需要根据私有 IP 地址找到我的网络接口。我找到了“Get-AzNetworkInterface”cmdlet,我希望它只返回包含 IP 的条目。我注意到 IP 仅存在于“IpConfigurationsText”中,但不存在于仅包含对象名称的“IpConfigurations”中。我不知道这是否正常。返回的“IpConfigurationText”是一个列表(基于我有限的 python 经验),其中包含这样的字典键值对

我想我想根据其内容进行过滤。我尝试了以下但没有成功...

我也尝试在输出中只显示 IP 而不是字典键值对,但也没有成功

让我知道我错过了什么。

顺便说一句,我还发现我可以使用“Out-GridView”来查看和过滤结果,但是当它很大时它不会显示整个输出。它被截断了。我似乎也无法对其进行复制/粘贴...对此也有任何建议吗?

谢谢!地番