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