gpt4 book ai didi

powershell - 通过本地系统帐户使用 powershell 提升凭据

转载 作者:行者123 更新时间:2023-12-03 23:21:02 28 4
gpt4 key购买 nike

我想通过 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

最佳答案

在 LocalSystem 下运行脚本时,某些命令似乎受到限制。考虑到 LocalSystem,这在安全性方面是有意义的:

has complete unrestricted access to local resources. This is also the disadvantage of LocalSystem because a LocalSystem service can do things that would bring down the entire system.



引用: MSDN, The LocalSystem Account

SuperUser 有一个类似的问题: Can not create process with elevated permissions from LocalSystem account到目前为止没有答案,现在引用这个答案。

TechNet 上有一个类似的问题: Runing PowerShell script with the permissions of the LocalSystem user答案建议通过任务计划程序运行脚本。

我可以想到使用 runas /savecred和一个 /user:...具有适当的权限,其密码永不过期。 AFAIR 你必须调用 runas/savecred交互一次,输入凭据,它将从下一次调用开始使用保存的凭据。

关于powershell - 通过本地系统帐户使用 powershell 提升凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33462446/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com