我正在尝试使用内联powershell脚本从Azure DevOps启动NodeJS包。
以下是我在Azure DevOps上设置的脚本:
$backendFolder = "C:\path\to\backend"
$nodejsExecutable = "C:\Program Files\nodejs"
Set-location $backendFolder
Start-Process -FilePath $nodejsExecutable -ArgumentList "run","build" -wait -NoNewWindow -ErrorAction Stop -Verbose -WorkingDirectory $backendFolder
Start-Process -FilePath $nodejsExecutable -ArgumentList "run","start" -wait -NoNewWindow -ErrorAction Stop -Verbose -WorkingDirectory $backendFolder
以下是错误的输出:
2023-01-14T18:32:10.5104498Z Start-Process : This command cannot be run due to the error: Access is denied.
2023-01-14T18:32:10.5105828Z At C:\azagent\A3\_work\_temp\861703e2-7a4b-4544-b9d4-5722c8768a5a.ps1:8 char:1
2023-01-14T18:32:10.5106472Z + Start-Process -FilePath $nodejsExecutable -ArgumentList "run","build" ...
2023-01-14T18:32:10.5106954Z + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-01-14T18:32:10.5107500Z + CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException
2023-01-14T18:32:10.5108092Z + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand
我尝试了很多方法,从在环境变量中添加$path,到对“C:\Program Files\nodejs”和“C:\path\to\backend”中的两个文件夹都允许完全权限,但结果都是一样的。
注意#它在Windows和IIS Web服务器上运行!我在Azure DevOps上创建了以下步骤-停止IIS、停止节点、创建IIS Web应用、部署IIS Web应用、启动节点并运行2个powershell脚本以构建和启动NodeJS应用。
你知道这是怎么回事或者我错过了什么吗?
1条答案
按热度按时间7fyelxc51#
问题是由于尝试使用凭据而导致的。Start-Process启动程序的方式与Invoke-Item类似。
使用Start-Process的参数指定选项,例如加载用户配置文件、使用备用凭据启动进程。
例如
从官方网站引用此syntax's。
这里的Configure CI/CD的节点应用程序与Azure管道教程了解更多信息。