name of getUser() returns an object, you'll need to access that object to get the first and surname of the user.
The following script will get all the users in your domain (provided you have admin access) sorted by email and list them in a sheet named Users
function listAllUsers() {
var ss = SpreadsheetApp.getActiveSheet();
var pageToken,
page;
var userInfo = []
do {
page = AdminDirectory.Users.list({
domain: '---------',
orderBy: 'email',
maxResults: 500,
pageToken: pageToken
});
var users = page.users;
if (users) {
for (var i = 0; i < users.length; i++) {
var user = users[i];
try {
userInfo.push([user.primaryEmail, user.name.givenName, user.name.familyName]);
} catch (e) {
userInfo.push([user.primaryEmail, "", ""]);
}
}
} else {
Logger.log('No users found.');
}
pageToken = page.nextPageToken;
} while (pageToken);
var sheet = ss.getSheetByName('Users')
sheet.getRange(2, 1, userInfo.length, userInfo[0].length).setValues(userInfo);
}
To get the names of a list of users you can use the following script. It assumes that the usernames (email addresses) are listed in column A starting in row 2 and without breaks.
There are 3 values in the name object
.givenName is the users first name.
.familyName is the users surname
.fullName is the first name and surname separated by a space
function usersNames() {
var ss = SpreadsheetApp.getActiveSheet();
var data = ss.getRange('A2:A').getValues();
var userNames = [];
for (var i = 0; i < data.length; i++) {
if (data[i][0]) {
var names = AdminDirectory.Users.get(data[i][0]).name
userNames.push([names.givenName, names.familyName]);
} else {
break;
}
}
ss.getRange(2, 2, userNames.length, 2).setValues(userNames)
}