我想在使用Powershell脚本的Octopus Deploy中添加一个工作正常的用户。我想验证用户是否已经存在,然后不添加用户。有人可以指出我做错了吗。它说该用户存在,即使该用户不存在。它搜索用户列表以查看该用户是否存在。我正在使用Invoke RestMethod添加用户,并且工作正常。如果在添加之前用户存在,我就会对验证感到困惑。有没有更简单的方法可以做到这一点?
function AddNewUser{
Param(
[string]$OctopusURL,
[string]$APIKey,
[string]$UserName = "New User"
)
$header = @{ "X-Octopus-apiKey" = $APIKey }
Write-Host "Adding user $UserName"
$userList = Invoke-RestMethod "$OctopusURL/api/users?skip=0&take=100000" -Headers $header
foreach ($user in $userList.Items){
if ($user.UserName -eq $UserName){
$userId = $user.Id
return $userId
}
}
if ($userId -eq '') {
Write-Host "No user called `'$UserName`' was found"
try{
$newUserResp = Invoke-RestMethod "$OctopusURL/api/users" -Headers $header -Method Post -Body $newUserAsJson -ContentType "application/json"
return $newUserResp
} catch {
Write-Error $_
}
}
else {
Write-Host "User `'$UserName`' exists"
}
}
if ($userId -eq '') {
如果未找到现有用户,则$ userId为$ null,因此其值为false。
如果找到了用户,您的foreach循环也会返回,因此该if语句看起来不是必需的。如果到此为止,您可以假定该用户不存在(只要您的用户少于100,000,就可以了)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句