Я получаю данные из API, который предлагает ConnectWise. Я пытаюсь вытащить список имен пользователей и паролей и поместить их в формат, который я могу использовать либо в другом сценарии (или в сочетании с этим), либо в формате CSV. Я бы предпочел первое, если это возможно.
код:
Function Get-CWConfiguration
{
[string]$BaseUri = "$CWServerRoot"
[string]$Accept = "application/vnd.connectwise.com+json; version=v2015_3"
[string]$ContentType = "application/json"
[string]$Authstring = $CWInfo + '+' + $CWCredentials1 + ':' + $CWCredentials2
$encodedAuth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(($Authstring)));
$Headers=@{"Authorization"="Basic $encodedAuth"}
Invoke-RestMethod -URI $BaseURI -Headers $Headers -ContentType $ContentType -Method Get
}
$username = (Get-CWConfiguration).questions | Where-Object {($_.questionid -eq 419)} | Sort-Object -Property questionid | select answer
$password = (Get-CWConfiguration).questions | Where-Object {($_.questionid -eq 420)} | Sort-Object -Property questionid | select answer
Все, что выше переменной $username
, - это то, что связано с API, и я не изменял это. Код ниже - лучший способ найти нужную мне информацию. Это возвращает каждую переменную как массив, что нормально, но если это произойдет, мне нужно иметь массив с 2 столбцами. 1 с именем пользователя и другой с именем пароля. если я сделаю $username | Get-Member
, то вернется:
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
answer NoteProperty string answer=admin@admin.com
Моя конечная цель состоит в том, чтобы переменная типа $credentials
выводила что-то похожее на:
Username Password
-------- ----------
admin1@admin.com Password1
admin2@admin.com Password2
admin3@admin.com Password3
Большинство методов, которые я пробовал, приводили ко всему выводу в 1 строку или 1 столбец. Я не уверен, следует ли мне комбинировать массивы и переименовывать поля $username.answer
и $password.answer
или создавать PSObject
? Моя основная трудность заключалась в том, что обе переменные имеют один и тот же answer
NoteProperty