目标计算机上的 PowerShell v2.* 日志

PowerShell on Target Machines v2.* logs

提问人:Tech_dopamine 提问时间:11/16/2023 更新时间:11/20/2023 访问量:83

问:

在服务器上部署时,我正在尝试在powershell脚本上执行,因此我使用了名为“目标计算机上的PowerShell v2.*”的Azure CI / CD任务,但我没有从该powershell脚本中获取任何日志。

我们是否有任何命令或方法可以接收来自目标服务器上执行的 powershell 脚本到 CI/CD 日志记录窗口的所有日志/输出。

脚本执行良好,但每当抛出任何错误时,我都希望该错误消息显示在 CI/CD 日志中。

我尝试了版本 1,然后移动到版本 2,在异常处理下,我设置了退出代码 1。但在管道日志中仍未收到异常

PowerShell Azure-DevOps 持续集成 CICD

评论

0赞 Dilly B 11/16/2023
我不认为,有一种直接的方法可以查看 CI/CD 管道中的日志。您可能需要将日志文件复制到公共路径中并对其进行处理。

答:

1赞 wade zhou - MSFT 11/16/2023 #1

我可以使用任务 V2 与您重现相同的内容,您可以使用 V3,它将显示输出/错误。

enter image description here

我的powershell脚本:

try {
    # Create a new directory
    New-Item -Path C:\Users\Test -Name NewDir -ItemType Directory -ErrorAction Stop
} catch {
    # Display the error details
    Write-Host "An error occurred:" -ForegroundColor Red
    Write-Host $_.Exception.Message -ForegroundColor Red
    Write-Host $_.ErrorDetails.Message -ForegroundColor Red
}

V2 任务中,输出如下:enter image description here

V3 任务上,输出如下:enter image description here

编辑:“目标计算机上的 PowerShell”任务实际上运行以连接到远程计算机。如果无法运行 V3 任务,可以改用 powershell 任务。脚本示例如下:enter-pssession

$username = 'username'
$password = 'password'
$computername = $(computernameorip)
$secureString = ConvertTo-SecureString -AsPlainText -Force -String $password
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username,$secureString
$cred = [PSCredential]::New($username,$secureString)
$session = New-PSSession -ComputerName $(computernameorip) -Credential $cred

Enter-PSSession -Session $session
Invoke-Command -FilePath C:\test\test2.ps1 -Session $session
Exit-PSSession

enter image description here

流水线结果:

enter image description here

评论

0赞 Tech_dopamine 11/17/2023
嗨@wade,感谢您的回复,我只能使用任务 V2。您能否建议一种记录方法,并在抛出任何错误时中断我的 rm 任务。
0赞 wade zhou - MSFT 11/20/2023
@Tech_dopamine,任务实际上运行以连接到远程计算机。因此,如果不能使用 V3 任务,则可以改用 powershell 任务。我用示例脚本和管道结果编辑了回复,谢谢。PowerShell on Target Machinesenter-pssession
0赞 Tech_dopamine 11/21/2023
嗨@wade现在我收到这个 ==> 错误:无法验证给定的数据库“TESTDb”和服务器“TestServerName”。用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败。错误“”。基本上通过ps脚本,我正在尝试登录到Biztalk服务器数据库。尽管如果在服务器上手动执行脚本,这工作正常。但是Via RM错误即将到来。
0赞 Tech_dopamine 11/21/2023
连接字符串类似于 $Catalog.ConnectionString = “SERVER= $dbServer;数据库=TESTDb;集成安全性 = SSPI”
0赞 wade zhou - MSFT 11/22/2023
该错误可能是由于无法访问服务器名称引起的,请尝试ping服务器名称检查是否正常。如果没有,则需要添加主机并刷新 dns。但它似乎是针对 powershell 脚本执行的新查询,而不是针对此票证上的查询。如果当前查询已解决,您能否帮助标记答案?您可以提出新的票证来分享 PS 脚本详细信息错误,我们可以进一步检查。谢谢。