Мне нужно передать защищенную строку в качестве параметра Invoke-AzVMRunCommand.Мой код
$pass=Read-Host "Enter Password for sysadmin" -AsSecureString
$stdstring = ConvertFrom-SecureString $pass
$runcmdparameters=@{
"sysadmincredential"=$stdstring
}
Invoke-AzVMRunCommand -ResourceGroupName $ServerResourceGroupName -VMName $VMVame -ScriptPath $TemplateFile -CommandId 'RunPowerShellScript' -Parameter $runcmdparameters -Verbose
Сценарий Invoke-AzVMRunCommand
Param(
[parameter(Mandatory=$true)][string]$sysadmincredential
)
$cr=ConvertTo-SecureString $sysadmincredential
Out-File "C:\Temp\log.txt" -InputObject $cr -Append
Однако сценарий завершается ошибкой с
ConvertTo-SecureString: системе не удается найти путьуказано.В C: \ Packages \ Plugins \ Microsoft.CPlat.Core.RunCommandWindows \ 1.1.0 \ Downloads \ s cript11.ps1: 4 char: 5 + $ cr = ConvertTo-SecureString $ sysadmincredential + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidArgument: (:) [ConvertTo-SecureString], C ryptographicException +FullyQualifiedErrorId: ImportSecureString_InvalidArgument_Cryptographic
Ошибка, Microsoft.PowerShell.Commands.ConvertToSecureStringCommand
Спасибо