scriptblock相关内容

Powershell - 如何为 Start-Job 预先评估脚本块中的变量

我想在 Powershell 中使用后台作业. 如何在 ScriptBlock 定义时评估变量? $v1 = "123"$v2 = "asdf"$sb = {写入主机“值为:$v1, $v2"}$job = Start-Job -ScriptBlock $sb$工作 |等待工作 |接收工作$工作 |删除作业 我得到 $v1 和 $v2 的打印空值.我怎样才能让它们在(传递给)脚本块中进行 ..
发布时间:2022-01-08 13:12:45 其他开发

使用基于括号的 -Filter 参数时,为什么 $PSItem 没有按预期运行?

我正在帮助用户解决这个问题,链接到我的回答:仅使用电子邮件地址将用户从 .csv 添加到 A/D 组的 Powershell 脚本? 最初我按如下方式编写脚本,对 Get-AdUser 使用基于括号的过滤器,如下所示: 导入-CSV "C:\users\Balbahagw\desktop\test1.csv" |Foreach-对象{# 这里,$_.EmailAddress 拒绝解析$ad ..
发布时间:2021-12-23 15:34:51 其他开发

对于 PowerShell cmdlet,我可以始终将脚本块传递给字符串参数吗?

我正在查看 PowerShell 的 Rename-Item cmdlet 的文档,有一个这样的例子. Get-ChildItem *.txt |Rename-Item -NewName { $_.name -Replace '\.txt','.log' } 这个例子展示了如何使用替换操作符来重命名多个文件,即使 NewName 参数不接受通配符字符. 此命令将当前目录中的所有 .txt ..
发布时间:2021-12-07 23:53:20 其他开发

Powershell 如何将脚本修改为硬编码|导出-csv c:\temp\filename.csv -notypeinformation"

我有这个很棒的脚本,用于生成文件夹列表,其中包含分配的安全组和每个组中的每个用户. 当我运行它时,我输入 .\getfolderacls.ps1 -verbose |导出-csv c:\temp\filename.csv -notypeinformation. 这很完美,但我想对 | 进行硬编码export-csv... 部分,这样我就可以在没有参数的情况下运行它(或者它们是参数?). ..
发布时间:2021-06-19 21:00:49 其他开发

当前 PowerShell 实例的状态对于 C# 中的此操作无效

我有下面的方法,它被不同的 PS 脚本调用,我希望 PowerShell 对象只创建一次,为此我将 Powershell 对象设为静态(见下面的代码).但随后它给了我错误 当前 PowerShell 实例的状态对此无效操作. 我该如何处理?优化我下面的代码的最佳方法是什么?注意:如果我删除静态,下面的代码可以正常工作. class DataRulesPSScripts{静态 Powe ..
发布时间:2021-06-19 20:59:40 C#/.NET

PowerShell 脚本块内的命令执行顺序

一开始我对 PowerShell ScriptBlock 感到兴奋,但最近我对它在块内的执行顺序感到困惑.例如: $test_block = {写主机“显示 1"ps写主机“show 2"获取日期} 调用 $test_block.Invoke() 的输出: 显示1显示 2 输出内容的命令会先运行吗? 解决方案 这种行为是因为 ..
发布时间:2021-06-19 20:56:14 其他开发

脚本块中的 Powershell 扩展变量

我正在尝试关注 这篇文章 在脚本块中扩展变量 我的代码尝试了这个: $exe = "setup.exe"invoke-command -ComputerName $j -Credential $credentials -ScriptBlock {cmd/c 'C:\share\[scriptblock]::Create($exe)'} 如何修复错误: 文件名、目录名或卷标语法不正确.+ ..
发布时间:2021-06-19 19:29:40 其他开发

PowerShell:Start-Job -scriptblock多行脚本块?

希望有人可以帮助我弄清楚这是否可行.我有20条ish行,可以在while循环中扫描日志文件.我需要将其与脚本的其余部分并行进行.日志扫描循环正在将条目传递到SQLite中,其他脚本需要对此信息采取行动-因此希望并行运行它们. 如果我使用Job-Start命令,那么-SciptBlock函数似乎只会接受一条管道命令.我要传递的命令太多,因此我需要在脚本块中运行多行. 我尝试了几种方法,但 ..
发布时间:2021-02-12 19:28:00 其他开发

为什么使用基于括号的-Filter参数时$ PSItem的行为不符合预期?

我正在帮助用户解决此问题,并链接到我的答案:使用Powershell脚本仅使用电子邮件地址即可将用户从.csv添加到A / D组吗? 最初,我为 Get-AdUser 使用基于括号的过滤器编写脚本,如下所示: 导入CSV“ C:\users\Balbahagw\desktop\test1.csv” | Foreach-Object { #在这里,$ _。EmailAddress ..
发布时间:2020-06-01 18:57:09 其他开发

如何将Get-Childitem的结果正确传递到脚本块中?

在此示例中,我尝试将Get-ChildItem的结果传递到脚本块中,但成功率有限且结果出乎意料. C:\temp包含3个文件: A.txt B.txt C.txt 我想要的是将$files传递到此处的脚本块中,并维护Get-ChildItem返回的三个文件的整个列表.换句话说,我希望$files在脚本块的内部和外部返回A.txt,B.txt和C.txt. 我能够做到这一 ..
发布时间:2020-05-24 23:03:33 其他开发

对于PowerShell cmdlet,是否可以始终将脚本块传递给字符串参数?

我正在查看Rename-Item的文档,并且有一个这样的示例. PS C:\>Get-ChildItem *.txt | Rename-Item -NewName { $_.name -Replace '\.txt','.log' } 此示例显示如何使用“替换"运算符重命名多个 文件,即使NewName参数不接受通配符 字符. 此命令将当前目录中的所有.txt文件重命名为 .log ..
发布时间:2020-05-24 21:58:00 其他开发

PowerShell使用Start-Process在脚本块中执行一个函数会对双引号产生奇怪的影响

我有一个编辑注册表的PowerShell脚本,因此它需要以管理员身份运行。为此,我从运行的PowerShell脚本启动一个新的PowerShell进程,并使用带有函数的脚本块传递部分注册表项路径。当我在该函数中使用双引号时,PowerShell会尝试将它们解释为命令,而不是字符串。如果我使用单引号,那么一切正常。 我已经创建了一个简化的示例PowerShell脚本来重现问题。以下是代码片段: ..
发布时间:2018-04-17 11:35:59 其他开发