问题标签 [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.
powershell - 无法验证参数“用户名”的参数。参数为 null 或空。提供一个不为 null 或空的参数
我正在尝试使用 Powershell 7-Preview 执行 Powershell 脚本(7.0)文件,该文件遍历所有数据库并在所有数据库中执行 SQL Server 脚本。
该脚本正确获取所有数据库,但是,当 Parallel 块执行时,我收到此错误(有关详细信息,请参阅下面的屏幕截图)。
无法验证参数“用户名”的参数。参数为 null 或空。提供一个不为 null 或空的参数,然后重试该命令。
命令 - C:\GitHub\TempApp\CompanyTemplate\bin\debug\DeploymentScripts\PowerShell\DeployCompanyDatabases.ps1
powershell - Powershell循环每个文件名只运行一次文件,即使文件名存在多个扩展名
我将是第一个承认 PowerShell 不是我的强项的人,但是在互联网上挖掘了一晚上之后,我拼凑了以下内容。最终目标是通过 DateTaken 组织大量的图像驱动器,以及如果存在的 sidecar XMP 文件。它可能不是最优雅的代码,但它几乎可以工作。
最后一个我想不通的问题是,无论扩展名如何,foreach 循环每个文件名只执行一次。例如,只会处理 DSC00001.arw、DSC00001.xmp或DSC00001.jpg。
任何正确方向的观点将不胜感激。
谢谢!
powershell - 无法将“System.String”类型的“/Action:”值转换为“System.Management.Automation.ScriptBlock”类型
我在尝试执行以下 power-shell (7.0) 脚本时遇到此错误。此脚本使用 dacpac 文件和 SqlPackage.exe 更新所有数据库。
我是 powershell 脚本的新手。看起来问题似乎与传递参数的方式有关,所以我只是将 {} 放在参数周围,因为我收到 $using:SqlPackagePath 参数的另一个错误,但这似乎不起作用
无法将“System.String”类型的“somepath”值转换为“System.Management.Automation.ScriptBlock”类型。
arrays - 查找 ArrayList 成员和 (Get-Process).id vs (1,2,3).ToString()
让我们看看下面的代码:
我想我明白它是如何工作的。但是,当我用 ArrayList 替换 Random 对象时:
[问题 1] Get-Member 调用产生错误:“您必须为 Get-Member cmdlet 指定对象”。什么?$a 不是对象吗?“$a.gettype()” 说是。
[问题 2] 我知道 ArrayList 可以容纳其他对象,但是如何获取 ArrayList 本身的成员,例如我从文档中找到的 add()、clear() 等?ISE 也认识成员。
让我们看看以下两个类似的构造:
【问题3】$p是一个[过程对象]数组,然而Get-Member不显示数组本身的成员,而是数组持有的对象的成员,这样有意义吗?
【问题4】数组$p没有成员“id”,但是$p.id对数组的每个元素进行操作,生成@($p[0].id, $p[1]的列表。 ID, ...)。让我们接受这就是它在 Powweshell 中的工作方式,然后同样适用于数组 $L,但是,$L.ToString() 会产生文字字符串“System.Object[]”,即 15 个字符!$L.ToString()[2] 是“s”!为什么没有一致性?
[编辑] 问题 4 使用了一个不好的例子,因为 ToString() 是数组和数字元素的方法。数组上的 ToString() 方法是返回对象类型“System.Object[]”。一个更好的例子是:
它显示了对列表的操作,当不是列表操作时,对元素进行操作(展开),然后重新回滚到列表。看来Powershell是务实的,但至少是一致的。
powershell - 将变量传递给 Foreach-Object PowerShell 7
我想要的是:
我有一个脚本,它将 CAB 文件复制到一百多个服务器,并在它们上使用它。这个脚本运行了一个多星期。当我了解 Foreach-Object -parallel 功能时,我认为这会大大加快脚本的速度。但是我遇到了一个问题。由于我不是很了解 PowerShell,而且我在任何地方都没有找到有关此问题的帖子,所以我想,我要试试运气并在这里问:
预期和实际结果
我想将一个变量传递给 foreach-object cmdlet 中已执行的脚本块,如下所示:
我的期望:
我得到什么:
ForEach-Object:无法使用指定的命名参数解析参数集。发出的一个或多个参数不能一起使用或提供的参数数量不足。
我究竟做错了什么?
这可能是一个微不足道的问题。但是因为我什么地方都没有,也没有找到任何帖子/代码示例。我把它贴在这里。我很感谢你的回答。
powershell - PowerShell中的重复行为
我只是在玩哈希表,我这样做了:
我最终发现我可以做:
($C.color.y).Get(1)
或者($C.color.y).Item(1)
它做的事情完全一样。
我还发现,即使自动完成功能没有显示您可以这样做,您也可以:
和方法似乎可以互换Get
,Item
它们之间有什么区别?我确实检查了它们相同的哈希码。
($C.color.y).Get(1).GetHashCode()
或者($C.color.y).Item(1).GetHashCode()
windows - powershell 7中的向上箭头历史匹配
我想在 powershell 7 中获得历史匹配,例如:当我键入npm
和箭头键时,它会显示我最后一个以关键字(例如:)up开头的命令。npm
npm run build
我能够在 powershell 5 here中实现这一点。但这在 7 中不起作用。当我运行讨论的命令时:
我收到如下错误:
powershell - 使用 foreach-object -parallel 运行 Pester 测试时出错
我有这个基础设施纠缠测试。用于演示目的的代码:
这工作正常。如果我将 $sessions|foreach-object 替换为 $sessions|foreach-object -Parallel,我会收到此错误 -
由于有数百台服务器,请在此处建议如何实现并行性。
已解决-我通过使用作业找到了一种解决方法,它达到了目的。
powershell-7.0 - 将 SSL 证书绑定到我的站点在管理员模式下的 powershell ise 中有效,但在管理员模式下的 PowerShell 7 中无效
我正在尝试将 SSL 证书绑定到我的站点。如果我在管理员模式下从 PowerShell ise 运行脚本,它可以正常工作,但是当我在管理员模式下从 PowerShell 7 运行时,它不会将证书绑定到站点。我在我的脚本中使用以下部分: