mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-04 21:01:36 +00:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e79747bc55 | ||
|
|
1df2f14c97 | ||
|
|
2fbc3c5c35 | ||
|
|
6336563071 | ||
|
|
e1dbf5b8b3 | ||
|
|
9d5d6bb9f6 |
@@ -16,7 +16,7 @@ dependencies = [
|
|||||||
"google-api-python-client==2.197.0",
|
"google-api-python-client==2.197.0",
|
||||||
"google-auth-httplib2==0.4.0",
|
"google-auth-httplib2==0.4.0",
|
||||||
"google-auth-oauthlib==1.4.0",
|
"google-auth-oauthlib==1.4.0",
|
||||||
"google-auth==2.55.0",
|
"google-auth==2.55.1",
|
||||||
"httplib2==0.31.2",
|
"httplib2==0.31.2",
|
||||||
"lxml==6.1.1",
|
"lxml==6.1.1",
|
||||||
"passlib==1.7.4",
|
"passlib==1.7.4",
|
||||||
|
|||||||
@@ -4458,6 +4458,7 @@ gam print licenses [todrive <ToDriveAttribute>*]
|
|||||||
gam show licenses
|
gam show licenses
|
||||||
[(products|product <ProductIDList>)|(skus|sku <SKUIDList>)|allskus|gsuite]
|
[(products|product <ProductIDList>)|(skus|sku <SKUIDList>)|allskus|gsuite]
|
||||||
[maxresults <Integer>]
|
[maxresults <Integer>]
|
||||||
|
gam show configlicenseskus [quiet]
|
||||||
|
|
||||||
# Mobile Devices
|
# Mobile Devices
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,35 @@
|
|||||||
|
7.46.07
|
||||||
|
|
||||||
|
Added command `gam show configlicenseskus` that can be used to generate a command
|
||||||
|
that sets the list of used license SKUs in gam.cfg; this improves performance of `gam info user`.
|
||||||
|
```
|
||||||
|
gam show configlicenseskus
|
||||||
|
Got 0 Licenses for 1010010001 (Cloud Identity Free)...
|
||||||
|
Got 0 Licenses for 1010050001 (Cloud Identity Premium)...
|
||||||
|
...
|
||||||
|
Got 2 Licenses for 1010340007 (Google Workspace for Education Fundamentals - Archived User)...
|
||||||
|
...
|
||||||
|
Got 100 Licenses for 1010070001 (Google Workspace for Education Fundamentals)...
|
||||||
|
Got 200 Licenses for 1010070001 (Google Workspace for Education Fundamentals)...
|
||||||
|
Got 300 Licenses for 1010070001 (Google Workspace for Education Fundamentals)...
|
||||||
|
Got 358 Licenses for 1010070001 (Google Workspace for Education Fundamentals)...
|
||||||
|
Got 2 Licenses for 1010070004 (Google Workspace for Education Gmail Only)...
|
||||||
|
...
|
||||||
|
Got 0 Licenses for Google-Vault (Google Vault)...
|
||||||
|
Got 0 Licenses for Google-Vault-Former-Employee (Google Vault - Former Employee)...
|
||||||
|
To set license_skus in gam.cfg, execute the following command:
|
||||||
|
gam config license_skus "1010340007,1010070001,1010070004" save verify variables license_skus
|
||||||
|
```
|
||||||
|
|
||||||
|
* See: https://github.com/GAM-team/GAM/wiki/Licenses#info-user-performance
|
||||||
|
|
||||||
|
7.46.06
|
||||||
|
|
||||||
|
Updated GAM to suppress the following message:
|
||||||
|
```
|
||||||
|
Regional Access Boundary HTTP request failed after retries: response_data={'error': {'code': 403, 'message': 'Permission denied on the service account.', 'status': 'PERMISSION_DENIED'}}, retryable_error=False
|
||||||
|
```
|
||||||
|
|
||||||
7.46.05
|
7.46.05
|
||||||
|
|
||||||
Fixed bug in `gam <UserTypeEntity> print sheet` where an extra line of output
|
Fixed bug in `gam <UserTypeEntity> print sheet` where an extra line of output
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ if __name__ == '__main__':
|
|||||||
multiprocessing.set_start_method('spawn', force=True)
|
multiprocessing.set_start_method('spawn', force=True)
|
||||||
initializeLogging()
|
initializeLogging()
|
||||||
#
|
#
|
||||||
CallGAMCommand(['gam', 'version'])
|
CallGAMCommand(['gam', 'version', 'extended'])
|
||||||
# Issue command, output goes to stdout/stderr
|
# Issue command, output goes to stdout/stderr
|
||||||
rc = CallGAMCommand(['gam', 'info', 'domain'])
|
rc = CallGAMCommand(['gam', 'info', 'domain'])
|
||||||
# Issue command, redirect stdout/stderr
|
# Issue command, redirect stdout/stderr
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
||||||
__version__ = '7.46.05'
|
__version__ = '7.46.07'
|
||||||
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
||||||
|
|
||||||
# pylint: disable=wrong-import-position
|
# pylint: disable=wrong-import-position
|
||||||
@@ -39761,6 +39761,37 @@ def doShowLicenses():
|
|||||||
for u_license in licenseCounts:
|
for u_license in licenseCounts:
|
||||||
printEntityKVList(u_license[:-2], [Ent.Plural(u_license[-2]), u_license[-1]])
|
printEntityKVList(u_license[:-2], [Ent.Plural(u_license[-2]), u_license[-1]])
|
||||||
|
|
||||||
|
# gam show configlicenseskus [quiet]
|
||||||
|
def doShowConfigLicenseSKUs():
|
||||||
|
lic = buildGAPIObject(API.LICENSING)
|
||||||
|
setTrueCustomerId()
|
||||||
|
customerId = _getCustomerId()
|
||||||
|
licenseSKUcounts = []
|
||||||
|
maxResults = GC.Values[GC.LICENSE_MAX_RESULTS]
|
||||||
|
quiet = checkArgumentPresent('quiet')
|
||||||
|
checkForExtraneousArguments()
|
||||||
|
fields = getItemFieldsFromFieldsList('items', ['userId'])
|
||||||
|
for sku in SKU.getAllSKUs():
|
||||||
|
Ent.SetGetting(Ent.LICENSE)
|
||||||
|
productId = sku[0]
|
||||||
|
skuId = sku[1]
|
||||||
|
productDisplay = SKU.formatProductIdDisplayName(productId)
|
||||||
|
skuIdDisplay = SKU.formatSKUIdDisplayName(skuId)
|
||||||
|
pageMessage = getPageMessageForWhom(forWhom=skuIdDisplay) if not quiet else None
|
||||||
|
try:
|
||||||
|
feed = callGAPIpages(lic.licenseAssignments(), 'listForProductAndSku', 'items',
|
||||||
|
pageMessage=pageMessage,
|
||||||
|
throwReasons=[GAPI.INVALID, GAPI.FORBIDDEN, GAPI.INVALID_ARGUMENT],
|
||||||
|
customerId=customerId, productId=productId, skuId=skuId,
|
||||||
|
maxResults=maxResults, fields=fields)
|
||||||
|
if len(feed) > 0:
|
||||||
|
licenseSKUcounts.append(skuId)
|
||||||
|
except (GAPI.invalid, GAPI.forbidden, GAPI.invalidArgument) as e:
|
||||||
|
entityActionNotPerformedWarning([Ent.PRODUCT, productDisplay, Ent.SKU, skuIdDisplay], str(e))
|
||||||
|
writeStderr(Msg.CONFIG_LICENSE_SKUS)
|
||||||
|
flushStderr()
|
||||||
|
writeStdout(f"gam config license_skus \"{','.join(licenseSKUcounts)}\" save verify variables license_skus\n")
|
||||||
|
|
||||||
# gam delete alert <AlertID>
|
# gam delete alert <AlertID>
|
||||||
# gam undelete alert <AlertID>
|
# gam undelete alert <AlertID>
|
||||||
def doDeleteOrUndeleteAlert():
|
def doDeleteOrUndeleteAlert():
|
||||||
@@ -81176,6 +81207,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
|||||||
Cmd.ARG_CIGROUPMEMBERS: doShowCIGroupMembers,
|
Cmd.ARG_CIGROUPMEMBERS: doShowCIGroupMembers,
|
||||||
Cmd.ARG_CIPOLICY: doPrintShowCIPolicies,
|
Cmd.ARG_CIPOLICY: doPrintShowCIPolicies,
|
||||||
Cmd.ARG_CLASSROOMINVITATION: doPrintShowClassroomInvitations,
|
Cmd.ARG_CLASSROOMINVITATION: doPrintShowClassroomInvitations,
|
||||||
|
Cmd.ARG_CONFIGLICENSESKUS: doShowConfigLicenseSKUs,
|
||||||
Cmd.ARG_CONTACT: doPrintShowDomainContacts,
|
Cmd.ARG_CONTACT: doPrintShowDomainContacts,
|
||||||
Cmd.ARG_CROSTELEMETRY: doInfoPrintShowCrOSTelemetry,
|
Cmd.ARG_CROSTELEMETRY: doInfoPrintShowCrOSTelemetry,
|
||||||
Cmd.ARG_DATATRANSFER: doPrintShowDataTransfers,
|
Cmd.ARG_DATATRANSFER: doPrintShowDataTransfers,
|
||||||
@@ -82454,6 +82486,7 @@ USER_COMMANDS_OBJ_ALIASES = {
|
|||||||
Cmd.ARG_CHATSPACES: Cmd.ARG_CHATSPACE,
|
Cmd.ARG_CHATSPACES: Cmd.ARG_CHATSPACE,
|
||||||
Cmd.ARG_CIMEMBER: Cmd.ARG_CIGROUPMEMBERS,
|
Cmd.ARG_CIMEMBER: Cmd.ARG_CIGROUPMEMBERS,
|
||||||
Cmd.ARG_CIMEMBERS: Cmd.ARG_CIGROUPMEMBERS,
|
Cmd.ARG_CIMEMBERS: Cmd.ARG_CIGROUPMEMBERS,
|
||||||
|
Cmd.ARG_CONFIGLICENCESKUS: Cmd.ARG_CONFIGLICENSESKUS,
|
||||||
Cmd.ARG_CONTACT: Cmd.ARG_PEOPLECONTACT,
|
Cmd.ARG_CONTACT: Cmd.ARG_PEOPLECONTACT,
|
||||||
Cmd.ARG_CONTACTS: Cmd.ARG_PEOPLECONTACT,
|
Cmd.ARG_CONTACTS: Cmd.ARG_PEOPLECONTACT,
|
||||||
Cmd.ARG_CONTACTDELEGATES: Cmd.ARG_CONTACTDELEGATE,
|
Cmd.ARG_CONTACTDELEGATES: Cmd.ARG_CONTACTDELEGATE,
|
||||||
|
|||||||
@@ -895,6 +895,8 @@ class GamCLArgs():
|
|||||||
ARG_CLASSROOMINVITATIONS = 'classroominvitations'
|
ARG_CLASSROOMINVITATIONS = 'classroominvitations'
|
||||||
ARG_CLASSROOMOAUTH2 = 'classroomoauth2'
|
ARG_CLASSROOMOAUTH2 = 'classroomoauth2'
|
||||||
ARG_CLASSROOMPROFILE = 'classroomprofile'
|
ARG_CLASSROOMPROFILE = 'classroomprofile'
|
||||||
|
ARG_CONFIGLICENCESKUS = 'configlicenceskus'
|
||||||
|
ARG_CONFIGLICENSESKUS = 'configlicenseskus'
|
||||||
ARG_CONTACT = 'contact'
|
ARG_CONTACT = 'contact'
|
||||||
ARG_CONTACTS = 'contacts'
|
ARG_CONTACTS = 'contacts'
|
||||||
ARG_CONTACTDELEGATE = 'contactdelegate'
|
ARG_CONTACTDELEGATE = 'contactdelegate'
|
||||||
|
|||||||
@@ -216,6 +216,7 @@ COLUMN_DOES_NOT_MATCH_ANY_OUTPUT_COLUMNS = '{0} column "{1}" does not match any
|
|||||||
COMMAND_NOT_COMPATIBLE_WITH_ENABLE_DASA = 'gam {0} {1} is not compatible with enable_dasa = true in gam.cfg'
|
COMMAND_NOT_COMPATIBLE_WITH_ENABLE_DASA = 'gam {0} {1} is not compatible with enable_dasa = true in gam.cfg'
|
||||||
COMMIT_BATCH_COMPLETE = '{0},0/{1},commit-batch - running {2} finished, proceeding\n'
|
COMMIT_BATCH_COMPLETE = '{0},0/{1},commit-batch - running {2} finished, proceeding\n'
|
||||||
COMMIT_BATCH_WAIT_N_PROCESSES = '{0},0/{1},commit-batch - waiting for {2} running {3} to finish before proceeding\n'
|
COMMIT_BATCH_WAIT_N_PROCESSES = '{0},0/{1},commit-batch - waiting for {2} running {3} to finish before proceeding\n'
|
||||||
|
CONFIG_LICENSE_SKUS = 'To set license_skus in gam.cfg, execute the following command:\n'
|
||||||
CONFIRM_WIPE_YUBIKEY_PIV = 'This will wipe all YubiKey PIV keys and configuration from your YubiKey. Are you sure? (y/N) '
|
CONFIRM_WIPE_YUBIKEY_PIV = 'This will wipe all YubiKey PIV keys and configuration from your YubiKey. Are you sure? (y/N) '
|
||||||
CONTACT_ADMINISTRATOR_FOR_PASSWORD = 'Contact administrator for password'
|
CONTACT_ADMINISTRATOR_FOR_PASSWORD = 'Contact administrator for password'
|
||||||
CONTACT_PHOTO_NOT_FOUND = 'Contact photo not found'
|
CONTACT_PHOTO_NOT_FOUND = 'Contact photo not found'
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright (C) 2025 Ross Scroggs All Rights Reserved.
|
# Copyright (C) 2026 Ross Scroggs All Rights Reserved.
|
||||||
#
|
#
|
||||||
# All Rights Reserved.
|
# All Rights Reserved.
|
||||||
#
|
#
|
||||||
@@ -23,6 +23,7 @@
|
|||||||
GAM_VER_LIBS = [
|
GAM_VER_LIBS = [
|
||||||
'arrow',
|
'arrow',
|
||||||
'chardet',
|
'chardet',
|
||||||
|
'charset_normalizer',
|
||||||
'cryptography',
|
'cryptography',
|
||||||
'filelock',
|
'filelock',
|
||||||
'google-api-python-client',
|
'google-api-python-client',
|
||||||
@@ -34,5 +35,6 @@ GAM_VER_LIBS = [
|
|||||||
'passlib',
|
'passlib',
|
||||||
'pathvalidate',
|
'pathvalidate',
|
||||||
'pyscard',
|
'pyscard',
|
||||||
|
'urllib3',
|
||||||
'yubikey-manager',
|
'yubikey-manager',
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -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.46.07
|
||||||
|
|
||||||
|
Added command `gam show configlicenseskus` that can be used to generate a command
|
||||||
|
that sets the list of used license SKUs in gam.cfg; this improves performance of `gam info user`.
|
||||||
|
```
|
||||||
|
gam show configlicenseskus
|
||||||
|
Got 0 Licenses for 1010010001 (Cloud Identity Free)...
|
||||||
|
Got 0 Licenses for 1010050001 (Cloud Identity Premium)...
|
||||||
|
...
|
||||||
|
Got 2 Licenses for 1010340007 (Google Workspace for Education Fundamentals - Archived User)...
|
||||||
|
...
|
||||||
|
Got 100 Licenses for 1010070001 (Google Workspace for Education Fundamentals)...
|
||||||
|
Got 200 Licenses for 1010070001 (Google Workspace for Education Fundamentals)...
|
||||||
|
Got 300 Licenses for 1010070001 (Google Workspace for Education Fundamentals)...
|
||||||
|
Got 358 Licenses for 1010070001 (Google Workspace for Education Fundamentals)...
|
||||||
|
Got 2 Licenses for 1010070004 (Google Workspace for Education Gmail Only)...
|
||||||
|
...
|
||||||
|
Got 0 Licenses for Google-Vault (Google Vault)...
|
||||||
|
Got 0 Licenses for Google-Vault-Former-Employee (Google Vault - Former Employee)...
|
||||||
|
To set license_skus in gam.cfg, execute the following command:
|
||||||
|
gam config license_skus "1010340007,1010070001,1010070004" save verify variables license_skus
|
||||||
|
```
|
||||||
|
|
||||||
|
* See: https://github.com/GAM-team/GAM/wiki/Licenses#info-user-performance
|
||||||
|
|
||||||
|
### 7.46.06
|
||||||
|
|
||||||
|
Updated GAM to suppress the following message:
|
||||||
|
```
|
||||||
|
Regional Access Boundary HTTP request failed after retries: response_data={'error': {'code': 403, 'message': 'Permission denied on the service account.', 'status': 'PERMISSION_DENIED'}}, retryable_error=False
|
||||||
|
```
|
||||||
|
|
||||||
|
### 7.46.05
|
||||||
|
|
||||||
|
Fixed bug in `gam <UserTypeEntity> print sheet` where an extra line of output
|
||||||
|
was displayed before the CSV data.
|
||||||
|
|
||||||
### 7.46.04
|
### 7.46.04
|
||||||
|
|
||||||
Added the following command to transfer secondary calendar ownership.
|
Added the following command to transfer secondary calendar ownership.
|
||||||
|
|||||||
@@ -747,4 +747,4 @@ Windows PowerShell
|
|||||||
$count = & gam print groups showitemcountonly
|
$count = & gam print groups showitemcountonly
|
||||||
Windows Command Prompt
|
Windows Command Prompt
|
||||||
for /f "delims=" %a in ('gam print groups showitemcountonly') do set count=%a
|
for /f "delims=" %a in ('gam print groups showitemcountonly') do set count=%a
|
||||||
|
```
|
||||||
|
|||||||
@@ -251,7 +251,7 @@ writes the credentials into the file oauth2.txt.
|
|||||||
```
|
```
|
||||||
gamteam@server:/Users/gamteam$ rm -f /Users/gamteam/GAMConfig/oauth2.txt
|
gamteam@server:/Users/gamteam$ rm -f /Users/gamteam/GAMConfig/oauth2.txt
|
||||||
gamteam@server:/Users/gamteam$ gam version
|
gamteam@server:/Users/gamteam$ gam version
|
||||||
GAM .46.04 - https://github.com/GAM-team/GAM - pyinstaller
|
GAM 7.46.07 - https://github.com/GAM-team/GAM - pyinstaller
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.14.6 64-bit final
|
Python 3.14.6 64-bit final
|
||||||
macOS Tahoe 26.5.1 arm64
|
macOS Tahoe 26.5.1 arm64
|
||||||
@@ -1034,7 +1034,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
|
||||||
GAM .46.04 - https://github.com/GAM-team/GAM - pythonsource
|
GAM 7.46.07 - https://github.com/GAM-team/GAM - pythonsource
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.14.6 64-bit final
|
Python 3.14.6 64-bit final
|
||||||
Windows 11 10.0.26200 AMD64
|
Windows 11 10.0.26200 AMD64
|
||||||
|
|||||||
@@ -249,25 +249,47 @@ If you do a couple of info user commands back to back, you start to run into quo
|
|||||||
|
|
||||||
You can help yourself in the following way: generate a list of all of the license SKUs that exist in your workspace.
|
You can help yourself in the following way: generate a list of all of the license SKUs that exist in your workspace.
|
||||||
```
|
```
|
||||||
gam config csv_output_row_filter "licenses:count>0" print license countsonly allskus
|
gam show configlicenseskus
|
||||||
Got 0 Licenses for 1010010001 (Cloud Identity)...
|
Got 0 Licenses for 1010010001 (Cloud Identity Free)...
|
||||||
Got 0 Licenses for 1010050001 (Cloud Identity Premium)...
|
Got 0 Licenses for 1010050001 (Cloud Identity Premium)...
|
||||||
...
|
...
|
||||||
|
Got 2 Licenses for 1010340007 (Google Workspace for Education Fundamentals - Archived User)...
|
||||||
|
...
|
||||||
|
Got 100 Licenses for 1010070001 (Google Workspace for Education Fundamentals)...
|
||||||
|
Got 200 Licenses for 1010070001 (Google Workspace for Education Fundamentals)...
|
||||||
|
Got 300 Licenses for 1010070001 (Google Workspace for Education Fundamentals)...
|
||||||
|
Got 358 Licenses for 1010070001 (Google Workspace for Education Fundamentals)...
|
||||||
|
Got 2 Licenses for 1010070004 (Google Workspace for Education Gmail Only)...
|
||||||
|
...
|
||||||
Got 0 Licenses for Google-Vault (Google Vault)...
|
Got 0 Licenses for Google-Vault (Google Vault)...
|
||||||
Got 0 Licenses for Google-Vault-Former-Employee (Google Vault - Former Employee)...
|
Got 0 Licenses for Google-Vault-Former-Employee (Google Vault - Former Employee)...
|
||||||
productId,productDisplay,skuId,skuDisplay,licenses
|
To set license_skus in gam.cfg, execute the following command:
|
||||||
101031,Google Workspace for Education,1010310008,Google Workspace for Education Plus,410
|
gam config license_skus "1010340007,1010070001,1010070004" save verify variables license_skus
|
||||||
101031,Google Workspace for Education,1010310009,Google Workspace for Education Plus (Staff),103
|
|
||||||
101033,Google Voice,1010330004,Google Voice Standard,3
|
|
||||||
Google-Apps,Google Workspace,1010070001,Google Workspace for Education Fundamentals,1453
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Then do (example, use your actual list):
|
Then do (example, use your actual list):
|
||||||
`gam config license_skus 1010310008,1010310009,1010330004,1010070001 save`
|
```
|
||||||
|
gam config license_skus 1010310008,1010310009,1010330004,1010070001 save verify variables license_skus
|
||||||
|
Config File: /Users/gamteam/GamConfig/gam.cfg, Saved
|
||||||
|
Section: DEFAULT
|
||||||
|
license_skus = 1010340007,1010070001,1010070004
|
||||||
|
```
|
||||||
|
|
||||||
Now, rather that asking 73 questions per user, GAM will only ask about the license SKUs in the list.
|
Now, rather that asking 73 questions per user, GAM will only ask about the license SKUs in the list.
|
||||||
It is much less likely that quota issues will occur,
|
It is much less likely that quota issues will occur,
|
||||||
|
|
||||||
|
You can script this:
|
||||||
|
```
|
||||||
|
Linux/MacOS
|
||||||
|
eval $(gam show configlicenseskus)
|
||||||
|
Windows PowerShell
|
||||||
|
iex $(gam show configlicenseskus)
|
||||||
|
Windows Command Prompt
|
||||||
|
for /f "delims=" %a in ('gam show configlicenseskus') do @(%a)
|
||||||
|
Windows Batch File
|
||||||
|
for /f "delims=" %%a in ('gam show configlicenseskus') do @(%%a)
|
||||||
|
```
|
||||||
|
|
||||||
## Display license counts
|
## Display license counts
|
||||||
```
|
```
|
||||||
gam show licenses
|
gam show licenses
|
||||||
|
|||||||
@@ -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 .46.04 - https://github.com/GAM-team/GAM - pyinstaller
|
GAM 7.46.07 - https://github.com/GAM-team/GAM - pyinstaller
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.14.6 64-bit final
|
Python 3.14.6 64-bit final
|
||||||
macOS Tahoe 26.5.1 arm64
|
macOS Tahoe 26.5.1 arm64
|
||||||
@@ -15,7 +15,7 @@ Time: 2026-02-15T07:51: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 .46.04 - https://github.com/GAM-team/GAM - pyinstaller
|
GAM 7.46.07 - https://github.com/GAM-team/GAM - pyinstaller
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.14.6 64-bit final
|
Python 3.14.6 64-bit final
|
||||||
macOS Tahoe 26.5.1 arm64
|
macOS Tahoe 26.5.1 arm64
|
||||||
@@ -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 .46.04 - https://github.com/GAM-team/GAM - pyinstaller
|
GAM 7.46.07 - https://github.com/GAM-team/GAM - pyinstaller
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.14.6 64-bit final
|
Python 3.14.6 64-bit final
|
||||||
macOS Tahoe 26.5.1 arm64
|
macOS Tahoe 26.5.1 arm64
|
||||||
@@ -35,21 +35,23 @@ Path: /Users/gamteam/bin/gam7
|
|||||||
Config File: /Users/gamteam/GamConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
Config File: /Users/gamteam/GamConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
||||||
Time: 2026-02-15T07:51:00-08:00
|
Time: 2026-02-15T07:51:00-08:00
|
||||||
Your system time differs from admin.googleapis.com by less than 1 second
|
Your system time differs from admin.googleapis.com by less than 1 second
|
||||||
OpenSSL 4.0.1 9 Jun 2026
|
OpenSSL 3.5.7 9 Jun 2026
|
||||||
arrow 1.4.0
|
arrow 1.4.0
|
||||||
chardet 7.4.3
|
chardet 7.4.3
|
||||||
cryptography 48.0.0
|
charset_normalizer 3.4.7
|
||||||
filelock 3.29.0
|
cryptography 48.0.1
|
||||||
google-api-python-client 2.196.0
|
filelock 3.29.4
|
||||||
|
google-api-python-client 2.197.0
|
||||||
google-auth-httplib2 0.4.0
|
google-auth-httplib2 0.4.0
|
||||||
google-auth-oauthlib 1.4.0
|
google-auth-oauthlib 1.4.0
|
||||||
google-auth 2.53.0
|
google-auth 2.55.1
|
||||||
lxml 6.1.1
|
lxml 6.1.1
|
||||||
httplib2 0.31.2
|
httplib2 0.31.2
|
||||||
passlib 1.7.4
|
passlib 1.7.4
|
||||||
pathvalidate 3.3.1
|
pathvalidate 3.3.1
|
||||||
pyscard 2.3.1
|
pyscard 2.3.0
|
||||||
yubikey-manager 5.9.1
|
urllib3 2.7.0
|
||||||
|
yubikey-manager 5.8.0
|
||||||
admin.googleapis.com connects using TLSv1.3 TLS_AES_256_GCM_SHA384
|
admin.googleapis.com connects using TLSv1.3 TLS_AES_256_GCM_SHA384
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -68,7 +70,7 @@ MacOS High Sierra 10.13.6 x86_64
|
|||||||
Path: /Users/gamteam/bin/gam7
|
Path: /Users/gamteam/bin/gam7
|
||||||
Version Check:
|
Version Check:
|
||||||
Current: 5.35.08
|
Current: 5.35.08
|
||||||
Latest: .46.04
|
Latest: 7.46.07
|
||||||
echo $?
|
echo $?
|
||||||
1
|
1
|
||||||
```
|
```
|
||||||
@@ -76,7 +78,7 @@ echo $?
|
|||||||
Print the current version number without details
|
Print the current version number without details
|
||||||
```
|
```
|
||||||
gam version simple
|
gam version simple
|
||||||
.46.04
|
7.46.07
|
||||||
```
|
```
|
||||||
In Linux/MacOS you can do:
|
In Linux/MacOS you can do:
|
||||||
```
|
```
|
||||||
@@ -86,7 +88,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 .46.04 - https://github.com/GAM-team/GAM
|
GAM 7.46.07 - https://github.com/GAM-team/GAM
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.14.6 64-bit final
|
Python 3.14.6 64-bit final
|
||||||
macOS Tahoe 26.5.1 arm64
|
macOS Tahoe 26.5.1 arm64
|
||||||
|
|||||||
Reference in New Issue
Block a user