Thycotic Secret Server передает кредиты в Powershell - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь получить учетные данные прямо с Thycotic Secret Server через powershell вместо копирования и вставки каждого имени пользователя / пароля. Кто-нибудь сталкивался с этим раньше?

1 Ответ

0 голосов
/ 05 ноября 2018

Я написал функцию только для этого типа вещей.

Обязательные поля

-Webservice, который должен указывать на sswebservice.asmx, обычно расположенный как https://{Base Address}/webservices/sswebservice.asmx

-Credential Ваш логин в Thycotic.

-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"
        }
    }
}

Основное использование

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

Другое использование - это параметр -raw. Это вернет объект, основанный на возврате из Thycotic.

Можно сузить до поля элементы

Get-Secret -WebService "https://Stuff/sswebservice.asmx" -Credential $ThycoticCredentials  -SearchTerm "HELLO" -raw | select -ExpandProperty Items

И даже сузить до значений (это поле получает имя пользователя)

Get-Secret -WebService "https://Stuff/sswebservice.asmx" -Credential $ThycoticCredentials  -SearchTerm "HELLO" -raw | select -ExpandProperty Items | ?{$_.fieldname -like 'username'} | select -ExpandProperty value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...