使用变量传递参数生成 DSC 配置时
Passing parameter using variable While generating DSC configuration
我正在从 Powershell 执行 Powershell DSC 脚本。下面是代码片段
Invoke-Command -ComputerName $public_ip_address -Credential $UserCredential -ScriptBlock {
param ($driveformat)
cd c:/provisioning
Install-PackageProvider -Name NuGet -Force -Scope CurrentUser
Install-Module -Name PSDscResources -Force
Install-Module -Name xStorage -Force
. .\DiskSetup.ps1
disksconfig -outputpath C:\DataDiskSetting -driveFormat $driveFormat
Start-DscConfiguration -Path C:\DataDiskSetting -Wait -Force -Verbose
} -ArgumentList ($driveformat)
在生成配置时,我想将驱动器格式作为变量“$driveFormat”传递,而不是像“NTFS”那样进行硬编码。不知何故,它没有获得 $driveformat 的价值,不知道我们如何解决这个问题。
您可以在脚本中添加命名的 参数 $driveformat
。请参阅以下示例:
Param([String]$driveformat)
Invoke-Command -ComputerName $public_ip_address -Credential $UserCredential -ScriptBlock {
param ($driveformat)
...
} -ArgumentList ($driveformat)
然后在 powershell task from 管道中,在参数字段中添加 -driveformat "NTFS"
。请参见下面的屏幕截图:(我定义了一个管道变量 driveformat
来保存值“NTFS”)
或者,您可以在脚本中添加一个参数(例如 $driveformat = $args[0]
)。见下文:
$driveformat = $args[0]
Invoke-Command -ComputerName $public_ip_address -Credential $UserCredential -ScriptBlock {
param ($driveformat)
...
} -ArgumentList ($driveformat)
然后就可以直接在powershell任务的Arguments字段中传递变量("NTFS")了:
我正在从 Powershell 执行 Powershell DSC 脚本。下面是代码片段
Invoke-Command -ComputerName $public_ip_address -Credential $UserCredential -ScriptBlock {
param ($driveformat)
cd c:/provisioning
Install-PackageProvider -Name NuGet -Force -Scope CurrentUser
Install-Module -Name PSDscResources -Force
Install-Module -Name xStorage -Force
. .\DiskSetup.ps1
disksconfig -outputpath C:\DataDiskSetting -driveFormat $driveFormat
Start-DscConfiguration -Path C:\DataDiskSetting -Wait -Force -Verbose
} -ArgumentList ($driveformat)
在生成配置时,我想将驱动器格式作为变量“$driveFormat”传递,而不是像“NTFS”那样进行硬编码。不知何故,它没有获得 $driveformat 的价值,不知道我们如何解决这个问题。
您可以在脚本中添加命名的 参数 $driveformat
。请参阅以下示例:
Param([String]$driveformat)
Invoke-Command -ComputerName $public_ip_address -Credential $UserCredential -ScriptBlock {
param ($driveformat)
...
} -ArgumentList ($driveformat)
然后在 powershell task from 管道中,在参数字段中添加 -driveformat "NTFS"
。请参见下面的屏幕截图:(我定义了一个管道变量 driveformat
来保存值“NTFS”)
或者,您可以在脚本中添加一个参数(例如 $driveformat = $args[0]
)。见下文:
$driveformat = $args[0]
Invoke-Command -ComputerName $public_ip_address -Credential $UserCredential -ScriptBlock {
param ($driveformat)
...
} -ArgumentList ($driveformat)
然后就可以直接在powershell任务的Arguments字段中传递变量("NTFS")了: