У меня есть сценарий на виртуальной машине в подписке / rg, который запускает модуль ps под названием Qlik-Cli, он использует сертификат и логин.
Сертификат хранится в локальном хранилище для учетной записи службы, а не для выбора способа работы продукта. Мне нужно запустить этот модуль Runbook PowerShell.
Чтобы это сработало, мне нужно активировать это с помощью учетной записи службы, иначе сертификат не будет найден.
Это то, что мы планируем запланировать, поэтому это должно быть сделано таким образом.
Как я могу запустить его таким образом, или это невозможно? Я не могу найти ни одного хорошего варианта при поиске в Google.
> Import-Module -Name Qlik-Cli
> [Net.ServicePointManager]::SecurityProtocol =
> [Net.SecurityProtocolType]::Tls12 $logpath =
> "E:\Tools\Scripts\log.txt" get-childitem cert:\currentuser\My\ |
> where {$_.Thumbprint -eq '"thumbprint"'} |
> Connect-Qlik "DNS" -UserName
> "user" -TrustAllCerts -verbose 4>&1 | Out-File
> -Append $logpath Start-QlikTask -id df9dfa2f-32ca-4db4-bdce-15ad924fd59f -verbose 4>&1 | Out-File -Append
> $logpath
Сценарий в модуле Runbook:
$ServicePrincipalConnection = Get-AutomationConnection -Name 'AzureRunAsConnection'
Add-AzAccount -ServicePrincipal -TenantId $ServicePrincipalConnection.TenantId -ApplicationId $ServicePrincipalConnection.ApplicationId -CertificateThumbprint $ServicePrincipalConnection.CertificateThumbprint
$rgname ="Resource-Group"
$vmname ="Virtual machine name"
$ScriptToRun = "E:\Tools\Scripts\Tasktrigger.ps1"
Out-File -InputObject $ScriptToRun -FilePath ScriptToRun.ps1
Invoke-AzVMRunCommand -ResourceGroupName $rgname -Name $vmname -CommandId 'RunPowerShellScript' -ScriptPath ScriptToRun.ps1
Remove-Item -Path ScriptToRun.ps1
Когда я запускаю модуль Runbook, журналы говорят из сценария (локального сценария), что он не может найти сертификат, что неудивительно.
Необработанный вывод: найдено 0 сертификатов в хранилище текущего пользователя. Найдено 0 сертификатов в хранилище локального компьютера. Действительный сертификат не найден с использованием учетных данных Windows.