Powershell module for Google / G Suite API calls wrapped in handy functions. Authentication is established using a service account via P12 key to negate the consent popup and allow for greater handsoff automation capabilities
CheckAll
switch on Get-GSUserLicense
.IMPORTANT: You MUST have the module 'Configuration' installed as a prerequisite! Installing the module from the repo source or the release page does not automatically install dependencies!!
This is to prevent having to unblock each file individually after unzipping.
PSModulePath
.
You can view the paths listed by running the environment variable
$env:PSModulePath
PSGSuite
if the unzipped module folder is not in your PSModulePath
:
# In $env:PSModulePath
Import-Module PSGSuite
# Otherwise, provide the path to the manifest:
Import-Module -Path C:\MyPSModules\PSGSuite\2.36.4\PSGSuite.psd1
CheckAll
switch parameter to Get-GSUserLicense
User
parameter aliases for all *-GSUserLicense
functions to include UserId
for better pipeline support.IMPORTANT: You MUST have the module 'Configuration' installed as a prerequisite! Installing the module from the repo source or the release page does not automatically install dependencies!!
This is to prevent having to unblock each file individually after unzipping.
PSModulePath
.
You can view the paths listed by running the environment variable
$env:PSModulePath
PSGSuite
if the unzipped module folder is not in your PSModulePath
:
# In $env:PSModulePath
Import-Module PSGSuite
# Otherwise, provide the path to the manifest:
Import-Module -Path C:\MyPSModules\PSGSuite\2.36.3\PSGSuite.psd1
IMPORTANT: You MUST have the module 'Configuration' installed as a prerequisite! Installing the module from the repo source or the release page does not automatically install dependencies!!
This is to prevent having to unblock each file individually after unzipping.
PSModulePath
.
You can view the paths listed by running the environment variable
$env:PSModulePath
PSGSuite
if the unzipped module folder is not in your PSModulePath
:
# In $env:PSModulePath
Import-Module PSGSuite
# Otherwise, provide the path to the manifest:
Import-Module -Path C:\MyPSModules\PSGSuite\2.36.2\PSGSuite.psd1
[SecureString]
decryption on Unix machines running PowerShell 7 (found additional bugs)Encrypt
and Decrypt
to EncryptionHelpers.ps1
in the Private folder to allow a single place to update.IMPORTANT: You MUST have the module 'Configuration' installed as a prerequisite! Installing the module from the repo source or the release page does not automatically install dependencies!!
This is to prevent having to unblock each file individually after unzipping.
PSModulePath
.
You can view the paths listed by running the environment variable
$env:PSModulePath
PSGSuite
if the unzipped module folder is not in your PSModulePath
:
# In $env:PSModulePath
Import-Module PSGSuite
# Otherwise, provide the path to the manifest:
Import-Module -Path C:\MyPSModules\PSGSuite\2.36.1\PSGSuite.psd1
[ScriptBlock]
values on the config, allowing you to provide a script to run that will pull in a configuration value (vs embedded the value directly on the config)Get-GSGmailMessageList
Remove-GSDriveFile
.Send-GSChatMessage
.[SecureString]
decryption on Unix machines running PowerShell 7IMPORTANT: You MUST have the module 'Configuration' installed as a prerequisite! Installing the module from the repo source or the release page does not automatically install dependencies!!
This is to prevent having to unblock each file individually after unzipping.
PSModulePath
.
You can view the paths listed by running the environment variable
$env:PSModulePath
PSGSuite
if the unzipped module folder is not in your PSModulePath
:
# In $env:PSModulePath
Import-Module PSGSuite
# Otherwise, provide the path to the manifest:
Import-Module -Path C:\MyPSModules\PSGSuite\2.36.0\PSGSuite.psd1
New-GSGmailSMIMEInfo
to cast Pkcs12
to URLSafeBase64 without removing the trailing padding =
, based on GAMs process in Python. Confirmed replication of the resultant value being sent from GAM in PowerShell, ready to validate.IMPORTANT: You MUST have the module 'Configuration' installed as a prerequisite! Installing the module from the repo source or the release page does not automatically install dependencies!!
This is to prevent having to unblock each file individually after unzipping.
PSModulePath
.
You can view the paths listed by running the environment variable
$env:PSModulePath
PSGSuite
if the unzipped module folder is not in your PSModulePath
:
# In $env:PSModulePath
Import-Module PSGSuite
# Otherwise, provide the path to the manifest:
Import-Module -Path C:\MyPSModules\PSGSuite\2.35.1\PSGSuite.psd1
Add-GSSheetValues
to use the native Append()
method instead of BatchUpdate()
to prevent needing to calculate the last row like you do with Export-GSSheet
. Since the input for this method has additional options and the output differs from what Export-GSSheet
outputs, this has been moved to a unique function to prevent introducing breaking changes to Export-GSSheet
.Invoke-GSUserOffboarding
function to wrap common offboarding tasks for ease of access management automation.Get-GSSheetInfo
so it no longer defaults -IncludeGridData
to $true
if not specified in $PSBoundParameters
.Resolve-Email
with new IsGroup
switch, then cleaned up all *-GSGroup*
functions to use it so that Group ID's are respected based on RegEx match.Archived
parameter to Update-GSUser
to enable setting of Archived User licenses.Get-StoragePath
for Get-ConfigurationPath
in Import-SpecificConfiguration
and Set-PSGSuiteConfig
to avoid alias related issues with PowerShell 4.0IMPORTANT: You MUST have the module 'Configuration' installed as a prerequisite! Installing the module from the repo source or the release page does not automatically install dependencies!!
This is to prevent having to unblock each file individually after unzipping.
PSModulePath
.
You can view the paths listed by running the environment variable
$env:PSModulePath
PSGSuite
if the unzipped module folder is not in your PSModulePath
:
# In $env:PSModulePath
Import-Module PSGSuite
# Otherwise, provide the path to the manifest:
Import-Module -Path C:\MyPSModules\PSGSuite\2.35.0\PSGSuite.psd1
-CreateMeetEvent
switch parameter to New-GSCalendarEvent
to create a Google Meet conference and attach it to the calendar event.IMPORTANT: You MUST have the module 'Configuration' installed as a prerequisite! Installing the module from the repo source or the release page does not automatically install dependencies!!
This is to prevent having to unblock each file individually after unzipping.
PSModulePath
.
You can view the paths listed by running the environment variable
$env:PSModulePath
PSGSuite
if the unzipped module folder is not in your PSModulePath
:
# In $env:PSModulePath
Import-Module PSGSuite
# Otherwise, provide the path to the manifest:
Import-Module -Path C:\MyPSModules\PSGSuite\2.34.0\PSGSuite.psd1
[System.Console]::CursorVisible
on Start-GSDriveFileUpload
, Wait-GSDriveFileUpload
and Write-InlineProgress
Stop-GSDriveFileUpload
due to file uploads showing as Failed even though they were successful.IMPORTANT: You MUST have the module 'Configuration' installed as a prerequisite! Installing the module from the repo source or the release page does not automatically install dependencies!!
This is to prevent having to unblock each file individually after unzipping.
PSModulePath
.
You can view the paths listed by running the environment variable
$env:PSModulePath
PSGSuite
if the unzipped module folder is not in your PSModulePath
:
# In $env:PSModulePath
Import-Module PSGSuite
# Otherwise, provide the path to the manifest:
Import-Module -Path C:\MyPSModules\PSGSuite\2.33.2\PSGSuite.psd1
Name
parameter from Start-GSDriveFileUpload
as it was unused in the function and doesnt make sense when uploading an array of files.Get-GSDataTransfer
to Get/List current Data TransfersUpdate-GSResource
Id
parameter as it was non-applicable (duplicate of ResourceId
and not writable per API docs)Get-GSCalendar
now properly resolves single calendar metadata retrieval and passes List requests to Get-GSCalendarSubscription
since the Calendars
service does not support List requests.IMPORTANT: You MUST have the module 'Configuration' installed as a prerequisite! Installing the module from the repo source or the release page does not automatically install dependencies!!
This is to prevent having to unblock each file individually after unzipping.
PSModulePath
.
You can view the paths listed by running the environment variable
$env:PSModulePath
PSGSuite
if the unzipped module folder is not in your PSModulePath
:
# In $env:PSModulePath
Import-Module PSGSuite
# Otherwise, provide the path to the manifest:
Import-Module -Path C:\MyPSModules\PSGSuite\2.33.1\PSGSuite.psd1