gpt4 book ai didi

使用 Octopus Deploy 的备用凭据的 Powershell 作业

转载 作者:行者123 更新时间:2023-12-04 18:40:44 25 4
gpt4 key购买 nike

我有一个运行部署脚本的 Octopus 触手。触手作为 LocalSystem 帐户运行。

在脚本中,除了一些存档位之外,我几乎可以做所有我需要的事情。存档需要在不同的域凭据下完成,因为它位于网络共享上。

令人沮丧的是,下面的代码在本地工作,但是当离开触手时,它会失败并出现错误

----------------------------------------------------[ Backup Nupkg ]---------------------------------------------------- Storing a backup version of GeoSphere.1.2.1.1722.nupkg for the Development environment
Error 09:24:32 [localhost] There is an error launching the
background process. Error Error 09:24:32 reported: Access is
denied. Error 09:24:32 At
C:\Octopus\Deployments\Development\GeoSphere\1.2.1.1722\deploy.ps1:121
Error 09:24:32 char:1 Error 09:24:32
+ Receive-Job $job Error 09:24:32
+ ~~~~~~~~~~~~~~~~ Error 09:24:32
+ CategoryInfo : OpenError: (localhost:String) [], PSRemotingTran Error 09:24:32 sportException Error 09:24:32
+ FullyQualifiedErrorId : -2147467259,PSSessionStateBroken Info 09:24:32 HasMoreData : False StatusMessage : Location :
localhost Command : Import-Module $args[3]
Backup-Nupkg $args[0] $args[1] $args[2]
JobStateInfo : Failed Finished : System.Threading.ManualResetEvent InstanceId :
0c031592-4c2a-4f8b-b014-a5ba79be09f7 Id : 1 Name :
Job1 ChildJobs : {Job2} PSBeginTime : 13/11/2014 9:24:30 AM
PSEndTime : 13/11/2014 9:24:31 AM PSJobTypeName : BackgroundJob
Output : {} Error : {} Progress : {} Verbose
: {} Debug : {} Warning : {} State : Failed
Fatal 09:24:32 PowerShell script returned a non-zero exit code: 1
Tentacle version 2.5.11.614



这是代码
$pwd = convertto-securestring "[PASSWORD]" -asplaintext -force
$cred=new-object -typename System.Management.Automation.PSCredential -argumentlist "[DOMAIN\USER]",$pwd
$packageName = "GeoSphere.$Version.nupkg"
$backupPath = $($es.backupPath)
$artifactsPath = $($es.artifactsPath)
$job = Start-Job -ScriptBlock {
Import-Module $args[3]
Backup-Nupkg $args[0] $args[1] $args[2]
} -ArgumentList @($packageName,$backupPath,$artifactsPath,"$currentDir\modules\ApplicationUtilities") -Credential $cred

Wait-Job $Job
Receive-Job $job

这是 ApplicationUtilities模块
function Backup-Nupkg{
param(
[parameter(Mandatory=$true,position=0)] [string] $packageName,
[parameter(Mandatory=$true,position=1)] [string] $backupPath,
[parameter(Mandatory=$true,position=2)] [string] $artifactsPath
)

if(!(Test-Path $($backupPath))) {
md $($backupPath)
} else {
Remove-Item "$($backupPath)\*" -recurse -Force
}

Copy-Item $artifactsPath\$packageName $backupPath
}

Export-ModuleMember Backup-Nupkg

让它像在本地一样从触手上跑掉的魔术是什么?

最佳答案

我尝试了同样的事情,但没有任何运气,似乎无法以其他用户身份开始工作。在这个类似的问题中,Leblanc 最终使用了 WinRM 和 Invoke-Command。反而:

run script block as a specific user with Powershell

(我认为这不是 Octopus 特有的——问题似乎更多是 SYSTEM 能够以不同用户身份启动进程,或使用 Start-Job 在 SYSTEM 下启动进程,或者两者兼而有之)

关于使用 Octopus Deploy 的备用凭据的 Powershell 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26915264/

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