NodeJS 开始-过程:由于以下错误,无法运行此命令:访问被拒绝

pkln4tw6  于 2023-01-16  发布在  Node.js
关注(0)|答案(1)|浏览(185)

我正在尝试使用内联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应用。

你知道这是怎么回事或者我错过了什么吗?

7fyelxc5

7fyelxc51#

问题是由于尝试使用凭据而导致的。Start-Process启动程序的方式与Invoke-Item类似。
使用Start-Process的参数指定选项,例如加载用户配置文件、使用备用凭据启动进程。
例如

$cred = Get-Credential
$args = *********************
Start-Process ****** -Credential $cred -WindowStyle Hidden -ArgumentList $args

从官方网站引用此syntax's
这里的Configure CI/CD的节点应用程序与Azure管道教程了解更多信息。

相关问题