我想通过 Jenkins Job 使用 powershell 部署代码。这在 powershell ise 中运行良好。
$username = "mydomain\builder"
$password = "notmypassword"
$credentials = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))
$Arguments = "-ExecutionPolicy Bypass -File C:\Test.ps1 -NoNewWindow -WorkingDirectory C:\Windows\System32\WindowsPowerShell\v1.0 -NoLogo -NonInteractive"
Start-Process "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -Credential $credentials -ArgumentList $Arguments
但是当我从使用本地系统的 Jenkins 运行它时,我收到以下错误消息。
Start-Process : This command cannot be run due to the error: Access is denied.
At C:\WINDOWS\TEMP\hudson5557889306949142167.ps1:7 char:1
+ Start-Process powershell.exe -Credential $credentials -ArgumentList $
如果更改,我将 Jenkins 服务更改为另一个帐户,它可以工作。为什么提升的权限在本地系统帐户下不起作用?
注意:test.ps1 中唯一的代码是 New-Item c:\scripts\new_file.txt