如何将此PowerShell脚本整合到一行中

时间:2017-06-08 09:10:58

标签: powershell powershell-v5.0

这个PowerShell脚本运行良好,但我需要它是一个单行脚本,如何内联创建参数对象?

$action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument 'invoke-command -scriptblock {iisreset}'
$trigger =  New-ScheduledTaskTrigger -Daily -At 9am
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "Reset IIS" -Description "Daily Reset IIS"

e.g。

Register-ScheduledTask -Action `New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument 'invoke-command -scriptblock {iisreset}'` -Trigger `New-ScheduledTaskTrigger -Daily -At 9am -TaskName "Reset IIS" -Description "Daily Reset IIS"`

我尝试用双引号括起来,用反引号和花括号但到目前为止没有运气。

3 个答案:

答案 0 :(得分:4)

Subexpressions应该这样做。子表达式以外的括号不需要AFAIK。

  

$()Subexpression运算符

     

返回一个或多个语句的结果。对于单个结果,   返回一个标量。对于多个结果,返回一个数组。   sauce: about_Operators

Register-ScheduledTask -Action $(New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument 'invoke-command -scriptblock {iisreset}') -Trigger $(New-ScheduledTaskTrigger -Daily -At 9am)-TaskName "Reset IIS" -Description "Daily Reset IIS"

答案 1 :(得分:2)

如果要执行子表达式将其包装在$()

Register-ScheduledTask -Action $(New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument 'invoke-command -scriptblock {iisreset}') -Trigger $(New-ScheduledTaskTrigger -Daily -At 9am) -TaskName "Reset IIS" -Description "Daily Reset IIS"

答案 2 :(得分:0)

我希望脚本秘密运行。 我使用了类似下面的代码,但是它给出了一个错误。

Register-ScheduledTask -Action $(New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument 'invoke-command -scriptblock {echo (Get-date)>> C:\log.txt }   -executionpolicy bypass -NoExit -noprofile -WindowStyle Hidden') -Trigger $(New-ScheduledTaskTrigger -Daily -At 05:00pm) -TaskName "Gorev"  -RunLevel Highest -Force

我可以以秘密方式运行脚本吗?

$PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.17134.407
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17134.407
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1