问题标签 [powershell-core]

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 投票
1 回答
1061 浏览

amazon-web-services - 将 PowerShell 脚本发布到 AWS Lambda

我正在尝试将 PowerShell 核心脚本部署到 AWS Lambda。我正在从 EC2 实例进行部署。

我正在关注PowerShell - AWS Lambda 中的 AWS Lambda 部署包,并尝试部署他们描述的确切脚本。当我运行时,它看起来会起作用:

但后来我收到以下错误。

检索函数 LambdaPSTest 的配置时出错:响应状态代码不指示成功:404(未找到)。

我很困惑为什么它看起来会在该地区出现问题,因为我在调用发布时设置了它。

0 投票
1 回答
365 浏览

ssh - 从 linux 到 windows 的 ssh 只能通过密码而不是密钥工作

在我的目标场景中,我需要从 linux 远程连接到 windows 并执行 powershell 命令。为此,我在 windows 上安装了本机 open ssh 服务器,并在两台机器上安装了 pwoershell core 6。

如果我在 sshd 上使用密码身份验证,远程处理就可以正常工作。当需要基于密钥的身份验证时,它不起作用。

有人知道这里可能导致错误的原因吗?

0 投票
2 回答
1115 浏览

azure - 使用 PowerShell 和 Azure CLI 将代码从 GitLab 存储库部署到 Azure Web App

我想使用 PowerShell 脚本和 Azure CLI 设置从 GitLab 存储库到 Azure 应用程序的持续部署。已经有了使用Azure RM 模块和 Windows PowerShell的解决方案,但由于这些现在已弃用,我正在专门寻找使用新的Az 模块PowerShelll Core的解决方案。

该解决方案应该提供一个 PowerShell(核心)脚本来设置直接从 GitLab 到 Azure 的持续部署。它必须利用Az 模块。运行设置脚本后,对 GitLab 存储库的每个后续提交/合并都应自动部署到 Azure。最好,这个 PowerShell 脚本应该适用于托管在 GitLab 上的公共和私有存储库,但我愿意接受仅适用于公共存储库的解决方案。

0 投票
1 回答
172 浏览

linux - 如何创建运行命令的函数?

所以我想做的是重新创建一个与我在 Bash 中使用的类似的函数,但在 Powershell 中:

我目前最感兴趣的部分是这里的 try() 函数。本质上它的作用是允许我用这个函数包装一个命令并让它管理退出代码。效果是这样的:

如果doSomething以非零值退出,它会将命令输出到 stderr 并停止脚本执行。

我意识到 Powershell 有一个可用于中止脚本的错误操作,但它似乎只适用于命令行开关。我需要一些可以在整个脚本中使用的东西。我还希望避免大量冗长的 try/catch 逻辑使脚本变得混乱,因此需要像 try/yell/die 这样优雅的东西。这样,我可以单独在这个函数中编写处理,并使用它来调用我想要处理的任何内容。

我发现$MyInvocation并认为这可能是进入的方式,但我似乎无法找到从函数中实际执行它的方法。例如:

我想我可以自己弄清楚其余的,我只是不太清楚如何编写这个包装函数。有任何想法吗?

更新

所以我做了一些俗气的事情,我对命令进行了子串化,并对Invoke-Expression剩下的内容做了一个,它似乎有效。感觉超级hacky,所以我仍然对想法持开放态度:

0 投票
0 回答
542 浏览

powershell - 从linux执行powershell脚本到windows机器

我们想执行位于 Windows 共享驱动器的 powershell 脚本,例如:来自 linux 机器的 winvmx01\folder1\folder2\script.ps1。我们在 linux 机器上安装了 powershell 并运行,但是 当我们尝试检查版本时Invoke-Command -Computername winvmx01 -ScriptBlock { Get-ChildItem "C:\Program Files" } 它无法找到 powershell 的命令并发布错误它显示正常/bin/bash: line 69: Invoke-Command: command not found.

有人可以建议我们如何进行。如果不是 powershell,是否还有其他客户端可以用来在 Windows 共享机中执行脚本。

谢谢!

0 投票
2 回答
642 浏览

powershell - PowerShell Core 无法识别 unicode

我有一个简单的 PowerShell Core 脚本:

据我所知,PowerShell Core默认为 UTF-8 。但是,正如您在输出中看到的那样,它实际上在 unicode 字符方面比 PowerShell 5.1 更糟糕。

相同的脚本在 PowerShell 5.1 上运行良好

输出

将“ReadAllText”更改为

什么都没有改变(因为它不应该改变,因为它是读取操作的编码,但只是为了清楚:))。

0 投票
2 回答
9258 浏览

powershell - Powershell 6 的哪个库包含 get-wmiobject 命令?

尝试get-WmiObject在 PowerShell(版本 6)中使用该命令时出现以下错误:

0 投票
3 回答
9732 浏览

powershell - 如何在 PowerShell Core (pwsh) 中查找或安装缺少的命令?

我正在使用多个版本的 PowerShell,但只有 2 个可以找到所有标准命令(或者它是commandlet吗?)。

最初安装的是Windows PowerShell v5.1,但后来我也安装了PowerShell Core ( pwsh.exe) v6.1.1。

问题是我试图在 PowerShell Core中运行一些与防火墙相关的东西,但Get-NetFirewallProfile找不到该命令。

但是,它在 Windows PowerShell 中运行良好,因为所需的模块NetSecurity在那里可用。

如何让 PowerShell Core 找到已经存在的模块或重新安装它们?
(它们甚至兼容吗? - 如果不兼容,它们如何更新?)


附加信息

PowerShell Core v6.1中,我只有:

而在Windows PowerShell v5.1中,我有:


万一有人想知道,模块中的所有可用命令都可以列出:
(Get-Module -ListAvailable NetSecurity).ExportedCommands

更新

我设法找到正确的模块,给定一个命令/ comdlet,使用这个:

(或者替换ExportedCommandsExportedCmdlets。)

0 投票
1 回答
406 浏览

.net-core - Connect-PnPOnline:无法加载类型“System.Security.SecureString”

Azure上,我使用microsoft/iis:nanoserver映像创建了一个 Windows 容器。我正在尝试在其中运行SharepointPnPPowershellOnline Cmdlet,它在Connect-PnPOnline上引发以下异常。

我已经在 windows docker 容器中安装了AzureADSharePointPnPPowerShellOnline插件。我尝试使用其他连接选项,包括AccessToken、ClientId、Get-Credentials等,在所有这些上,我都面临同样的问题。

在此处输入图像描述 在此处输入图像描述

非常感谢任何帮助。

0 投票
0 回答
396 浏览

powershell - PowerShell Core 6 中 WebResponse.AllElements 的替代品是什么?

我必须解析一个 html 文件(找到类 xyz 的 div 并使用内部文本)。

WebResponse.AllElements通过使用和过滤集合,这将变得很简单。此成员似乎在 PowerShell Core 6(在 Mac 上)中不可用。

在这个平台上,我得到一个BasicHtmlWebResponseObject作为Invoke-WebRequest $Url调用的返回值,它滞后于 tis 属性。

我不想使用任何 C# 代码或外部库。在 Windows PowerShell 环境中获得相同功能的可维护方式是什么?