0

我正在从 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 的价值,不知道我们如何解决这个问题。

4

1 回答 1

1

您可以在脚本中添加命名参数 $driveformat。请参见下面的示例:

Param([String]$driveformat)

Invoke-Command -ComputerName $public_ip_address -Credential $UserCredential -ScriptBlock {
    param ($driveformat)
    ...
} -ArgumentList ($driveformat)

然后在管道的powershell 任务-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”):

在此处输入图像描述

于 2020-09-08T08:31:50.220 回答