API ESM zeigt nur die ID des Hauptbenutzers an

Post Reply
robudus
Posts: 491
Joined: 07. May 2008, 09:24
Contact:

API ESM zeigt nur die ID des Hauptbenutzers an

Post by robudus » 23. Nov 2021, 08:54

Hallo Zusammen,
bräuchte von einem Spezialisten einen kleinen Tipp.
Wir greifen auf dei API des ESM zu und holen dort Daten ab mit Powershell.
Es geht um die Ausgabe des Hauptbenutzers. Diese wird als GUID zurückgegegeben.
$apiToken = "<APIToken wird benötigt"

Code: Select all

$baseUrl = "https://matrix01"

### Get Token
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer $apiToken")

$tokenResponse = Invoke-RestMethod "$baseUrl/M42Services/api/ApiToken/GenerateAccessTokenFromApiToken/" -Method 'POST' -Headers $headers -Body $body


### Get AssetData
$serial = "JD3VFW2"

$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer "+$tokenResponse.RawToken)
$headers.Add("Content-Type", "application/json")

$response = Invoke-WebRequest "$baseUrl/m42Services/api/data/fragments/SPSAssetClassBase/schema-info?where=SerialNumber='$serial'&columns=ID,Name,SerialNumber,InventoryNumber,sku.T(SPSStockKeepingUnitClassBase).Model AS Model, T(SPSComputerclassBase).PrimaryMACAddress as MAC, T(SPSAssetClassBase).AssignedUser" -Method 'GET' -Headers $headers

Write-Host "JSON: $response"
Write-Host ""

$assetObj = ($response.Content | ConvertFrom-Json).Result
$assetObj

Ausgabe Bsp:

Code: Select all

ID              : 9b4xxx-eff8-ea11-xxe-000e1exxx2
Name            : 200xxx581
SerialNumber    : JxxxW2
InventoryNumber : 20xxx581
Model           : OptiPlex xxxx
MAC             : 00155xxxxAA2AE
AssignedUser    : 4b0xx314-xxx6-ea11-6f84-0050569d3349
DisplayString   : 200xxx81
Wir bräuchten aber den richtigen Usernamen. Wie kann man da dran kommen?
Das funktioniert super gut. Aber die GUID des Hauptbenutzers ist noch ein kleines Problem.

Vielen Dank schon im Voraus.

g ROBudus

robudus
Posts: 491
Joined: 07. May 2008, 09:24
Contact:

Re: API ESM zeigt nur die ID des Hauptbenutzers an

Post by robudus » 23. Nov 2021, 14:22

Die Abfrage im Queryanalyzer liefert mir auch nur die ID. Gesucht ist aber der Name.
Attachments
QueryAnalyzer.png
(40.91 KiB) Downloaded 119 times

MF_NSc
Posts: 88
Joined: 12. Aug 2019, 15:27
Contact:

Re: API ESM zeigt nur die ID des Hauptbenutzers an

Post by MF_NSc » 25. Nov 2021, 13:45

Die Guid/AssignedUser ist die ID der SPSUserClassBase.
Per SQL sieht der Join z.B. so aus:

select acb.ObjectId, AssignedUser, ucb.LastName from SPSAssetClassBase acb
left join SPSUserClassBase ucb on ucb.id=acb.AssignedUser

In einem Workflow kann man mit der GUID also z.B. in einen GetSingleRecortData für die SPSUserClassBase.
Als Where-Bedingung dient dann ID= AssignedUserGUID, die man aus dem PS zurück bekommt.
Dann kommt man an alle Daten wie Nachname, Vorname etc ran.

robudus
Posts: 491
Joined: 07. May 2008, 09:24
Contact:

Re: API ESM zeigt nur die ID des Hauptbenutzers an

Post by robudus » 02. Dec 2021, 12:56

Falls es jemanden interessiert:

ID,T(SPSComputerclassBase).Name as ComputerName,Serialnumber as
AssetSerialNumber,T(SPSComputerclassBase).PrimaryMACAddress as MAC,T(SPSComputerclassBase).NT4DomainName as NT4Domain,AssignedUser[LastName + ISNULL(', ' + FirstName, '')]
as AssignedUser, AssignedUser.PrimaryAccount.AccountName as Account,[Expression-ObjectID] as ObjectId

Damit kann aus der ID dann der User (Vorname und Nachname) oder der Account gebildet und ausgegegeben werden.

Post Reply

Return to “Asset Management”

Who is online

Users browsing this forum: No registered users and 1 guest