Através de APIs o Google permite que você realize a integração com todos os Serviços disponíveis, sendo assim você pode desenvolver seus scripts um Python, PowerShell, Shell Script, etc. e realizar a integração através do um Token.
Neste artigo eu mostro todos os passos para exportar uma lista de usuários do Active Directory para o Google Sheets.
Acesse o link : console.cloud.google.com e clique no menu :

Preencha todos os campos com seus dados para criar o Projeto, em seguida clique em CREATE.

Assim que o projeto for criado clique em + ENABLE APIS AND SERVICES.

Pesquise por Google Sheets API.

Clique em ENABLE para habilitar a API.

API habilitada!

Clique no menu Credentials.

Clique em + CREATE CREDENTIALS e Service Account

Preencha todos os campos para criar a Conta de Serviço, em seguida clique em CREATE.

Atribua as Permissões no projeto.

Clique em CONTINUE.

Clique em DONE.

Copie o E-mail gerado, para utilizar no script.

Clique em APIs & Services > Service Accounts

Clique sobre o E-mail, para visualizar as Propriedades.

Detalhes da Conta.

Clique em KEYS

Selecione o tipo P12 e clique em CREATE.

Defina uma Senha, em seguida clique em CLOSE.

Status Active.

Copie o certificado active-directory-01-2883f0047bc5.p12 para o servidor do Active Directory ou para o computador que você utiliza para extrair os dados.
Execute o comando abaixo para instalar os módulos de integração com o Google :
WindowsPS C:\Users\Administrator> Install-Module UMN-Google [ A ] Yes to All

Após a instalação crie o arquivo API.ps1, com o seguinte conteúdo :
Import-Module UMN-Google # Set security protocol to TLS 1.2 to avoid TLS errors [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 # Google API Authozation $scope = "https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file" $certPath = "C:\Users\Administrator\Desktop\active-directory-01-2883f0047bc5.p12" $iss = '[email protected]' $certPswd = 'notasecret' $accessToken = Get-GOAuthTokenService -scope $scope -certPath $certPath -certPswd $certPswd -iss $iss $accessToken

Execute o script API.ps1 para verificar se a conexão está sendo estabelecida, deve aparecer o Token como na imagem abaixo :

Crie e Execute o arquivo Sheet.ps1 com o seguinte conteúdo para validar se a Planilha está sendo criada com sucesso!.
# Create new spreadsheet $Title = 'Active Directory' $SpreadsheetID = (New-GSheetSpreadSheet -accessToken $accessToken -title $Title).spreadsheetId $SpreadsheetID # Create new sheet $Sheet = 'Users' Add-GSheetSheet -accessToken $accessToken -sheetName $Sheet -spreadSheetID $SpreadsheetID

Observe que foi gerado um ID.
Tente acessar a Planilha informando o ID.
Se você receber a mensagem que Precisa de Acesso, significa que o Google Drive API não esta habilitado!.

O mesmo erro vai ocorrer se tentar executar via script.
Observe que adicionei as linhas a seguir no script API.ps1 atribuindo o acesso para o e-mail [email protected].
# Create Sheet $SpreadsheetID = '1srVMs4ua7-GjwxxHO38-ccaGqiB-7DXYmeM-BJZuq_Y' Set-GFilePermissions -accessToken $accessToken -fileID $SpreadsheetID -role writer -type user -emailAddress '[email protected]'

Para ativar o Google Drive API acesse o menu :

Clique em ENABLE para habilitar a API.

API Habilitada com sucesso!

Execute o script API.ps1 novamente e observe que a permissão foi atribuída com sucesso!

Acesse a Planilha e observe que a aba Users foi criada e o nome da planilha foi definido como Active Directory.

Adicionei ao script API.ps1 o processo de extração da lista de Usuários do Active Directory, basta executar.
Import-Module UMN-Google # Set security protocol to TLS 1.2 to avoid TLS errors [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 # Google API Authozation $scope = "https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file" $certPath = "C:\Users\Administrator\Desktop\active-directory-01-2883f0047bc5.p12" $iss = '[email protected]' $certPswd = 'notasecret' $accessToken = Get-GOAuthTokenService -scope $scope -certPath $certPath -certPswd $certPswd -iss $iss # $accessToken # Create Sheet $SpreadsheetID = '1srVMs4ua7-GjwxxHO38-ccaGqiB-7DXYmeM-BJZuq_Y' #Set-GFilePermissions -accessToken $accessToken -fileID $SpreadsheetID -role writer -type user -emailAddress '[email protected]' #-- All Users $directorypath = (Get-Item -Path ".\").FullName $csv = "ad-users.csv" #-- Import Module Import-Module ActiveDirectory #-- Filter $users = @(Get-ADUser -filter * -Properties SamAccountName, Name, Mail) $result = @($users | Select-Object SamAccountName, Name, Mail) #-- Order by (A-Z) $a = 'SamAccountName' $order = ($a | Sort-Object) $result = $result | Sort $order #-- Export to CSV $result | Sort Company | Export-Csv $csv -NoTypeInformation -Encoding Utf8 # Import CSV $import = New-Object System.Collections.ArrayList($null) # Build sheet header as it isn't included automatically $import.Add( @("SamAccountName", "Name", "Mail")) # Build ArrayList $inputCsv = Import-Csv $csv $inputCsv | ForEach-Object { $import.Add(@($_.SamAccountName, $_.Name, $_.Mail)) } #-- Remove Sheet1 Remove-GSheetSheet -accessToken $accessToken -sheetName Sheet1 -spreadSheetID $SpreadsheetID #-- Import data Set-GSheetData -accessToken $accessToken -rangeA1 "A1:C$($import.Count)" -sheetName "Users" -spreadSheetID $SpreadsheetID -values $import -Debug -Verbose

Resultado final, contendo a lista de Usuários do Active Directory.
