scriptblock相关内容
我想在 Powershell 中使用后台作业. 如何在 ScriptBlock 定义时评估变量? $v1 = "123"$v2 = "asdf"$sb = {写入主机“值为:$v1, $v2"}$job = Start-Job -ScriptBlock $sb$工作 |等待工作 |接收工作$工作 |删除作业 我得到 $v1 和 $v2 的打印空值.我怎样才能让它们在(传递给)脚本块中进行
..
我正在帮助用户解决这个问题,链接到我的回答:仅使用电子邮件地址将用户从 .csv 添加到 A/D 组的 Powershell 脚本? 最初我按如下方式编写脚本,对 Get-AdUser 使用基于括号的过滤器,如下所示: 导入-CSV "C:\users\Balbahagw\desktop\test1.csv" |Foreach-对象{# 这里,$_.EmailAddress 拒绝解析$ad
..
我正在查看 PowerShell 的 Rename-Item cmdlet 的文档,有一个这样的例子. Get-ChildItem *.txt |Rename-Item -NewName { $_.name -Replace '\.txt','.log' } 这个例子展示了如何使用替换操作符来重命名多个文件,即使 NewName 参数不接受通配符字符. 此命令将当前目录中的所有 .txt
..
我想实现一个-平行线切换到我的脚本之一 非并行版本: $tmpArray |ForEach-Object {#region ... 局部变量$stepWidthLocal = $stepWidth 并行功能: $tmpArray |ForEach-Object -ThrottleLimit ($parallelBlocks * 10) -Parallel {#reg
..
我正在尝试从 Server-2 对 Server-1(即远程服务器)执行以下 PowerShell 脚本: $DBServer = 'Server1'调用命令 -ComputerName $DBServer -ScriptBlock {$status = Start-Process "C:\Program Files\iQ4bis\HaloSource\HaloSource.Run.exe" '
..
我有这个很棒的脚本,用于生成文件夹列表,其中包含分配的安全组和每个组中的每个用户. 当我运行它时,我输入 .\getfolderacls.ps1 -verbose |导出-csv c:\temp\filename.csv -notypeinformation. 这很完美,但我想对 | 进行硬编码export-csv... 部分,这样我就可以在没有参数的情况下运行它(或者它们是参数?).
..
我有下面的方法,它被不同的 PS 脚本调用,我希望 PowerShell 对象只创建一次,为此我将 Powershell 对象设为静态(见下面的代码).但随后它给了我错误 当前 PowerShell 实例的状态对此无效操作. 我该如何处理?优化我下面的代码的最佳方法是什么?注意:如果我删除静态,下面的代码可以正常工作. class DataRulesPSScripts{静态 Powe
..
一开始我对 PowerShell ScriptBlock 感到兴奋,但最近我对它在块内的执行顺序感到困惑.例如: $test_block = {写主机“显示 1"ps写主机“show 2"获取日期} 调用 $test_block.Invoke() 的输出: 显示1显示 2 输出内容的命令会先运行吗? 解决方案 这种行为是因为
..
我编写了以下代码: cls函数 GetFoo() {函数 GetBar() {$bar = "bar"$bar}$foo = "foo"$bar = GetBar$foo$bar}$cred = Get-Credential "firmwide\srabhi_adm"$result = Invoke-Command -Credential $cred -ComputerName localhos
..
我正在尝试关注 这篇文章 在脚本块中扩展变量 我的代码尝试了这个: $exe = "setup.exe"invoke-command -ComputerName $j -Credential $credentials -ScriptBlock {cmd/c 'C:\share\[scriptblock]::Create($exe)'} 如何修复错误: 文件名、目录名或卷标语法不正确.+
..
我想你不能只是这样做: $servicePath = $args[0]if(Test-Path -path $servicePath)
..
希望有人可以帮助我弄清楚这是否可行.我有20条ish行,可以在while循环中扫描日志文件.我需要将其与脚本的其余部分并行进行.日志扫描循环正在将条目传递到SQLite中,其他脚本需要对此信息采取行动-因此希望并行运行它们. 如果我使用Job-Start命令,那么-SciptBlock函数似乎只会接受一条管道命令.我要传递的命令太多,因此我需要在脚本块中运行多行. 我尝试了几种方法,但
..
$ var = @(@ {id =“ 1”; name =“ abc”; age =“ 1”;}, @ {id =“ 2” ; name =“ def”; age =“ 2”;}); $ properties = @(“ ID”,“名称”,“年龄”); $ format = @(); foreach($ properties中的$ p) { $ format + = @ {la
..
是否可以使用Powershell Start-Process cmdlet启动新的Powershell会话并传递带有局部变量的脚本块(其中一次将是数组)? 示例: $Array = @(1,2,3,4) $String = "This is string number" $Scriptblock = {$Array | ForEach-Object {Write-Host $Str
..
我正在帮助用户解决此问题,并链接到我的答案:使用Powershell脚本仅使用电子邮件地址即可将用户从.csv添加到A / D组吗? 最初,我为 Get-AdUser 使用基于括号的过滤器编写脚本,如下所示: 导入CSV“ C:\users\Balbahagw\desktop\test1.csv” | Foreach-Object { #在这里,$ _。EmailAddress
..
我正在尝试通过在文件中添加基于递增计数器的前缀来重命名文件,例如: $directory = 'C:\Temp' [int] $count=71; gci $directory | sort -Property LastWriteTime | ` rename-item -newname {"{0}_{1}" -f $count++, $_.Name} -whatif 但是所有处理过
..
在此示例中,我尝试将Get-ChildItem的结果传递到脚本块中,但成功率有限且结果出乎意料. C:\temp包含3个文件: A.txt B.txt C.txt 我想要的是将$files传递到此处的脚本块中,并维护Get-ChildItem返回的三个文件的整个列表.换句话说,我希望$files在脚本块的内部和外部返回A.txt,B.txt和C.txt. 我能够做到这一
..
我正在查看Rename-Item的文档,并且有一个这样的示例. PS C:\>Get-ChildItem *.txt | Rename-Item -NewName { $_.name -Replace '\.txt','.log' } 此示例显示如何使用“替换"运算符重命名多个 文件,即使NewName参数不接受通配符 字符. 此命令将当前目录中的所有.txt文件重命名为 .log
..
我有一个复杂的PowerShell函数,我想运行另一个线程. 但是,如果我是对的,则无法在脚本块中访问该函数.我想避免将每个相关的功能复制到它旁边. 在脚本块中是否有任何方法或方法来调用该函数? function Function1 { Param() Process { $param1 = "something" $pool =
..
我有一个编辑注册表的PowerShell脚本,因此它需要以管理员身份运行。为此,我从运行的PowerShell脚本启动一个新的PowerShell进程,并使用带有函数的脚本块传递部分注册表项路径。当我在该函数中使用双引号时,PowerShell会尝试将它们解释为命令,而不是字符串。如果我使用单引号,那么一切正常。 我已经创建了一个简化的示例PowerShell脚本来重现问题。以下是代码片段:
..