问题标签 [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.
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
我是在语法中遗漏了什么,还是我不够聪明?
powershell - -and 比较是单独评估还是针对同一个对象评估?
我正在寻找两个数组之间的缺失事件:$tc_records
& $RelationshipEvents_array
。两个数组应该有相同的两个条目。
A->B 和反向 B->A 的条目。当我使用-and 语句评估RelationshipEvents 时,是否评估一个(相同)事件,或者-and 的每一侧加载数组并独立评估。
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 中运行脚本?
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
我尝试了以下方法:
输出是:
预期输出:
powershell - 从响应中提取附件
根据Whitesource 文档,响应标头将具有
我想提取那个 xslx 文件,但是我不知道如何提取。我尝试将响应写入文件,但我得到的只是一堆二进制字符。
我还尝试在编写响应之前将其转换为 csv,但这也不起作用。
任何想法?
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, Dictionary
System.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()
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 设为默认值... :(
powershell - 关于 ConvertFrom-Json 和管道 Foreach
为什么以下两个行为不同?
它们似乎是不同的类型。我的PS版本是6.2.3
azure - 天蓝色函数中用户分配的托管标识抛出值不能为空
我有一个使用 power shell 6.2 创建的 http post azure 函数。它需要访问 azure key vault 才能检索机密。当我分配系统分配的托管标识时,它可以完美运行。但是,在使用用户分配的托管标识执行时收到附加错误。
到目前为止我所做的。
- 在 Azure 托管标识服务下创建了用户分配的托管标识。
- 在我的 KeyVault 访问控制(IAM)中添加了贡献者角色 -> 在分配访问下拉列表中我选择了用户分配的托管身份。
- 此外,在 KeyVault 访问策略部分,添加了具有获取和列出机密权限的新创建的用户分配身份
- 最后在 azure 函数的标识选项卡中添加了新用户分配的托管标识。
我已阅读用户分配的托管标识需要 clinet_id 但不知道在 azure 函数的发布请求中配置它的位置。
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.exe
为pwsh.exe
,但我不确定这是否可行。另外,也许有更简单的方法来实现它?