Documentation cleanup

This commit is contained in:
Ross Scroggs
2025-10-31 17:32:27 -07:00
parent 19aab2b2ad
commit e5f52289d2
17 changed files with 20 additions and 95 deletions

View File

@@ -1524,9 +1524,7 @@ gam config csv_input_row_filter "scopeType:regex:ORG_UNIT" redirect stdout ./Upd
``` ```
## Copy non-system admin roles from a source workspace to a target workspace ## Copy non-system admin roles from a source workspace to a target workspace
This requires GAM version 7.18.01 or higher. In the source workspace do the following:
In the source workspace to the following:
``` ```
gam redirect csv ./SourceNonSystemRoles.csv print adminroles privileges nosystemroles formatjson quotechar "'" gam redirect csv ./SourceNonSystemRoles.csv print adminroles privileges nosystemroles formatjson quotechar "'"
``` ```

View File

@@ -9,8 +9,6 @@
## Introduction ## Introduction
These features were added in version 7.18.00.
To use these commands you add the 'Business Account Management API' to your project and update client authorization. To use these commands you add the 'Business Account Management API' to your project and update client authorization.
``` ```
gam update project gam update project

View File

@@ -10,8 +10,6 @@
- [Display Chrome Profile commands](#display-chrome-profile-commands) - [Display Chrome Profile commands](#display-chrome-profile-commands)
## Introduction ## Introduction
These features were added in version 7.01.00.
To use these commands you must update your client authorization. To use these commands you must update your client authorization.
``` ```
gam oauth create gam oauth create

View File

@@ -410,7 +410,7 @@ gam update ou csvkmd cros.csv keyfield OU datafield deviceId add croscsvdata dev
gam <CrOSTypeEntity> update action <CrOSAction> [acknowledge_device_touch_requirement] gam <CrOSTypeEntity> update action <CrOSAction> [acknowledge_device_touch_requirement]
[actionbatchsize <Integer>] [actionbatchsize <Integer>]
``` ```
As of GAM version `6.67.00`, the new API function `batchChangeStatus` replaces the old API function `action`; ChromeOS devices are now processed in batches. ChromeOS devices are now processed in batches.
The batch size defaults to 10, the `actionbatchsize <Integer>` option can be used to set a batch size between 10 and 250. The batch size defaults to 10, the `actionbatchsize <Integer>` option can be used to set a batch size between 10 and 250.
As deprovisioning ChromeOS devices is not reversible, you must enter `acknowledge_device_touch_requirement` As deprovisioning ChromeOS devices is not reversible, you must enter `acknowledge_device_touch_requirement`

View File

@@ -235,10 +235,6 @@ nv:<String>:<String>
The first `<String>` is a Product and the second `<String>` is a SKU. The first `<String>` is a Product and the second `<String>` is a SKU.
## Info User Performance ## Info User Performance
In GAM versions prior 7.18.05, when you did `gam info user`, GAM would make one attempt to get the user's licenses.
If something went wrong, you might not get the complete list.
The License Manager API doesn't have a call that returns the list of licenses that a user has; you have to ask: The License Manager API doesn't have a call that returns the list of licenses that a user has; you have to ask:
``` ```
Does user have license SKU 1? Does user have license SKU 1?

View File

@@ -1,6 +1,5 @@
# Reseller # Reseller
- [API documentation](#api-documentation) - [API documentation](#api-documentation)
- [Notes](#notes)
- [Manage Multiple Domains](#manage-multiple-domains) - [Manage Multiple Domains](#manage-multiple-domains)
- [Definitions](#definitions) - [Definitions](#definitions)
- [Manage Resold Customers](#manage-resold-customers) - [Manage Resold Customers](#manage-resold-customers)
@@ -12,20 +11,6 @@
* [Reseller API - Customers](https://developers.google.com/admin-sdk/reseller/v1/reference/customers) * [Reseller API - Customers](https://developers.google.com/admin-sdk/reseller/v1/reference/customers)
* [Reseller API - Subscriptions](https://developers.google.com/admin-sdk/reseller/v1/reference/subscriptions) * [Reseller API - Subscriptions](https://developers.google.com/admin-sdk/reseller/v1/reference/subscriptions)
## Notes
Updated handling of `seats` option in `gam create|update resoldsubscription` to properly assign
the API fields `numberOfSeats` and `maximumNumberOfSeats`.
Prior to version 6.50.00, this is how the `seats <NumberOfSeats> <MaximumNumberOfSeats>` option was processed:
* Plan name `ANNUAL_MONTHLY_PAY` or `ANNUAL_YEARLY_PAY`
* `seats <NumberOfSeats>` - `<NumberOfSeats>` was properly passed to the API
* `seats <NumberOfSeats> <MaximumNumberOfSeats>` - `<NumberOfSeats>` was properly passed to the API; `<MaximumNumberOfSeats>` was passed to the API which ignored it
* Plan name `FLEXIBLE` or `TRIAL`
* `seats <NumberOfSeats>` - `<NumberOfSeats>` was improperly passed to the API; an API error was generated
* `seats <NumberOfSeats> <MaximumNumberOfSeats>` - `<MaximumNumberOfSeats>` was properly passed to the API; `<NumberOfSeats>` was passed to the API which ignored it
Now, you can still use the above option which has been corrected or you can specify `seats <Number>` which will be properly passed in the correct form to the API based on plan name.
## Manage Multiple Domains ## Manage Multiple Domains
Thanks to Duncan Isaksen-Loxton for a script to help manage multiple domains. Thanks to Duncan Isaksen-Loxton for a script to help manage multiple domains.

View File

@@ -17,18 +17,9 @@
- [Display user contact groups](#display-user-contact-groups) - [Display user contact groups](#display-user-contact-groups)
## Notes ## Notes
As of version `6.08.00`, GAM uses the People API to manage user contacts rather than the Contacts API. GAM uses the People API to manage user contacts rather than the Contacts API.
Most commands will work unchanged but Google has completely changed how the data is presented. If you The People API has very little support for managing contacts in the contact group "Other Contacts".
have scripts that process the output from `print contacts` for example, they will have to be changed.
You might want to keep an older version of GAM available so you can compare the output from the two
versions and make adjustments as necessary.
If you manage contacts in the contact group "Other Contacts", you will need to use an older version,
as the People API has very little support for this.
As of version `6.14.04`, There is now support for managing "Other Contacts".
[Users - People - Contacts & Profiles](Users-People-Contacts-Profiles) [Users - People - Contacts & Profiles](Users-People-Contacts-Profiles)

View File

@@ -94,19 +94,10 @@ Show current drive usage.
gam redirect stdout ./DrivefileUsage.txt user user@domain.com show drivesettings gam redirect stdout ./DrivefileUsage.txt user user@domain.com show drivesettings
``` ```
Get list of top level files/folders. Get list of top level files/folders.
GAM version `6.22.14` and higher:
``` ```
gam redirect csv ./TopLevelFilesFolders.csv user user@domain.com print filelist select rootid fields id,name,mimetype depth 0 gam redirect csv ./TopLevelFilesFolders.csv user user@domain.com print filelist select rootid fields id,name,mimetype depth 0
``` ```
GAM version `6.22.13` and lower.
```
gam user user@domain.com show fileinfo root fields id
User: user@domain.com, Show 1 Drive File/Folder
Drive Folder: My Drive (0AENlVEBUkz-hUkWXYZ)
id: 0AENlVEBUkz-hUkWXYZ
gam redirect csv ./TopLevelFilesFolders.csv user user@domain.com print filelist select 0AENlVEBUkz-hUkWXYZ fields id,name,mimetype depth 0
```
Purge top level files/folders. Purge top level files/folders.
``` ```
gam redirect stdout ./PurgeTopLevelFilesFolders.txt multiprocess redirect stderr stdout csv ./TopLevelFilesFolders.csv gam user "~Owner" purge drivefile "~id" gam redirect stdout ./PurgeTopLevelFilesFolders.txt multiprocess redirect stderr stdout csv ./TopLevelFilesFolders.csv gam user "~Owner" purge drivefile "~id"
@@ -128,7 +119,6 @@ Show updated drive usage.
gam redirect stdout ./DrivefileUsage.txt append user user@domain.com show drivesettings gam redirect stdout ./DrivefileUsage.txt append user user@domain.com show drivesettings
``` ```
### Method 3 ### Method 3
* GAM version `6.30.09` and higher
* Generate a list of top level files/folders that a user owns. * Generate a list of top level files/folders that a user owns.
* Delete them; orphans are not included * Delete them; orphans are not included
* Generate a list of remaining file/folders (orphans). * Generate a list of remaining file/folders (orphans).

View File

@@ -226,8 +226,6 @@ When a file appears more that once in the copy, the first time the file is proce
If it is processed again (because of multiple parents within the source folder structure), a shortcut is created that points to the first copy. If it is processed again (because of multiple parents within the source folder structure), a shortcut is created that points to the first copy.
### Shortcuts ### Shortcuts
In previous versions, copying shortcuts caused an error because shortcuts can't be copied, they must be re-created.
If a shortcut in the source structure points to a file/folder that is not in the source structure: If a shortcut in the source structure points to a file/folder that is not in the source structure:
* The shortcut is re-created to point to the original file/folder. * The shortcut is re-created to point to the original file/folder.
@@ -263,7 +261,6 @@ When a folder is copied, its permissions are not copied; these options control c
of the form `option [<Boolean>]`; if `<Boolean>` is omitted, `true` is assumed. of the form `option [<Boolean>]`; if `<Boolean>` is omitted, `true` is assumed.
When copied, a target folder inherits the permissions of its parent folder; these options control whether/how GAM copies the existing source folder permissions. When copied, a target folder inherits the permissions of its parent folder; these options control whether/how GAM copies the existing source folder permissions.
The default values of options introduced in version 6.14.00 are set to match the behavior of earlier versions.
When `mergewithparent` is `true`: When `mergewithparent` is `true`:
* `copymergewithparentfolderpermissions false` - The permissions of the source top folder are not not copied to the target folder; this is the default action. * `copymergewithparentfolderpermissions false` - The permissions of the source top folder are not not copied to the target folder; this is the default action.

View File

@@ -494,9 +494,8 @@ an API call per file is required to get the information.
labelsIds: <ClassificationLabelID> <ClassificationLabelID> ... labelsIds: <ClassificationLabelID> <ClassificationLabelID> ...
``` ```
Starting in version 6.27.02, you can get Drive label information without an extra API call You can get Drive label information without an extra API call if you know the `<ClassificationLabelID>`s.
if you know the `<ClassificationLabelID>`s. Add `labelinfo` to your `fields` list and use `includelabels <ClassificationLabelIDList>` Add `labelinfo` to your `fields` list and use `includelabels <ClassificationLabelIDList>` to specify the Drive labels.
to specify the Drive labels.
``` ```
gam user user@domain.com show fileinfo <DriveFileEntity> fields id,name,mimetype,labelinfo includelabels "mRoha85IbwCRl490E00xGLvBsSbkwIiuZ6PRNNEbbFcb" gam user user@domain.com show fileinfo <DriveFileEntity> fields id,name,mimetype,labelinfo includelabels "mRoha85IbwCRl490E00xGLvBsSbkwIiuZ6PRNNEbbFcb"
``` ```
@@ -504,7 +503,7 @@ gam user user@domain.com show fileinfo <DriveFileEntity> fields id,name,mimetype
The `stripcrsfromname` option strips nulls, carriage returns and linefeeds from drive file names. The `stripcrsfromname` option strips nulls, carriage returns and linefeeds from drive file names.
Use this option if you discover filenames containing these special characters; it is not common. Use this option if you discover filenames containing these special characters; it is not common.
Starting in version 6.80.10, the option `followshortcuts [<Boolean>]` that when true and `<DriveFileEntity` is a shortcut, The option `followshortcuts [<Boolean>]` that when true and `<DriveFileEntity` is a shortcut,
causes GAM to display information about the target of the shortcut rather than the shortcut itself. causes GAM to display information about the target of the shortcut rather than the shortcut itself.
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.
@@ -540,7 +539,7 @@ Use this option if you discover filenames containing these special characters; i
By default, when printing file paths, all paths for a file are displayed on the same row; use `oneitemperrow` to By default, when printing file paths, all paths for a file are displayed on the same row; use `oneitemperrow` to
have each file path displayed on a separate row. have each file path displayed on a separate row.
Starting in version 6.80.10, the option `followshortcuts [<Boolean>]` that when true and `<DriveFileEntity` is a shortcut, The option `followshortcuts [<Boolean>]` that when true and `<DriveFileEntity` is a shortcut,
causes GAM to display path information for the target of the shortcut rather than the shortcut itself. causes GAM to display path information for the target of the shortcut rather than the shortcut itself.
## Select files for Display file counts, list, tree ## Select files for Display file counts, list, tree
@@ -1197,7 +1196,7 @@ These options can be used instead of the query options to select a specific fold
* `select <DriveFileEntity>` - All files in the selected folder and below are shown. * `select <DriveFileEntity>` - All files in the selected folder and below are shown.
* To select the root folder of My Drive, use its `<DriveFolderID>` obtained by `gam user <UserItem> show fileinfo root id` * To select the root folder of My Drive, use its `<DriveFolderID>` obtained by `gam user <UserItem> show fileinfo root id`
* `select <IDfrom Above>` * `select <IDfrom Above>`
* Starting in version 6.22.14, you can select the root folder of My Drive with `rootid`. * You can select the root folder of My Drive with `rootid`.
* `select rootid` * `select rootid`
* `selectsubquery <QueryDriveFile>` - Only the files in the selected folder that match the query are shown. * `selectsubquery <QueryDriveFile>` - Only the files in the selected folder that match the query are shown.
@@ -1669,7 +1668,7 @@ There is a final row detailing files and folders in the trash; it is omitted if
* `depth` - Always -1 * `depth` - Always -1
* `path` - Trash * `path` - Trash
GAM version `6.71.17` added the `depth` column that can be used to filter the depth of the folders displayed. The `depth` column that can be used to filter the depth of the folders displayed.
Depth `-1` is the top level folder, depth `0` are its immediate children, depth `2` are the children of depth `1` and so forth. Depth `-1` is the top level folder, depth `0` are its immediate children, depth `2` are the children of depth `1` and so forth.
For example to limit the display to the top folder and its immediate children, use `config csv_output_row_filter depth:count<1`. For example to limit the display to the top folder and its immediate children, use `config csv_output_row_filter depth:count<1`.
@@ -1738,8 +1737,6 @@ user@domain.com,Trash,Trash,True,True,1,1024,0,1,1024,0,-1,Trash
``` ```
## Display files published to the web ## Display files published to the web
Ths requires version 6.80.13 or later.
You can display files published to the web. You can display files published to the web.
``` ```
# Get the published files # Get the published files

View File

@@ -225,10 +225,7 @@ If `noduplicate` is specfied, GAM will issue a warning and not perform the creat
exists in the parent folder. exists in the parent folder.
By default, when files are uploaded from local content, they are created with `binary` format, i.e., the data is uploaded By default, when files are uploaded from local content, they are created with `binary` format, i.e., the data is uploaded
without any conversion. Legacy GAM had an option `convert` that was passed to the Drive API v2 that it used. without any conversion; use the `mimetype` argument to cause conversions.
* convert - Whether to convert this file to the corresponding Docs Editors format
Advanced GAM uses Drive API v3 that doesn't support the `convert` option; it uses the `mimetype` argument to cause conversions.
* `mimetype gdoc` - Convert the uploaded content to a Google Doc; e.g., convert a Word (.docx) or text (.txt) file to a Google Doc * `mimetype gdoc` - Convert the uploaded content to a Google Doc; e.g., convert a Word (.docx) or text (.txt) file to a Google Doc
* `mimetype gsheet` - Convert the uploaded content to a Google Sheet; e.g., convert an Excel (.xlsx) or CSV (.csv) file to a Google Sheet * `mimetype gsheet` - Convert the uploaded content to a Google Sheet; e.g., convert an Excel (.xlsx) or CSV (.csv) file to a Google Sheet
* `mimetype gpresentation` - Convert the uploaded content to a Google Slides; e.g., convert a PowerPoint (.pptx) file to a Google Slides * `mimetype gpresentation` - Convert the uploaded content to a Google Slides; e.g., convert a PowerPoint (.pptx) file to a Google Slides
@@ -662,7 +659,7 @@ gam <UserTypeEntity> trash drivefile <DriveFileEntity> [shortcutandtarget [<Bool
gam <UserTypeEntity> delete|del drivefile <DriveFileEntity> trash [shortcutandtarget [<Boolean>]] gam <UserTypeEntity> delete|del drivefile <DriveFileEntity> trash [shortcutandtarget [<Boolean>]]
``` ```
Starting in version 6.80.10, the option `shortcutandtarget [<Boolean>]` that when true and `<DriveFileEntity` is a shortcut, The option `shortcutandtarget [<Boolean>]` that when true and `<DriveFileEntity` is a shortcut,
causes GAM to process the shortcut and the target of the shortcut. causes GAM to process the shortcut and the target of the shortcut.
## Untrash files ## Untrash files
@@ -672,7 +669,7 @@ gam <UserTypeEntity> untrash drivefile <DriveFileEntity> [shortcutandtarget [<Bo
gam <UserTypeEntity> delete|del drivefile <DriveFileEntity> untrash [shortcutandtarget [<Boolean>]] gam <UserTypeEntity> delete|del drivefile <DriveFileEntity> untrash [shortcutandtarget [<Boolean>]]
``` ```
Starting in version 6.80.10, the option `shortcutandtarget [<Boolean>]` that when true and `<DriveFileEntity` is a shortcut, The option `shortcutandtarget [<Boolean>]` that when true and `<DriveFileEntity` is a shortcut,
causes GAM to process the shortcut and the target of the shortcut. causes GAM to process the shortcut and the target of the shortcut.
## Purge files ## Purge files
@@ -682,7 +679,7 @@ gam <UserTypeEntity> purge drivefile <DriveFileEntity> [shortcutandtarget [<Bool
gam <UserTypeEntity> delete|del drivefile <DriveFileEntity> purge [shortcutandtarget [<Boolean>]] gam <UserTypeEntity> delete|del drivefile <DriveFileEntity> purge [shortcutandtarget [<Boolean>]]
``` ```
Starting in version 6.80.10, the option `shortcutandtarget [<Boolean>]` that when true and `<DriveFileEntity` is a shortcut, The option `shortcutandtarget [<Boolean>]` that when true and `<DriveFileEntity` is a shortcut,
causes GAM to process the shortcut and the target of the shortcut. causes GAM to process the shortcut and the target of the shortcut.
## Download Google Documents as JSON ## Download Google Documents as JSON

View File

@@ -22,8 +22,6 @@
* [Search Conference Participants](https://developers.google.com/meet/api/reference/rest/v2/conferenceRecords.participants/list) * [Search Conference Participants](https://developers.google.com/meet/api/reference/rest/v2/conferenceRecords.participants/list)
## Introduction ## Introduction
These features were added in version 6.81.00.
To use these commands you must add the 'Meet API' to your project and update your service account authorization. To use these commands you must add the 'Meet API' to your project and update your service account authorization.
``` ```
gam update project gam update project

View File

@@ -24,16 +24,9 @@
- [Copy User Contacts to another User](#copy-user-contacts-to-another-user) - [Copy User Contacts to another User](#copy-user-contacts-to-another-user)
## Notes ## Notes
As of version `6.08.00`, GAM uses the People API to manage user contacts rather than the Contacts API. GAM uses the People API to manage user contacts rather than the Contacts API.
Most commands will work unchanged but Google has completely changed how the data is presented. If you The People API has very little support for managing contacts in the contact group "Other Contacts".
have scripts that process the output from `print contacts` for example, they will have to be changed.
You might want to keep an older version of GAM available so you can compare the output from the two
versions and make adjustments as necessary.
If you manage contacts in the contact group "Other Contacts", you will need to use an older version,
as the People API has very little support for this.
To use these commands you must add the `People API` to your project and authorize the appropriate scopes: To use these commands you must add the `People API` to your project and authorize the appropriate scopes:
* `Client Access` * `Client Access`

View File

@@ -603,8 +603,6 @@ gam redirect stdout ./AddU2SharedDriveAccess.txt multiprocess redirect stderr st
``` ```
## Bulk change User1 Shared Drive access to User2 ## Bulk change User1 Shared Drive access to User2
This requires GAM version 6.79.09 or higher.
Make a CSV file Users.csv with two email address columns: User,Replace Make a CSV file Users.csv with two email address columns: User,Replace
``` ```
# Get Shared Drives for all Users in CSV file # Get Shared Drives for all Users in CSV file

View File

@@ -993,11 +993,9 @@ gam <UserTypeEntity> info users
For `info users`, unlike all other GAM commands, a `<UserTypeEntity>` value of `all users` is actually `all users_ns_susp` not `all users_ns`. For `info users`, unlike all other GAM commands, a `<UserTypeEntity>` value of `all users` is actually `all users_ns_susp` not `all users_ns`.
This is a backwards compatibility issue. This is a backwards compatibility issue.
Starting in version `5.23.01`, the variable `quick_info_user` was added to `gam.cfg` to control how much information requiring additional API calls is displayed. The variable `quick_info_user` was added to `gam.cfg` controls how much information requiring additional API calls is displayed.
(Prior to version `5.23.01`, assume `quick_info_user = False`.)
`quick_info_user = False`: Gam makes additional API calls to get more information; you can selectively eliminate these calls to improve performance. `quick_info_user = False`: Gam makes additional API calls to get more information; you can selectively eliminate these calls to improve performance.
* `noaliases` - Do not get alias information * `noaliases` - Do not get alias information
* `nobuildingnames` - Do not get building names for locations * `nobuildingnames` - Do not get building names for locations
* `nogroups` - Do not get group membership information * `nogroups` - Do not get group membership information

View File

@@ -1,5 +1,4 @@
# Using GAM7 with a YubiKey # Using GAM7 with a YubiKey
- [Thanks](#thanks)
- [Yubikey ykman PIV Commands](https://docs.yubico.com/software/yubikey/tools/ykman/PIV_Commands.html) - [Yubikey ykman PIV Commands](https://docs.yubico.com/software/yubikey/tools/ykman/PIV_Commands.html)
- [Introduction](#introduction) - [Introduction](#introduction)
- [FAQs](#faqs) - [FAQs](#faqs)
@@ -7,15 +6,9 @@
**Alternative Approach**: For enhanced security and simplified operations when running GAM outside Google Cloud, consider [Workload Identity Federation](https://github.com/GAM-team/GAM/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation) - Google's recommended keyless authentication method that eliminates the need for managing any long-lived credentials. If running GAM in Google Cloud, use [attached service accounts on GCE](https://github.com/GAM-team/GAM/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine) instead. **Alternative Approach**: For enhanced security and simplified operations when running GAM outside Google Cloud, consider [Workload Identity Federation](https://github.com/GAM-team/GAM/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation) - Google's recommended keyless authentication method that eliminates the need for managing any long-lived credentials. If running GAM in Google Cloud, use [attached service accounts on GCE](https://github.com/GAM-team/GAM/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine) instead.
## Thanks
Thanks to Jay Lee for the original version of this document.
## Introduction ## Introduction
GAM7 supports using a [YubiKey](https://www.yubico.com/products/yubikey-5-overview/) to generate and store the service account's private RSA key. Private keys generated by the YubiKey cannot be exported even to the computer running GAM7. When compared to the plain text oauth2service.json file with the private key stored in text, the YubiKey offers a more secure option that prevents digital theft and copying of the private key. Instead of reading the private key from the oauth2service.json file and signing requests itself, GAM7 will simply send signing requests to the YubiKey and get back the signature. GAM7 supports using a [YubiKey](https://www.yubico.com/products/yubikey-5-overview/) to generate and store the service account's private RSA key. Private keys generated by the YubiKey cannot be exported even to the computer running GAM7. When compared to the plain text oauth2service.json file with the private key stored in text, the YubiKey offers a more secure option that prevents digital theft and copying of the private key. Instead of reading the private key from the oauth2service.json file and signing requests itself, GAM7 will simply send signing requests to the YubiKey and get back the signature.
GAM7 version 6.50.01 or higher is required. Best practice is to always use the [latest version of GAM7](https://github.com/GAM-team/GAM/wiki/How-to-Update-Advanced-GAM).
## FAQs ## FAQs
### Can I use a Google Titan or other brand security key? ### Can I use a Google Titan or other brand security key?
No, while Titan keys are great as security keys / U2F / 2SV, that is not the protocol being used by GAM7 here. GAM7 uses the PIV app of YubiKeys to work with service accounts. You need to use [a genuine Yubikey.](https://yubico.com/genuine/). No, while Titan keys are great as security keys / U2F / 2SV, that is not the protocol being used by GAM7 here. GAM7 uses the PIV app of YubiKeys to work with service accounts. You need to use [a genuine Yubikey.](https://yubico.com/genuine/).

View File

@@ -487,10 +487,8 @@ Alternatively, `<FileName>` can contain the strings `#objectname#`, `#filename#`
and `#extension#` which will be replaced by the values from the original object names to construct a complete top level name. and `#extension#` which will be replaced by the values from the original object names to construct a complete top level name.
For example, `targetname "#filename#.#extension#"` strips the long matter name from the original name. For example, `targetname "#filename#.#extension#"` strips the long matter name from the original name.
**In versions prior to 6.07.14, If `<FileName>` does not contain `#filename#` and there are multiple top level files with the same extension, only the If `<FileName>` does not contain `#filename#` and there are multiple top level files with the same extension,
last file with a given extension will be saved as the earlier files will be overwritten.** the files will be named `FileName-N.ext` where `N` is `1,2,3,...`.
This is fixed in 6.07.14: the files will be named `FileName-N.ext` where `N` is `1,2,3,...`.
Zip files extracted from the top level Zip file will still have their long names. Zip files extracted from the top level Zip file will still have their long names.