02-20-2023 11:08 AM - edited 02-20-2023 11:19 AM
Several folks have asked how might a JumpCloud customer report on all their users and also display those user's assigned manager. When running `Get-JCUser`, the cmdlet returns all JumpCloud users and their details from our API. The manager field contains an ID which refers to the ID of the JumpCloud user (the manager of a given user).
In order to get details about this managerID the `Get-JCUser` function can be used to search users by ID. In just three lines of PowerShell code, we can produce a report showing all JumpCloud users and a calculated field showing those user's assigned manager username.
First let's get some data about all our users:
$users = Get-JCUser
Here, the `$users` variable will store all data about our JumpCloud users including the managerID field.
We can display all fields (or just specific fields) using the Select-Object cmdlet
Display All Fields
$users | Select-Object *
Display just the username, mangerID fields:
$users | Select-Object username, manager
Again, we know that the managerID field is just a userID and in order to lookup that value we just need to run the ID through `Get-JCUser`. To do that we can make use of calculated properties which are nothing more than values calculated at time of execution.
$users | Select-Object username, @{ Name = 'ManagerUsername'; Expression = { (Get-JCUser -userid $_.manager).Username } }
Here we see that the usernames for the managers are displayed in the second column. The code above simply calculates the column named "managerUsername" with the value in the expression, which in this case, is the lookup per user, returning only the username of the matched managerID.
Putting it all together we can export everything as a CSV.
# Get All Users
$users = Get-JCUser
# Store all user properties + calculated "managerUsername" in a new variable called $list
$list = $users | Select-Object *, @{ Name = 'ManagerUsername'; Expression = { (Get-JCUser -userid $_.manager).Username } }
# Export $list as a csv
$list | ConvertTo-Csv | Out-File ./userReport.csv
And with just three lines of code, you can produce a report containing all user properties and the new calculated property to lookup manager username. Hopefully this is helpful for folks looking to get more out of their PowerShell reports or automations in general.
New to the site? Take a look at these additional resources:
Ready to join us? You can register here.