Após algumas investigações adicionais, decidi usar uma solução alternativa.
A solução é carregar o xml de configuração de função em uma variável e, em seguida, passar essa variável para o contexto Invoke-Command
, gravar a variável em um arquivo temporário e, em seguida, executar Install-WindowsFeature
nesse arquivo. Não é o ideal, mas deu conta do recado.
$roleconfig = [System.IO.File]::ReadAllText("\path\to\RoleTemplate.xml")
ForEach ($server in ([regex]::matches($servers, "abc\d+") | %{$_.value})){
Invoke-Command -ComputerName $server -ArgumentList $roleconfig -EnableNetworkAccess -ScriptBlock {
param($roleconfig)
# IIS Role Setup
[System.IO.File]::WriteAllText("C:\RoleTemplate.xml", $roleconfig)
Install-WindowsFeature -ConfigurationFilePath C:\RoleTemplate.xml
# Etc...
}
}