在 ScriptBlock 中使用变量和参数的 cscript 调用命令的简单格式
Simple Format of cscript invoke-command with a variable and argument in ScriptBlock
我有这个 "simple" 脚本,我正在尝试 运行 在路径名中使用嵌入式变量,我尝试过使用和不使用 + 并在整个过程中使用引号,我似乎无法使变量在路径中工作。如果我 运行 它像这样,它输出到 C:\Scripts\Audit 而不是 C:\Scripts\Audit\20161229_Audit\GPO_Reports。你能不能在 ScriptBlock 中没有变量,我看到过关于使用 ArgumentList 的评论,但我不太确定在路径名中使用变量时如何做到这一点。
$Date = Get-Date -format yyyyMMdd
Invoke-Command -ComputerName localhost -ScriptBlock { cscript "c:\program files\GPMC\Scripts\GetReportsForAllGPOs.wsf" "C:\Scripts\Audit\"+$date+"_Audit\GPO_Reports /domain:contuso.local" }
您必须在 scriptblock 中传递 argumentlist,因为它不在范围内。
代替:
$Date = Get-Date -format yyyyMMdd
Invoke-Command -ComputerName localhost -ScriptBlock { cscript "c:\program files\GPMC\Scripts\GetReportsForAllGPOs.wsf" "C:\Scripts\Audit\"+$date+"_Audit\GPO_Reports /domain:contuso.local" }
这样做:
$Date = Get-Date -format yyyyMMdd
Invoke-Command -ComputerName localhost -ScriptBlock {param($Date) cscript "c:\program files\GPMC\Scripts\GetReportsForAllGPOs.wsf" "C:\Scripts\Audit$($date)_Audit\GPO_Reports /domain:contuso.local" } -ArgumentList $Date
我有这个 "simple" 脚本,我正在尝试 运行 在路径名中使用嵌入式变量,我尝试过使用和不使用 + 并在整个过程中使用引号,我似乎无法使变量在路径中工作。如果我 运行 它像这样,它输出到 C:\Scripts\Audit 而不是 C:\Scripts\Audit\20161229_Audit\GPO_Reports。你能不能在 ScriptBlock 中没有变量,我看到过关于使用 ArgumentList 的评论,但我不太确定在路径名中使用变量时如何做到这一点。
$Date = Get-Date -format yyyyMMdd
Invoke-Command -ComputerName localhost -ScriptBlock { cscript "c:\program files\GPMC\Scripts\GetReportsForAllGPOs.wsf" "C:\Scripts\Audit\"+$date+"_Audit\GPO_Reports /domain:contuso.local" }
您必须在 scriptblock 中传递 argumentlist,因为它不在范围内。
代替:
$Date = Get-Date -format yyyyMMdd
Invoke-Command -ComputerName localhost -ScriptBlock { cscript "c:\program files\GPMC\Scripts\GetReportsForAllGPOs.wsf" "C:\Scripts\Audit\"+$date+"_Audit\GPO_Reports /domain:contuso.local" }
这样做:
$Date = Get-Date -format yyyyMMdd
Invoke-Command -ComputerName localhost -ScriptBlock {param($Date) cscript "c:\program files\GPMC\Scripts\GetReportsForAllGPOs.wsf" "C:\Scripts\Audit$($date)_Audit\GPO_Reports /domain:contuso.local" } -ArgumentList $Date