Thycotic Secret Server将凭据传递给Powershell

时间:2018-11-05 19:31:57

标签: powershell

我试图通过Powershell直接从Thycotic Secret Server中获取凭据,而不是复制和粘贴每个用户名/密码。有人遇到过这个吗?

1 个答案:

答案 0 :(得分:1)

我为此类型编写了一个函数。

必填字段是

ListElement* getElement(int key, ListElement** previousElement = nullptr) { if (previousElement) { *previousElement = nullptr; } ListElement *element = firstElement; ListElement *previousElement1 = nullptr; while (element != nullptr) { if (element->getKey() == key) { if (previousElement) { *previousElement = previousElement1; } return element; } previousElement1 = element; element = element->getNext(); } return nullptr; } void removeKey(int key) { ListElement* previousElement; ListElement *element = getElement(key, &previousElement); if (element != nullptr) { ListElement *nextElement = element->getNext(); if (previousElement != nullptr) { previousElement->setNext(nextElement); } if (firstElement == element) { firstElement = nextElement; } delete element; size--; } } ,必须指向通常位于-Webservice的{​​{1}}

sswebservice.asmx,这是您的Thycotic登录名。

https://{Base Address}/webservices/sswebservice.asmx是您要搜索的字符串。

-Credential

基本用法

-searchTerm

其他用法是参数function Get-Secret{ Param ( [Parameter(Mandatory=$False)] [string] $WebService, [Parameter(Mandatory=$True)] [pscredential] $Credential, [string] $Organization = $Null, [Parameter(Mandatory=$True)] [string] $SearchTerm = $Null, [Parameter(ParameterSetName='Only',Mandatory=$false)] [switch] $CountOnly, [Parameter(ParameterSetName='Only',Mandatory=$false)] [switch] $SummeryOnly, [switch] $Raw ) $Service = New-WebServiceProxy -uri $WebService -UseDefaultCredential $LoginResult = $Service.Authenticate($($Credential.GetNetworkCredential().Username), $($Credential.GetNetworkCredential().Password), $Organization, $($Credential.GetNetworkCredential().Domain)) if($LoginResult.errors){ throw $LoginResult.errors return } $Secret_IDs = $Service.SearchSecrets($LoginResult.token, $searchTerm, $true, $true) if($Secret_IDs.errors){ throw $Secret_IDs.errors return } if($CountOnly){ return $Secret_IDs.SecretSummaries.count } if($SummeryOnly){ return $Secret_IDs.SecretSummaries } $Response = @() foreach($Secret_ID in $Secret_IDs.SecretSummaries){ $Secret = $Service.GetSecret($LoginResult.token, $Secret_ID.SecretID, $false, $null).secret $Response += $Secret } if($Raw){ return $Response }else{ return $Response | Foreach-object{ Write-Output "$($_.Name)" Foreach($item in $_.Items){ Write-Output "$($item.FieldDisplayName) : $($item.Value)" } Write-Output "`r`n" } } } 。这将根据Thycotic的返回结果返回一个对象。

您可以缩小字段项目的范围

Get-Secret -WebService "https://Stuff/sswebservice.asmx" -Credential $ThycoticCredentials  -SearchTerm "HELLO"

甚至缩小到值(这个获得用户名的字段)

-raw