Giter Club home page Giter Club logo

gshell's Introduction

gShell is out of date - use at your own risk

Unfortunately, gShell is no longer actively maintained. This means there are some dependencies with known vulnerabilities that need to be resolved. This lack of maintenance is a direct result of a career shift away from a windows environment with a strong focus elsewhere. While I would love to continue contributing, my work life balance does not currently allow for this.

All hope is not yet lost! I was working on a way to auto generate the code for gShell (windows only, not Core - sorry!) and was about 85% of the way to a working version here. The goal was to automate the entire stream from reading the API docs to generating the codebase to committing it to Nuget. Most of the gShell pieces that you may already know and love were working, but it probably needs some polish.

I wish you the best of luck, and maybe someday I can get back in the game.

Regards,

squid808


Welcome to gShell!

PowerShell Cmdlets for G Suite Administration

gShell is a toolset to help you access and manage information from your G Suite (formerly Google Apps) domain through Windows PowerShell. (Need some help with the basics?) Simply put, gShell is a native PowerShell wrapper for the APIs that make up the Google Admin SDK.

What's New?

Version 0.10 beta is now available! With 50 new cmdlets added, you can't go wrong! This is the final major update to gShell. Check out the News page for more, or dive in to the comprehensive wiki!

Check out the Getting Started page to get going, or hop over to Downloads if you want to dive in with the installer.

Quick Examples

The idea of gShell is to allow you quick and easy access to your G Suite domain. Check out some of the following examples to see how this can be helpful to you, once you get past the quick setup.

PS C:\> Get-GAUser BMcGee

GivenName     : Bobby
FamilyName    : McGee
PrimaryEmail  : bmcgee@mydomain.com
Aliases       : {bobbymcgee@mydomain.com, bobmcgee@mydomain.com}
Suspended     : False
OrgUnitPath   : /
LastLoginTime : 2013-10-25T05:10:40.000Z
  • Get all users in the domain as a variable:
PS C:\> $AllUsers = Get-GAUser -all

----
PS C:\> $AllUsers.Count

9001
PS C:\> $Members = Get-GAGroupMember SomeGroupName

----
PS C:\> $Members.Count

42
  • Export members of all groups in to a CSV:
PS C:\> $AllMembers = New-Object System.Collections.ArrayList

foreach ($Group in (Get-GAGroup -All)) {
    if ($Group.DirectMembersCount -gt 0) {
        $Members = Get-GAGroupMember $Group.Email

        foreach ($Member in $Members) {
            $Member | Add-Member -NotePropertyName "Group" -NotePropertyValue $Group.Email
            $AllMembers.Add($Member) | Out-Null
        }
    }
}

----
PS C:\> $AllMembers[0]

Group : songcharacters@mydomain.com
Email : bobbymcgee@mydomain.com
ETag  : "01...rs/44...HQ"
Id    : 123456789123456789123
Kind  : admin#directory#member
Role  : MEMBER
Type  : USER

----
PS C:\> $AllMembers | Export-Csv -Path "C:\AllGroupMemberships.csv" -NoTypeInformation

----
PS C:\> (Get-Content "C:\AllGroupMemberships.csv")[0..1]
#Let's look directly at the CSV file...

"Group","Email","ETag","Id","Kind","Role","Status","Type"
"[email protected]","[email protected]",
"""01...rs/44...HQ""","12...23","admin#directory#member","MEMBER","USER"

This is the tip of the iceberg of what's possible and what's available. If you need help or have questions, drop a line in the discussion group.

Alternately, please file bugs and issues in the issue tracker.

gshell's People

Contributors

countingtoten avatar squid808 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gshell's Issues

How to

I need a little bit help. I want to transfer all data of a user to another user like on the pic but i cant find the right command to do this.

I think it's "new-GDrivePermission". But i don't know how to config is command to make the same like the pic.

transfer

When trying to Import-Module gShell

Import-Module : The 'PowerShellVersion' member is not valid in the module manifest file
'C:\Users\aviv.malka\Documents\WindowsPowerShell\Modules\gshell\gshell.psd1': Cannot convert value "4" to type
"System.Version". Error: "Version string portion was too short or too long."
At line:1 char:1

  • Import-Module gshell
  • - CategoryInfo          : ResourceUnavailable: (C:\Users\aviv.m...ell\gshell.psd1:String) [Import-Module], Argumen
      tException
    - FullyQualifiedErrorId : Modules_InvalidManifest,Microsoft.PowerShell.Commands.ImportModuleCommand
    
    

On PS version 3,4 & 5

Can't update user photo with Set-GAUserPhoto

Getting the following error when updating the user profile photo.

Set-GAUserPhoto : Google.Apis.Requests.RequestError
Invalid value for ByteString: .......................]
[400]Errors [Message[Invalid value for ByteString:........................]
Location[photoData - other] Reason[invalid] Domain[global]
]

All rights are in place, can you help us out?

Jeroen Blok

Support for Secure String

Support for secure string so New-GAUser can be used within the same script of a new AD user account creation script.

$password = Read-Host -AsSecureString "AccountPassword"
New-GAUser $username -GivenName $FirstName -FamilyName $LastName -domain $domain -Password $password

Configure save location for Get/Set-gShellSettings

It would be nice to be able to set where the .bin or .json and .config files are saved. I think using -Path would be intuitive for most folks on both Get-gShellSettings and Set-gShellSettings so that the files can be saved to and recalled from an arbitrary place. This would be handy to have on servers especially, as the default save is tied to the account that is logged in. C:\Users\username\AppData\Local\gShell is the current default if anyone is interested.

Powershell Version

This is just a general question.

For this project, are there any significant advantages of using PS4 over PS3?

I'm sure there are. I just don't know enough about the versions to be honest.

The reason I'm asking is that I was trying to integrate gShell into our AD app called Adaxes. They're currently only looking to support v3 in the near future. Sad trombone. I only found that out after a few afternoons of scripting a groups management action. Sad panda.

Thanks for this great project.

Classroom Guardians

New feature of Classroom is to add a guardian's email address for the teacher to send notifications. Can this be implemented in a future release of gShell?

Get-GCalendarEvent - Can't list all events in a calendar

Hi There,

When I go to use Get-GClandarEvent -CalendarID [email protected] -All it fails.

The Wiki Example 2 = PS C:\> Get-GCalendarEvent -CalendarId $SomeCalendarIdString -All

Ideally I would like to be able to list all events in a calendar. I would then use this information + a separate list of users, to invite users to their events. After look at the Wiki Page, "-EventID" is a require parameter which would void the Example 2?

I understand this is a big project and very much appreciate all the work you and the volunteers do to keep this project active. Thank you for any assistance or help you may be able to provide!

Cheers,

---------------------------- Powershell Error Dump ----------------------------------------

Get-GCalendarEvent : A parameter cannot be found that matches parameter name 'All'.
At line:1 char:99
+ ... [email protected] -All
    + CategoryInfo          : InvalidArgument: (:) [Get-GCalendarEvent], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,gShell.Cmdlets.Calendar.Events.GetGCalendarEventCommand

Fresh install, config error

Just installed this module and have issues with first init commands

Set-GShellSettings
Set-GShellSettings : "C:\Users%D0%90%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0
%D1%82%D0%BE%D1%80\Documents\WindowsPowerShell\Modules\gShell\gShellSettings.config".

  • Set-GShellSettings
  • CategoryInfo : NotSpecified: (:) [Set-GShellSettings], DirectoryNotFoundException
  • FullyQualifiedErrorId : System.IO.DirectoryNotFoundException,gShell.Cmdlets.Utilities.gShellDomain.SetGShellSett
    ingsCommand

Windows Server 2012 r2
$PSVersionTable.PSVersion

Major Minor Build Revision


4 0 -1 -1

Loading gshell breaks loading of all additional modules

I ran across this the other day on my new Windows 8.1 x64 workstation. I confirmed it on a test system and a vm, all loaded by different people. v0.0.5.0 and v0.0.6.0 exhibit this behavior.

  • Once the gshell module is loaded, no other module can be loaded.
  • gshell will still work, you just can't load any additional modules.
  • Any modules you load before gshell will work even after you load gshell.

I used the activedirectory module as an example in the output below. The results were similar on every other module I tried, right up to and including Microsoft.PowerShell.Management. I'm not a programmer so please let me know what info, if any that I can provide to help resolve this. Thanks!

Windows PowerShell
Copyright (C) 2014 Microsoft Corporation. All rights reserved.

PS C:\WINDOWS\system32> import-module gshell
PS C:\WINDOWS\system32> get-aduser
get-aduser : The 'get-aduser' command was found in the module 'ActiveDirectory', but the module could not be loaded.
For more information, run 'Import-Module ActiveDirectory'.
At line:1 char:1

  • get-aduser
  • - CategoryInfo          : ObjectNotFound: (get-aduser:String) [], CommandNotFoundException
    - FullyQualifiedErrorId : CouldNotAutoloadMatchingModule
    
    

PS C:\WINDOWS\system32> import-module activedirectory
import-module : The following error occurred while loading the extended type data file:
, C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\activedirectory\ActiveDirectory.Types.ps1xml(11) : Error in type
"Microsoft.ActiveDirectory.Management.ADEntity": Exception: Cannot convert the
"Microsoft.ActiveDirectory.Management.ADEntityAdapter" value of type "System.String" to type "System.Type".
...

At line:1 char:1

  • import-module activedirectory
  • - CategoryInfo          : InvalidOperation: (:) [Import-Module], RuntimeException
    - FullyQualifiedErrorId : FormatXmlUpdateException,Microsoft.PowerShell.Commands.ImportModuleCommand
    

invoke-scopemanager error

Suddenly today (last used this earlier in the week), I became unable to run gShell commands. Any command run returned back a notification that the there is no current scope for that command.

When running invoke-scopemanager it errors out after I choose the requisite scopes.

Invoke-ScopeManager : One or more errors occurred.
At line:1 char:1

  • Invoke-ScopeManager -Domain DOMAIN.com
  • - CategoryInfo          : NotSpecified: (:) [Invoke-ScopeManager], AggregateException
    - FullyQualifiedErrorId : System.AggregateException,gShell.Cmdlets.Utilities.ScopeHandler.InvokeScopeManager
    

Troubleshooting steps taken:

Get-GAUser : Value cannot be null

Brand new installation, just set the key and clientID which work fine - I can run GAM from the command line using the same data and it correctly gets user data back.

I am attempting to run either/both: Get-GAUser or Get-GAUser -Userkey and I get this:

`Get-GAUser : Value cannot be null. Parameter name: task

At line:1 char:1
Get-GAUser me

    CategoryInfo          : NotSpecified: (:) [Get-GAUser], ArgumentNullException
    FullyQualifiedErrorId : System.ArgumentNullException,gShell.Cmdlets.Directory.GAUser.GetGAUserCommand`

What am I doing wrong please? Running the 10.2 build

get-gdrivepermission missing info?

When running get-gdrivepermission, the result seems to be missing a lot of details, is ita . API scope issue? I have the scopes setup for Drive.

image
if I run get-gdrivefile I get minimal info as well.

image

Missing information for gDrive objects

Opened ticket per your request.

Cmdlets Get-GdriveFile and Get-DriveRevision are only returning very little information for the objects. The former returns only Id, Kind, MimeType and Name and Get-DriveRevision returns only Id, Kind, MimeTypem, ModifiedTimeRaw and ModifiedTime.

...
leExtension :
FolderColorRgb :
FullFileExtension :
HeadRevisionId :
IconLink :
Id : 0B-CBGi7cpmvGUTFOYm9yRzFzZAB
ImageMediaMetadata :
IsAppAuthorized :
Kind : drive#file
LastModifyingUser :
Md5Checksum :
MimeType : image/png
ModifiedByMeTimeRaw :
ModifiedByMeTime :
ModifiedTimeRaw :
ModifiedTime :
Name : invite-2.png
OriginalFilename :
OwnedByMe :
Owners :
Parents :
Permissions :
Properties :
QuotaBytesUsed :
Shared :
SharedWithMeTimeRaw :
...

Regards,
Rick

Restructure saved Auth files to better support secondary domains

Topic started here. Points of interest:

  1. Restructure auth file to allow association of domains as parent and child domains
  2. Make sure child domains grab information from the parent domain if they don't have it
  3. Only allow parent domains to have service accounts, or only look at service accounts of parent domains.

Load module issue

I have installed 0.0.8.1 using the MSI. I get the below error on Windows 10 but not on Windows 7.
I have also configured the API's but do not know where to place the JSON files.
All dll files are in C:\Users\xxxxxx\Documents\WindowsPowerShell\Modules\gShell

PS C:\WINDOWS\system32> Import-Module gShell
Import-Module : Could not load file or assembly 'Google.Apis.Admin.Directory.directory_v1, Version=1.9.0.49, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The
system cannot find the file specified.
At line:1 char:1

  • Import-Module gShell
  • - CategoryInfo          : NotSpecified: (:) [Import-Module], FileNotFoundException
    - FullyQualifiedErrorId : System.IO.FileNotFoundException,Microsoft.PowerShell.Commands.ImportModuleCommand
    

Get-GACalendar parameter position is strange.

wiki shows -Customer as position 0.

Get-GACalendar -CalendarResourceId "calendarstring" is working(Which means gShell is appropriately supplying google API with my_customer even when not supplied by the user.)
Get-GACalendar "calendarstring" prompts the request for a calendar resource id(in my oppinion Should match other gShell Cmdlets with gShell automatically filling in customer for you, and having the Id as first parameter.

I do see that google API actually does require customer for calendars, and does not for the other resources in directory api. But I think it would be good to change this in gShell for the sake of making GACalendar the same as it's directory API friends, and also Get-GCalendar.

Feature Request - Set-GAChromeosdevice cmdlet

Currently the Set-GAChromeosdevice cmdlet only allows updating of the AnnotatedLocation, AnnotatedUser, OrgUnitPath, and Notes fields. The AnnotatedAssetID field is the only writable field that is not currently available in the cmdlet.

Current scenario: I have a file with serial numbers and asset tags from our white glove service and in Powershell I am able to import the file, match serial numbers, and assign asset tag numbers to the Chromebooks I export with gShell, but I am not currently able to use the AnnotatedAssetID field. I plan to work around this by updating one of the other fields and then using the chromebookinventory add-on to export, move the data to the correct field, and then import it back. It would be nice if I could do it all in Powershell and minimize the chances for user error when moving the data in a spreadsheet.

directory API -All argument not returning all

This is happening for Get-GAUser -All and Get-GAGroup -All. Basically when using -All it only returns users or groups ending in @primarydomain.com. From the directory api documentation it seems like it should return all groups of an account if no domain or account are specified, but It is not returning anything from @secondarydomain.com. This makes it so I cannot fully script things as I can't find a way to actually get all users or groups.

I can Get-GAGroup [email protected] successfully so I know I have permissions. If I run Get-GAGroup -Domain secondarydomain.com -All It invokes the scope manager for directory API even though I already have full permissions in my oauth file, It then opens in my browser, Received verification code. You may now close this window. It then gives me the exact same result if I didn't specify -domain, by giving only results of primarydomain.com, and nothing else. In our environment we have many domains being used currently, so getting only primarydomain.com is troublesome.

Let me know if you are able to replicate the issue or if you need any more information.

Thanks!

Deprecated Google API's

Google has been sending emails regarding the discontinuation of several of its API's on April 20th is gshell going to be affected by this?

Admin Audit
Google Apps Profiles
Provisioning
Reporting
Reporting Visualization

Thanks and great product!

Export-GDriveFile issue

I've installed gShell Version 0.9.4 with MSI package on Windows Server 2012 R2 and I tried to export a Google Sheet Document into a csv file with cmdlet Export-GDriveFile.

I have no problem to retrieve properties from GDrive Documents (with Get-GDriveFile) but when I use Export-GDriveFile on a GDrive Documents : nothing happens (No error, no returned value, $? = "True")

Test : (From Spencer) (better than my own test :) )

Import-Module gShell

$AllFiles = Get-GDriveFile -All
$Doc = $AllFiles | where {$_.MimeType -eq "application/vnd.google-apps.document"} | select -First 1
Export-GDriveFile -FileId $Doc.Id -MimeType "text/plain"

Attempting to add user to group or just list groups is resulting in a 403.

I'm trying to add a user to a group. This failed with a 403. I then tried getting the list of groups and met with the same 403.

I previously used Invoke-ScopeManager to request all permissions in admin:directory_v1, and that went fine.

I have successfully used gShell to set a user's password, so at least I've proven something works.

Here's what happens when I attempt to add a user to a group:

PS C:\> Add-GAGroupMember -GroupName [email protected] -Domain mydomain.com -username jsmith -Role MEMBER
Add-GAGroupMember : Google.Apis.Requests.RequestError
Insufficient Permission [403]
Errors [
    Message[Insufficient Permission] Location[ - ] Reason[insufficientPermissions] Domain[global]
]
At line:1 char:1
+ Add-GAGroupMember -GroupName [email protected] -Domain mydomain.com -u ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Add-GAGroupMember], GoogleApiException
    + FullyQualifiedErrorId : Google.GoogleApiException,gShell.Cmdlets.Directory.GAGroupMember.AddGAGroupMember

Set-GAUser OrgUnitPath Parameter

Getting the following error when specifying a new orgunitpath

Parameter set cannot be resolved using the specified named parameters.

Module doesn't really work with roaming user.

After fixing #42 I'm trying to set the secrets, the module uses the wrong path to find itself;

jbennett $ Set-GShellClientSecrets -ClientId "example" -ClientSecret "example"
Set-GShellClientSecrets : Could not load file or assembly 'file:///C:\sharepath$\...\jbennett\Documents\WindowsPowerShell\Modules\gshell\Newtonsoft.Json.dll' or one of its dependencies. The system cannot find the file
specified.
At line:1 char:1
+ Set-GShellClientSecrets -ClientId "example ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Set-GShellClientSecrets], FileNotFoundException
    + FullyQualifiedErrorId : System.IO.FileNotFoundException,gShell.Cmdlets.Utilities.gShellDomain.SetGShellClientSecretsCommand

file:///C:\home$ should either be a unc server name \\example\home$ or just the mapped location n:\Documents\WindowsP....

I presume even If I patch that somehow path env variables aren't going to be correctly found all over the place.

Progress bars are buggered

In some Cmdlets, the progress bar increments both the item it's on and the total count. For example
Get-GRepActivity -UserKey all -ApplicationName login displays this behavior.

Using -TargetUserEmail without service account produces error.

Get-GGmailMessage : Nullable object must have a value.

I'm using it without -domain, on the default domain in gshell.

I just think it would be nice if it said Service account not enabled, and gave instructions on the Set-GShellServiceAccount Cmdlet(similarly to how it invokes scopes)

Get-GAuserphoto does not return no photo for user without Photo

Get-GAuserphoto does not return "no photo for 'user's email address'" instead it throws an error.

Get-GAUserPhoto : Google.Apis.Requests.RequestError
Resource Not Found: photo [404]
Errors [
Message[Resource Not Found: photo] Location[ - ] Reason[notFound] Domain[global]

Set-GAUser Boolean issues

Version 0.9.2 Set-GAUser boolean commands not recognized.

Set-GAUser [email protected] -ChangePasswordAtNextLogin $true

Set-GAUser : Parameter set cannot be resolved using the specified named parameters.
At line:1 char:1

  • Set-GAUser [email protected] -ChangePasswordAtNextLogin $true
  • - CategoryInfo          : InvalidArgument: (:) [Set-GAUser], ParameterBindingException
    - FullyQualifiedErrorId : AmbiguousParameterSet,gShell.Cmdlets.Directory.GAUser.SetGAUserCommand
    
    

Reverted back to 0.8.1 working fine.

Request for Installation Guide

Any chance you could write up a quick blurb on how to go from your source files to an importable module for Powershell ?

Mac Installer

I am not a programmer, so I thought I would ask. Is there anyway someone could create a Mac OS package for gshell? I just switched jobs, and they are an all Mac shop and dont allow Virtual Machines. I have grown attached to the gshell commands.

Get-GGroupssettings

Get-GGroupssettings is not working. I get this error message
Get-GGroupssettings : An Error occurred, but the error response could not be deserialized

Domain parameter not working as expected

Quoted from here and split out to keep topics separate:

Here is a list of things that do and don't work.
user.name1 primary email is domain1.com(primary) user.name2 primary email is domain2.com(secondary)
user.name3 primary email is domain2.com(secondary) with an alias for domain1.com(primary)
Just for fun I made a user.name4 example, with primary email as domain3.com(tertiary), and alias of domain2.com
using [email protected] for authentication. domain1.com is set as default in oauth.

Get-GAUser user.name1 - Works
Get-GAUser [email protected] - Works
Get-GAUser user.name1 domain1.com - Works
Get-GAUser user.name1 -Domain domain1.com - Works

Get-GAUser user.name2 - 404 not found
Get-GAUser user.name2 domain2.com - 404 not found (I expected this to request permission, but it didn't.)
Get-GAUser [email protected] - Works completely normally.
Get-GAUser user.name2 -Domain domain2.com - Requests permission, Permission is given, 404 not found AND oauth not updated with new domain. I'm wondering if since I am trying to authenticate with the same account gshell doesn't create a new domain oauth for it. I then have to run authentication every single time I use one of the -domain options.

Get-GAUser user.name3 - Works
Get-GAUser [email protected] - Works
Get-GAUser [email protected] - Works
Get-GAUser user.name3 domain2.com - Works
Get-GAUser user.name3 domain1.com - Works
Get-GAUser user.name3 -Domain domain1.com - Works
Get-GAUser user.name3 -Domain domain2.com - Requests permission, Permission is given, works but oauth not updated.

Get-GAUser user.name4 - 404 not found, everything is the same for this user as user.name2 except that [email protected] and [email protected] both work.

I don't really understand why this is happening. From all that testing I assumed the second parameter used as mydomain.com in your code example is only used to concatenate with the user provided in the first parameter(vs using it as the -domain switch as I thought before). I find this super weird, because it means that if you wanted to go into another primary GApps domain, it would look like: Get-GAUser domain2.com -domain domain2.com, which doesn't actually save any writing compared to using @domain2.com. BUT, if all it did was concatenate then why does [email protected] work and user.name2 domain2 doesn't? 😕

Examples contain invalid XML

Some XML details for the cmdlets contain invalid XML due to the generation of variables based on the type, for instance:

/// <example>
///   <code>PS C:\>Get-GAAsps -UserKey $SomeUserKeyString -CodeId $SomeCodeIdSystemNullable<int></code>
///   <para>This automatically generated example serves to show the bare minimum required to call this Cmdlet.</para>
///   <para>Additional examples may be added, viewed and edited by users on the community wiki at the URL found in the related links.</para>
/// </example>

The breaking point here being the $SomeCodeIdSystemNullable<int> which is invalid XML and shouldn't be shown at all. The inclusion of this code breaks the documentation for the cmdlet in question, and doesn't allow a synopsis to be created.

Based on the following query:

Get-Command -Module gshell | % {if ([string]::IsNullOrWhiteSpace( `
    (help $_.Name).Synopsis)) { write-host $_.Name} }

The affected cmdlets are:
Get-GAAsp
Get-GAUserProperty
Get-GDataTransferApplication
Get-GEmailSettingsForwarding
New-GASchemaField
New-GASchemaFieldCollection
New-GAUserProperty
New-GAUserPropertyCollection
Remove-GAAsp
Remove-GAUserProperty
Set-GEmailSettingsForwarding
Set-GGmailMessage

Module manifest is incorrect when using folder redirection for Documents

The FormatsToProcess, NestedModules, and ModuleList elements of the module manifest are explicitly referencing the Documents folder in the user profile, and so the module fails to import when the Documents library has been redirected to another location.

Since the files referenced by those elements are directly in the module folder, I believe you should be able to remove the path altogether and just reference by file name (working for me locally).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.