Multiple updates
Some checks failed
Push wiki / pushwiki (push) Has been cancelled
Build and test GAM / build (false, build, 1, Build Intel Ubuntu Jammy, ubuntu-22.04) (push) Has been cancelled
Build and test GAM / build (false, build, 10, Build x86_64 macOS 15, macos-15-intel) (push) Has been cancelled
Build and test GAM / build (false, build, 11, Build Arm MacOS 26, macos-26) (push) Has been cancelled
Build and test GAM / build (false, build, 12, Build Intel Windows, windows-2025) (push) Has been cancelled
Build and test GAM / build (false, build, 13, Build Arm Windows, windows-11-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 2, Build Intel Ubuntu Noble, ubuntu-24.04) (push) Has been cancelled
Build and test GAM / build (false, build, 3, Build Arm Ubuntu Noble, ubuntu-24.04-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 4, Build Arm Ubuntu Jammy, ubuntu-22.04-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 5, Build Intel StaticX Legacy, ubuntu-22.04, yes) (push) Has been cancelled
Build and test GAM / build (false, build, 6, Build Arm StaticX Legacy, ubuntu-22.04-arm, yes) (push) Has been cancelled
Build and test GAM / build (false, build, 8, Build Arm MacOS 14, macos-14) (push) Has been cancelled
Build and test GAM / build (false, build, 9, Build Arm MacOS 15, macos-15) (push) Has been cancelled
Build and test GAM / build (false, test, 14, Test Python 3.10, ubuntu-24.04, 3.10) (push) Has been cancelled
Build and test GAM / build (false, test, 15, Test Python 3.11, ubuntu-24.04, 3.11) (push) Has been cancelled
Build and test GAM / build (false, test, 16, Test Python 3.12, ubuntu-24.04, 3.12) (push) Has been cancelled
Build and test GAM / build (false, test, 17, Test Python 3.15-dev, ubuntu-24.04, 3.15-dev) (push) Has been cancelled
Build and test GAM / build (true, test, 18, Test Python 3.14 freethread, ubuntu-24.04, 3.14) (push) Has been cancelled
Build and test GAM / merge (push) Has been cancelled
Build and test GAM / publish (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Check for Google Root CA Updates / check-certs (push) Has been cancelled

This commit is contained in:
Ross Scroggs
2026-01-18 10:05:39 -08:00
parent bb54fd113f
commit 720d667b61
14 changed files with 200 additions and 288 deletions

View File

@@ -283,6 +283,8 @@
<ChatEmoji> ::= emojiname <ChatEmojiName> | customemojis/<String> <ChatEmoji> ::= emojiname <ChatEmojiName> | customemojis/<String>
<ChatMember> ::= spaces/<String>/members/<String> <ChatMember> ::= spaces/<String>/members/<String>
<ChatMessage> ::= spaces/<String>/messages/<String> <ChatMessage> ::= spaces/<String>/messages/<String>
<ChatSection> ::= users/<String>/sections/<String> | sections/<String> | section <String>
<ChatSectionItem> ::= users/<String>/sections/<String>/items/<String> | sections/<String>/items/<String>
<ChatSpace> ::= spaces/<String> | space <String> | space spaces/<String> <ChatSpace> ::= spaces/<String> | space <String> | space spaces/<String>
<ChatThread> ::= spaces/<String>/threads/<String> <ChatThread> ::= spaces/<String>/threads/<String>
<ChromeProfilePermanentID> ::= <String> <ChromeProfilePermanentID> ::= <String>

View File

@@ -595,7 +595,7 @@ By default, Gam displays event details, use `countsonly` to display only the num
``` ```
gam calendar <CalendarEntity> print events [<EventEntity>] <EventDisplayProperty>* gam calendar <CalendarEntity> print events [<EventEntity>] <EventDisplayProperty>*
[fields <EventFieldNameList>] [showdayofweek] [fields <EventFieldNameList>] [showdayofweek] [attendeeslist]
(addcsvdata <FieldName> <String>)* (addcsvdata <FieldName> <String>)*
[eventrowfilter] [eventrowfilter]
[countsonly|(formatjson [quotechar <Character>])] [todrive <ToDriveAttribute>*] [countsonly|(formatjson [quotechar <Character>])] [todrive <ToDriveAttribute>*]
@@ -609,6 +609,10 @@ option `singleevents` to display all instances of a recurring event.
`showdayofweek` displays columns `start.dayOfWeek` and `end.dayOfWeek` when event start and end times are displayed. `showdayofweek` displays columns `start.dayOfWeek` and `end.dayOfWeek` when event start and end times are displayed.
By default, each attendee is displayed in a separate column; `attendeeslist` causes GAM to display
the attendee email addresses in a single column `attendeesList`; no attendee details are displayed.
The email addresses are separated by `csv_output_field_delimiter` from `gam.cfg`.
Add additional columns of data from the command line to the output after the calendarId. Add additional columns of data from the command line to the output after the calendarId.
* `addcsvdata <FieldName> <String>` * `addcsvdata <FieldName> <String>`

View File

@@ -445,12 +445,19 @@ is configurable from 0 to some large number. If the status reaches `EXPIRED`, `C
wipe_users| wipe_users|
take_a_screenshot take_a_screenshot
gam <CrOSTypeEntity> issuecommand command <CrOSCommand> [times_to_check_status <Integer>] [doit] gam <CrOSTypeEntity> issuecommand command <CrOSCommand>
[times_to_check_status <Integer>] [csv] [doit]
``` ```
By default, when a Chrome command is issued, GAM outputs details of the command status as indented keywords and values.
* `csv` - Output the details in CSV format.
If the final status is not reached before GAM exits, you can issue the following commands to continue checking the status. If the final status is not reached before GAM exits, you can issue the following commands to continue checking the status.
``` ```
gam <CrOSTypeEntity> getcommand commandid <CommandID> [times_to_check_status <Integer>] gam <CrOSTypeEntity> getcommand commandid <CommandID>
[times_to_check_status <Integer>] [csv]
``` ```
By default, when a Chrome command status is read, GAM outputs details of the command status as indented keywords and values.
* `csv` - Output the details in CSV format.
### Action Examples ### Action Examples
Remove user profile data from the device; the device will remain enrolled and connected. Remove user profile data from the device; the device will remain enrolled and connected.

View File

@@ -13,7 +13,7 @@
- [Display user group member options](#display-user-group-member-options) - [Display user group member options](#display-user-group-member-options)
- [Display group membership in CSV format](#display-group-membership-in-csv-format) - [Display group membership in CSV format](#display-group-membership-in-csv-format)
- [Display group membership in hierarchical format](#display-group-membership-in-hierarchical-format) - [Display group membership in hierarchical format](#display-group-membership-in-hierarchical-format)
- [Display external users in groups with allowExternalMembers=False](#Display-external-users-in-groups-with-allowExternalMembers-False)
## API documentation ## API documentation
* [Cloud Identity Groups Overview](https://cloud.google.com/identity/docs/groups) * [Cloud Identity Groups Overview](https://cloud.google.com/identity/docs/groups)
* [Cloud Identity Groups API - Groups](https://cloud.google.com/identity/docs/reference/rest/v1/groups) * [Cloud Identity Groups API - Groups](https://cloud.google.com/identity/docs/reference/rest/v1/groups)
@@ -349,7 +349,8 @@ gam print cigroup-members [todrive <ToDriveAttribute>*]
[emailmatchpattern [not] <REMatchPattern>] [namematchpattern [not] <REMatchPattern>] [emailmatchpattern [not] <REMatchPattern>] [namematchpattern [not] <REMatchPattern>]
[descriptionmatchpattern [not] <REMatchPattern>] [descriptionmatchpattern [not] <REMatchPattern>]
[roles <GroupRoleList>] [members] [managers] [owners] [roles <GroupRoleList>] [members] [managers] [owners]
[internal] [internaldomains <DomainNameList>] [external] [internal] [internaldomains all|primary|<DomainNameList>] [external]
[verifyallowexternal [<Boolean>]]
[types <CIGroupMemberTypeList>] [types <CIGroupMemberTypeList>]
<CIGroupMembersFieldName>* [fields <CIGroupMembersFieldNameList>] <CIGroupMembersFieldName>* [fields <CIGroupMembersFieldNameList>]
[minimal|basic|full] [minimal|basic|full]
@@ -381,11 +382,23 @@ By default, all members, managers and owners in the group are displayed; these o
By default, all types of members (cbcmbrowser, chromeosdevice, customer, group, serviceaccount, user) in the group are displayed; this option modifies that behavior: By default, all types of members (cbcmbrowser, chromeosdevice, customer, group, serviceaccount, user) in the group are displayed; this option modifies that behavior:
* `types <CIGroupMemberTypeList>` - Display specified types * `types <CIGroupMemberTypeList>` - Display specified types
Which domains are considered internal domains:
* `internaldomains all` - All of your workspace domains; this is the default
* `internaldomains primary` - Your workspace primary domain
* `internaldomains <DomainNameList>` - A list of domain names
By default, when listing group members, GAM does not take the domain of the member into account. By default, when listing group members, GAM does not take the domain of the member into account.
* `internal internaldomains <DomainNameList>` - Display members whose domain is in `<DomainNameList>` * `internal` - Display members whose domain matches a value in `internaldomains`
* `external internaldomains <DomainNameList>` - Display members whose domain is not in `<DomainNameList>` * `external` - Display members whose domain does not match value in `internaldomains`
* `internal external internaldomains <DomainNameList>` - Display all members, indicate their category: internal or external * `internal external` - Display all members, indicate their category: `internal` or `external`
* `internaldomains <DomainNameList>` - Defaults to value of `domain` in `gam.cfg`
Members without an email address, e.g. `customer`, `chrome-os-device` and `cbcm-browser` are considered `internal`.
When the `internal` or `external` options are specified, GAM adds the column `allowExternalMembers`
that shows that setting for the group and adds the column `category` that shows whether the member
is `external` or `internal`.
The option `verifyallowexternal` causes GAM to only display `external` users in groups with `allowExternalMembers=False'.
By default, members that are groups are displayed as a single entry of type GROUP; this option recursively expands group members to display their user members. By default, members that are groups are displayed as a single entry of type GROUP; this option recursively expands group members to display their user members.
* `recursive` - Recursively expand group members * `recursive` - Recursively expand group members
@@ -442,9 +455,10 @@ gam show cigroup-members
[emailmatchpattern [not] <REMatchPattern>] [namematchpattern [not] <REMatchPattern>] [emailmatchpattern [not] <REMatchPattern>] [namematchpattern [not] <REMatchPattern>]
[descriptionmatchpattern [not] <REMatchPattern>] [descriptionmatchpattern [not] <REMatchPattern>]
[roles <GroupRoleList>] [members] [managers] [owners] [roles <GroupRoleList>] [members] [managers] [owners]
[internal] [internaldomains all|primary|<DomainNameList>] [external]
[types <CIGroupMemberTypeList>] [types <CIGroupMemberTypeList>]
[memberemaildisplaypattern|memberemailskippattern <REMatchPattern>]
[minimal|basic|full] [minimal|basic|full]
[memberemaildisplaypattern|memberemailskippattern <REMatchPattern>]
[(depth <Number>) | includederivedmembership] [(depth <Number>) | includederivedmembership]
``` ```
By default, the group membership of all groups in the account are displayed, these options allow selection of subsets of groups: By default, the group membership of all groups in the account are displayed, these options allow selection of subsets of groups:
@@ -470,6 +484,18 @@ By default, all members, managers and owners in the group are displayed; these o
By default, all types of members (cbcmbrowser, chromeosdevice, customer, group, serviceaccount, user) in the group are displayed; this option modifies that behavior: By default, all types of members (cbcmbrowser, chromeosdevice, customer, group, serviceaccount, user) in the group are displayed; this option modifies that behavior:
* `types <CIGroupMemberTypeList>` - Display specified types * `types <CIGroupMemberTypeList>` - Display specified types
Which domains are considered internal domains:
* `internaldomains all` - All of your workspace domains; this is the default
* `internaldomains primary` - Your workspace primary domain
* `internaldomains <DomainNameList>` - A list of domain names
By default, when listing group members, GAM does not take the domain of the member into account.
* `internal` - Display members whose domain matches a value in `internaldomains`
* `external` - Display members whose domain does not match value in `internaldomains`
* `internal external` - Display all members, indicate their category: `internal` or `external`
Members without an email address, e.g. `customer`, `chrome-os-device` and `cbcm-browser` are considered `internal`.
Members that have met the above qualifications to be displayed can be further qualifed by their email address. Members that have met the above qualifications to be displayed can be further qualifed by their email address.
* `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed * `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed
* `memberemailskippattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will not be displayed; others will be displayed * `memberemailskippattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will not be displayed; others will be displayed
@@ -507,3 +533,7 @@ To show the structure of all groups you can do the following; it will be time co
``` ```
gam redirect stdout ./groups.txt show cigroup-members types group gam redirect stdout ./groups.txt show cigroup-members types group
``` ```
## Display external users in groups with allowExternalMembers=False
When printing group membership, the option `verifyallowexternal` causes
GAM to only display external users in groups with `allowExternalMembers=False'.

View File

@@ -267,7 +267,7 @@ gam info cigroups <GroupEntity>
[nosecurity|nosecuritysettings] [nosecurity|nosecuritysettings]
[allfields|<CIGroupFieldName>*|(fields <CIGroupFieldNameList>)] [allfields|<CIGroupFieldName>*|(fields <CIGroupFieldNameList>)]
[roles <GroupRoleList>] [members] [managers] [owners] [roles <GroupRoleList>] [members] [managers] [owners]
[internal] [internaldomains <DomainNameList>] [external] [internal] [internaldomains all|primary|<DomainNameList>] [external]
[types <CIGroupMemberTypeList>] [types <CIGroupMemberTypeList>]
[memberemaildisplaypattern|memberemailskippattern <REMatchPattern>] [memberemaildisplaypattern|memberemailskippattern <REMatchPattern>]
[formatjson] [formatjson]
@@ -283,13 +283,17 @@ By default, all direct members, managers and owners in the group are displayed;
By default, when displaying members from a group, all types of members (customer, group, serviceaccount, user) in the group are displayed; this option modifies that behavior: By default, when displaying members from a group, all types of members (customer, group, serviceaccount, user) in the group are displayed; this option modifies that behavior:
* `types <CIGroupMemberTypeList>` - Display specified types * `types <CIGroupMemberTypeList>` - Display specified types
By default, when listing group members, GAM does not take the domain of the member into account. Which domains are considered internal domains:
* `internal internaldomains <DomainNameList>` - Display members whose domain is in `<DomainNameList>` * `internaldomains all` - All of your workspace domains; this is the default
* `external internaldomains <DomainNameList>` - Display members whose domain is not in `<DomainNameList>` * `internaldomains primary` - Your workspace primary domain
* `internal external internaldomains <DomainNameList>` - Display all members, indicate their category: internal or external * `internaldomains <DomainNameList>` - A list of domain names
* `internaldomains <DomainNameList>` - Defaults to value of `domain` in `gam.cfg`
Members without an email address, e.g. `customer`, `chrome-os-device` and `cbcm-browser` are considered internal. By default, when listing group members, GAM does not take the domain of the member into account.
* `internal` - Display members whose domain matches a value in `internaldomains`
* `external` - Display members whose domain does not match value in `internaldomains`
* `internal external` - Display all members, indicate their category: `internal` or `external`
Members without an email address, e.g. `customer`, `chrome-os-device` and `cbcm-browser` are considered `internal`.
Members that have met the above qualifications to be displayed can be further qualifed by their email address. Members that have met the above qualifications to be displayed can be further qualifed by their email address.
* `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed * `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed
@@ -317,7 +321,7 @@ gam print cigroups [todrive <ToDriveAttribute>*]
[descriptionmatchpattern [not] <REMatchPattern>] [descriptionmatchpattern [not] <REMatchPattern>]
[basic|allfields|(<CIGroupFieldName>* [fields <CIGroupFieldNameList>])] [basic|allfields|(<CIGroupFieldName>* [fields <CIGroupFieldNameList>])]
[roles <GroupRoleList>] [memberrestrictions] [roles <GroupRoleList>] [memberrestrictions]
[internal] [internaldomains <DomainNameList>] [external] [internal] [internaldomains all|primary|<DomainNameList>] [external]
[members|memberscount] [managers|managerscount] [owners|ownerscount] [totalcount] [countsonly] [members|memberscount] [managers|managerscount] [owners|ownerscount] [totalcount] [countsonly]
[types <CIGroupMemberTypeList>] [types <CIGroupMemberTypeList>]
[memberemaildisplaypattern|memberemailskippattern <REMatchPattern>] [memberemaildisplaypattern|memberemailskippattern <REMatchPattern>]
@@ -374,13 +378,20 @@ By default, no members, managers or owners in the group are displayed; these opt
By default, when displaying members from a group, all types of members (customer, group, serviceaccount, user) in the group are displayed; this option modifies that behavior: By default, when displaying members from a group, all types of members (customer, group, serviceaccount, user) in the group are displayed; this option modifies that behavior:
* `types <CIGroupMemberTypeList>` - Display specified types * `types <CIGroupMemberTypeList>` - Display specified types
By default, when listing group members, GAM does not take the domain of the member into account. Which domains are considered internal domains:
* `internal internaldomains <DomainNameList>` - Display members whose domain is in `<DomainNameList>` * `internaldomains all` - All of your workspace domains; this is the default
* `external internaldomains <DomainNameList>` - Display members whose domain is not in `<DomainNameList>` * `internaldomains primary` - Your workspace primary domain
* `internal external internaldomains <DomainNameList>` - Display all members, indicate their category: internal or external * `internaldomains <DomainNameList>` - A list of domain names
* `internaldomains <DomainNameList>` - Defaults to value of `domain` in `gam.cfg`
Members without an email address, e.g. `customer`, `chrome-os-device` and `cbcm-browser` are considered internal. By default, when listing group members, GAM does not take the domain of the member into account.
* `internal` - Display members whose domain matches a value in `internaldomains`
* `external` - Display members whose domain does not match value in `internaldomains`
* `internal external` - Display all members, indicate their category: `internal` or `external`
When the `internal` or `external` options are specified, GAM adds the column `allowExternalMembers`
that shows that setting for the group.
Members without an email address, e.g. `customer`, `chrome-os-device` and `cbcm-browser` are considered `internal`.
Members that have met the above qualifications to be displayed can be further qualifed by their email address. Members that have met the above qualifications to be displayed can be further qualifed by their email address.
* `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed * `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed

View File

@@ -10,6 +10,43 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation
### 7.32.00
Added option `verifyallowexternal` to `gam print cigroup-members|group-members` that causes
GAM to only display external members in groups with `allowExternalMembers=False'.
This option can be used to help verify that internal-only groups don't have external members.
Updated option `internaldomains` for the following commands:
```
gam info|print groups
gam print|show group-members
gam info|print cigroups
gam print|show cigroup-members
gam <UserTypeEntity> print|show filesharecounts
```
Which domains are considered internal domains:
* `internaldomains all` - All of your workspace domains; this is the default
* `internaldomains primary` - Your workspace primary domain
* `internaldomains <DomainNameList>` - A list of domain names
Added option `csv` to `gam <CrOSTypeEntity> issuecommand command <CrOSCommand>`
and `gam <CrOSTypeEntity> getcommand commandid <CommandID>` so that command details are displayed in CSV format.
This can be used to log commands issued to devices and then monitor the results.
Added option `filemimetype category <MimeTypeNameList>` to `gam <UserTypeEntity> copy drivefile` to support
copying of files based on their MimeType category.
Added option `attendeeslist` to `gam calendars <CalendarEntity> print events` and `gam <UserTypeEntity> print events`
that causes GAM to display the attendee email addresses in a single column `attendeesList`; no attendee details
are displayed. The email addresses are separated by `csv_output_field_delimiter` from `gam.cfg`.
Fixed bug in `gam sendemail ... replyto <EmailAddress>` that caused a message delivery error if
`<EmailAddress>` did not include a domain name.
Added support for users's chat sections.
* See: https://github.com/GAM-team/GAM/wiki/Users-Chat#manage-chat-users-sections
* This is in Deveoper Preview; you must have a `developer_preview_api_key` in `gam.cfg` to use these commands.
### 7.31.06 ### 7.31.06
Added option `batchsize <Integer>` to `gam calendar <CalendarEntity> delete|purge events` and Added option `batchsize <Integer>` to `gam calendar <CalendarEntity> delete|purge events` and
@@ -2925,7 +2962,7 @@ Added option `showmimetype category <MimeTypeNameList>` to `gam <UserTypeEntity>
<MimeTypeName> ::= application|audio|font|image|message|model|multipart|text|video <MimeTypeName> ::= application|audio|font|image|message|model|multipart|text|video
<MimeTypeNameList> ::= "<MimeTypeName>(,<MimeTypeName>)*" <MimeTypeNameList> ::= "<MimeTypeName>(,<MimeTypeName>)*"
gam user user@domain.com print filelist fields id,name,mimetype showmimetype prefixes audio,video gam user user@domain.com print filelist fields id,name,mimetype showmimetype category audio,video
``` ```
### 6.71.11 ### 6.71.11

View File

@@ -615,7 +615,7 @@ gam print group-members [todrive <ToDriveAttribute>*]
[descriptionmatchpattern [not] <REMatchPattern>] [descriptionmatchpattern [not] <REMatchPattern>]
[admincreatedmatch <Boolean>] [admincreatedmatch <Boolean>]
[roles <GroupRoleList>] [members] [managers] [owners] [roles <GroupRoleList>] [members] [managers] [owners]
[internal] [internaldomains <DomainNameList>] [external] [internal] [internaldomains all|primary|<DomainNameList>] [external]
[membernames] [showdeliverysettings] [membernames] [showdeliverysettings]
<MembersFieldName>* [fields <MembersFieldNameList>] <MembersFieldName>* [fields <MembersFieldNameList>]
[notsuspended|suspended] [notarchived|archived] [notsuspended|suspended] [notarchived|archived]
@@ -682,13 +682,21 @@ By default, when displaying members from a group, all members, whether suspended
* `notsuspended archived` - Only include archived members, this is not common but allows creating groups that allow easy identification of archived users * `notsuspended archived` - Only include archived members, this is not common but allows creating groups that allow easy identification of archived users
* `suspended notarchived` - Only include suspended members, this is not common but allows creating groups that allow easy identification of suspended users * `suspended notarchived` - Only include suspended members, this is not common but allows creating groups that allow easy identification of suspended users
By default, when listing group members, GAM does not take the domain of the member into account. Which domains are considered internal domains:
* `internal internaldomains <DomainNameList>` - Display members whose domain is in `<DomainNameList>` * `internaldomains all` - All of your workspace domains; this is the default
* `external internaldomains <DomainNameList>` - Display members whose domain is not in `<DomainNameList>` * `internaldomains primary` - Your workspace primary domain
* `internal external internaldomains <DomainNameList>` - Display all members, indicate their category: internal or external * `internaldomains <DomainNameList>` - A list of domain names
* `internaldomains <DomainNameList>` - Defaults to value of `domain` in `gam.cfg`
Members without an email address, e.g. `customer`, are considered internal. By default, when listing group members, GAM does not take the domain of the member into account.
* `internal` - Display members whose domain matches a value in `internaldomains`
* `external` - Display members whose domain does not match value in `internaldomains`
* `internal external` - Display all members, indicate their category: `internal` or `external`
Members without an email address, e.g. `customer`, are considered `internal`.
When the `internal` or `external` options are specified, GAM adds the column `allowExternalMembers`
that shows that setting for the group and adds the column `category` that shows whether the member
is `external` or `internal`.
Members that have met the above qualifications to be displayed can be further qualifed by their email address. Members that have met the above qualifications to be displayed can be further qualifed by their email address.
* `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed * `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed
@@ -756,7 +764,7 @@ gam show group-members
[descriptionmatchpattern [not] <REMatchPattern>] [descriptionmatchpattern [not] <REMatchPattern>]
[admincreatedmatch <Boolean>] [admincreatedmatch <Boolean>]
[roles <GroupRoleList>] [members] [managers] [owners] [depth <Number>] [roles <GroupRoleList>] [members] [managers] [owners] [depth <Number>]
[internal] [internaldomains <DomainNameList>] [external] [internal] [internaldomains all|primary|<DomainNameList>] [external]
[notsuspended|suspended] [notarchived|archived] [notsuspended|suspended] [notarchived|archived]
[types <GroupMemberTypeList>] [types <GroupMemberTypeList>]
[memberemaildisplaypattern|memberemailskippattern <REMatchPattern>] [memberemaildisplaypattern|memberemailskippattern <REMatchPattern>]
@@ -809,232 +817,17 @@ By default, when displaying members from a group, all members, whether suspended
By default, all types of members (customer, group, user) in the group are displayed; this option modifies that behavior: By default, all types of members (customer, group, user) in the group are displayed; this option modifies that behavior:
* `types <GroupMemberTypeList>` - Display specified types * `types <GroupMemberTypeList>` - Display specified types
By default, when listing group members, GAM does not take the domain of the member into account. Which domains are considered internal domains:
* `internal internaldomains <DomainNameList>` - Display members whose domain is in `<DomainNameList>` * `internaldomains all` - All of your workspace domains; this is the default
* `external internaldomains <DomainNameList>` - Display members whose domain is not in `<DomainNameList>` * `internaldomains primary` - Your workspace primary domain
* `internal external internaldomains <DomainNameList>` - Display all members, indicate their category: internal or external * `internaldomains <DomainNameList>` - A list of domain names
* `internaldomains <DomainNameList>` - Defaults to value of `domain` in `gam.cfg`
Members without an email address, e.g. `customer`, are considered internal. By default, when listing group members, GAM does not take the domain of the member into account.
* `internal` - Display members whose domain matches a value in `internaldomains`
Members that have met the above qualifications to be displayed can be further qualifed by their email address. * `external` - Display members whose domain does not match value in `internaldomains`
* `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed * `internal external` - Display all members, indicate their category: `internal` or `external`
* `memberemailskippattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will not be displayed; others will be displayed
Members without an email address, e.g. `customer`, are considered `internal`.
By default, members of type GROUP are recursively expanded to show their constituent members. (Members of
type CUSTOMER are not expanded.) The `depth <Number>` argument controls the depth to which nested groups are displayed.
* `depth -1` - all groups in the selected group and below are displayed; this is the default.
* `depth 0` - the groups within a selected group are displayed, no descendants are displayed.
* `depth N` - the groups within the selected group and those groups N levels below the selected group are displayed.
The `includederivedmembership` option causes the API to expand type GROUP and type CUSTOMER
members to display their constituent members while still displaying the original member.
The options `types user` and `includederivedmembership types user` return the same list of users.
The `includederivedmembership` option makes less API calls but doesn't show hierarchy.
Expanding a member of type CUSTOMER may produce a large volume of data as it will display all users in your domain.
### Display group structure
To see a group's structure of nested groups use the `type group` option.
```
$ gam show group-members group testgroup5 types group
Group: testgroup5@domain.com
MEMBER, GROUP, testgroup1@domain.com, ACTIVE
MEMBER, GROUP, testgroup2@domain.com, ACTIVE
MEMBER, GROUP, testgroup3@domain.com, ACTIVE
MEMBER, GROUP, testgroup2@domain.com, ACTIVE
MEMBER, GROUP, testgroup4@domain.com, ACTIVE
```
To show the structure of all groups you can do the following; it will be time consuming for a large number of groups.
```
gam redirect stdout ./groups.txt show group-members types group
```
### Examples
#### Print a CSV of all members of a group regardless of role, all fields
```
gam print group-members <GroupEntity>
```
#### Print a CSV containing all managers emails
```
gam print group-members <GroupEntity> role manager fields email
```
#### Print a CSV output of all members and their emails only
```
gam print group-members <GroupEntity> role member fields email
```
#### Display group owners in your domain, but excluding groups where the email starts with a 4 digit code
```
gam print group-members domain <Your Domain> emailmatchpattern not '^1234.*' roles owners
```
These options further limit the list of groups selected above:
* `emailmatchpattern <REMatchPattern>` - Limit display to groups whose email address matches `<REMatchPattern>`
* `emailmatchpattern not <REMatchPattern>` - Limit display to groups whose email address does not match `<REMatchPattern>`
* `namematchpattern <REMatchPattern>` - Limit display to groups whose name matches `<REMatchPattern>`
* `namematchpattern not <REMatchPattern>` - Limit display to groups whose name does not match `<REMatchPattern>`
* `descriptionmatchpattern <REMatchPattern>` - Limit display to groups whose description matches `<REMatchPattern>`
* `descriptionmatchpattern not <REMatchPattern>` - Limit display to groups whose description does not match `<REMatchPattern>`
* `admincreatedmatch True` - Limit display to groups created by administrators
* `admincreatedmatch False` - Limit display to groups created by users
By default, all members, managers and owners in the group are displayed; these options modify that behavior:
* `roles <GroupRoleList>` - Display specified roles
* `members` - Display members
* `managers` - Display managers
* `owners` - Display owners
By default, all types of members (customer, group, user) in the group are displayed; this option modifies that behavior:
* `types <GroupMemberTypeList>` - Display specified types
By default, members that are groups are displayed as a single entry of type GROUP; this option recursively expands group members to display their user members.
* `recursive` - Recursively expand group members
When `recursive` is specified, the default is to only display type user members; this option modifies those behaviors:
* `types <GroupMemberTypeList>` - Display specified types
By default, when displaying members from a group, all members, whether suspended/archived or not, are included.
* `notsuspended` - Display only non-suspended members
* `suspended` - Display only suspended members
* `notarchived` - Do not include archived members
* `archived` - Only include archived members, this is not common but allows creating groups that allow easy identification of archived users
* `notsuspended notarchived` - Do not include suspended and archived members
* `suspended archived` - Include only suspended or archived members
* `notsuspended archived` - Only include archived members, this is not common but allows creating groups that allow easy identification of archived users
* `suspended notarchived` - Only include suspended members, this is not common but allows creating groups that allow easy identification of suspended users
By default, when listing group members, GAM does not take the domain of the member into account.
* `internal internaldomains <DomainNameList>` - Display members whose domain is in `<DomainNameList>`
* `external internaldomains <DomainNameList>` - Display members whose domain is not in `<DomainNameList>`
* `internal external internaldomains <DomainNameList>` - Display all members, indicate their category: internal or external
* `internaldomains <DomainNameList>` - Defaults to value of `domain` in `gam.cfg`
Members without an email address, e.g. `customer`, are considered internal.
Members that have met the above qualifications to be displayed can be further qualifed by their email address.
* `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed
* `memberemailskippattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will not be displayed; others will be displayed
By default, the ID, role, email address, type and status of each member are displayed along with the group email address;
these options specify which fields to display:
* `membernames` - Display members full name; an additional API call per member is required
* `showdeliverysettings` - Display delivery settings; an additional API call per member is required
* `<MembersFieldName>*` - Individual field names
* `fields <MembersFieldNameList>` - A comma separated list of field names
* `delivery|deliverysettings` - Specify this field to get delivery information; an additional API call per member is required
For members that are users, you can specify additional information to display; an additional API call per member is required
* `userfields <UserFieldNameList>` - Display specific user fields
* `allschemas|(schemas|custom|customschemas <SchemaNameList>)` - Display all or specific custom schema values
The additional API calls can be reduced with the `cachememberinfo` option; a single API call is made for each user/group
and the data is cached to eliminate to need to repeat the API call; this consumes more memory but dramatically reduces the number of API calls.
If member names are requested, names are not available for users not in the domain; you can request that GAM use the People API to retrieve
names for these users. Names are not retrieved in all cases and success is dependent on what user is used to perform the retrievals.
* `peoplelookup` - Use the administrator named in oauth2.txt to perform the retrievals
* `peoplelookupuser <EmailAddress>` - Use `<EmailAddress>` to perform the retrievals
By default, when `membernames` is specified, GAM displays `Unknown` for members whose names can not be determined.
Use `unknownname <String>` to specify an alternative value.
By default, the group email address is always shown, you can suppress it with the `nogroupemail` option.
The `recursive` option adds two columns, level and subgroup, to the output:
* `level` - At what level of the expansion does the user appear; level 0 is the top level
* `subgroup` - The group that contained the user
Displaying membership of multiple groups or recursive expansion may result in multiple instances of the same user being displayed; these multiple instances can be reduced to one entry.
* `noduplicates` - Reduce multiple instances of the same user to the first instance
The `includederivedmembership` option is an alternative to `recursive`; it causes the API to expand type GROUP and type CUSTOMER
members to display their constituent members while still displaying the original member.
The API produces inconsistent results, use with caution.
The options `recursive noduplicates` and `includederivedmembership types user noduplicates` return the same list of users.
The `includederivedmembership` option makes less API calls but doesn't show level and subgroup information.
Expanding a member of type CUSTOMER may produce a large volume of data as it will display all users in your domain.
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
* `formatjson` - Display the fields in JSON format.
By default, when writing CSV files, Gam uses a quote character of double quote `"`. The quote character is used to enclose columns that contain
the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
When using the `formatjson` option, double quotes are used extensively in the data resulting in hard to read/process output.
The `quotechar <Character>` option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
`quotechar` defaults to `gam.cfg/csv_output_quote_char`. When uploading CSV files to Google, double quote `"` should be used.
## Display group membership in hierarchical format
```
gam show group-members
[([domain|domains <DomainNameEntity>] ([member|showownedby <EmailItem>]|[(query <QueryGroup>)|(queries <QueryGroupList>)]))|
(group|group_ns|group_susp <GroupItem>)|
(select <GroupEntity>)]
[emailmatchpattern [not] <REMatchPattern>] [namematchpattern [not] <REMatchPattern>]
[descriptionmatchpattern [not] <REMatchPattern>]
[admincreatedmatch <Boolean>]
[roles <GroupRoleList>] [members] [managers] [owners] [depth <Number>]
[internal] [internaldomains <DomainNameList>] [external]
[notsuspended|suspended] [notarchived|archived]
[types <GroupMemberTypeList>]
[memberemaildisplaypattern|memberemailskippattern <REMatchPattern>]
[includederivedmembership]
```
By default, the group membership of all groups in the account are displayed, these options allow selection of subsets of groups:
* `domain|domains <DomainNameEntity>` - Limit display to groups in the domains specified by `<DomainNameEntity>`
* You can predefine this list with the `print_agu_domains` variable in `gam.cfg`.
* `member <EmailItem>` - Limit display to groups that contain `<EmailItem>` as a member; mutually exclusive with `query <QueryGroup>`
* `showownedby <EmailItem>` - Limit display to groups that contain `<EmailItem>` as an owner; mutually exclusive with `query <QueryGroup>`
* `(query <QueryGroup>)|(queries <QueryGroupList>)` - Limit groups to those that match a query; each query is run against each domain
* `group <GroupItem>` - Limit display to the single group `<GroupItem>`
* `group_ns <GroupItem>` - Limit display to the single group `<GroupItem>`, display non-suspended members
* `group_susp <GroupItem>` - Limit display to the single group `<GroupItem>`, display suspended members
* `select <GroupEntity>` - Limit display to the groups specified in `<GroupEntity>`
* `showownedby <UserItem>` - Limit display to groups owned by `<UserItem>`
When using `query <QueryGroup>` with the `name:{PREFIX}*` query, `PREFIX` must contain at least three characters.
You can identify groups with the `All users in the organization` member with:
* `query "memberKey=<CustomerID>"`
* `member id:<CustomerID>`
These options further limit the list of groups selected above:
* `emailmatchpattern <REMatchPattern>` - Limit display to groups whose email address matches `<REMatchPattern>`
* `emailmatchpattern not <REMatchPattern>` - Limit display to groups whose email address does not match `<REMatchPattern>`
* `namematchpattern <REMatchPattern>` - Limit display to groups whose name matches `<REMatchPattern>`
* `namematchpattern not <REMatchPattern>` - Limit display to groups whose name does not match `<REMatchPattern>`
* `descriptionmatchpattern <REMatchPattern>` - Limit display to groups whose description matches `<REMatchPattern>`
* `descriptionmatchpattern not <REMatchPattern>` - Limit display to groups whose description does not match `<REMatchPattern>`
* `admincreatedmatch True` - Limit display to groups created by administrators
* `admincreatedmatch False` - Limit display to groups created by users
By default, all members, managers and owners in the group are displayed; these options modify that behavior:
* `roles <GroupRoleList>` - Display specified roles
* `members` - Display members
* `managers` - Display managers
* `owners` - Display owners
By default, when displaying members from a group, all members, whether suspended/archived or not, are included.
* `notsuspended` - Display only non-suspended members
* `suspended` - Display only suspended members
* `notarchived` - Do not include archived members
* `archived` - Only include archived members, this is not common but allows creating groups that allow easy identification of archived users
* `notsuspended notarchived` - Do not include suspended and archived members
* `suspended archived` - Include only suspended or archived members
* `notsuspended archived` - Only include archived members, this is not common but allows creating groups that allow easy identification of archived users
* `suspended notarchived` - Only include suspended members, this is not common but allows creating groups that allow easy identification of suspended users
By default, all types of members (customer, group, user) in the group are displayed; this option modifies that behavior:
* `types <GroupMemberTypeList>` - Display specified types
By default, when listing group members, GAM does not take the domain of the member into account.
* `internal internaldomains <DomainNameList>` - Display members whose domain is in `<DomainNameList>`
* `external internaldomains <DomainNameList>` - Display members whose domain is not in `<DomainNameList>`
* `internal external internaldomains <DomainNameList>` - Display all members, indicate their category: internal or external
* `internaldomains <DomainNameList>` - Defaults to value of `domain` in `gam.cfg`
Members without an email address, e.g. `customer`, are considered internal.
Members that have met the above qualifications to be displayed can be further qualifed by their email address. Members that have met the above qualifications to be displayed can be further qualifed by their email address.
* `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed * `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed

View File

@@ -396,7 +396,7 @@ gam info group|groups <GroupEntity>
[basic] <GroupFieldName>* [fields <GroupFieldNameList>] [nodeprecated] [basic] <GroupFieldName>* [fields <GroupFieldNameList>] [nodeprecated]
[ciallfields|(cifields <CIGroupFieldNameList>)] [ciallfields|(cifields <CIGroupFieldNameList>)]
[roles <GroupRoleList>] [members] [managers] [owners] [roles <GroupRoleList>] [members] [managers] [owners]
[internal] [internaldomains <DomainNameList>] [external] [internal] [internaldomains All|<DomainNameList>] [external]
[notsuspended|suspended] [notarchived|archived] [notsuspended|suspended] [notarchived|archived]
[types <GroupMemberTypeList>] [types <GroupMemberTypeList>]
[memberemaildisplaypattern|memberemailskippattern <REMatchPattern>] [memberemaildisplaypattern|memberemailskippattern <REMatchPattern>]
@@ -423,13 +423,17 @@ By default, when displaying members from a group, all members, whether suspended
By default, when displaying members from a group, all types of members (customer, group, user) in the group are displayed; this option modifies that behavior: By default, when displaying members from a group, all types of members (customer, group, user) in the group are displayed; this option modifies that behavior:
* `types <GroupMemberTypeList>` - Display specified types * `types <GroupMemberTypeList>` - Display specified types
By default, when listing group members, GAM does not take the domain of the member into account. Which domains are considered internal domains:
* `internal internaldomains <DomainNameList>` - Display members whose domain is in `<DomainNameList>` * `internaldomains all` - All of your workspace domains; this is the default
* `external internaldomains <DomainNameList>` - Display members whose domain is not in `<DomainNameList>` * `internaldomains primary` - Your primary workspace domain
* `internal external internaldomains <DomainNameList>` - Display all members, indicate their category: internal or external * `internaldomains <DomainNameList>` - A list of domain names
* `internaldomains <DomainNameList>` - Defaults to value of `domain` in `gam.cfg`
Members without an email address, e.g. `customer`, are considered internal. By default, when listing group members, GAM does not take the domain of the member into account.
* `internal` - Display members whose domain matches a value in `internaldomains`
* `external` - Display members whose domain does not match value in `internaldomains`
* `internal external` - Display all members, indicate their category: `internal` or `external`
Members without an email address, e.g. `customer`, are considered `internal`.
Members that have met the above qualifications to be displayed can be further qualifed by their email address. Members that have met the above qualifications to be displayed can be further qualifed by their email address.
* `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed * `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed
@@ -467,7 +471,7 @@ gam print groups [todrive <ToDriveAttribute>*]
[ciallfields|(cifields <CIGroupFieldNameList>)] [ciallfields|(cifields <CIGroupFieldNameList>)]
[nodeprecated] [nodeprecated]
[roles <GroupRoleList>] [roles <GroupRoleList>]
[internal] [internaldomains <DomainNameList>] [external] [internal] [internaldomains all|primary|<DomainNameList>] [external]
[members|memberscount] [managers|managerscount] [owners|ownerscount] [totalcount] [countsonly] [members|memberscount] [managers|managerscount] [owners|ownerscount] [totalcount] [countsonly]
[includederivedmembership] [includederivedmembership]
[notsuspended|suspended] [notarchived|archived] [notsuspended|suspended] [notarchived|archived]
@@ -558,13 +562,20 @@ By default, when displaying members from a group, all members, whether suspended
By default, when displaying members from a group, all types of members (customer, group, user) in the group are displayed; this option modifies that behavior: By default, when displaying members from a group, all types of members (customer, group, user) in the group are displayed; this option modifies that behavior:
* `types <GroupMemberTypeList>` - Display specified types * `types <GroupMemberTypeList>` - Display specified types
By default, when listing group members, GAM does not take the domain of the member into account. Which domains are considered internal domains:
* `internal internaldomains <DomainNameList>` - Display members whose domain is in `<DomainNameList>` * `internaldomains all` - All of your workspace domains; this is the default
* `external internaldomains <DomainNameList>` - Display members whose domain is not in `<DomainNameList>` * `internaldomains primary` - Your workspace primary domain
* `internal external internaldomains <DomainNameList>` - Display all members, indicate their category: internal or external * `internaldomains <DomainNameList>` - A list of domain names
* `internaldomains <DomainNameList>` - Defaults to value of `domain` in `gam.cfg`
Members without an email address, e.g. `customer`, are considered internal. By default, when listing group members, GAM does not take the domain of the member into account.
* `internal` - Display members whose domain matches a value in `internaldomains`
* `external` - Display members whose domain does not match value in `internaldomains`
* `internal external` - Display all members, indicate their category: `internal` or `external`
Members without an email address, e.g. `customer`, are considered `internal`.
When the `internal` or `external` options are specified, GAM adds the column `allowExternalMembers`
that shows that setting for the group.
Members that have met the above qualifications to be displayed can be further qualifed by their email address. Members that have met the above qualifications to be displayed can be further qualifed by their email address.
* `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed * `memberemaildisplaypattern <REMatchPattern>` - Members with email addresses that match `<REMatchPattern>` will be displayed; others will not be displayed

View File

@@ -252,7 +252,7 @@ writes the credentials into the file oauth2.txt.
admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
admin@server:/Users/admin$ gam version admin@server:/Users/admin$ gam version
WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
GAM 7.31.06 - https://github.com/GAM-team/GAM - pyinstaller GAM 7.32.00 - https://github.com/GAM-team/GAM - pyinstaller
GAM Team <google-apps-manager@googlegroups.com> GAM Team <google-apps-manager@googlegroups.com>
Python 3.14.2 64-bit final Python 3.14.2 64-bit final
macOS Tahoe 26.2 x86_64 macOS Tahoe 26.2 x86_64
@@ -990,7 +990,7 @@ writes the credentials into the file oauth2.txt.
C:\>del C:\GAMConfig\oauth2.txt C:\>del C:\GAMConfig\oauth2.txt
C:\>gam version C:\>gam version
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
GAM 7.31.06 - https://github.com/GAM-team/GAM - pythonsource GAM 7.32.00 - https://github.com/GAM-team/GAM - pythonsource
GAM Team <google-apps-manager@googlegroups.com> GAM Team <google-apps-manager@googlegroups.com>
Python 3.14.2 64-bit final Python 3.14.2 64-bit final
Windows 11 10.0.26200 AMD64 Windows 11 10.0.26200 AMD64

View File

@@ -681,9 +681,10 @@ By default, Gam displays event details, use `countsonly` to display only the num
``` ```
gam <UserTypeEntity> print events <UserCalendarEntity> [<EventEntity>] <EventDisplayProperty>* gam <UserTypeEntity> print events <UserCalendarEntity> [<EventEntity>] <EventDisplayProperty>*
[fields <EventFieldNameList>] [showdayofweek] [fields <EventFieldNameList>] [showdayofweek] [attendeeslist]
(addcsvdata <FieldName> <String>)* (addcsvdata <FieldName> <String>)*
[eventrowfilter] [countsonly|(formatjson [quotechar <Character>])] [todrive <ToDriveAttribute>*] [eventrowfilter]
[countsonly|(formatjson [quotechar <Character>])] [todrive <ToDriveAttribute>*]
``` ```
In `<EventEntity>`, any `<EventSelectProperty>` options must precede all other options. In `<EventEntity>`, any `<EventSelectProperty>` options must precede all other options.
@@ -694,6 +695,10 @@ option `singleevents` to display all instances of a recurring event.
`showdayofweek` displays columns `start.dayOfWeek` and `end.dayOfWeek` when event start and end times are displayed. `showdayofweek` displays columns `start.dayOfWeek` and `end.dayOfWeek` when event start and end times are displayed.
By default, each attendee is displayed in a separate column; `attendeeslist` causes GAM to display
the attendee email addresses in a single column `attendeesList`; no attendee details are displayed.
The email addresses are separated by `csv_output_field_delimiter` from `gam.cfg`.
Add additional columns of data from the command line to the output after the calendarId. Add additional columns of data from the command line to the output after the calendarId.
* `addcsvdata <FieldName> <String>` * `addcsvdata <FieldName> <String>`

View File

@@ -37,7 +37,7 @@ gam user user@domain.com update serviceaccount
[*] 11) Chat API - User Sections (supports readonly) [*] 11) Chat API - User Sections (supports readonly)
``` ```
`Chat API - User Sections` is in Developer Preview. `Chat API - User Sections` is in Developer Preview; you must have a `developer_preview_api_key` in `gam.cfg` to use these commands.
Added `use_chat_admin_access` Boolean variable to `gam.cfg`. Added `use_chat_admin_access` Boolean variable to `gam.cfg`.
``` ```
@@ -484,14 +484,22 @@ gam <UserTypeEntity> move chatsectionitem <ChatSectionItem> to <ChatSection>
### Display information about a user's chat section items ### Display information about a user's chat section items
``` ```
gam <UserTypeEntity> show chatsectionitems <ChatSection> gam <UserTypeEntity> show chatsectionitems <ChatSection>
[space <ChatSpace>]
[formatjson] [formatjson]
``` ```
You can search for a chat section that contains a chat space with:
`show chatsectionitems sections/- space <ChatSpace>`
By default, Gam displays the information as an indented list of keys and values. By default, Gam displays the information as an indented list of keys and values.
* `formatjson` - Display the fields in JSON format. * `formatjson` - Display the fields in JSON format.
``` ```
gam <UserTypeEntity> print chatsectionitems <ChatSection> [todrive <ToDriveAttribute>*] gam <UserTypeEntity> print chatsectionitems <ChatSection> [todrive <ToDriveAttribute>*]
[space <ChatSpace>]
[formatjson [quotechar <Character>]] [formatjson [quotechar <Character>]]
``` ```
You can search for a chat section that contains a chat space with:
`print chatsectionitems sections/- space <ChatSpace>`
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format, By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
* `formatjson` - Display the fields in JSON format. * `formatjson` - Display the fields in JSON format.

View File

@@ -42,6 +42,7 @@
<RESubstitution> ::= <String>> <RESubstitution> ::= <String>>
<MimeTypeName> ::= application|audio|font|image|message|model|multipart|text|video <MimeTypeName> ::= application|audio|font|image|message|model|multipart|text|video
<MimeTypeNameList> ::= "<MimeTypeName>(,<MimeTypeName>)*"
<MimeType> ::= <MimeTypeName>/<String> <MimeType> ::= <MimeTypeName>/<String>
<MimeTypeList> ::= "<MimeType>(,<MimeType>)*" <MimeTypeList> ::= "<MimeType>(,<MimeType>)*"
@@ -103,7 +104,7 @@ gam <UserTypeEntity> copy drivefile <DriveFileEntity>
<DriveFileCopyAttribute>* <DriveFileCopyAttribute>*
[skipids <DriveFileEntity>] [skipids <DriveFileEntity>]
[copysubfiles [<Boolean>]] [filenamematchpattern <REMatchPattern>] [copysubfiles [<Boolean>]] [filenamematchpattern <REMatchPattern>]
[filemimetype [not] <MimeTypeList>] [filemimetype [not] <MimeTypeList>] [filemimetype category <MimeTypeNameList>]
[copysubfilesownedby [copysubfilesownedby
any|me|others| any|me|others|
users <EmailAddressList>| users <EmailAddressList>|
@@ -189,6 +190,7 @@ By default, GAM displays a message referencing files and folders not selected fo
You can specify restrictions on the MIME types to be copied. You can specify restrictions on the MIME types to be copied.
* `filemimetypes <MimeTypeList>` - Copy sub files with the specified MIME types * `filemimetypes <MimeTypeList>` - Copy sub files with the specified MIME types
* `filemimetypes not <MimeTypeList>` - Copy sub files with MIME types other than those specified * `filemimetypes not <MimeTypeList>` - Copy sub files with MIME types other than those specified
* `filemimetypes category <MimeTypeNameList>` - Copy sub files with the specified MIME type categories
### By default, when copying sub files, folders and shortcuts, all are copied. ### By default, when copying sub files, folders and shortcuts, all are copied.
You can specify `<REMatchPattern>` patterns that limit the items copied based on their name. You can specify `<REMatchPattern>` patterns that limit the items copied based on their name.

View File

@@ -880,11 +880,11 @@ Print or show the share type counts of a user's files. These fields are displaye
``` ```
gam <UserTypeEntity> print filesharecounts [todrive <ToDriveAttribute>*] gam <UserTypeEntity> print filesharecounts [todrive <ToDriveAttribute>*]
[excludetrashed] [excludetrashed]
[internaldomains <DomainNameList>] [internaldomains all|primary|<DomainNameList>]
[summary none|only|plus] [summaryuser <String>] [summary none|only|plus] [summaryuser <String>]
gam <UserTypeEntity> show filesharecounts gam <UserTypeEntity> show filesharecounts
[excludetrashed] [excludetrashed]
[internaldomains <DomainNameList>] [internaldomains all|primary|<DomainNameList>]
[summary none|only|plus] [summaryuser <String>] [summary none|only|plus] [summaryuser <String>]
``` ```
@@ -892,8 +892,10 @@ By default, print|show filesharecounts displays share type counts of all files o
Use the `excludetrashed` option to suppress counting files in the trash. Use the `excludetrashed` option to suppress counting files in the trash.
By default, `internaldomains <DomainNameList>` defaults to your primary domain; if you have other domains that Which domains are considered internal domains:
you consider internal, list all of them in `<DomainNameList>`. * `internaldomains all` - All of your workspace domains; this is the default
* `internaldomains primary` - Your workspace primary domain
* `internaldomains <DomainNameList>` - A list of domain names
By default, share type counts for individual users are displayed; the `summary` option offers alternatives By default, share type counts for individual users are displayed; the `summary` option offers alternatives
that can display a summarization of share type counts across all users specified in the command. that can display a summarization of share type counts across all users specified in the command.

View File

@@ -3,7 +3,7 @@
Print the current version of Gam with details Print the current version of Gam with details
``` ```
gam version gam version
GAM 7.31.06 - https://github.com/GAM-team/GAM - pyinstaller GAM 7.32.00 - https://github.com/GAM-team/GAM - pyinstaller
GAM Team <google-apps-manager@googlegroups.com> GAM Team <google-apps-manager@googlegroups.com>
Python 3.14.2 64-bit final Python 3.14.2 64-bit final
macOS Tahoe 26.2 x86_64 macOS Tahoe 26.2 x86_64
@@ -15,7 +15,7 @@ Time: 2025-12-23T13:57:00-08:00
Print the current version of Gam with details and time offset information Print the current version of Gam with details and time offset information
``` ```
gam version timeoffset gam version timeoffset
GAM 7.31.06 - https://github.com/GAM-team/GAM - pyinstaller GAM 7.32.00 - https://github.com/GAM-team/GAM - pyinstaller
GAM Team <google-apps-manager@googlegroups.com> GAM Team <google-apps-manager@googlegroups.com>
Python 3.14.2 64-bit final Python 3.14.2 64-bit final
macOS Tahoe 26.2 x86_64 macOS Tahoe 26.2 x86_64
@@ -27,7 +27,7 @@ Your system time differs from www.googleapis.com by less than 1 second
Print the current version of Gam with extended details and SSL information Print the current version of Gam with extended details and SSL information
``` ```
gam version extended gam version extended
GAM 7.31.06 - https://github.com/GAM-team/GAM - pyinstaller GAM 7.32.00 - https://github.com/GAM-team/GAM - pyinstaller
GAM Team <google-apps-manager@googlegroups.com> GAM Team <google-apps-manager@googlegroups.com>
Python 3.14.2 64-bit final Python 3.14.2 64-bit final
macOS Tahoe 26.2 x86_64 macOS Tahoe 26.2 x86_64
@@ -68,7 +68,7 @@ MacOS High Sierra 10.13.6 x86_64
Path: /Users/Admin/bin/gam7 Path: /Users/Admin/bin/gam7
Version Check: Version Check:
Current: 5.35.08 Current: 5.35.08
Latest: 7.31.06 Latest: 7.32.00
echo $? echo $?
1 1
``` ```
@@ -76,7 +76,7 @@ echo $?
Print the current version number without details Print the current version number without details
``` ```
gam version simple gam version simple
7.31.06 7.32.00
``` ```
In Linux/MacOS you can do: In Linux/MacOS you can do:
``` ```
@@ -86,7 +86,7 @@ echo $VER
Print the current version of Gam and address of this Wiki Print the current version of Gam and address of this Wiki
``` ```
gam help gam help
GAM 7.31.06 - https://github.com/GAM-team/GAM GAM 7.32.00 - https://github.com/GAM-team/GAM
GAM Team <google-apps-manager@googlegroups.com> GAM Team <google-apps-manager@googlegroups.com>
Python 3.14.2 64-bit final Python 3.14.2 64-bit final
macOS Tahoe 26.2 x86_64 macOS Tahoe 26.2 x86_64