The primary purpose of this project is to create a set of reuseable cmdlets to interact with the WS1 API via PowerShell. There are many great scripts put online, but one thing in common is they all spend a lot of unnecessary effort re-creating basic functions. The publicly available APIs from VMware are reasonably well-documented and contain clearly known parameters.
The goal for this is to reduce the time for a WS1 admin to write scripts for their environment. Let's focus on getting things done and not creating 10 ways to do the same thing.
NOTE: This effort is community-driven and is not supported by VMware. Please perform due diligence and review code and consider this before running in a production environment. These cmdlets are frequently being improved and may not function as expected. Always test your code in a non-production environment first!
These updated functions are intended to work with PowerShell Core. Please install that before you try to use the functions in these modules! https://github.com/PowerShell/PowerShell
- AdminUsers.psm1 -- Work with Admin Accounts
- ConnectionConfig.psm1 -- setup of the API connection, getting credentials, etc.
- Devices.psm1 -- Work with Devices
- InputFunctions.psm1 -- Functions for importing .csv files and helping setup scripting environment
- OrgGroups.psm1 -- Work with OGs
- SmartGroups.psm1 -- Work with SGs
- TAGs.psm1 -- Work with TAGs
- Users.psm1 -- Work with standard User accounts
To use these cmdlets, they must be imported as modules. You can use the ./ws1_sample_start.ps1 script to import them. The modules reference each other to reduce code reuse, so you should import all of the modules and not skip any.
Once the modules have been imported, assign a variable to the select-ws1Config
cmdlet to generate REST API Headers.
$headers = select-ws1Config
The select-ws1Config will walk you through how you want to connect to the API.
When you need to use the -header parameter, you will use the variable assigned in USAGE setp 2. (i.e. $headers = select-ws1Config
)
Functions in each script can have their help contents retrieved like other cmdlets. get-help -ws1
* find-ws1AdminUser
* new-ws1AdminUser
* set-ws1AdminUser
* remove-ws1AdminUser
* get-ws1AdminUser
* new-ws1RestConnection
* select-ws1Config
* get-ws1SettingsFile
* test-ws1EnvConfigFile
* add-ws1RestConfig
* update-ws1EnvConfigFile
* convertTo-ws1HeaderVersion
* trace-ws1Error
* get-ws1BulkDeviceSettings
* find-ws1Device
* get-ws1Device
* get-ws1BulkDevice
* search-ws1Devices
* clear-ws1Device
* clear-ws1DeviceV2
* remove-ws1Device
* set-ws1Device
* set-ws1DeviceManagedSettings
* remove-ws1BulkDevice
* send-ws1Message
* move-ws1Device
* get-ws1DeviceCount
* update-ws1DeviceOutput
* import-ws1DeviceCsv
* import-ws1Csv (deprecated)
* get-threadCount
* get-ws1LogFolder
* get-ws1InputArchive
* new-ws1InputArchive
* get-ws1Folders
* find-CustomerOGID
* get-awOgTree
* clear-awOrgTree
* add-ws1OrgGroup
* find-ws1OrgGroup
* get-ws1OrgGroup
* get-ws1SmartGroup
* find-ws1SmartGroup
* search-ws1Tags
* set-ws1DeviceTag
* get-ws1TaggedDevices
* new-ws1User
* find-ws1User
* get-ws1User
* set-ws1User
* update-ws1UserOutput
* remove-ws1User
* disable-ws1User