我在订阅/rg 中的 VM 上获得了一个脚本,该脚本运行一个名为 Qlik-Cli 的 ps 模块,它使用证书和登录名。
证书存储在服务帐户的本地存储中,而不是选择,产品如何工作。我需要通过一个 powershell runbook 来触发这个。
为了使它工作,我需要使用服务帐户触发它,否则它不会找到证书。
这是我们要安排的事情,所以必须以这种方式完成。
我怎样才能以这种方式运行它,还是不可能?谷歌搜索时我找不到任何好的选择。
> 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
运行手册中的脚本:
$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
当我执行运行手册时,脚本(本地脚本)中的日志说的是它找不到不奇怪的证书。
原始输出:在当前用户存储中找到 0 个证书在本地机器存储中找到 0 个证书未找到有效证书,使用 Windows 凭据