- Fix invalid Id error, #262
- Add
Get-ServiceNowRecord -FilterString
to provide a filter from the UI, #267 - Update datetime conversion in
Get-ServiceNowRecord
to reduce possible exceptions, #265 - Fix list based fields appending brackets in
Update-ServiceNowRecord
, #260
- Add instance level timeout with
New-ServiceNowSession -TimeoutSec
, #246
- Add instance level timeout with
New-ServiceNowSession -TimeoutSec
, #246
- Add workaround for powershell basic header bug, #249
- Add
Update-ServiceNowRecord -CustomVariableData
to update custom variable values, #237 - Add
New-ServiceNowChangeRequest
support for change models and standard change templates - Fix 0 byte file error with
Add-ServiceNowAttachment
, #241 Get-ServiceNowRecord -New
has been deprecated and the new format is the only optionUpdate-ServiceNowChangeRequest
,Update-ServiceNowincident
, andUpdate-ServiceNowRequestedItem
deprecated. UseUpdate-ServiceNowRecord
. The only difference was the table name and didn't make sense to maintain so many functions when documenting will do.Update-ServiceNowRecord
has been enhanced as well so all updates can take advantage.Get-ServiceNowRecordInterim
has been deprecated.- Add generic
-Table
and-ID
lookup function has been created and used across all functions where these parameters are used - Add
-Table
tab ahead forRemove-ServiceNowRecord
andExport-ServiceNowRecord
- Add
-ID
only lookup, no table name needed, for all - Add/Update parameter sets to make it clearer when to use
-Table
,-ID
,-Filter
, etc - Add pipeline support to
Export-ServiceNowRecord
,New-ServiceNowRecord
, andUpdate-ServiceNowRecord
- Add
Get-ServiceNowRecord -ParentID
without providing-Table
returns all tasks associated with that parent record - Standardize parameter names across functions
Get-ServiceNowRecord
, custom variables of type Reference providing sysid instead of actual value, #218
- Fix
Add-ServiceNowAttachment
content type error when attempting to add multiple files, #207
- Update
Get-ServiceNowRecord
to ensure new custom variable format is pscustomobject, #205
- Add
New-ServiceNowChangeTask
, #103 - Add GraphQL support including
New-ServiceNowSession -GraphQL
andInvoke-ServiceNowGraphQL
, the latter is a WIP - Update custom variable format with
Get-ServiceNowRecord -IncludeCustomVariable
. The new format adds each custom variable as an object property as opposed to an array of hashtables. Old:$response.CustomVariable.where{$_.name -eq 'mycustvar'}.value
, New:$response.CustomVariable.mycustvar.value
. Access the new format with-IncludeCustomVariable -New
- Add docker image with each new build and publish to dockerhub. Add the below environment variables to
Get-ServiceNowAuth
for use with docker image, but could be used outside of it as well.- SNOW_SERVER: the ServiceNow instance, eg. instance.service-now.com
- SNOW_TOKEN: pre-generated oauth token. Provide this or SNOW_USER/SNOW_PASS.
- SNOW_USER: username to connect to SNOW_SERVER
- SNOW_PASS: password for SNOW_USER
- Fix
Get-ServiceNowAttachment
returning 0 records when the table name didn't match the table class name, #188 - Update
Add-ServiceNowAttachment
-Table
and-ID
parameters with the same 'smarts' as other functions with table name lookup
- Add
Export-ServiceNowRecord
to write records to csv, xls, xlsx, xml, or pdf. Supports filtering, sorting, and specific properties just likeGet-ServiceNowRecord
. #186
- Fix #183,
Get-ServiceNowRecord -Filter
parameter not applying in some circumstances - Update display formats to correctly show values when
-DisplayValue
is false - Update
Get-ServiceNowRecord
help
- Fix #172,
Get-ServiceNowRecord -IncludeCustomVariable
not returning values Get-ServiceNowRecord -IncludeCustomVariable
'variable.' prefix has been removed from custom variable property name.- Add pipeline functionality to
-Id
parameter ofGet-ServiceNowRecord
- Fix
Get-ServiceNowRecord -AsValue
causing error with some values
- Add
AsValue
parameter toGet-ServiceNowRecord
to return the underlying value for a property instead of a pscustomobject. Get your sys_id directly! - Add formatting for Unique Certificate (cmdb_ci_certificate) table
- Add
AsValue
parameter toExport-ServiceNowAttachment
to return attachment contents instead of writing to a file
- Add table name translation to
Get-ServiceNowAttachment
where sys_class_name does not match table name - Change .endswith operator from % to ENDSWITH as % was not working
- Add email type to custom variables, #173
- Fix #167, fix ServiceNowTable not being populated on Linux due to file name case
- Fix #160, adding an attachment to catalog tasks not working for instances created pre-Istanbul. Thanks @natescherer!
- Fix #158, failure on successful record deletion
- Move table details retrieval in
New-ServiceNowSession
to be switch operated,-GetAllTable
and reduce function time - Fix pipelining in
Remove-ServiceNowRecord
- Add DateTime support to querying, #68
- Add
-between
operator - Enhanced value validation for all operators in
New-ServiceNowQuery
which is used byGet-ServiceNowRecord
- Fix #152, object conversion to json failing.
- Fix #149, combination of
-Id
and-IncludeCustomVariable
failing. Thanks @natescherer. - Fix #150, Test-ServiceNowURL does not account for URL with a - character. The validation wasn't providing much value so was removed.
- Getting info on all tables so we can be more intelligent/dynamic about prefixes. Querying the sys_number table and might require elevated rights. If rights aren't present, no failure will occur, this is just an added bonus for those with rights :)
- New functionality in
Get-ServiceNowRecord
- Add
Id
property to easily retrieve a record by either number or sysid. - Add
ParentId
property to easily retrieve records based on the parent number or sysid. For example, to retrieve catalog tasks associated with a requested item executeGet-ServiceNowRecord -Table 'Catalog Task' -ParentId RITM01234567
. - Add
Description
property to retrieve records based on a table specific description field. For many tables this field will be short_description, but will be different for others. For example, when performing this against the 'User' table, the description field is 'Name'. - Add ability to provide a known prefixed
Id
without providingTable
,Get-ServiceNowRecord -Id inc0010001
. To see the list of known prefixes, execute$ServiceNowTable.NumberPrefix
after importing the module. - Add alias
gsnr
. With the above change, a Get can be as simple asgsnr inc0010001
.
- Add
- Add autocomplete for
Table
parameter inAdd-ServiceNowAttachment
andGet-ServiceNowAttachment
. - Add
Id
parameter toAdd-ServiceNowAttachment
andUpdate-ServiceNowRecord
which accepts either number or sysid. Just as withGet-ServiceNowRecord
you can now provide justId
if it has a known prefix. - Add ability to
Get-ServiceNowAttachment
to get attachments either via associated record or directly from the attachments table when you want to search all attachments. - Add advanced filtering and sorting functionality to
Get-ServiceNowAttachment
which can be really useful when searching across the attachments table. - Convert access and refresh tokens in $ServiceNowSession from plain text to a credential for added security.
- Pipeline enhancements added in many places.
- Add Change Task and Attachments to formats.
Update-ServiceNowNumber
has been deprecated and the functionality has been added toUpdate-ServiceNowRecord
. An alias has also been added so existing scripts do not break.- Prep for removal of all
Get-
functions except forGet-ServiceNowRecord
andGet-ServiceNowAttachment
. Table specific Get functions have been deprecated.Get-ServiceNowRecordInterim
has been created and all table specific Get functions have been aliased so existing scripts do not break. Please start to migrate toGet-ServiceNowRecord
as these functions will all be deprecated in the near future. - As communicated in v2.0, authentication cleanup has occurred. This involves removal of Credential/Url authentication in each function in favor of
ServiceNowSession
. You can still authenticate with Credential/Url, but must useNew-ServiceNowSession
.Set-ServiceNowAuth
,Remove-ServiceNowAuth
, andTest-ServiceNowAuthIsSet
have been deprecated. - Breaking change: rename
Get-ServiceNowAttachmentDetail
toGet-ServiceNowAttachment
. - Breaking change: rename
Get-ServiceNowAttachment
toExport-ServiceNowAttachment
. - Breaking change:
Get-ServiceNowTable
andGet-ServiceNowTableEntry
have been deprecated. UseGet-ServiceNowRecord
.
- Fix #141, add
UseBasicParsing
to all API calls to keep AA from failing when IE hasn't been initialized
- Add
-IncludeCustomVariable
toGet-ServiceNowRecord
to retrieve custom variables, eg. ritm form values, in addition to the standard fields. #138
- Add
New-ServiceNowConfigurationItem
, #109 - Add grouping operators -and and -group as well as comparison operators -startwith and -endswith to
Get-ServiceNowRecord -Filter
to keep with the -operator standard - Add tab ahead/completion for the
-Table
property inGet-ServiceNowRecord
. This will allow you to cycle through the different tables the module is aware of. The values are the 'common' names, not table names so it's easier to understand for beginners. You can also provide any other table name ad hoc. - Add Change Task to formatter and tab ahead
- Fix null index error when executing
New-ServiceNowQuery
without providing a value for-Sort
- Fix #136 to account for PS v7.x Invoke-WebRequest response headers all being arrays
- Added ability to pipe to
Add-ServiceNowAttachment
andGet-ServiceNowAttachmentDetail
. For example,New-ServiceNowIncident @params -PassThru | Add-ServiceNowAttachment -File MyFile.txt
. This will create an incident and add an attachment in one step.
- Fix query operator -notin and -notlike which had a missing space
- Move verbose logging message in
Invoke-ServiceNowRestMethod
for number of records so it always shows. This is helpful when you change a filter and can see how many records would be returned without actually returning them.
- Add paging support to all
Get-
functions. Use-First
,-Skip
, and-IncludeTotalCount
parameters. In support of this, api calls have been changed from Invoke-RestMethod to Invoke-WebRequest. - Additional pipline support added for Table and SysId parameters to pipe
Get-
functions toUpdate-
andRemove-
. - Breaking change: deprecate
-Limit
parameter. The warning regarding deprecation went out over 2 years ago and now that paging has been implemented, it's a good time for this cleanup. Use-First
instead. - 'TableEntry' renamed to 'Record' for
New-
,Update-
, andRemove-
functions. Aliases added.
- Add advanced filtering and sorting. Initially implemented with
New-ServiceNowQuery
andGet-ServiceNowRecord
. Filter with many different comparison operators as well as 'and', 'or', and 'group'ing. Sort ascending or descending against multiple fields. Comparison operators are the same as PowerShell for ease of use. Please use the GitHub Discussions section to provide feedback, thoughts, etc. - Add
Get-ServiceNowRecord
. This function implements the new advanced filtering and sorting. As long as you know your table name, this can replace all other Get functions. - Enumerate implemented tables and advanced filtering operators in a json config to easily manage going forward; make available via script scoped variables. Be able to reference types from this config per table, removing the need to have separate Get functions for every table.
- Add type for catalog task
- Fix error when getting an empty result from the api and performing a type lookup
- Rename
RequestItem
toRequestedItem
which is the actual name. Function aliases created.
- Add proxy support to
New-ServiceNowSession
, #97.
- Although still in the module for backward compatibility,
Set-ServiceNowAuth
is being replaced withNew-ServiceNowSession
. With this comes OAuth support, removal of global variables, and much more folks have asked for. The ability to provide credentials directly to functions has been retained for this release, but will be deprecated in a future release in favor of usingNew-ServiceNowSession
. - Support for different api versions.
Set-ServiceNowAuth
will continue to use v1 of the api, butNew-ServiceNowSession
defaults to the latest. Check out the-ApiVersion
parameter ofNew-ServiceNowSession
. Remove-ServiceNowAuth
has been retained for this release, but as global variables have been removed, there is no longer a need for it; it will always return$true
. It will be removed in a future release.-PassThru
added to remainingUpdate-
andNew-
functions. Depending on your code, this may be a breaking change if you expected the result to be returned.- Pipeline support added to many functions
- Standardizing on coding between all functions
- Update links to reference the new GitHub organization this project will be moved to. Module functionality unchanged.
- Add Update-ServiceNowRequestItem
- Fix switch statements by adding breaks to each condition
- Add New-ServiceNowChangeRequest
- Add Update-ServiceNowDateTimeField
- Add Add-ServiceNowAttachment
- Add Get-ServiceNowAttachment
- Add Get-ServiceNowAttachmentDetail
- Add Remove-ServiceNowAttachment