# Update GAM7 to latest version Automatic update to the latest version on Linux/Mac OS/Google Cloud Shell/Raspberry Pi/ChromeOS: - Do not create project or authorizations, default path `$HOME/bin` - `bash <(curl -s -S -L https://git.io/gam-install) -l` - Do not create project or authorizations, specify a path - `bash <(curl -s -S -L https://git.io/gam-install) -l -d ` By default, a folder, `gam7`, is created in the default or specified path and the files are downloaded into that folder. Add the `-s` option to the end of the above commands to suppress creating the `gam7` folder; the files are downloaded directly into the default or specified path. See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation ### 7.43.04 Added option `include_suspended_zeros []` to `gam print vaultcounts` that causes GAM to generate zero count lines for suspended users with zero items as well as non-suspended users. ### 7.43.03 Added option `parentpathonly []` to the following commands that causes GAM to display only the parent folder names when displaying the path to a file. ``` gam info drivefile ... filepath|fullpath gam show fileinfo ... filepath|fullpath gam print|show filepath gam print filelist ... filepath|fullpath ``` ### 7.43.02 Added option `maxactivities ` to `gam print driveactivity` to limit the number of activities displayed; the default is 0, no limit. ### 7.43.01 Updated `gam info user` and `gam print users` to display guest user attributes: `isGuestUser, guestAccountInfo` Expanded `` to allow specification of guest users. * See [Collections of Users](Collections-of-Users) ### 7.42.00 In versions prior to 7.42.00, when `redirect csv ` was used, GAM did not open and write `` until all processing was complete; if `` was not accessible, an error was generated and no results were saved. Now, `` is opened initially to verify accessiblity and then written when processing is complete. In the unlikely event that this causes issues, you can do `redirect csv delayopen` to get the previous behavior. ### 7.41.03 Fixed bug in the following: Added the following to `` used in CSV input/output row filtering; these are synonyms for `count` and `countrange`. ``` [(any|all):]number| [(any|all):]numberrange!=/| [(any|all):]numberrange=/| ``` ### 7.41.02 Added option `ownername` to `gam info|print courses` to have GAM display the course owners full name; there is an extra API call per course to get the name. Added option `creatorname` to `gam print course-announcements|course-materials|course-works` to have GAM display the item creators full name; there is an extra API call per course to get the name. After creating a group, it may be sometime, e.g. 30-45 seconds, before members can successfully be added to the group even though the API reported that the group was created. The following options can be used with `gam create group` to verify that the group is actually ready to be updated. This will be most useful in scripts that are used to create and then populate groups. ``` verifycreationretries - Verify group creation, defaults to 0, no verification performed, range 0-20 verifycreationinitialdelay - Number of seconds to delay before first verification performed, defaults to 5, range 0-60 verifycreationretrydelay - Number of seconds to delay between verificaton retries, defaults to 5, range 1-60 ``` If you have a script that deletes a group and then immediately tries to create a new group with the same email address, you may run into issues. There seems to be a 30-45 second window after the deletion in which a couple of strange errors can occur on the creation: `Resource not found` and `Duplicate`. The following options can be used with `gam create group` to handle these errors. This will be most useful in scripts that are used to delete and then immediately recreate groups. ``` recentdeleteretries - Handle group delete/create errors, defaults to 0, no errors handled, range 0-20 recentdeleteretrydelay - Number of seconds to delay between retries, defaults to 5, range 1-60 ``` Added the following to `` used in CSV input/output row filtering; these are synonyms for `count` and `countrange`. ``` [(any|all):]number| [(any|all):]numberrange!=/| [(any|all):]numberrange=/| ``` ### 7.41.01 Fixed bug in `gam print cigroups members managers owners countsonly totalcount internal external` that caused a trap. ### 7.41.00 Upgraded to Python 3.14.4 and OpenSSL 4.0.0. ### 7.40.03 Added option `whocanaddexternalmembers only_owners_can_add_external_members|end_users_can_add_external_members` to ``. It appears that `allowexternalmembers true` must be set in the same command. Added option `whocanaddexternalmembers` to ``. These options are not in general release as of 2026-04-13; experiment. ### 7.40.02 Updated `gam info|print cigroups` and `gam print|show cigroup-members` to handle trap caused by API returning invalid member data; `preferredMemberKey` with no `id`. ### 7.40.01 Updated `gam print filelist|filecounts` to handle the `permissionDetails` subfield of the `permissions` field for My Drives; this useful when trying to display permission inheritance. An additional API call per file is required to get the `permissionDetails` subfield. ``` gam user user@domain.com print filelist fields id,name,mimetype,basicpermissions,permissiondetails oneitemperrow gam user user@domain.com print filelist fields id,name,mimetype,basicpermissions,permissiondetails pm inherited false em pmfilter oneitemperrow ``` ### 7.40.00 Updated `gam print|show businessprofileaccounts` (client access) to `gam print|show businessprofileaccounts` (service account access). You'll need to run `gam user user@domain.com update serviceaccount` and select `2) Business Account Management API`. ### 7.39.08 Fixed bug in `gam oauth create` that caused a trap when `0) Business Account Management API` was selected. Upgraded to Python 3.14.4 on macOS and Windows; Linux is still 3.14.3. ### 7.39.07 Upgraded to OpenSSL 3.6.2. ### 7.39.06 Fixed bug in `gam version checkrc`. ### 7.39.05 Added optional argument `preview` to `updateprimaryemail [preview]` for the following commands that causes GAM to preview, but not perform, primary email address changes. This allows verification of the primary email address changes before commiting the changes. ``` gam update group gam update cigroup gam update user ``` ### 7.39.04 Added `updateprimaryemail ` option to `gam update group ` and `gam update cigroup ` to allow modifying the group's current primary email address. For example, to change the domain of a set of groups from the current domain.com to newdomain.com: ``` gam update group csvfile Groups.csv:email updateprimaryemail "^(.+)@domain.com$" "\1@newdomain.com" ``` ### 7.39.03 Added the following options to `gam create chatspace` that can be used to capture space details when creating chat spaces in bulk. ``` csv [todrive *] [formatjson [quotechar ]] (addcsvdata )* ``` See: https://github.com/GAM-team/GAM/wiki/Users-Chat#bulk-build-chat-spaces ### 7.39.02 Fixed progress messages for `gam print filelist` when permissions were being displayed/matched for Shared Drives. ### 7.39.01 Updated `gam transfer drive ` to handle the following error: ``` ERROR: 403: cannotDeletePermission - The authenticated user cannot delete the permission. ``` ### 7.39.00 Deleted variable `enforce_expansive_access` from `gam.cfg` and removed option `enforceexpansiveaccess` from the following commands as expansive access is now always enforced by Google on My Drives. ``` gam delete permissions gam delete drivefileacl gam update drivefileacl gam copy drivefile gam move drivefile gam transfer ownership gam claim ownership ``` ### 7.38.02 Added license SKU `1010470009` for `AI Expanded Access`; abbreviation `aiexpandedaccess`. Renamed license SKU `1010470001` from `Gemini Enterprise` to `Gemini Enterprise - Legacy`. ### 7.38.01 Added `root` as a synonym for '/' in command line arguments that specify an OU. This is to avoid issues where a stand-alone `/` on the command line may be mis-interpreted by the command line interpreter as a reference to the file system root. ### 7.38.00 Added variable `gcp_org_id` to `gam.cfg` that is used by the following commands; by setting the value, additional API calls are eliminated. ``` gam create project gam create gcpfolder gam create|update|delete caalevel gam print|show caalevels gam print|show tokens gcpdetails ``` You can get and set the `gam.cfg/gcp_org_id` value with these commands: ``` $ gam info gcporgid organizations/906207637890 $ gam config gcp_org_id organizations/906207637890 save ``` You can get and set the `gam.cfg/customer_id` value with these commands: ``` $ gam info customerid C78abc9de $ gam config customer_id C78abc9de save ``` Added the following options to `gam report `. ``` applicationinfofilter networkinfofilter statusfilter includesensitivedata ``` ### 7.37.00 Added new client access scopes used by `gam print tokens`. ``` [*] 52) Resource Manager API - Organizations readonly [*] 53) Resource Manager API - Projects readonly ``` Added option `gcpdetails` to `gam print tokens` that uses these scopes to get additional project information. ### 7.36.03 Added command to send email replies that causes Gmail to recognize the message in conversation mode for the user sending the reply and the user receiving the reply; GAM supplies the necessary headers and options. ``` gam sendreply (((query [querytime ]*) [or|and])+) | (ids ) [replyto ] [subject ] [] [html []] (attach [charset ])* (embedimage )* (