AutoIt
AutoIt
Windows Credentials Manager / Apple Keychain - List Matching Secrets
See more Secrets Examples
List secrets matching one or more wildcarded names for app, service, domain, and username.Note: This example requires Chilkat v10.1.0 or later.
Chilkat AutoIt Downloads
Local $bSuccess = False
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$oSecrets = ObjCreate("Chilkat.Secrets")
; On Windows, this is the Windows Credentials Manager
; On MacOS/iOS, it is the Apple Keychain
$oSecrets.Location = "local_manager"
; Set wildcarded or exact values for appName, service, domain, and username.
; Omit any members where anything is allowed to match, or alternatively specify "*" to match anything.
$oJsonMatch = ObjCreate("Chilkat.JsonObject")
$oJsonMatch.UpdateString("appName","Test*")
$oJsonMatch.UpdateString("service","*")
$oJsonMatch.UpdateString("domain","*")
$oJsonMatch.UpdateString("username","Starfish*")
$oResults = ObjCreate("Chilkat.JsonObject")
$oResults.EmitCompact = False
$bSuccess = $oSecrets.ListSecrets($oJsonMatch,$oResults)
If ($bSuccess = False) Then
ConsoleWrite($oSecrets.LastErrorText & @CRLF)
Exit
EndIf
ConsoleWrite($oResults.Emit() & @CRLF)
; Sample output on Windows.
; The "targetName" is purely informational and indicates the raw TargetName of the secret (i.e. Credential) stored in the Credentials Manager.
; {
; "secrets": [
; {
; "appName": "Test2",
; "service": "Custom",
; "domain": "Ocean",
; "username": "Starfish20",
; "targetName": "Test2/Custom/Ocean/Starfish20"
; },
; {
; "appName": "Test2",
; "service": "Custom",
; "domain": "Ocean",
; "username": "Starfish",
; "targetName": "Test2/Custom/Ocean/Starfish"
; }
; ]
; }
; ---------------------------------------------------------------------------------------
; Here's sample code for parsing the JSON list of secrets.
Local $sAppName
Local $service
Local $sDomain
Local $sUsername
Local $sTargetName
Local $sKeyChainService
Local $sKeyChainAccount
Local $i = 0
Local $iCount_i = $oResults.SizeOfArray("secrets")
While $i < $iCount_i
$oResults.I = $i
$sAppName = $oResults.StringOf("secrets[i].appName")
$service = $oResults.StringOf("secrets[i].service")
$sDomain = $oResults.StringOf("secrets[i].domain")
$sUsername = $oResults.StringOf("secrets[i].username")
; Information field for Windows Credentials Manager.
$sTargetName = $oResults.StringOf("secrets[i].targetName")
; Informational fields if on MacOS using the Apple Keychain.
$sKeyChainService = $oResults.StringOf("secrets[i].keyChainService")
$sKeyChainAccount = $oResults.StringOf("secrets[i].keyChainAccount")
$i = $i + 1
Wend