问题标签 [powershell-6.0]

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 回答
843 浏览

powershell - 为什么使用 Start-MpScan 在 Powershell 中扫描单个文件比使用上下文菜单选项花费更长的时间?

我目前正在编写一个脚本来使用 Windows Defender 扫描各种文件。我已阅读有关Microsoft Docs - StartMpScan的文档,但是在尝试扫描单个文件或文件夹时遇到了问题。

文档规定我-ScanPath用来表示选择性扫描,所以它看起来像这样;

Start-MpScan -ScanPath "C:\Path\To\File\or\Folder"

但是,当我运行扫描时,扫描单个 1kb 文件或包含几个 1kb 文件的文件夹可能需要 5-10 分钟!即使使用快速扫描也是如此。我认为这有问题,所以我尝试在其中一个文件上使用右键单击上下文选项来“使用 Windows Defender 扫描...”,并且每次几乎立即扫描。

这些是我目前的规格:

操作系统:Windows 10 教育版

操作系统版本:1903

操作系统版本:18362.476

Powershell 版本:6.2.3

我是在语法中遗漏了什么,还是我不够聪明?

0 投票
2 回答
45 浏览

powershell - -and 比较是单独评估还是针对同一个对象评估?

我正在寻找两个数组之间的缺失事件:$tc_records& $RelationshipEvents_array。两个数组应该有相同的两个条目。

A->B 和反向 B->A 的条目。当我使用-and 语句评估RelationshipEvents 时,是否评估一个(相同)事件,或者-and 的每一侧加载数组并独立评估。

0 投票
1 回答
615 浏览

powershell - 将 Connect-SPOService 与 Powershell 6(核心版本)一起使用

我正在尝试连接到共享点环境,并且我想使用 Powershell 版本 6 进行连接。为什么?最终,我想将 PS 命令放入 .net core 3 应用程序中。据我所知,我不能在 .net 核心中使用 PS5.1。

这是关于这个powershell脚本:

当我在默认的 PS 5.1 中尝试这个时,它工作得很好。当我使用 PS 6.2.3 尝试此操作时,出现错误:

较新的 Powershell 是否有不同的语法或者我做错了什么?此外,也许有一种方法可以在 .net 核心中运行脚本时在 ps 5.1 中运行脚本?

0 投票
2 回答
58 浏览

powershell - 如何使用 Get-ChildItem 打印特定父/子的文件?

我可以使用 Get-ChildItem -Recurse 递归搜索目录。但没有得到预期的输出。也试过-深度。但没有运气。

文件夹结构如下:

C:\Users\Documents\Azure\repo\Templates\directory*

directory1-uat --> childdir1 --> childdir2 --> a.parameters.json

directory2-dev --> childdir1 --> childdir2 --> b.parameters.json

directory3-nonprod --> childdir1 --> childdir2 --> c.parameters.json

directory4-test --> childdir1 --> childdir2 --> d.parameters.json

directory5-uat --> childdir1 --> childdir2 --> e.parameters.json

我尝试了以下方法:

输出是:

预期输出:

0 投票
1 回答
366 浏览

powershell - 从响应中提取附件

根据Whitesource 文档,响应标头将具有

我想提取那个 xslx 文件,但是我不知道如何提取。我尝试将响应写入文件,但我得到的只是一堆二进制字符。

我还尝试在编写响应之前将其转换为 csv,但这也不起作用。

任何想法?

0 投票
0 回答
677 浏览

powershell - 如何解决运行 Invoke-sqlcmd 命令以使用 Invoke-SQLCMD 和 Powershell 6 连接到 Azure Datawarehouse 的错误?

我正在尝试从 Azure Datawarehouse/Synapse 运行简单的选择语句。我正在使用 Azure Active Directory 帐户进行身份验证,在我的情况下我不能使用 sql server 身份验证。

此命令在 Powershell 5.1.16299(非 dotnet 核心版本)中运行良好。

代码

Powershell 版本: 主要小补丁 PreReleaseLabel BuildLabel


6 2 4

SQL Server 模块版本 ModuleType 版本名称 ExportedCommands ---------- -------- ---- ---- 脚本 21.1.18218 SqlServer {Add-SqlAvailabilityDatabase, Add-SqlAvailabilityGroupListen…</p>

错误消息 Invoke-Sqlcmd:不支持关键字:“身份验证”。在 line:1 char:1 + Invoke-Sqlcmd -ConnectionString $ConnectionString -Query $query -Quer ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidResult: ( :) [Invoke-Sqlcmd],ArgumentException + FullyQualifiedErrorId:ExecutionFailed,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand

$Error[0].Exception.ToString() 输出 System.ArgumentException:不支持关键字:“身份验证”。在 System.Data.Common.DbConnectionOptions.ParseInternal(字典2 parsetable, String connectionString, Boolean buildChain, DictionarySystem.Data.Common.DbConnectionOptions..ctor(String connectionString, Dictionary`2 同义词) 在 System.Data.SqlClient.SqlConnectionString..ctor(String connectionString) 在 System.Data.SqlClient.SqlConnectionFactory 的 2 个同义词,布尔 firstKey)。 CreateConnectionOptions(String connectionString, DbConnectionOptions previous) at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) at System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key) at System.Data.SqlClient.SqlConnection Microsoft.SqlServer.Management.PowerShell.ExecutionProcessor 的 System.Data.SqlClient.SqlConnection..ctor(String connectionString) 的 .set_ConnectionString(String value)。CreateSqlConnection() 在 Microsoft.SqlServer.Management.PowerShell.ExecutionProcessor..ctor(GetScriptCommand sqlCmdCmdLet) 在 Microsoft.SqlServer.Management.PowerShell.GetScriptCommand.ProcessRecord()

0 投票
1 回答
2480 浏览

powershell - 如何让winrm默认使用powershell 7进行远程会话

随着 powershell 7 的发布,似乎是时候超越 ps 5.1 了,所以我已经安装了几台服务器来试一试。

但是,当我使用 ps7 从我的电脑创建到这些服务器的会话时,我总是在远程机器上运行 ps5.1。

输出 5.1.17763.316。有什么想法可以让远程会话默认使用 7.0.0 版本吗?

更新 在这方面取得了一些进展,所以尽管我会分享。

在 powershell 7 中的远程计算机上运行以下命令

这将创建一些 PsSessionConfigurations,您可以使用以下命令查看它们。

现在您可以执行以下操作从 powershell 7 创建会话

这现在在远程会话上使用 ps 7,快乐的日子。现在如何默认发生这种情况......?从这个github问题

将默认的 microsoft.powershell 端点设置为他们选择的任何 PowerShell

我认为这是我想要做的,所以切换回 ps 5.1 并尝试了这个命令:

只得到以下输出:

Set-PSSessionConfiguration:无法将参数“PSVersion”绑定到目标。异常设置“PSVersion”:“值 7.0 对 PSVersion 参数无效。可用值为 2.0、3.0、4.0、5.0、5.1。”

虽然我会在 ps7 中尝试这个,所以通过运行pwsh切换回来并再次运行相同的命令以让他跟随......

写入错误:没有会话配置符合条件“microsoft.powershell”。

所以仍然不太确定如何将 ps7 设为默认值... :(

0 投票
0 回答
33 浏览

powershell - 关于 ConvertFrom-Json 和管道 Foreach

为什么以下两个行为不同?

它们似乎是不同的类型。我的PS版本是6.2.3

0 投票
2 回答
653 浏览

azure - 天蓝色函数中用户分配的托管标识抛出值不能为空

我有一个使用 power shell 6.2 创建的 http post azure 函数。它需要访问 azure key vault 才能检索机密。当我分配系统分配的托管标识时,它可以完美运行。但是,在使用用户分配的托管标识执行时收到附加错误。

到目前为止我所做的。

  1. 在 Azure 托管标识服务下创建了用户分配的托管标识。
  2. 在我的 KeyVault 访问控制(IAM)中添加了贡献者角色 -> 在分配访问下拉列表中我选择了用户分配的托管身份。
  3. 此外,在 KeyVault 访问策略部分,添加了具有获取和列出机密权限的新创建的用户分配身份
  4. 最后在 azure 函数的标识选项卡中添加了新用户分配的托管标识。

我已阅读用户分配的托管标识需要 clinet_id 但不知道在 azure 函数的发布请求中配置它的位置。

在此处输入图像描述

0 投票
0 回答
104 浏览

powershell - 使用 PowerShell Core 6 / PowerShell 7 运行 Vagrant Provisioner

我想在 Windows Server 2008R2 上使用 Vagrant 运行 PowerShell Pester 测试。

Windows Server 2008R2 默认安装了 PowerShell 3.0,我显然更喜欢使用更现代的 PowerShell 版本。

我可以使用 Chocolatey(例如choco install powershell.portable)安装 PowerShell 6,但是我很难强制供应商使用这个版本的 PowerShell。

我使用外壳配置器

我考虑过在配置程序执行我的测试之前运行的单独配置程序中将ps1文件关联从Vagrant 机器更改powershell.exepwsh.exe,但我不确定这是否可行。另外,也许有更简单的方法来实现它?