问题标签 [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.
c# - 如何在 ICommandPredictor 中正确执行带有 SessionState 的 ScriptBlock?
嗨,我正在尝试使用 a内部ScriptBlock
的特定来执行 a ,但是如果其中有一个管道,它将永远挂起(可能是死锁)。SessionState
ICommandPredictor
ScriptBlock
我有一个在这里重现问题的项目。
要重新创建问题:
- 克隆仓库
- 在 Visual Studio 2021 中打开
Predictor.cs
在第 23 行设置断点- 从调试开始
- 在打开的终端中输入一个字符。
- Visual Studio 应弹出断点命中
- 按 F10(跳过)
- 因为我们被困住了,你永远不会到达第 28或31行。
所以我在执行 ScriptBlocks 的方式上可能做错了什么。但流程是:
- 当终端启动时,它会执行Install-ScriptBlock
- 这
ScriptBlock
使用一个新的 Session 执行 a ,该 Session 又执行set-scriptblock,set-scriptblock
存储提供ScriptBlock
的和新的SessionState
。 - 创建一个 ICommandPredictor 并将其注册到子系统。
- 这
- 当您在终端中键入
ICommandPredictor
被调用时,这反过来会尝试执行set-scriptblock
使用同一会话保存的脚本块。
我希望这是有道理的,并且我知道流程有些复杂,但是我无法在不破坏我的用例的情况下删除流程中的任何步骤..
那么有什么方法可以改变它以允许我在执行 aScriptBlock
时ICommandPredictor
执行SessionState
aScriptBlock
而不导致它挂起?
万一我的链接中断了,它有以下代码:
powershell - 为什么 ($false || $true) 在 Powershell 7+ 中评估为 False?
在 Powershell 7.2Write-Output ($false || $true)
中将输出False
. 为什么?
powershell - 在 PowerShell 中的调用命令会话中将文件从远程计算机复制到本地计算机
我使用 pwsh 代码连接到远程计算机以生成 CSV 文件。
- 我通过调用命令执行此操作,代码运行良好,在服务器上生成一个 CSV 文件。
- CSV 文件的名称是动态生成的。
但是,我无法将该文件从远程计算机复制到本地计算机。
有没有办法在调用命令中使用复制项?
请建议/指导。
代码片段如下所示。
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 更新
powershell - 如何使“Tee-Object”不在 PowerShell 中添加尾随换行符?
Tee-Object
没有-NoNewline
像许多其他输出到文件 cmdlet 那样的开关(例如Out-File
, Set-Content
)。在幕后,Tee-Object
用于Out-File
写入文件,默认情况下添加尾随换行符。
由于我(当前)无法通过-NoNewline
switch through Tee-Object
,是否有另一种方法可以强制底层Out-File
不会添加尾随换行符?看看 的实现Out-File
,现在可能有办法,但也许有人知道一些技巧/黑客来实现它?
一些限制:
- 我想
Tee-Object
在管道中使用(或替代解决方案) - 我不想对由
Tee-Object
(或替代解决方案)生成的文件进行后处理,例如再次打开它们并删除(最后一个)换行符。
复制代码:
在 Windows 上,生成的文件file
将包含 6 个字节,如以下 hexdump 所示:
不幸的是,其中包含 Windows 中的附加字节0D 0A
aka`r`n
或 CR&LF。
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 并得到了相同的结果。
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)中不起作用。请参阅随附的屏幕截图了解一下
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 以跳过证书检查..
azure - 添加 AzureADDirectoryRoleMember cmdlet 不起作用
以下脚本应在 Azure 中创建服务主体并为其分配给定的 Azure AD 角色,但在最后一步中失败,正是在将角色分配给服务主体时。
服务主体确实是在 Azure AD 中创建的,但该脚本未能分配 Azure AD 角色。通过观察错误消息,似乎/
在 URL 中添加了额外内容,如下所示:https://graph.windows.net//
错误如下:
我正在使用powershell 7.2
. 以下是有关环境的更多信息:
知道这是一个错误,还是我做错了什么?还是有人以不同的方式完成这项任务?
azure - Azure Powershell - 根据私有 IP 查找 NIC
我对 Azure 和 Powershell 非常陌生。我需要根据私有 IP 地址找到我的网络接口。我找到了“Get-AzNetworkInterface”cmdlet,我希望它只返回包含 IP 的条目。我注意到 IP 仅存在于“IpConfigurationsText”中,但不存在于仅包含对象名称的“IpConfigurations”中。我不知道这是否正常。返回的“IpConfigurationText”是一个列表(基于我有限的 python 经验),其中包含这样的字典键值对
我想我想根据其内容进行过滤。我尝试了以下但没有成功...
我也尝试在输出中只显示 IP 而不是字典键值对,但也没有成功
让我知道我错过了什么。
顺便说一句,我还发现我可以使用“Out-GridView”来查看和过滤结果,但是当它很大时它不会显示整个输出。它被截断了。我似乎也无法对其进行复制/粘贴...对此也有任何建议吗?
谢谢!地番