# PSZoom - A Powershell module for Zoom's REST API

**URL:** <https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490>\
**Category:** API and Webhooks\
**Created:** [November 2, 2019, 6:27pm UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490 "2019-11-02T18:27:45Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![maci01](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maci01/32/2129_2.png) [@maci01](https://devforum.zoom.us/u/maci01)\
**Post date:** [November 2, 2019, 6:27pm UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490/1 "2019-11-02T18:27:45Z")

</div>

**PSZoom**

PSZoom is a Powershell wrapper for Zoom’s REST API. At the moment it includes cmdlets for users, groups and meetings as well as a few for reports. Installing it is as simple as:

```
Install-Module PSZoom
Import-Module PSZoom

```

You can also find it at the [PowerShell Gallery](https://www.powershellgallery.com/packages/PSZoom/1.0.19) or on [Github](https://github.com/JosephMcEvoy/PSZoom). Currently PSZoom uses only JWT for authorization.

**Example Code**

**Get all active users**

`Get-ZoomUsers -AllPages`

**Get emails from page 2 of active users**

(Get-ZoomUsers -PageSize 300 -pagenumber 2 -status active).Email

**Update a user’s name**

`Update-ZoomUser -UserId askywakler@thejedi.com -FirstName Darth -LastName Vader -ApiKey $ApiKey -ApiSecret $ApiSecret`

**Update the host key of all user’s that have ‘jedi’ in their email**

`(Get-ZoomUsers -allpages) | select Email | ? {$_ -like '*jedi*'} | update-zoomuser -hostkey 001138`

**Find and add users to a single group**

`Get-ZoomGroups | where-object {$_ -eq 'Dark Side'} | Add-ZoomGroupMembers -email 'dvader@sith.org','dsidious@sith.org'`

Please feel free to ask questions, give suggestions, report bugs, etc. Mods, apologies if this was posted in the wrong place.

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [November 5, 2019, 9:25pm UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490/2 "2019-11-05T21:25:58Z")

</div>

Hey @maci01, this is great!

thanks for posting and contributing to the Zoom developer community! 🙂

-Tommy

---

<div class="post-metadata">

**Author:** ![MattPenner](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/mattpenner/32/6598_2.png) [@MattPenner](https://devforum.zoom.us/u/MattPenner)\
**Post date:** [April 21, 2020, 1:43am UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490/3 "2020-04-21T01:43:46Z")

</div>

This is awesome, thanks for creating this! You just made my life so much easier. 🙂 With the COVID19 crisis we recently signed up with a Zoom Education account for 1,000 users. Everything is set up with our managed domain and SSO through Azure but for some reason all of our users (students and staff) were coming in as a Basic license. Unfortunately Zoom’s CSV user update feature isn’t working correctly either.

Using your module I quickly grabbed all of our staff accounts and upgraded them to a Licensed account. Perfect and quick. I was done in minutes and moved on to the next task on my plate.

Nice!

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [April 21, 2020, 9:51am UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490/4 "2020-04-21T09:51:39Z")

</div>

Amazing, happy to hear you were able to get help from the awesome Zoom Developer Community! 🙂

-Tommy

---

<div class="post-metadata">

**Author:** ![royh](https://avatars.discourse-cdn.com/v4/letter/r/f14d63/32.png) [@royh](https://devforum.zoom.us/u/royh)\
**Post date:** [May 29, 2020, 11:08am UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490/5 "2020-05-29T11:08:10Z")

</div>

Hi,

How can i export all my Zoom users to csv file with including their group membership?

regards,

Roy

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [June 3, 2020, 9:52pm UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490/6 "2020-06-03T21:52:52Z")

</div>

Hey @royh,

You could use the [List Users API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/users) and develop a custom solution.

Otherwise please reach out to [support.zoom.us](http://support.zoom.us).

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![royh](https://avatars.discourse-cdn.com/v4/letter/r/f14d63/32.png) [@royh](https://devforum.zoom.us/u/royh)\
**Post date:** [June 4, 2020, 5:19am UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490/7 "2020-06-04T05:19:09Z")

</div>

Hi Tommy,

I’m looking for Powershell script for automation, I’m not willing to do this action from the web API

Regards,

![image001.jpg](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/5/5193c252f959583a7a196184cebbedb6ae49ff2f.jpeg)

---

<div class="post-metadata">

**Author:** ![michael.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael.zoom/32/37213_2.png) [@michael.zoom](https://devforum.zoom.us/u/michael.zoom)\
**Post date:** [June 6, 2020, 12:33am UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490/8 "2020-06-06T00:33:29Z")

</div>

Hi @royh any script you run within Powershell will need to use the REST API to access this data.

---

<div class="post-metadata">

**Author:** ![royh](https://avatars.discourse-cdn.com/v4/letter/r/f14d63/32.png) [@royh](https://devforum.zoom.us/u/royh)\
**Post date:** [June 10, 2020, 12:51pm UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490/9 "2020-06-10T12:51:30Z")

</div>

> [@maci01](#):
>
> Get-ZoomUsers -AllPages

Hi,

When i’m trying to run the “Get-ZoomUsers -AllPages” script, i’m getting the following error:  
Get-ZoomUsers : The underlying connection was closed: An unexpected error occurred on a send.  
At line:1 char:1

- Get-ZoomUsers -AllPages
- 

```auto
  + CategoryInfo : InvalidOperation: (:) [Write-Error], WriteErrorException
  + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Get-ZoomUsers

```

Get-ZoomUsers : The underlying connection was closed: An unexpected error occurred on a send.  
At C:\Program Files\WindowsPowerShell\Modules\PSZoom\1.1.8\Public\Users\Get-ZoomUsers.ps1:181 char:27

- … ageCount = (Get-ZoomUsers -PageSize 300 @params -FullApiResponse).pag …
- 

```
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

```

  - CategoryInfo : InvalidOperation: (🙂 [Write-Error], WriteErrorException
  - FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Get-ZoomUsers

I don’t understand where my problem.

I would like for some suggestions from the experts.

---

<div class="post-metadata">

**Author:** ![JM\_78](https://avatars.discourse-cdn.com/v4/letter/j/7bcc69/32.png) [@JM\_78](https://devforum.zoom.us/u/JM_78)\
**Post date:** [June 10, 2020, 2:17pm UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490/10 "2020-06-10T14:17:54Z")

</div>

@royh, I was having the same issue.

I had to add this to the top of my code to force the TLS version.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

As soon as I did that, it was all good.

---

<div class="post-metadata">

**Author:** ![royh](https://avatars.discourse-cdn.com/v4/letter/r/f14d63/32.png) [@royh](https://devforum.zoom.us/u/royh)\
**Post date:** [June 10, 2020, 2:46pm UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490/11 "2020-06-10T14:46:30Z")

</div>

It works !

Thank you very much !

![image001.jpg](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/5/5193c252f959583a7a196184cebbedb6ae49ff2f.jpeg)

---

<div class="post-metadata">

**Author:** ![tom.brix](https://avatars.discourse-cdn.com/v4/letter/t/48db29/32.png) [@tom.brix](https://devforum.zoom.us/u/tom.brix)\
**Post date:** [June 10, 2020, 8:17pm UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490/12 "2020-06-10T20:17:33Z")

</div>

I am running a query to pull all users and am getting a 401 unauthorized. I am an admin in Zoom (not the owner). I just pulled the secret and key from Zoom admin console under personal/settings. We have over 800 users and I have tried

#In Powershell it’s explicitly written as a string for the key and secret  
$apiKey = ‘_**’  
$apiSecret = '**_’

Get-ZoomUsers -AllPages -ApiKey $apiKey -ApiSecret $apiSecret  
Get-ZoomUsers : The remote server returned an error: (401) Unauthorized.  
At line:1 char:1

- Get-ZoomUsers -AllPages -ApiKey $apiKey -ApiSecret $apiSecret
- 

```auto
  + CategoryInfo : InvalidOperation: (:) [Write-Error], WriteErrorException
  + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Get-ZoomUsers

```

Get-ZoomUsers : The remote server returned an error: (401) Unauthorized.  
At C:\Program Files\WindowsPowerShell\Modules\pszoom\1.1.8\Public\Users\Get-ZoomUsers.ps1:181 char:27

- … ageCount = (Get-ZoomUsers -PageSize 300 @params -FullApiResponse).pag …
- 

```
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

```

  - CategoryInfo : InvalidOperation: (🙂 [Write-Error], WriteErrorException
  - FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Get-ZoomUsers

* * *

Separate Instance

* * *

Get-ZoomUsers -PageNumber 1 -ApiKey $apiKey -ApiSecret $apiSecret  
Get-ZoomUsers : The remote server returned an error: (401) Unauthorized.  
At line:1 char:1

- Get-ZoomUsers -PageNumber 1 -ApiKey $apiKey -ApiSecret $apiSecret
- 

```auto
  + CategoryInfo : InvalidOperation: (:) [Write-Error], WriteErrorException
  + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Get-ZoomUsers
```

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [June 15, 2020, 7:41pm UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490/13 "2020-06-15T19:41:22Z")

</div>

Hey @tom.brix, and everyone

For issues, please bring this up with @maci01 here:

> **[JosephMcEvoy/PSZoom](https://github.com/JosephMcEvoy/PSZoom/issues)**
>
> A Powershell wrapper to interface with the Zoom API (Zoom Video Communications). - JosephMcEvoy/PSZoom

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![DeveloperBot](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/developerbot/32/12632_2.png) [@DeveloperBot](https://devforum.zoom.us/u/DeveloperBot)\
**Post date:** [August 21, 2020, 10:03pm UTC](https://devforum.zoom.us/t/pszoom-a-powershell-module-for-zooms-rest-api/6490/14 "2020-08-21T22:03:06Z")

</div>


