问题标签 [powershell-7.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 回答
98 浏览

powershell - 如何防止 PowerShell 将异常数据添加到 $error

我在一个函数中调用了很多 REST 调用。我知道其中一些会失败,但这是意料之中的。

我的问题是:

如何防止 powershell 向全局$error变量添加条目?

前锋:


$error调用后的变量:

在此处输入图像描述

0 投票
1 回答
77 浏览

powershell - Cmdlet 调用更改 - 无法使用 powershell 创建虚拟网络

当我运行此命令时:$frontEndSubnet = New-AzVirtualNetworkSubnetConfig -Name frontEndSubnet -AddressPrefix "10.0.1.0/24" 显示以下错误: “警告:cmdlet 'New-AzVirtualNetworkSubnetConfig' 中的重大更改:警告:-更新属性名称

警告:Cmdlet 调用更改:旧方式:-ResourceId 新方式:-NatGatewayId 警告:-更新属性名称

警告:Cmdlet 调用更改:旧方式:-InputObject 新方式:-NatGateway"

0 投票
1 回答
117 浏览

powershell - 无法在名称包含“[”的目录中使用“ForEach-Object -Parallel”

在名称包含“[”的目录中使用ForEach-Object -Parallel cmdlet 将返回 WildcardPatternException。删除-Parallel,它将成功运行。

我创建了几个目录并运行了以下命令。
1..5 | ForEach-Object -Parallel {Write-Host $_}
每个运行目录的返回差异如下。

将返回 WildcardPatternException。

将返回 ItemNotFoundException。

跑成功,返回5个值。

有没有办法在不重命名目录的情况下解决这个问题?

0 投票
0 回答
109 浏览

powershell - 如何添加关键参数包含禁止通配符的 CIM 实例?

注意:我知道Wdac 模块,但它目前不适用于 PowerShell 7。解决这个问题导致了这个问题。


MSFT_OdbcDsnTask 类的Add 方法有一个必需的参数“DriverName”,其描述如下:

司机姓名 [in]

新 ODBC DSN 的 ODBC 驱动程序的名称。您不能使用通配符。

我计算机上的大多数 ODBC 驱动程序的名称都包含*我认为在这种情况下被解释为通配符的名称。以下是一些示例:

  • Microsoft Excel 驱动程序 (*.xls)
  • Microsoft Access 驱动程序 (*.mdb)
  • Microsoft Access 文本驱动程序(*.txt、*.csv)

通过调用 PowerShell 命令调用 Add 方法以创建 DSN

导致错误The requested object could not be found.。更改注释行,以便DriverName = 'SQL Server'成功创建 DSN,而不是包含通配符的 excel 驱动程序。

  1. 如何使用 CIM/WMI 为名称包含通配符的驱动程序创建 DSN?
  2. *有没有办法以允许该Add方法找到该驱动程序的方式引用其名称包含的驱动程序?

更新1:

根据此评论产生的错误让我想知道这是否真的归结为通配符。我运行这个脚本来测试我电脑上提到的所有驱动程序。结果如下。请注意,驱动程序Microsoft ODBC for Oracle因错误而失败The driver {ODBC for Oracle} is not installed.

0 投票
1 回答
130 浏览

sql-server - 在不使用备份的情况下在 Powershell 中复制数据库架构的最佳方法是什么?

我想编写一个 PowerShell 脚本,将数据库的结构从远程服务器复制到我可以读写但无法备份的远程服务器。数据库需要Microsoft SQL Server 2019 (Developer Edition)从远程服务器复制到本地安装,即MS SQL Server 2012 (Enterprise Edition).

0 投票
1 回答
723 浏览

powershell - 运行 powershell --version 时出现错误

当我运行 PS C:\Program Files\PowerShell\7> powershell.exe --version

它给了我以下错误。

在 line:1 char:3 + --version + ~ 一元运算符“--”后缺少表达式。在 line:1 char:3 + --version + ~~~~~~~ 表达式或语句中出现意外的标记“版本”。+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : MissingExpressionAfterOperator

您能帮我找出问题所在吗?我想安装 AZURE POWERSHELL 7.0

0 投票
2 回答
260 浏览

powershell - Powershell 函数调用在 Windows 10 上使用 powershell v7 导致缺少函数错误

我编写了一个脚本来在一个文件夹中构建所有 .net 项目。

问题

问题是当我调用 Build-Sollution 时出现缺少函数错误。

我试过的

我确保在使用它之前声明了该函数,所以我不确定为什么它说它没有定义。

我是 powershell 的新手,但我认为调用另一个函数的函数应该像这样工作?

提前致谢!

请参阅下面的错误消息和代码。

错误信息

线 | 3 | 构建解决方案 $_ | ~~~~~~~~~~~~~~~ 术语“Build-Sollution”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。构建解决方案:

代码

0 投票
1 回答
200 浏览

powershell - 如何使用 Ctrl+C 停止子进程而不破坏主脚本并将子输出流式传输到 PowerShell 中的主脚本?

我正在编写一个在 Linux 上运行的 powershell 脚本。此脚本的目的是运行 MS SQL Server 并显示其输出,但是当用户按下Ctrl+C或发生某些错误时,脚本会获取数据文件夹的副本,然后退出。

这个脚本有几个问题:

  • 当我按Ctrl+C时,它会破坏主脚本,并且它永远不会到达Create-Backup脚本底部的部分。
  • 如果我删除-Wait,那么脚本将不会显示 sql 日志输出

所以我首选的解决方案是使用-Wait参数运行 sql 并阻止 powershell 在我按Ctrl+后退出代码C,而是Ctrl+C关闭 sql 实例

所以我正在寻找一种方法来实现两者。

0 投票
0 回答
51 浏览

powershell - ForEach-Object 循环似乎不会循环遍历数组项

我对编码和 Powershell 非常陌生。我正在尝试从 csv 输入中获取数据,从每一行中解析组,并根据组是否存在运行一个函数。如果存在多个组,那么我会查找优先级顺序并根据该优先级运行特定功能。

Import-CSV 以创建 $Records。当显示 $Records 的内容时,它看起来像:

需要解析每一行,并根据组的存在和顺序运行特定的函数。

我尝试了 ForEach-Object 循环、For-Each 循环和 Switch 循环,但似乎都没有达到预期的行为。

ForEach-对象

转变

当前输出似乎没有单独处理每一行。而不是日志读取类似:

我实际上在日志中得到的是这样的:

有可能得到我想要的结果吗?如果是这样,我错过了什么或做错了什么导致它似乎没有按需要解析每一行?我花了很多时间尝试不同的方法来编写这个脚本,但他们每个人都没有按照我的意愿去做。本质上,我希望脚本做我想让它做的事情,而不是我表面上告诉它做的事情。谢谢您的帮助。


现在似乎有效的方法(2020 年 5 月 20 日):

Write-Host仅在我对其进行故障排除时出现在代码中。稍后我可以进行查找/替换并将其注释掉。

现在它似乎以这种方式工作,我将尝试获取它,以便我可以修改 a 的代码,ForEach-Object {...最终目标为ForEach-Object -Parallel {.... 虽然,这对我的日志记录知识造成了影响。

0 投票
1 回答
179 浏览

.net - 如何自动设置表单和datagridview宽度csv

我有一个从 Internet 下载的 Powershell 脚本,并针对我的目的进行了修改。我的目的是打开 CSV,进行更改,点击保存按钮,然后 X 退出。

我的问题是我必须手动设置每个 CSV 的宽度(来自脚本)。我可以手动调整表格增长/缩小,但不能调整 DataGrid

我想

  • Form 和 DataGrid 根据启动时或手动时的列数自动增长或缩小。
  • 当我对列执行 AutoFit 时,Form 和 DataGrid 会自动增长或缩小
  • 如果可以的话,我基本上不想要滚动条

我查看了一些关于 .net 类/方法等的文档,并且已经能够找出很多东西,但是这个。我确定我没有问正确的问题。任何有关资源或示例的建议将不胜感激。

这是我打开包含许多列的 csv 时的意思的示例在此处输入图像描述

或几列: 在此处输入图像描述

我的代码在这里。