├── .gitattributes
├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE.md
├── ISSUE_TEMPLATE
│ ├── feature_request.md
│ └── issue-report.md
└── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── Tests
├── Add-PASAccount.Tests.ps1
├── Add-PASAccountACL.Tests.ps1
├── Add-PASAccountGroupMember.Tests.ps1
├── Add-PASAllowedReferrer.Tests.ps1
├── Add-PASApplication.Tests.ps1
├── Add-PASApplicationAuthenticationMethod.Tests.ps1
├── Add-PASAuthenticationMethod.Tests.ps1
├── Add-PASDirectory.Tests.ps1
├── Add-PASDiscoveredAccount.Tests.ps1
├── Add-PASDiscoveredLocalAccount.Tests.ps1
├── Add-PASGroupMember.Tests.ps1
├── Add-PASOpenIDConnectProvider.Tests.ps1
├── Add-PASPTAExcludedTarget.Tests.ps1
├── Add-PASPTAGlobalCatalog.Tests.ps1
├── Add-PASPTAIncludedTarget.Tests.ps1
├── Add-PASPTAPrivilegedGroup.Tests.ps1
├── Add-PASPTAPrivilegedUser.Tests.ps1
├── Add-PASPTARule.Tests.ps1
├── Add-PASPendingAccount.Tests.ps1
├── Add-PASPersonalAdminAccount.Tests.ps1
├── Add-PASPolicyACL.Tests.ps1
├── Add-PASPublicSSHKey.Tests.ps1
├── Add-PASSafe.Tests.ps1
├── Add-PASSafeMember.Tests.ps1
├── Approve-PASRequest.Tests.ps1
├── Assert-VersionRequirement.Tests.ps1
├── Clear-PASDiscoveredAccountList.Tests.ps1
├── Clear-PASDiscoveredLocalAccount.Tests.ps1
├── Clear-PASLinkedAccount.Tests.ps1
├── Clear-PASPrivateSSHKey.Tests.ps1
├── Close-PASSession.Tests.ps1
├── Compare-MaximumVersion.Tests.ps1
├── Compare-MinimumVersion.Tests.ps1
├── Connect-PASPSMSession.Tests.ps1
├── ConvertFrom-KeyValuePair.Tests.ps1
├── ConvertTo-BulkFilterItem.Tests.ps1
├── ConvertTo-ConnectionParam.Tests.ps1
├── ConvertTo-FilterString.Tests.ps1
├── ConvertTo-InsecureString.Tests.ps1
├── ConvertTo-QueryString.Tests.ps1
├── ConvertTo-SortedPermission.Tests.ps1
├── ConvertTo-UnixTime.Tests.ps1
├── Copy-PASPlatform.Tests.ps1
├── Deny-PASRequest.Tests.ps1
├── Disable-PASCPMAutoManagement.Tests.ps1
├── Disable-PASPlatform.Tests.ps1
├── Disable-PASUser.Tests.ps1
├── Enable-PASCPMAutoManagement.Tests.ps1
├── Enable-PASPlatform.Tests.ps1
├── Enable-PASUser.Tests.ps1
├── Export-PASPSMRecording.Tests.ps1
├── Export-PASPlatform.Tests.ps1
├── Find-PASSafe.Tests.ps1
├── Find-SharedServicesURL.Tests.ps1
├── Format-PASUserObject.Tests.ps1
├── Format-PutRequestObject.Tests.ps1
├── Get-ByteArray.Tests.ps1
├── Get-EscapedString.Tests.ps1
├── Get-NextLink.Tests.ps1
├── Get-PASAccount.Tests.ps1
├── Get-PASAccountACL.Tests.ps1
├── Get-PASAccountActivity.Tests.ps1
├── Get-PASAccountDetail.Tests.ps1
├── Get-PASAccountGroup.Tests.ps1
├── Get-PASAccountGroupMember.Tests.ps1
├── Get-PASAccountImportJob.Tests.ps1
├── Get-PASAccountPassword.Tests.ps1
├── Get-PASAccountPasswordVersion.Tests.ps1
├── Get-PASAccountSSHKey.Tests.ps1
├── Get-PASAllowedReferrer.Tests.ps1
├── Get-PASApplication.Tests.ps1
├── Get-PASApplicationAuthenticationMethod.Tests.ps1
├── Get-PASAuthenticationMethod.Tests.ps1
├── Get-PASBYOKConfig.Tests.ps1
├── Get-PASComponentDetail.Tests.ps1
├── Get-PASComponentSummary.Tests.ps1
├── Get-PASConnectionComponent.Tests.ps1
├── Get-PASDirectory.Tests.ps1
├── Get-PASDirectoryMapping.Tests.ps1
├── Get-PASDiscoveredAccount.Tests.ps1
├── Get-PASDiscoveredLocalAccount.Tests.ps1
├── Get-PASDiscoveredLocalAccountActivity.Tests.ps1
├── Get-PASGroup.Tests.ps1
├── Get-PASIPAllowList.Tests.ps1
├── Get-PASLinkedAccount.Tests.ps1
├── Get-PASLinkedGroup.Tests.ps1
├── Get-PASLoggedOnUser.Tests.ps1
├── Get-PASOnboardingRule.Tests.ps1
├── Get-PASOpenIDConnectProvider.Tests.ps1
├── Get-PASPSMRecording.Tests.ps1
├── Get-PASPSMRecordingActivity.Tests.ps1
├── Get-PASPSMRecordingProperty.Tests.ps1
├── Get-PASPSMServer.Tests.ps1
├── Get-PASPSMSession.Tests.ps1
├── Get-PASPSMSessionActivity.Tests.ps1
├── Get-PASPSMSessionProperty.Tests.ps1
├── Get-PASPTAEvent.Tests.ps1
├── Get-PASPTAExcludedTarget.Tests.ps1
├── Get-PASPTAGlobalCatalog.Tests.ps1
├── Get-PASPTAIncludedTarget.Tests.ps1
├── Get-PASPTAPrivilegedGroup.Tests.ps1
├── Get-PASPTAPrivilegedUser.Tests.ps1
├── Get-PASPTARemediation.Tests.ps1
├── Get-PASPTARiskEvent.Tests.ps1
├── Get-PASPTARiskSummary.Tests.ps1
├── Get-PASPTARule.Tests.ps1
├── Get-PASParameter.Tests.ps1
├── Get-PASPlatform.Tests.ps1
├── Get-PASPlatformPSMConfig.Tests.ps1
├── Get-PASPlatformSafe.Tests.ps1
├── Get-PASPlatformSummary.Tests.ps1
├── Get-PASPolicyACL.Tests.ps1
├── Get-PASPropertyObject.Tests.ps1
├── Get-PASPublicSSHKey.Tests.ps1
├── Get-PASRequest.Tests.ps1
├── Get-PASRequestDetail.Tests.ps1
├── Get-PASResponse.Tests.ps1
├── Get-PASSAMLResponse.Tests.ps1
├── Get-PASSafe.Tests.ps1
├── Get-PASSafeMember.Tests.ps1
├── Get-PASSafeShareLogo.Tests.ps1
├── Get-PASServer.Tests.ps1
├── Get-PASServerWebService.Tests.ps1
├── Get-PASSession.Tests.ps1
├── Get-PASUser.Tests.ps1
├── Get-PASUserLoginInfo.Tests.ps1
├── Get-PASUserTypeInfo.Tests.ps1
├── Get-ParentFunction.Tests.ps1
├── Get-SessionClone.Tests.ps1
├── Hide-SecretValue.Tests.ps1
├── Import-PASConnectionComponent.Tests.ps1
├── Import-PASPlatform.Tests.ps1
├── Invoke-PASCPMOperation.Tests.ps1
├── Invoke-PASRestMethod.Tests.ps1
├── New-PASAccountGroup.Tests.ps1
├── New-PASAccountObject.Tests.ps1
├── New-PASAccountPassword.Tests.ps1
├── New-PASDirectoryMapping.Tests.ps1
├── New-PASGroup.Tests.ps1
├── New-PASOnboardingRule.Tests.ps1
├── New-PASPSMSession.Tests.ps1
├── New-PASPrivateSSHKey.Tests.ps1
├── New-PASRequest.Tests.ps1
├── New-PASRequestObject.Tests.ps1
├── New-PASSession.Tests.ps1
├── New-PASUser.Tests.ps1
├── Out-PASFile.Tests.ps1
├── Publish-PASDiscoveredAccount.Tests.ps1
├── Publish-PASDiscoveredLocalAccount.Tests.ps1
├── Remove-PASAccount.Tests.ps1
├── Remove-PASAccountACL.Tests.ps1
├── Remove-PASAccountGroupMember.Tests.ps1
├── Remove-PASApplication.Tests.ps1
├── Remove-PASApplicationAuthenticationMethod.Tests.ps1
├── Remove-PASAuthenticationMethod.Tests.ps1
├── Remove-PASDirectory.Tests.ps1
├── Remove-PASDirectoryMapping.Tests.ps1
├── Remove-PASDiscoveredLocalAccount.Tests.ps1
├── Remove-PASGroup.Tests.ps1
├── Remove-PASGroupMember.Tests.ps1
├── Remove-PASOnboardingRule.Tests.ps1
├── Remove-PASOpenIDConnectProvider.Tests.ps1
├── Remove-PASPTAExcludedTarget.Tests.ps1
├── Remove-PASPTAIncludedTarget.Tests.ps1
├── Remove-PASPTAPrivilegedGroup.Tests.ps1
├── Remove-PASPTAPrivilegedUser.Tests.ps1
├── Remove-PASPlatform.Tests.ps1
├── Remove-PASPolicyACL.Tests.ps1
├── Remove-PASPrivateSSHKey.Tests.ps1
├── Remove-PASPublicSSHKey.Tests.ps1
├── Remove-PASRequest.Tests.ps1
├── Remove-PASSafe.Tests.ps1
├── Remove-PASSafeMember.Tests.ps1
├── Remove-PASUser.Tests.ps1
├── Request-PASJustInTimeAccess.Tests.ps1
├── Resume-PASPSMSession.Tests.ps1
├── Revoke-PASJustInTimeAccess.Tests.ps1
├── Send-RADIUSResponse.Tests.ps1
├── Set-PASAccount.Tests.ps1
├── Set-PASAuthenticationMethod.Tests.ps1
├── Set-PASDirectoryMapping.Tests.ps1
├── Set-PASDirectoryMappingOrder.Tests.ps1
├── Set-PASGroup.Tests.ps1
├── Set-PASIPAllowList.Tests.ps1
├── Set-PASLinkedAccount.Tests.ps1
├── Set-PASOnboardingRule.Tests.ps1
├── Set-PASOpenIDConnectProvider.Tests.ps1
├── Set-PASPTAEvent.Tests.ps1
├── Set-PASPTARemediation.Tests.ps1
├── Set-PASPTARiskEvent.Tests.ps1
├── Set-PASPTARule.Tests.ps1
├── Set-PASPlatformPSMConfig.Tests.ps1
├── Set-PASSafe.Tests.ps1
├── Set-PASSafeMember.Tests.ps1
├── Set-PASUser.Tests.ps1
├── Set-PASUserPassword.Tests.ps1
├── Skip-CertificateCheck.Tests.ps1
├── Start-PASAccountImportJob.Tests.ps1
├── Stop-PASPSMSession.Tests.ps1
├── Suspend-PASPSMSession.Tests.ps1
├── Test-PASPSMRecording.Tests.ps1
├── Unblock-PASUser.Tests.ps1
├── Unlock-PASAccount.Tests.ps1
├── Use-PASSession.Tests.ps1
└── psPAS.Tests.ps1
├── appveyor.yml
├── build
├── build.ps1
├── deploy-github.ps1
├── deploy-psgallery.ps1
├── install.ps1
└── test.ps1
├── docs
├── .gitignore
├── .travis.yml
├── CNAME
├── Gemfile
├── LICENSE
├── Rakefile
├── _config.yml
├── _data
│ ├── navigation.yml
│ └── ui-text.yml
├── _includes
│ ├── analytics-providers
│ │ ├── custom.html
│ │ ├── google-gtag.html
│ │ ├── google-universal.html
│ │ └── google.html
│ ├── analytics.html
│ ├── archive-single.html
│ ├── author-profile-custom-links.html
│ ├── author-profile.html
│ ├── breadcrumbs.html
│ ├── browser-upgrade.html
│ ├── category-list.html
│ ├── comment.html
│ ├── comments-providers
│ │ ├── custom.html
│ │ ├── discourse.html
│ │ ├── disqus.html
│ │ ├── facebook.html
│ │ ├── scripts.html
│ │ ├── staticman.html
│ │ ├── staticman_v2.html
│ │ └── utterances.html
│ ├── comments.html
│ ├── documents-collection.html
│ ├── feature_row
│ ├── figure
│ ├── footer.html
│ ├── footer
│ │ └── custom.html
│ ├── gallery
│ ├── group-by-array
│ ├── head.html
│ ├── head
│ │ └── custom.html
│ ├── masthead.html
│ ├── nav_list
│ ├── page__hero.html
│ ├── page__hero_video.html
│ ├── page__taxonomy.html
│ ├── paginator.html
│ ├── post_pagination.html
│ ├── posts-category.html
│ ├── posts-tag.html
│ ├── read-time.html
│ ├── scripts.html
│ ├── search
│ │ ├── algolia-search-scripts.html
│ │ ├── google-search-scripts.html
│ │ ├── lunr-search-scripts.html
│ │ └── search_form.html
│ ├── seo.html
│ ├── sidebar.html
│ ├── skip-links.html
│ ├── social-share.html
│ ├── tag-list.html
│ ├── toc
│ ├── toc.html
│ └── video
├── _layouts
│ ├── archive-taxonomy.html
│ ├── archive.html
│ ├── categories.html
│ ├── category.html
│ ├── collection.html
│ ├── compress.html
│ ├── default.html
│ ├── home.html
│ ├── posts.html
│ ├── search.html
│ ├── single-mod.html
│ ├── single.html
│ ├── splash.html
│ ├── tag.html
│ └── tags.html
├── _sass
│ ├── minimal-mistakes.scss
│ └── minimal-mistakes
│ │ ├── _animations.scss
│ │ ├── _archive.scss
│ │ ├── _base.scss
│ │ ├── _buttons.scss
│ │ ├── _footer.scss
│ │ ├── _forms.scss
│ │ ├── _masthead.scss
│ │ ├── _mixins.scss
│ │ ├── _navigation.scss
│ │ ├── _notices.scss
│ │ ├── _page.scss
│ │ ├── _print.scss
│ │ ├── _reset.scss
│ │ ├── _search.scss
│ │ ├── _sidebar.scss
│ │ ├── _syntax.scss
│ │ ├── _tables.scss
│ │ ├── _utilities.scss
│ │ ├── _variables.scss
│ │ └── skins
│ │ ├── _air.scss
│ │ ├── _aqua.scss
│ │ ├── _contrast.scss
│ │ ├── _dark.scss
│ │ ├── _default.scss
│ │ ├── _dirt.scss
│ │ ├── _mint.scss
│ │ ├── _neon.scss
│ │ ├── _plum.scss
│ │ └── _sunrise.scss
├── assets
│ ├── css
│ │ └── main.scss
│ ├── images
│ │ ├── Email.png
│ │ ├── Email_symbol.png
│ │ ├── New-PASSession
│ │ │ ├── CodeFlow.png
│ │ │ ├── IIS.png
│ │ │ ├── RADIUS.png
│ │ │ └── SAML.png
│ │ ├── PSPETE_symbol.png
│ │ ├── bio-photo.jpg
│ │ ├── company_logo_symbol.png
│ │ ├── favicon.png
│ │ ├── favicon_symbol.png
│ │ ├── github.png
│ │ ├── header_photo.png
│ │ ├── help.png
│ │ ├── import.png
│ │ ├── install.png
│ │ ├── linkedin.png
│ │ ├── psPAS-Logo-1.png
│ │ ├── shop_banner_symbol.png
│ │ ├── symbol.png
│ │ └── team_logo.png
│ └── js
│ │ ├── _main.js
│ │ ├── lunr
│ │ ├── lunr-en.js
│ │ ├── lunr-gr.js
│ │ ├── lunr-store.js
│ │ ├── lunr.js
│ │ └── lunr.min.js
│ │ ├── main.min.js
│ │ └── plugins
│ │ ├── gumshoe.js
│ │ ├── jquery.ba-throttle-debounce.js
│ │ ├── jquery.fitvids.js
│ │ ├── jquery.greedy-navigation.js
│ │ ├── jquery.magnific-popup.js
│ │ └── smooth-scroll.js
├── banner.js
├── collections
│ ├── _commands
│ │ ├── Add-PASAccount.md
│ │ ├── Add-PASAccountACL.md
│ │ ├── Add-PASAccountGroupMember.md
│ │ ├── Add-PASAllowedReferrer.md
│ │ ├── Add-PASApplication.md
│ │ ├── Add-PASApplicationAuthenticationMethod.md
│ │ ├── Add-PASAuthenticationMethod.md
│ │ ├── Add-PASDirectory.md
│ │ ├── Add-PASDiscoveredAccount.md
│ │ ├── Add-PASDiscoveredLocalAccount.md
│ │ ├── Add-PASGroupMember.md
│ │ ├── Add-PASOpenIDConnectProvider.md
│ │ ├── Add-PASPTAExcludedTarget.md
│ │ ├── Add-PASPTAGlobalCatalog.md
│ │ ├── Add-PASPTAIncludedTarget.md
│ │ ├── Add-PASPTAPrivilegedGroup.md
│ │ ├── Add-PASPTAPrivilegedUser.md
│ │ ├── Add-PASPTARule.md
│ │ ├── Add-PASPendingAccount.md
│ │ ├── Add-PASPersonalAdminAccount.md
│ │ ├── Add-PASPolicyACL.md
│ │ ├── Add-PASPublicSSHKey.md
│ │ ├── Add-PASSafe.md
│ │ ├── Add-PASSafeMember.md
│ │ ├── Approve-PASRequest.md
│ │ ├── Clear-PASDiscoveredAccountList.md
│ │ ├── Clear-PASDiscoveredLocalAccount.md
│ │ ├── Clear-PASLinkedAccount.md
│ │ ├── Clear-PASPrivateSSHKey.md
│ │ ├── Close-PASSession.md
│ │ ├── Connect-PASPSMSession.md
│ │ ├── Copy-PASPlatform.md
│ │ ├── Deny-PASRequest.md
│ │ ├── Disable-PASCPMAutoManagement.md
│ │ ├── Disable-PASPlatform.md
│ │ ├── Disable-PASUser.md
│ │ ├── Enable-PASCPMAutoManagement.md
│ │ ├── Enable-PASPlatform.md
│ │ ├── Enable-PASUser.md
│ │ ├── Export-PASPSMRecording.md
│ │ ├── Export-PASPlatform.md
│ │ ├── Find-PASSafe.md
│ │ ├── Get-PASAccount.md
│ │ ├── Get-PASAccountACL.md
│ │ ├── Get-PASAccountActivity.md
│ │ ├── Get-PASAccountDetail.md
│ │ ├── Get-PASAccountGroup.md
│ │ ├── Get-PASAccountGroupMember.md
│ │ ├── Get-PASAccountImportJob.md
│ │ ├── Get-PASAccountPassword.md
│ │ ├── Get-PASAccountPasswordVersion.md
│ │ ├── Get-PASAccountSSHKey.md
│ │ ├── Get-PASAllowedReferrer.md
│ │ ├── Get-PASApplication.md
│ │ ├── Get-PASApplicationAuthenticationMethod.md
│ │ ├── Get-PASAuthenticationMethod.md
│ │ ├── Get-PASBYOKConfig.md
│ │ ├── Get-PASComponentDetail.md
│ │ ├── Get-PASComponentSummary.md
│ │ ├── Get-PASConnectionComponent.md
│ │ ├── Get-PASDirectory.md
│ │ ├── Get-PASDirectoryMapping.md
│ │ ├── Get-PASDiscoveredAccount.md
│ │ ├── Get-PASDiscoveredLocalAccount.md
│ │ ├── Get-PASDiscoveredLocalAccountActivity.md
│ │ ├── Get-PASGroup.md
│ │ ├── Get-PASIPAllowList.md
│ │ ├── Get-PASLinkedAccount.md
│ │ ├── Get-PASLinkedGroup.md
│ │ ├── Get-PASLoggedOnUser.md
│ │ ├── Get-PASOnboardingRule.md
│ │ ├── Get-PASOpenIDConnectProvider.md
│ │ ├── Get-PASPSMRecording.md
│ │ ├── Get-PASPSMRecordingActivity.md
│ │ ├── Get-PASPSMRecordingProperty.md
│ │ ├── Get-PASPSMServer.md
│ │ ├── Get-PASPSMSession.md
│ │ ├── Get-PASPSMSessionActivity.md
│ │ ├── Get-PASPSMSessionProperty.md
│ │ ├── Get-PASPTAEvent.md
│ │ ├── Get-PASPTAExcludedTarget.md
│ │ ├── Get-PASPTAGlobalCatalog.md
│ │ ├── Get-PASPTAIncludedTarget.md
│ │ ├── Get-PASPTAPrivilegedGroup.md
│ │ ├── Get-PASPTAPrivilegedUser.md
│ │ ├── Get-PASPTARemediation.md
│ │ ├── Get-PASPTARiskEvent.md
│ │ ├── Get-PASPTARiskSummary.md
│ │ ├── Get-PASPTARule.md
│ │ ├── Get-PASPlatform.md
│ │ ├── Get-PASPlatformPSMConfig.md
│ │ ├── Get-PASPlatformSafe.md
│ │ ├── Get-PASPlatformSummary.md
│ │ ├── Get-PASPolicyACL.md
│ │ ├── Get-PASPublicSSHKey.md
│ │ ├── Get-PASRequest.md
│ │ ├── Get-PASRequestDetail.md
│ │ ├── Get-PASSafe.md
│ │ ├── Get-PASSafeMember.md
│ │ ├── Get-PASSafeShareLogo.md
│ │ ├── Get-PASServer.md
│ │ ├── Get-PASServerWebService.md
│ │ ├── Get-PASSession.md
│ │ ├── Get-PASUser.md
│ │ ├── Get-PASUserLoginInfo.md
│ │ ├── Get-PASUserTypeInfo.md
│ │ ├── Import-PASConnectionComponent.md
│ │ ├── Import-PASPlatform.md
│ │ ├── Invoke-PASCPMOperation.md
│ │ ├── New-PASAccountGroup.md
│ │ ├── New-PASAccountObject.md
│ │ ├── New-PASAccountPassword.md
│ │ ├── New-PASDirectoryMapping.md
│ │ ├── New-PASGroup.md
│ │ ├── New-PASOnboardingRule.md
│ │ ├── New-PASPSMSession.md
│ │ ├── New-PASPrivateSSHKey.md
│ │ ├── New-PASRequest.md
│ │ ├── New-PASRequestObject.md
│ │ ├── New-PASSession.md
│ │ ├── New-PASUser.md
│ │ ├── Publish-PASDiscoveredAccount.md
│ │ ├── Publish-PASDiscoveredLocalAccount.md
│ │ ├── Remove-PASAccount.md
│ │ ├── Remove-PASAccountACL.md
│ │ ├── Remove-PASAccountGroupMember.md
│ │ ├── Remove-PASApplication.md
│ │ ├── Remove-PASApplicationAuthenticationMethod.md
│ │ ├── Remove-PASAuthenticationMethod.md
│ │ ├── Remove-PASDirectory.md
│ │ ├── Remove-PASDirectoryMapping.md
│ │ ├── Remove-PASDiscoveredLocalAccount.md
│ │ ├── Remove-PASGroup.md
│ │ ├── Remove-PASGroupMember.md
│ │ ├── Remove-PASOnboardingRule.md
│ │ ├── Remove-PASOpenIDConnectProvider.md
│ │ ├── Remove-PASPTAExcludedTarget.md
│ │ ├── Remove-PASPTAIncludedTarget.md
│ │ ├── Remove-PASPTAPrivilegedGroup.md
│ │ ├── Remove-PASPTAPrivilegedUser.md
│ │ ├── Remove-PASPlatform.md
│ │ ├── Remove-PASPolicyACL.md
│ │ ├── Remove-PASPrivateSSHKey.md
│ │ ├── Remove-PASPublicSSHKey.md
│ │ ├── Remove-PASRequest.md
│ │ ├── Remove-PASSafe.md
│ │ ├── Remove-PASSafeMember.md
│ │ ├── Remove-PASUser.md
│ │ ├── Request-PASJustInTimeAccess.md
│ │ ├── Resume-PASPSMSession.md
│ │ ├── Revoke-PASJustInTimeAccess.md
│ │ ├── Set-PASAccount.md
│ │ ├── Set-PASAuthenticationMethod.md
│ │ ├── Set-PASDirectoryMapping.md
│ │ ├── Set-PASDirectoryMappingOrder.md
│ │ ├── Set-PASGroup.md
│ │ ├── Set-PASIPAllowList.md
│ │ ├── Set-PASLinkedAccount.md
│ │ ├── Set-PASOnboardingRule.md
│ │ ├── Set-PASOpenIDConnectProvider.md
│ │ ├── Set-PASPTAEvent.md
│ │ ├── Set-PASPTARemediation.md
│ │ ├── Set-PASPTARiskEvent.md
│ │ ├── Set-PASPTARule.md
│ │ ├── Set-PASPlatformPSMConfig.md
│ │ ├── Set-PASSafe.md
│ │ ├── Set-PASSafeMember.md
│ │ ├── Set-PASUser.md
│ │ ├── Set-PASUserPassword.md
│ │ ├── Start-PASAccountImportJob.md
│ │ ├── Stop-PASPSMSession.md
│ │ ├── Suspend-PASPSMSession.md
│ │ ├── Test-PASPSMRecording.md
│ │ ├── Unblock-PASUser.md
│ │ ├── Unlock-PASAccount.md
│ │ └── Use-PASSession.md
│ ├── _docs
│ │ ├── 00-install.md
│ │ ├── 01-authentication.md
│ │ ├── 10-compatibility.md
│ │ ├── 18-troubleshooting.md
│ │ ├── 20-search.md
│ │ ├── 22-administration.md
│ │ ├── 24-cpm-operations.md
│ │ ├── 26-pipeline-operations.md
│ │ ├── 30-bulk-operations.md
│ │ ├── 32-safe-permissions.md
│ │ ├── 34-psm-sessions.md
│ │ ├── 36-update-accounts.md
│ │ ├── 38-methods.md
│ │ └── 40-api-sessions.md
│ ├── _drafts
│ │ ├── ####-##-##-pspas-article.md
│ │ ├── ####-##-##-pspas-release-#-#.md
│ │ └── 2024-01-27-pspas-release-6-1.md
│ ├── _pages
│ │ ├── about.md
│ │ ├── articles.md
│ │ ├── category-archive.md
│ │ ├── commands.md
│ │ └── tag-archive.md
│ └── _posts
│ │ ├── 2018-02-12-pspas-release-1-0.md
│ │ ├── 2018-03-09-pspas-release-1-1.md
│ │ ├── 2018-04-17-pspas-release-1-2.md
│ │ ├── 2018-06-05-pspas-release-1-3.md
│ │ ├── 2018-07-08-pspas-release-2-0.md
│ │ ├── 2018-07-18-pspas-release-2-1.md
│ │ ├── 2018-10-21-pspas-release-2-2.md
│ │ ├── 2018-12-02-pspas-release-2-3.md
│ │ ├── 2019-02-16-pspas-release-2-4.md
│ │ ├── 2019-04-30-pspas-release-2-5.md
│ │ ├── 2019-05-16-pspas-release-2-6.md
│ │ ├── 2019-07-01-pspas-release-3-0.md
│ │ ├── 2019-07-19-pspas-release-3-1.md
│ │ ├── 2019-09-17-pspas-release-3-2.md
│ │ ├── 2019-12-13-pspas-release-3-3.md
│ │ ├── 2020-01-27-pspas-release-3-4.md
│ │ ├── 2020-04-02-pspas-release-3-5.md
│ │ ├── 2020-07-01-pspas-release-4-0.md
│ │ ├── 2020-07-14-pspas-release-4-1.md
│ │ ├── 2020-07-27-pspas-release-4-2.md
│ │ ├── 2020-08-20-pspas-release-4-3.md
│ │ ├── 2020-08-24-pspas-release-4-4.md
│ │ ├── 2020-11-25-pspas-release-4-5.md
│ │ ├── 2021-04-11-pspas-release-5-0.md
│ │ ├── 2021-07-13-pspas-release-5-1.md
│ │ ├── 2021-11-07-pspas-release-5-2.md
│ │ ├── 2022-08-17-pspas-release-5-3.md
│ │ ├── 2022-09-26-pspas-release-5-4.md
│ │ ├── 2022-09-29-contributing-to-pspas.md
│ │ ├── 2022-10-01-pspas-articles.md
│ │ ├── 2022-10-10-new-passession-deep-dive.md
│ │ ├── 2023-03-06-pspas-release-5-5.md
│ │ ├── 2023-03-06-pspas-release-5-6.md
│ │ ├── 2023-09-06-pspas-release-6-0.md
│ │ ├── 2024-02-01-pspas-release-6-1.md
│ │ ├── 2024-02-20-pspas-release-6-2.md
│ │ ├── 2024-03-21-pspas-release-6-3.md
│ │ └── 2024-05-01-pspas-release-6-4.md
├── favicon.ico
├── index.md
├── package-lock.json
├── package.json
└── staticman.yml
└── psPAS
├── Functions
├── AccountACL
│ ├── Add-PASAccountACL.ps1
│ ├── Get-PASAccountACL.ps1
│ └── Remove-PASAccountACL.ps1
├── AccountGroups
│ ├── Add-PASAccountGroupMember.ps1
│ ├── Get-PASAccountGroup.ps1
│ ├── Get-PASAccountGroupMember.ps1
│ ├── New-PASAccountGroup.ps1
│ └── Remove-PASAccountGroupMember.ps1
├── Accounts
│ ├── Add-PASAccount.ps1
│ ├── Add-PASDiscoveredAccount.ps1
│ ├── Add-PASDiscoveredLocalAccount.ps1
│ ├── Add-PASPendingAccount.ps1
│ ├── Add-PASPersonalAdminAccount.ps1
│ ├── Clear-PASDiscoveredAccountList.ps1
│ ├── Clear-PASDiscoveredLocalAccount.ps1
│ ├── Clear-PASLinkedAccount.ps1
│ ├── Disable-PASCPMAutoManagement.ps1
│ ├── Enable-PASCPMAutoManagement.ps1
│ ├── Get-PASAccount.ps1
│ ├── Get-PASAccountActivity.ps1
│ ├── Get-PASAccountDetail.ps1
│ ├── Get-PASAccountImportJob.ps1
│ ├── Get-PASAccountPassword.ps1
│ ├── Get-PASAccountPasswordVersion.ps1
│ ├── Get-PASAccountSSHKey.ps1
│ ├── Get-PASDiscoveredAccount.ps1
│ ├── Get-PASDiscoveredLocalAccount.ps1
│ ├── Get-PASDiscoveredLocalAccountActivity.ps1
│ ├── Get-PASLinkedAccount.ps1
│ ├── Get-PASLinkedGroup.ps1
│ ├── Invoke-PASCPMOperation.ps1
│ ├── New-PASAccountObject.ps1
│ ├── New-PASAccountPassword.ps1
│ ├── Publish-PASDiscoveredAccount.ps1
│ ├── Publish-PASDiscoveredLocalAccount.ps1
│ ├── Remove-PASAccount.ps1
│ ├── Remove-PASDiscoveredLocalAccount.ps1
│ ├── Request-PASJustInTimeAccess.ps1
│ ├── Revoke-PASJustInTimeAccess.ps1
│ ├── Set-PASAccount.ps1
│ ├── Set-PASLinkedAccount.ps1
│ ├── Start-PASAccountImportJob.ps1
│ └── Unlock-PASAccount.ps1
├── Applications
│ ├── Add-PASApplication.ps1
│ ├── Add-PASApplicationAuthenticationMethod.ps1
│ ├── Get-PASApplication.ps1
│ ├── Get-PASApplicationAuthenticationMethod.ps1
│ ├── Remove-PASApplication.ps1
│ └── Remove-PASApplicationAuthenticationMethod.ps1
├── Authentication
│ ├── Add-PASAuthenticationMethod.ps1
│ ├── Add-PASOpenIDConnectProvider.ps1
│ ├── Add-PASPublicSSHKey.ps1
│ ├── Clear-PASPrivateSSHKey.ps1
│ ├── Close-PASSession.ps1
│ ├── Get-PASAuthenticationMethod.ps1
│ ├── Get-PASOpenIDConnectProvider.ps1
│ ├── Get-PASPublicSSHKey.ps1
│ ├── Get-PASSession.ps1
│ ├── New-PASPrivateSSHKey.ps1
│ ├── New-PASSession.ps1
│ ├── Remove-PASAuthenticationMethod.ps1
│ ├── Remove-PASOpenIDConnectProvider.ps1
│ ├── Remove-PASPrivateSSHKey.ps1
│ ├── Remove-PASPublicSSHKey.ps1
│ ├── Set-PASAuthenticationMethod.ps1
│ ├── Set-PASOpenIDConnectProvider.ps1
│ └── Use-PASSession.ps1
├── BYOK
│ └── Get-PASBYOKConfig.ps1
├── Connections
│ ├── Get-PASConnectionComponent.ps1
│ ├── Get-PASPSMServer.ps1
│ ├── Import-PASConnectionComponent.ps1
│ └── New-PASPSMSession.ps1
├── EventSecurity
│ ├── Add-PASPTAExcludedTarget.ps1
│ ├── Add-PASPTAGlobalCatalog.ps1
│ ├── Add-PASPTAIncludedTarget.ps1
│ ├── Add-PASPTAPrivilegedGroup.ps1
│ ├── Add-PASPTAPrivilegedUser.ps1
│ ├── Add-PASPTARule.ps1
│ ├── Get-PASPTAEvent.ps1
│ ├── Get-PASPTAExcludedTarget.ps1
│ ├── Get-PASPTAGlobalCatalog.ps1
│ ├── Get-PASPTAIncludedTarget.ps1
│ ├── Get-PASPTAPrivilegedGroup.ps1
│ ├── Get-PASPTAPrivilegedUser.ps1
│ ├── Get-PASPTARemediation.ps1
│ ├── Get-PASPTARiskEvent.ps1
│ ├── Get-PASPTARiskSummary.ps1
│ ├── Get-PASPTARule.ps1
│ ├── Remove-PASPTAExcludedTarget.ps1
│ ├── Remove-PASPTAIncludedTarget.ps1
│ ├── Remove-PASPTAPrivilegedGroup.ps1
│ ├── Remove-PASPTAPrivilegedUser.ps1
│ ├── Set-PASPTAEvent.ps1
│ ├── Set-PASPTARemediation.ps1
│ ├── Set-PASPTARiskEvent.ps1
│ └── Set-PASPTARule.ps1
├── General
│ ├── Add-PASAllowedReferrer.ps1
│ └── Get-PASAllowedReferrer.ps1
├── IPAllowlist
│ ├── Get-PASIPAllowList.ps1
│ └── Set-PASIPAllowList.ps1
├── LDAPDirectories
│ ├── Add-PASDirectory.ps1
│ ├── Get-PASDirectory.ps1
│ ├── Get-PASDirectoryMapping.ps1
│ ├── New-PASDirectoryMapping.ps1
│ ├── Remove-PASDirectory.ps1
│ ├── Remove-PASDirectoryMapping.ps1
│ ├── Set-PASDirectoryMapping.ps1
│ └── Set-PASDirectoryMappingOrder.ps1
├── Monitoring
│ ├── Connect-PASPSMSession.ps1
│ ├── Export-PASPSMRecording.ps1
│ ├── Get-PASPSMRecording.ps1
│ ├── Get-PASPSMRecordingActivity.ps1
│ ├── Get-PASPSMRecordingProperty.ps1
│ ├── Get-PASPSMSession.ps1
│ ├── Get-PASPSMSessionActivity.ps1
│ ├── Get-PASPSMSessionProperty.ps1
│ ├── Resume-PASPSMSession.ps1
│ ├── Stop-PASPSMSession.ps1
│ ├── Suspend-PASPSMSession.ps1
│ └── Test-PASPSMRecording.ps1
├── OnboardingRules
│ ├── Get-PASOnboardingRule.ps1
│ ├── New-PASOnboardingRule.ps1
│ ├── Remove-PASOnboardingRule.ps1
│ └── Set-PASOnboardingRule.ps1
├── Platforms
│ ├── Copy-PASPlatform.ps1
│ ├── Disable-PASPlatform.ps1
│ ├── Enable-PASPlatform.ps1
│ ├── Export-PASPlatform.ps1
│ ├── Get-PASPlatform.ps1
│ ├── Get-PASPlatformPSMConfig.ps1
│ ├── Get-PASPlatformSafe.ps1
│ ├── Get-PASPlatformSummary.ps1
│ ├── Import-PASPlatform.ps1
│ ├── Remove-PASPlatform.ps1
│ └── Set-PASPlatformPSMConfig.ps1
├── PolicyACL
│ ├── Add-PASPolicyACL.ps1
│ ├── Get-PASPolicyACL.ps1
│ └── Remove-PASPolicyACL.ps1
├── Requests
│ ├── Approve-PASRequest.ps1
│ ├── Deny-PASRequest.ps1
│ ├── Get-PASRequest.ps1
│ ├── Get-PASRequestDetail.ps1
│ ├── New-PASRequest.ps1
│ ├── New-PASRequestObject.ps1
│ └── Remove-PASRequest.ps1
├── SafeMembers
│ ├── Add-PASSafeMember.ps1
│ ├── Get-PASSafeMember.ps1
│ ├── Remove-PASSafeMember.ps1
│ └── Set-PASSafeMember.ps1
├── Safes
│ ├── Add-PASSafe.ps1
│ ├── Find-PASSafe.ps1
│ ├── Get-PASSafe.ps1
│ ├── Remove-PASSafe.ps1
│ └── Set-PASSafe.ps1
├── ServerWebServices
│ ├── Get-PASSafeShareLogo.ps1
│ ├── Get-PASServer.ps1
│ └── Get-PASServerWebService.ps1
├── SystemHealth
│ ├── Get-PASComponentDetail.ps1
│ └── Get-PASComponentSummary.ps1
└── User
│ ├── Add-PASGroupMember.ps1
│ ├── Disable-PASUser.ps1
│ ├── Enable-PASUser.ps1
│ ├── Get-PASGroup.ps1
│ ├── Get-PASLoggedOnUser.ps1
│ ├── Get-PASUser.ps1
│ ├── Get-PASUserLoginInfo.ps1
│ ├── Get-PASUserTypeInfo.ps1
│ ├── New-PASGroup.ps1
│ ├── New-PASUser.ps1
│ ├── Remove-PASGroup.ps1
│ ├── Remove-PASGroupMember.ps1
│ ├── Remove-PASUser.ps1
│ ├── Set-PASGroup.ps1
│ ├── Set-PASUser.ps1
│ ├── Set-PASUserPassword.ps1
│ └── Unblock-PASUser.ps1
├── Private
├── Add-ObjectDetail.ps1
├── Assert-VersionRequirement.ps1
├── Compare-MaximumVersion.ps1
├── Compare-MinimumVersion.ps1
├── ConvertFrom-KeyValuePair.ps1
├── ConvertTo-BulkFilterItem.ps1
├── ConvertTo-ConnectionParam.ps1
├── ConvertTo-FilterString.ps1
├── ConvertTo-InsecureString.ps1
├── ConvertTo-QueryString.ps1
├── ConvertTo-SortedPermission.ps1
├── ConvertTo-UnixTime.ps1
├── Find-SharedServicesURL.ps1
├── Format-PASUserObject.ps1
├── Format-PutRequestObject.ps1
├── Get-ByteArray.ps1
├── Get-EscapedString.ps1
├── Get-NextLink.ps1
├── Get-PASParameter.ps1
├── Get-PASPropertyObject.ps1
├── Get-PASResponse.ps1
├── Get-PASSAMLResponse.ps1
├── Get-ParentFunction.ps1
├── Get-SessionClone.ps1
├── Hide-SecretValue.ps1
├── Invoke-PASRestMethod.ps1
├── Out-PASFile.ps1
├── Send-RADIUSResponse.ps1
├── Skip-CertificateCheck.ps1
└── Test-IsCoreCLR.ps1
├── about_psPAS.help.txt
├── en-US
└── psPAS-help.xml
├── psPAS.psd1
├── psPAS.psm1
└── xml
├── psPAS.CyberArk.Vault.ACL.Formats.ps1xml
├── psPAS.CyberArk.Vault.ACL.Type.ps1xml
├── psPAS.CyberArk.Vault.Account.Formats.ps1xml
├── psPAS.CyberArk.Vault.Account.Type.ps1xml
├── psPAS.CyberArk.Vault.Application.Formats.ps1xml
├── psPAS.CyberArk.Vault.Credential.Formats.ps1xml
├── psPAS.CyberArk.Vault.Credential.Type.ps1xml
├── psPAS.CyberArk.Vault.Directory.Formats.ps1xml
├── psPAS.CyberArk.Vault.Group.Formats.ps1xml
├── psPAS.CyberArk.Vault.OnboardingRule.Formats.ps1xml
├── psPAS.CyberArk.Vault.PSM.Formats.ps1xml
├── psPAS.CyberArk.Vault.PTA.Formats.ps1xml
├── psPAS.CyberArk.Vault.Platform.Formats.ps1xml
├── psPAS.CyberArk.Vault.Request.Formats.ps1xml
├── psPAS.CyberArk.Vault.SSHKey.Formats.ps1xml
├── psPAS.CyberArk.Vault.Safe.Formats.ps1xml
├── psPAS.CyberArk.Vault.Safe.Type.ps1xml
├── psPAS.CyberArk.Vault.User.Formats.ps1xml
└── psPAS.CyberArk.Vault.User.Type.ps1xml
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 |
7 | # Standard to msysgit
8 | *.doc diff=astextplain
9 | *.DOC diff=astextplain
10 | *.docx diff=astextplain
11 | *.DOCX diff=astextplain
12 | *.dot diff=astextplain
13 | *.DOT diff=astextplain
14 | *.pdf diff=astextplain
15 | *.PDF diff=astextplain
16 | *.rtf diff=astextplain
17 | *.RTF diff=astextplain
18 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: [pspete]
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Issue report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the issue**
11 | A concise summary of the issue
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 | 1.
16 | 2.
17 | 3.
18 |
19 | **Expected behavior**
20 | A clear and concise description of what you expected to happen.
21 |
22 | **Screenshots & Console Output**
23 | If applicable, add screenshots and/or console output to help explain your problem.
24 |
25 | ```powershell
26 |
27 | <--Console Output Goes Here-->
28 |
29 | ```
30 |
31 | **Your Environment**
32 | Include relevant details about your environment
33 |
34 | * PowerShell Version:
35 | * psPAS Version:
36 | * CyberArk Version:
37 |
38 | **Additional context**
39 | Add any other context about the problem here.
40 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe.**
11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 |
13 | **Describe the solution you'd like**
14 | A clear and concise description of what you want to happen.
15 |
16 | **Describe alternatives you've considered**
17 | A clear and concise description of any alternative solutions or features you've considered.
18 |
19 | **Additional context**
20 | Add any other context or screenshots about the feature request here.
21 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/issue-report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Issue report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the issue**
11 | A concise summary of the issue
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 | 1.
16 | 2.
17 | 3.
18 |
19 | **Expected behavior**
20 | A clear and concise description of what you expected to happen.
21 |
22 | **Screenshots & Console Output**
23 | If applicable, add screenshots and/or console output to help explain your problem.
24 |
25 | ```powershell
26 |
27 | <--Console Output Goes Here-->
28 |
29 | ```
30 |
31 | **Your Environment**
32 | Include relevant details about your environment
33 |
34 | * PowerShell Version:
35 | * psPAS Version:
36 | * CyberArk Version:
37 |
38 | **Additional context**
39 | Add any other context about the problem here.
40 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode/*
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017-2024 Pete Maan
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/build/install.ps1:
--------------------------------------------------------------------------------
1 | #---------------------------------#
2 | # Header #
3 | #---------------------------------#
4 | Write-Host "Installing Required Modules:" -ForegroundColor Yellow
5 |
6 | $RequiredModules = @(
7 | "PowerShellGet"
8 | "Pester",
9 | "PSScriptAnalyzer"<#,
10 | "coveralls",
11 | "PSCodeCovIo"#>
12 | )
13 |
14 | #---------------------------------#
15 | # Install NuGet #
16 | <#---------------------------------#
17 | if(-not $IsCoreCLR) {
18 | Write-Host "`tNuGet..."
19 | $pkg = Install-PackageProvider -Name NuGet -Confirm:$false -Force -ErrorAction Stop
20 | Write-Host "`t`tInstalled NuGet version '$($pkg.version)'"
21 | }
22 | #>
23 | #---------------------------------#
24 | # Install Required Modules #
25 | #---------------------------------#
26 | foreach ($Module in $RequiredModules) {
27 |
28 | Try {
29 | Write-Host "`tInstalling: $Module..." -NoNewline
30 | Install-Module -Name $Module -Repository PSGallery -Confirm:$false -Force -SkipPublisherCheck -ErrorAction Stop | Out-Null
31 | Write-Host " OK" -ForegroundColor Green
32 | }Catch {
33 | Write-Host "Error" -ForegroundColor Red
34 | throw $_
35 | }
36 |
37 | }
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | *.gem
2 | *.sublime-project
3 | *.sublime-workspace
4 | .bundle
5 | .DS_Store
6 | .jekyll-metadata
7 | .sass-cache
8 | _asset_bundler_cache
9 | _site
10 | vendor
11 | codekit-config.json
12 | example/_site
13 | Gemfile.lock
14 | node_modules
15 | npm-debug.log*
--------------------------------------------------------------------------------
/docs/.travis.yml:
--------------------------------------------------------------------------------
1 | language: ruby
2 | cache: bundler
3 | gemfile: docs/Gemfile
4 | script:
5 | - bundle exec jekyll algolia --source docs --destination docs/_site --config docs/_config.yml
6 | branches:
7 | only:
8 | # Change this to gh-pages if you're deploying using the gh-pages branch
9 | - master
10 | rvm:
11 | - 2.4
--------------------------------------------------------------------------------
/docs/CNAME:
--------------------------------------------------------------------------------
1 | pspas.pspete.dev
--------------------------------------------------------------------------------
/docs/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | # Hello! This is where you manage which Jekyll version is used to run.
4 | # When you want to use a different version, change it below, save the
5 | # file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
6 | #
7 | # bundle exec jekyll serve
8 | #
9 | # This will help ensure the proper Jekyll version is running.
10 | # Happy Jekylling!
11 |
12 | # gem "github-pages", group: :jekyll_plugins
13 |
14 | # To upgrade, run `bundle update`.
15 |
16 | gem "github-pages", group: :jekyll_plugins
17 | gem "minimal-mistakes-jekyll"
18 |
19 | # The following plugins are automatically loaded by the theme-gem:
20 | # gem "jekyll-paginate"
21 | # gem "jekyll-sitemap"
22 | # gem "jekyll-gist"
23 | # gem "jekyll-feed"
24 | # gem "jemoji"
25 | # gem "jekyll-data"
26 | # gem "jekyll-include-cache"
27 | #
28 | # If you have any other plugins, put them here!
29 | group :jekyll_plugins do
30 | end
--------------------------------------------------------------------------------
/docs/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013-2019 Michael Rose and contributors
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/docs/_includes/analytics-providers/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/docs/_includes/analytics-providers/google-gtag.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
--------------------------------------------------------------------------------
/docs/_includes/analytics-providers/google-universal.html:
--------------------------------------------------------------------------------
1 |
7 |
8 |
--------------------------------------------------------------------------------
/docs/_includes/analytics-providers/google.html:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/docs/_includes/analytics.html:
--------------------------------------------------------------------------------
1 | {% if jekyll.environment == 'production' and site.analytics.provider and page.analytics != false %}
2 |
3 | {% case site.analytics.provider %}
4 | {% when "google" %}
5 | {% include /analytics-providers/google.html %}
6 | {% when "google-universal" %}
7 | {% include /analytics-providers/google-universal.html %}
8 | {% when "google-gtag" %}
9 | {% include /analytics-providers/google-gtag.html %}
10 | {% when "custom" %}
11 | {% include /analytics-providers/custom.html %}
12 | {% endcase %}
13 |
14 | {% endif %}
--------------------------------------------------------------------------------
/docs/_includes/author-profile-custom-links.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/_includes/browser-upgrade.html:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/docs/_includes/category-list.html:
--------------------------------------------------------------------------------
1 | {% case site.category_archive.type %}
2 | {% when "liquid" %}
3 | {% assign path_type = "#" %}
4 | {% when "jekyll-archives" %}
5 | {% assign path_type = nil %}
6 | {% endcase %}
7 |
8 | {% if site.category_archive.path %}
9 | {% comment %}
10 |
11 |
12 | {% endcomment %}
13 | {% capture page_categories %}{% for category in page.categories %}{{ category | downcase }}|{{ category }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
14 | {% assign category_hashes = page_categories | split: ',' | sort %}
15 |
16 |
17 | {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }}
18 |
19 | {% for hash in category_hashes %}
20 | {% assign keyValue = hash | split: '|' %}
21 | {% capture category_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
22 | {{ category_word }}{% unless forloop.last %}, {% endunless %}
23 | {% endfor %}
24 |
25 |
26 | {% endif %}
--------------------------------------------------------------------------------
/docs/_includes/comment.html:
--------------------------------------------------------------------------------
1 |
23 |
--------------------------------------------------------------------------------
/docs/_includes/comments-providers/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/docs/_includes/comments-providers/discourse.html:
--------------------------------------------------------------------------------
1 | {% if site.comments.discourse.server %}
2 | {% capture canonical %}{% if site.permalink contains '.html' %}{{ page.url | absolute_url }}{% else %}{{ page.url | absolute_url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %}
3 |
12 |
13 | {% endif %}
14 |
--------------------------------------------------------------------------------
/docs/_includes/comments-providers/disqus.html:
--------------------------------------------------------------------------------
1 | {% if site.comments.disqus.shortname %}
2 |
14 |
15 | {% endif %}
16 |
--------------------------------------------------------------------------------
/docs/_includes/comments-providers/facebook.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/_includes/comments-providers/scripts.html:
--------------------------------------------------------------------------------
1 | {% if site.comments.provider and page.comments %}
2 | {% case site.comments.provider %}
3 | {% when "disqus" %}
4 | {% include /comments-providers/disqus.html %}
5 | {% when "discourse" %}
6 | {% include /comments-providers/discourse.html %}
7 | {% when "facebook" %}
8 | {% include /comments-providers/facebook.html %}
9 | {% when "staticman" %}
10 | {% include /comments-providers/staticman.html %}
11 | {% when "staticman_v2" %}
12 | {% include /comments-providers/staticman_v2.html %}
13 | {% when "utterances" %}
14 | {% include /comments-providers/utterances.html %}
15 | {% when "custom" %}
16 | {% include /comments-providers/custom.html %}
17 | {% endcase %}
18 | {% endif %}
--------------------------------------------------------------------------------
/docs/_includes/comments-providers/utterances.html:
--------------------------------------------------------------------------------
1 |
21 |
--------------------------------------------------------------------------------
/docs/_includes/documents-collection.html:
--------------------------------------------------------------------------------
1 | {% assign entries = site[include.collection] %}
2 |
3 | {% if include.sort_by == 'title' %}
4 | {% if include.sort_order == 'reverse' %}
5 | {% assign entries = entries | sort: 'title' | reverse %}
6 | {% else %}
7 | {% assign entries = entries | sort: 'title' %}
8 | {% endif %}
9 | {% elsif include.sort_by == 'date' %}
10 | {% if include.sort_order == 'reverse' %}
11 | {% assign entries = entries | sort: 'date' | reverse %}
12 | {% else %}
13 | {% assign entries = entries | sort: 'date' %}
14 | {% endif %}
15 | {% endif %}
16 |
17 | {%- for post in entries -%}
18 | {% include archive-single.html %}
19 | {%- endfor -%}
20 |
--------------------------------------------------------------------------------
/docs/_includes/figure:
--------------------------------------------------------------------------------
1 |
2 |
9 | {% if include.caption %}
10 |
11 | {{ include.caption | markdownify | remove: "" | remove: "
" }}
12 | {% endif %}
13 |
--------------------------------------------------------------------------------
/docs/_includes/footer.html:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/docs/_includes/footer/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/docs/_includes/group-by-array:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 | {% assign __empty_array = '' | split: ',' %}
10 | {% assign group_names = __empty_array %}
11 | {% assign group_items = __empty_array %}
12 |
13 |
14 | {% assign __names = include.collection | map: include.field %}
15 |
16 |
17 | {% assign __names = __names | join: ',' | join: ',' | split: ',' %}
18 |
19 |
20 | {% assign __names = __names | sort %}
21 | {% for name in __names %}
22 |
23 |
24 | {% unless name == previous %}
25 |
26 |
27 | {% assign group_names = group_names | push: name %}
28 | {% endunless %}
29 |
30 | {% assign previous = name %}
31 | {% endfor %}
32 |
33 |
34 |
35 | {% for name in group_names %}
36 |
37 |
38 | {% assign __item = __empty_array %}
39 | {% for __element in include.collection %}
40 | {% if __element[include.field] contains name %}
41 | {% assign __item = __item | push: __element %}
42 | {% endif %}
43 | {% endfor %}
44 |
45 |
46 | {% assign group_items = group_items | push: __item %}
47 | {% endfor %}
--------------------------------------------------------------------------------
/docs/_includes/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {% include seo.html %}
4 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
31 |
32 | {% if site.head_scripts %}
33 | {% for script in site.head_scripts %}
34 | {% if script contains "://" %}
35 | {% capture script_path %}{{ script }}{% endcapture %}
36 | {% else %}
37 | {% capture script_path %}{{ script | relative_url }}{% endcapture %}
38 | {% endif %}
39 |
40 | {% endfor %}
41 | {% endif %}
42 |
--------------------------------------------------------------------------------
/docs/_includes/head/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/docs/_includes/page__hero_video.html:
--------------------------------------------------------------------------------
1 | {% capture video_id %}{{ page.header.video.id }}{% endcapture %}
2 | {% capture video_provider %}{{ page.header.video.provider }}{% endcapture %}
3 |
4 | {% include video id=video_id provider=video_provider %}
5 |
--------------------------------------------------------------------------------
/docs/_includes/page__taxonomy.html:
--------------------------------------------------------------------------------
1 | {% if site.tag_archive.type and page.tags[0] %}
2 | {% include tag-list.html %}
3 | {% endif %}
4 |
5 | {% if site.category_archive.type and page.categories[0] %}
6 | {% include category-list.html %}
7 | {% endif %}
--------------------------------------------------------------------------------
/docs/_includes/post_pagination.html:
--------------------------------------------------------------------------------
1 | {% if page.previous or page.next %}
2 |
14 | {% endif %}
--------------------------------------------------------------------------------
/docs/_includes/posts-category.html:
--------------------------------------------------------------------------------
1 | {%- for post in site.categories[include.taxonomy] -%}
2 | {% include archive-single.html %}
3 | {%- endfor -%}
4 |
--------------------------------------------------------------------------------
/docs/_includes/posts-tag.html:
--------------------------------------------------------------------------------
1 | {%- for post in site.tags[include.taxonomy] -%}
2 | {% include archive-single.html %}
3 | {%- endfor -%}
4 |
--------------------------------------------------------------------------------
/docs/_includes/read-time.html:
--------------------------------------------------------------------------------
1 | {% assign words_per_minute = site.words_per_minute | default: 200 %}
2 |
3 | {% if post.read_time %}
4 | {% assign words = post.content | strip_html | number_of_words %}
5 | {% elsif page.read_time %}
6 | {% assign words = page.content | strip_html | number_of_words %}
7 | {% endif %}
8 |
9 | {% if words < words_per_minute %}
10 | {{ site.data.ui-text[site.locale].less_than | default: "less than" }} 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
11 | {% elsif words == words_per_minute %}
12 | 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
13 | {% else %}
14 | {{ words | divided_by:words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
15 | {% endif %}
--------------------------------------------------------------------------------
/docs/_includes/search/google-search-scripts.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/_includes/search/lunr-search-scripts.html:
--------------------------------------------------------------------------------
1 | {% assign lang = site.locale | slice: 0,2 | default: "en" %}
2 | {% case lang %}
3 | {% when "gr" %}
4 | {% assign lang = "gr" %}
5 | {% else %}
6 | {% assign lang = "en" %}
7 | {% endcase %}
8 |
9 |
10 |
--------------------------------------------------------------------------------
/docs/_includes/search/search_form.html:
--------------------------------------------------------------------------------
1 |
2 | {%- assign search_provider = site.search_provider | default: "lunr" -%}
3 | {%- case search_provider -%}
4 | {%- when "lunr" -%}
5 |
11 |
12 | {%- when "google" -%}
13 |
19 |
20 |
21 |
22 | {%- when "algolia" -%}
23 |
24 |
25 | {%- endcase -%}
26 |
27 |
--------------------------------------------------------------------------------
/docs/_includes/sidebar.html:
--------------------------------------------------------------------------------
1 | {% if page.author_profile or layout.author_profile or page.sidebar %}
2 |
24 | {% endif %}
--------------------------------------------------------------------------------
/docs/_includes/skip-links.html:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/docs/_includes/social-share.html:
--------------------------------------------------------------------------------
1 |
2 | {% if site.data.ui-text[site.locale].share_on_label %}
3 | {{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}
4 | {% endif %}
5 |
6 |
11 |
12 | Reddit
17 |
--------------------------------------------------------------------------------
/docs/_includes/tag-list.html:
--------------------------------------------------------------------------------
1 | {% case site.tag_archive.type %}
2 | {% when "liquid" %}
3 | {% assign path_type = "#" %}
4 | {% when "jekyll-archives" %}
5 | {% assign path_type = nil %}
6 | {% endcase %}
7 |
8 | {% if site.tag_archive.path %}
9 | {% comment %}
10 |
11 |
12 | {% endcomment %}
13 | {% capture page_tags %}{% for tag in page.tags %}{{ tag | downcase }}|{{ tag }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
14 | {% assign tag_hashes = page_tags | split: ',' | sort %}
15 |
16 |
17 | {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }}
18 |
19 | {% for hash in tag_hashes %}
20 | {% assign keyValue = hash | split: '|' %}
21 | {% capture tag_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
22 | {{ tag_word }}{% unless forloop.last %}, {% endunless %}
23 | {% endfor %}
24 |
25 |
26 | {% endif %}
--------------------------------------------------------------------------------
/docs/_includes/toc:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/_includes/video:
--------------------------------------------------------------------------------
1 | {% capture video_id %}{{ include.id }}{% endcapture %}
2 | {% capture video_provider %}{{ include.provider }}{% endcapture %}
3 |
4 |
5 |
6 | {% if video_provider == "vimeo" %}
7 |
8 | {% elsif video_provider == "youtube" %}
9 |
10 | {% elsif video_provider == "google-drive" %}
11 |
12 | {% endif %}
13 |
14 |
--------------------------------------------------------------------------------
/docs/_layouts/archive-taxonomy.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | author_profile: false
4 | ---
5 |
6 |
7 | {% include sidebar.html %}
8 |
9 |
10 |
{{ page.title }}
11 | {% for post in page.posts %}
12 | {% include archive-single.html %}
13 | {% endfor %}
14 |
15 |
--------------------------------------------------------------------------------
/docs/_layouts/archive.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 | {% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
6 | {% include page__hero.html %}
7 | {% elsif page.header.video.id and page.header.video.provider %}
8 | {% include page__hero_video.html %}
9 | {% endif %}
10 |
11 | {% if page.url != "/" and site.breadcrumbs %}
12 | {% unless paginator %}
13 | {% include breadcrumbs.html %}
14 | {% endunless %}
15 | {% endif %}
16 |
17 |
18 | {% include sidebar.html %}
19 |
20 |
21 | {% unless page.header.overlay_color or page.header.overlay_image %}
22 |
{{ page.title }}
23 | {% endunless %}
24 | {{ content }}
25 |
26 |
--------------------------------------------------------------------------------
/docs/_layouts/categories.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: archive
3 | ---
4 |
5 | {{ content }}
6 |
7 | {% assign categories_max = 0 %}
8 | {% for category in site.categories %}
9 | {% if category[1].size > categories_max %}
10 | {% assign categories_max = category[1].size %}
11 | {% endif %}
12 | {% endfor %}
13 |
14 |
15 | {% for i in (1..categories_max) reversed %}
16 | {% for category in site.categories %}
17 | {% if category[1].size == i %}
18 | -
19 |
20 | {{ category[0] }} {{ i }}
21 |
22 |
23 | {% endif %}
24 | {% endfor %}
25 | {% endfor %}
26 |
27 |
28 | {% for i in (1..categories_max) reversed %}
29 | {% for category in site.categories %}
30 | {% if category[1].size == i %}
31 |
40 | {% endif %}
41 | {% endfor %}
42 | {% endfor %}
43 |
--------------------------------------------------------------------------------
/docs/_layouts/category.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: archive
3 | ---
4 |
5 | {{ content }}
6 |
7 |
8 | {% include posts-category.html taxonomy=page.taxonomy type=page.entries_layout %}
9 |
10 |
--------------------------------------------------------------------------------
/docs/_layouts/collection.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: archive
3 | ---
4 |
5 | {{ content }}
6 |
7 |
8 | {% include documents-collection.html collection=page.collection sort_by=page.sort_by sort_order=page.sort_order type=page.entries_layout %}
9 |
10 |
--------------------------------------------------------------------------------
/docs/_layouts/default.html:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 |
4 |
5 |
11 |
12 |
13 | {% include head.html %}
14 | {% include head/custom.html %}
15 |
16 |
17 |
18 | {% include_cached skip-links.html %}
19 | {% include_cached browser-upgrade.html %}
20 | {% include_cached masthead.html %}
21 |
22 |
23 | {{ content }}
24 |
25 |
26 | {% if site.search == true %}
27 |
28 | {% include_cached search/search_form.html %}
29 |
30 | {% endif %}
31 |
32 |
38 |
39 | {% include scripts.html %}
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/docs/_layouts/home.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: archive
3 | ---
4 |
5 | {{ content }}
6 |
7 | {{ site.data.ui-text[site.locale].recent_posts | default: "Recent Posts" }}
8 |
9 | {% for post in paginator.posts %}
10 | {% include archive-single.html %}
11 | {% endfor %}
12 |
13 | {% include paginator.html %}
14 |
--------------------------------------------------------------------------------
/docs/_layouts/posts.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: archive
3 | ---
4 |
5 | {{ content }}
6 |
7 |
17 |
18 | {% assign postsByYear = site.posts | group_by_exp: 'post', 'post.date | date: "%Y"' %}
19 | {% for year in postsByYear %}
20 |
29 | {% endfor %}
30 |
--------------------------------------------------------------------------------
/docs/_layouts/splash.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 | {% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
6 | {% include page__hero.html %}
7 | {% elsif page.header.video.id and page.header.video.provider %}
8 | {% include page__hero_video.html %}
9 | {% endif %}
10 |
11 |
12 |
13 | {% if page.title %}{% endif %}
14 | {% if page.excerpt %}{% endif %}
15 | {% if page.date %}{% endif %}
16 | {% if page.last_modified_at %}{% endif %}
17 |
18 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/docs/_layouts/tag.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: archive
3 | ---
4 |
5 | {{ content }}
6 |
7 |
8 | {% include posts-tag.html taxonomy=page.taxonomy type=page.entries_layout %}
9 |
10 |
--------------------------------------------------------------------------------
/docs/_layouts/tags.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: archive
3 | ---
4 |
5 | {{ content }}
6 |
7 | {% assign tags_max = 0 %}
8 | {% for tag in site.tags %}
9 | {% if tag[1].size > tags_max %}
10 | {% assign tags_max = tag[1].size %}
11 | {% endif %}
12 | {% endfor %}
13 |
14 |
15 | {% for i in (1..tags_max) reversed %}
16 | {% for tag in site.tags %}
17 | {% if tag[1].size == i %}
18 | -
19 |
20 | {{ tag[0] }} {{ i }}
21 |
22 |
23 | {% endif %}
24 | {% endfor %}
25 | {% endfor %}
26 |
27 |
28 | {% for i in (1..tags_max) reversed %}
29 | {% for tag in site.tags %}
30 | {% if tag[1].size == i %}
31 |
40 | {% endif %}
41 | {% endfor %}
42 | {% endfor %}
43 |
--------------------------------------------------------------------------------
/docs/_sass/minimal-mistakes.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Minimal Mistakes Jekyll Theme 4.16.5 by Michael Rose
3 | * Copyright 2013-2019 Michael Rose - mademistakes.com | @mmistakes
4 | * Licensed under MIT (https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE)
5 | */
6 |
7 | /* Variables */
8 | @import "minimal-mistakes/variables";
9 |
10 | /* Mixins and functions */
11 | @import "minimal-mistakes/vendor/breakpoint/breakpoint";
12 | @include breakpoint-set("to ems", true);
13 | @import "minimal-mistakes/vendor/magnific-popup/magnific-popup"; // Magnific Popup
14 | @import "minimal-mistakes/vendor/susy/susy";
15 | @import "minimal-mistakes/mixins";
16 |
17 | /* Core CSS */
18 | @import "minimal-mistakes/reset";
19 | @import "minimal-mistakes/base";
20 | @import "minimal-mistakes/forms";
21 | @import "minimal-mistakes/tables";
22 | @import "minimal-mistakes/animations";
23 |
24 | /* Components */
25 | @import "minimal-mistakes/buttons";
26 | @import "minimal-mistakes/notices";
27 | @import "minimal-mistakes/masthead";
28 | @import "minimal-mistakes/navigation";
29 | @import "minimal-mistakes/footer";
30 | @import "minimal-mistakes/search";
31 | @import "minimal-mistakes/syntax";
32 |
33 | /* Utility classes */
34 | @import "minimal-mistakes/utilities";
35 |
36 | /* Layout specific */
37 | @import "minimal-mistakes/page";
38 | @import "minimal-mistakes/archive";
39 | @import "minimal-mistakes/sidebar";
40 | @import "minimal-mistakes/print";
41 |
42 |
--------------------------------------------------------------------------------
/docs/_sass/minimal-mistakes/_animations.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | ANIMATIONS
3 | ========================================================================== */
4 |
5 | @-webkit-keyframes intro {
6 | 0% {
7 | opacity: 0;
8 | }
9 | 100% {
10 | opacity: 1;
11 | }
12 | }
13 |
14 | @keyframes intro {
15 | 0% {
16 | opacity: 0;
17 | }
18 | 100% {
19 | opacity: 1;
20 | }
21 | }
--------------------------------------------------------------------------------
/docs/_sass/minimal-mistakes/_tables.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | TABLES
3 | ========================================================================== */
4 |
5 | table {
6 | display: block;
7 | margin-bottom: 1em;
8 | width: 100%;
9 | font-family: $global-font-family;
10 | font-size: $type-size-6;
11 | border-collapse: collapse;
12 | overflow-x: auto;
13 |
14 | & + table {
15 | margin-top: 1em;
16 | }
17 | }
18 |
19 | thead {
20 | background-color: $border-color;
21 | border-bottom: 2px solid mix(#000, $border-color, 25%);
22 | }
23 |
24 | th {
25 | padding: 0.5em;
26 | font-weight: bold;
27 | text-align: left;
28 | }
29 |
30 | td {
31 | padding: 0.5em;
32 | border-bottom: 1px solid mix(#000, $border-color, 25%);
33 | }
34 |
35 | tr,
36 | td,
37 | th {
38 | vertical-align: middle;
39 | }
--------------------------------------------------------------------------------
/docs/_sass/minimal-mistakes/skins/_air.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Air skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $background-color: #eeeeee !default;
7 | $text-color: #222831 !default;
8 | $muted-text-color: #393e46 !default;
9 | $primary-color: #0092ca !default;
10 | $border-color: mix(#fff, #393e46, 75%) !default;
11 | $footer-background-color: $primary-color !default;
12 | $link-color: #393e46 !default;
13 | $masthead-link-color: $text-color !default;
14 | $masthead-link-color-hover: $text-color !default;
15 | $navicon-link-color-hover: mix(#fff, $text-color, 80%) !default;
16 |
17 | .page__footer {
18 | color: #fff !important; // override
19 | }
20 |
21 | .page__footer-follow .social-icons .svg-inline--fa {
22 | color: inherit;
23 | }
24 |
--------------------------------------------------------------------------------
/docs/_sass/minimal-mistakes/skins/_aqua.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Aqua skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $gray : #1976d2 !default;
7 | $dark-gray : mix(#000, $gray, 40%) !default;
8 | $darker-gray : mix(#000, $gray, 60%) !default;
9 | $light-gray : mix(#fff, $gray, 50%) !default;
10 | $lighter-gray : mix(#fff, $gray, 90%) !default;
11 |
12 | $body-color : #fff !default;
13 | $background-color : #f0fff0 !default;
14 | $code-background-color : $lighter-gray !default;
15 | $code-background-color-dark : $light-gray !default;
16 | $text-color : $dark-gray !default;
17 | $border-color : $lighter-gray !default;
18 |
19 | $primary-color : $gray !default;
20 | $success-color : #27ae60 !default;
21 | $warning-color : #e67e22 !default;
22 | $danger-color : #c0392b !default;
23 | $info-color : #03a9f4 !default;
24 |
25 | /* links */
26 | $link-color : $info-color !default;
27 | $link-color-hover : mix(#000, $link-color, 25%) !default;
28 | $link-color-visited : mix(#fff, $link-color, 25%) !default;
29 | $masthead-link-color : $primary-color !default;
30 | $masthead-link-color-hover : mix(#000, $primary-color, 25%) !default;
--------------------------------------------------------------------------------
/docs/_sass/minimal-mistakes/skins/_dark.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Dark skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $background-color: #252a34 !default;
7 | $text-color: #eaeaea !default;
8 | $primary-color: #00adb5 !default;
9 | $border-color: mix(#fff, $background-color, 20%) !default;
10 | $code-background-color: mix(#000, $background-color, 15%) !default;
11 | $code-background-color-dark: mix(#000, $background-color, 20%) !default;
12 | $form-background-color: mix(#000, $background-color, 15%) !default;
13 | $footer-background-color: mix(#000, $background-color, 30%) !default;
14 | $link-color: mix($primary-color, $text-color, 40%) !default;
15 | $link-color-hover: mix(#fff, $link-color, 25%) !default;
16 | $link-color-visited: mix(#000, $link-color, 25%) !default;
17 | $masthead-link-color: $text-color !default;
18 | $masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
19 | $navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
20 |
21 | .author__urls.social-icons .svg-inline--fa,
22 | .page__footer-follow .social-icons .svg-inline--fa {
23 | color: inherit;
24 | }
25 |
26 | .ais-search-box .ais-search-box--input {
27 | background-color: $form-background-color;
28 | }
--------------------------------------------------------------------------------
/docs/_sass/minimal-mistakes/skins/_default.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Default skin
3 | ========================================================================== */
4 |
5 | // Intentionally left blank
6 |
--------------------------------------------------------------------------------
/docs/_sass/minimal-mistakes/skins/_dirt.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Dirt skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $background-color: #f3f3f3 !default;
7 | $text-color: #343434 !default;
8 | $muted-text-color: #8e8b82 !default;
9 | $primary-color: #343434 !default;
10 | $border-color: #e9dcbe !default;
11 | $footer-background-color: #e9dcbe !default;
12 | $link-color: #343434 !default;
13 | $masthead-link-color: $text-color !default;
14 | $masthead-link-color-hover: $text-color !default;
15 | $navicon-link-color-hover: mix(#fff, $text-color, 80%) !default;
16 |
17 | /* dirt syntax highlighting (base16) */
18 | $base00: #231e18 !default;
19 | $base01: #302b25 !default;
20 | $base02: #48413a !default;
21 | $base03: #9d8b70 !default;
22 | $base04: #b4a490 !default;
23 | $base05: #cabcb1 !default;
24 | $base06: #d7c8bc !default;
25 | $base07: #e4d4c8 !default;
26 | $base08: #d35c5c !default;
27 | $base09: #ca7f32 !default;
28 | $base0a: #e0ac16 !default;
29 | $base0b: #b7ba53 !default;
30 | $base0c: #6eb958 !default;
31 | $base0d: #88a4d3 !default;
32 | $base0e: #bb90e2 !default;
33 | $base0f: #b49368 !default;
34 |
--------------------------------------------------------------------------------
/docs/_sass/minimal-mistakes/skins/_mint.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Mint skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $background-color: #f3f6f6 !default;
7 | $text-color: #40514e !default;
8 | $muted-text-color: #40514e !default;
9 | $primary-color: #11999e !default;
10 | $border-color: mix(#fff, #40514e, 75%) !default;
11 | $footer-background-color: #30e3ca !default;
12 | $link-color: #11999e !default;
13 | $masthead-link-color: $text-color !default;
14 | $masthead-link-color-hover: $text-color !default;
15 | $navicon-link-color-hover: mix(#fff, $text-color, 80%) !default;
16 |
17 | .page__footer {
18 | color: #fff !important; // override
19 | }
20 |
21 | .page__footer-follow .social-icons .svg-inline--fa {
22 | color: inherit;
23 | }
24 |
--------------------------------------------------------------------------------
/docs/assets/css/main.scss:
--------------------------------------------------------------------------------
1 | ---
2 | # Only the main Sass file needs front matter (the dashes are enough)
3 | ---
4 |
5 | @charset "utf-8";
6 |
7 | @import "minimal-mistakes/skins/{{ site.minimal_mistakes_skin | default: 'default' }}"; // skin
8 | @import "minimal-mistakes"; // main partials
--------------------------------------------------------------------------------
/docs/assets/images/Email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/Email.png
--------------------------------------------------------------------------------
/docs/assets/images/Email_symbol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/Email_symbol.png
--------------------------------------------------------------------------------
/docs/assets/images/New-PASSession/CodeFlow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/New-PASSession/CodeFlow.png
--------------------------------------------------------------------------------
/docs/assets/images/New-PASSession/IIS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/New-PASSession/IIS.png
--------------------------------------------------------------------------------
/docs/assets/images/New-PASSession/RADIUS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/New-PASSession/RADIUS.png
--------------------------------------------------------------------------------
/docs/assets/images/New-PASSession/SAML.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/New-PASSession/SAML.png
--------------------------------------------------------------------------------
/docs/assets/images/PSPETE_symbol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/PSPETE_symbol.png
--------------------------------------------------------------------------------
/docs/assets/images/bio-photo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/bio-photo.jpg
--------------------------------------------------------------------------------
/docs/assets/images/company_logo_symbol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/company_logo_symbol.png
--------------------------------------------------------------------------------
/docs/assets/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/favicon.png
--------------------------------------------------------------------------------
/docs/assets/images/favicon_symbol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/favicon_symbol.png
--------------------------------------------------------------------------------
/docs/assets/images/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/github.png
--------------------------------------------------------------------------------
/docs/assets/images/header_photo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/header_photo.png
--------------------------------------------------------------------------------
/docs/assets/images/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/help.png
--------------------------------------------------------------------------------
/docs/assets/images/import.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/import.png
--------------------------------------------------------------------------------
/docs/assets/images/install.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/install.png
--------------------------------------------------------------------------------
/docs/assets/images/linkedin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/linkedin.png
--------------------------------------------------------------------------------
/docs/assets/images/psPAS-Logo-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/psPAS-Logo-1.png
--------------------------------------------------------------------------------
/docs/assets/images/shop_banner_symbol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/shop_banner_symbol.png
--------------------------------------------------------------------------------
/docs/assets/images/symbol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/symbol.png
--------------------------------------------------------------------------------
/docs/assets/images/team_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/assets/images/team_logo.png
--------------------------------------------------------------------------------
/docs/banner.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const pkg = require("./package.json");
3 | const filename = "assets/js/main.min.js";
4 | const script = fs.readFileSync(filename);
5 | const padStart = str => ("0" + str).slice(-2);
6 | const dateObj = new Date();
7 | const date = `${dateObj.getFullYear()}-${padStart(
8 | dateObj.getMonth() + 1
9 | )}-${padStart(dateObj.getDate())}`;
10 | const banner = `/*!
11 | * Minimal Mistakes Jekyll Theme ${pkg.version} by ${pkg.author}
12 | * Copyright 2013-${dateObj.getFullYear()} Michael Rose - mademistakes.com | @mmistakes
13 | * Licensed under ${pkg.license}
14 | */
15 | `;
16 |
17 | if (script.slice(0, 3) != "/**") {
18 | fs.writeFileSync(filename, banner + script);
19 | }
20 |
--------------------------------------------------------------------------------
/docs/collections/_commands/Get-PASAllowedReferrer.md:
--------------------------------------------------------------------------------
1 | ---
2 | category: PSPAS
3 | external help file: psPAS-help.xml
4 | Module Name: psPAS
5 | online version: https://pspas.pspete.dev/commands/Get-PASAllowedReferrer
6 | schema: 2.0.0
7 | title: Get-PASAllowedReferrer
8 | ---
9 |
10 | # Get-PASAllowedReferrer
11 |
12 | ## SYNOPSIS
13 | Gets the allowed referrer list
14 |
15 | ## SYNTAX
16 |
17 | ```
18 | Get-PASAllowedReferrer []
19 | ```
20 |
21 | ## DESCRIPTION
22 | Returns details of all configured entries from the allowed referrer list.
23 |
24 | Vault admins group membership required
25 |
26 | ## EXAMPLES
27 |
28 | ### EXAMPLE 1
29 | ```
30 | Get-PASAllowedReferrer
31 | ```
32 |
33 | Returns referrer list
34 |
35 | ## PARAMETERS
36 |
37 | ### CommonParameters
38 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
39 |
40 | ## INPUTS
41 |
42 | ## OUTPUTS
43 |
44 | ## NOTES
45 |
46 | ## RELATED LINKS
47 |
48 | [https://pspas.pspete.dev/commands/Get-PASAllowedReferrer](https://pspas.pspete.dev/commands/Get-PASAllowedReferrer)
49 |
50 | [https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/SDK/Get_Allowed_Referrer.htm](https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/SDK/Get_Allowed_Referrer.htm)
51 |
--------------------------------------------------------------------------------
/docs/collections/_commands/Get-PASLoggedOnUser.md:
--------------------------------------------------------------------------------
1 | ---
2 | category: PSPAS
3 | external help file: psPAS-help.xml
4 | Module Name: psPAS
5 | online version: https://pspas.pspete.dev/commands/Get-PASLoggedOnUser
6 | schema: 2.0.0
7 | title: Get-PASLoggedOnUser
8 | ---
9 |
10 | # Get-PASLoggedOnUser
11 |
12 | ## SYNOPSIS
13 | Returns details of the logged on user
14 |
15 | ## SYNTAX
16 |
17 | ```
18 | Get-PASLoggedOnUser []
19 | ```
20 |
21 | ## DESCRIPTION
22 | Returns information on the user who is logged in.
23 |
24 | ## EXAMPLES
25 |
26 | ### EXAMPLE 1
27 | ```
28 | Get-PASLoggedOnUser
29 | ```
30 |
31 | Returns information on the currently authenticated user.
32 |
33 | ## PARAMETERS
34 |
35 | ### CommonParameters
36 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
37 |
38 | ## INPUTS
39 |
40 | ## OUTPUTS
41 |
42 | ## NOTES
43 |
44 | ## RELATED LINKS
45 |
46 | [https://pspas.pspete.dev/commands/Get-PASLoggedOnUser](https://pspas.pspete.dev/commands/Get-PASLoggedOnUser)
47 |
48 | [https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/SDK/User%20Web%20Services%20-%20Logged%20on%20User%20Details.htm](https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/SDK/User%20Web%20Services%20-%20Logged%20on%20User%20Details.htm)
49 |
--------------------------------------------------------------------------------
/docs/collections/_commands/Get-PASPSMServer.md:
--------------------------------------------------------------------------------
1 | ---
2 | category: PSPAS
3 | external help file: psPAS-help.xml
4 | Module Name: psPAS
5 | online version: https://pspas.pspete.dev/commands/Get-PASPSMServer
6 | schema: 2.0.0
7 | title: Get-PASPSMServer
8 | ---
9 |
10 | # Get-PASPSMServer
11 |
12 | ## SYNOPSIS
13 | Lists configured PSM Servers
14 |
15 | ## SYNTAX
16 |
17 | ```
18 | Get-PASPSMServer []
19 | ```
20 |
21 | ## DESCRIPTION
22 | Allows Vault admins to get a list of all PSM servers defined for an environment.
23 |
24 | ## EXAMPLES
25 |
26 | ### EXAMPLE 1
27 | ```
28 | Get-PASPSMServer
29 | ```
30 |
31 | Lists all configured PSM Servers
32 |
33 | ## PARAMETERS
34 |
35 | ### CommonParameters
36 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
37 |
38 | ## INPUTS
39 |
40 | ## OUTPUTS
41 |
42 | ## NOTES
43 |
44 | ## RELATED LINKS
45 |
46 | [https://pspas.pspete.dev/commands/Get-PASPSMServer](https://pspas.pspete.dev/commands/Get-PASPSMServer)
47 |
48 | [https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/SDK/Session%20Mngmnt%20-%20Get_All_PSM_Servers.htm](https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/SDK/Session%20Mngmnt%20-%20Get_All_PSM_Servers.htm)
49 |
--------------------------------------------------------------------------------
/docs/collections/_commands/Get-PASPTAExcludedTarget.md:
--------------------------------------------------------------------------------
1 | ---
2 | category: PSPAS
3 | external help file: psPAS-help.xml
4 | Module Name: psPAS
5 | online version: https://pspas.pspete.dev/commands/Get-PASPTAExcludedTarget
6 | schema: 2.0.0
7 | title: Get-PASPTAExcludedTarget
8 | ---
9 |
10 | # Get-PASPTAExcludedTarget
11 |
12 | ## SYNOPSIS
13 | Get excluded target from the PTA
14 |
15 | ## SYNTAX
16 |
17 | ```
18 | Get-PASPTAExcludedTarget []
19 | ```
20 |
21 | ## DESCRIPTION
22 | Returns excluded target properties from PTA security configuration
23 |
24 | ## EXAMPLES
25 |
26 | ### EXAMPLE 1
27 | ```powershell
28 | Get-PASPTAExcludedTarget
29 | ```
30 |
31 | Returns all configured excluded targets
32 |
33 | ## PARAMETERS
34 |
35 | ### CommonParameters
36 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
37 |
38 | ## INPUTS
39 |
40 | ## OUTPUTS
41 |
42 | ## NOTES
43 |
44 | ## RELATED LINKS
45 |
46 | [https://pspas.pspete.dev/commands/Get-PASPTAExcludedTarget](https://pspas.pspete.dev/commands/Get-PASPTAExcludedTarget)
47 |
48 | [https://docs.cyberark.com/PAS/Latest/en/Content/WebServices/GetAdministration.htm](https://docs.cyberark.com/PAS/Latest/en/Content/WebServices/GetAdministration.htm)
49 |
--------------------------------------------------------------------------------
/docs/collections/_commands/Get-PASPTAIncludedTarget.md:
--------------------------------------------------------------------------------
1 | ---
2 | category: PSPAS
3 | external help file: psPAS-help.xml
4 | Module Name: psPAS
5 | online version: https://pspas.pspete.dev/commands/Get-PASPTAIncludedTarget
6 | schema: 2.0.0
7 | title: Get-PASPTAIncludedTarget
8 | ---
9 |
10 | # Get-PASPTAIncludedTarget
11 |
12 | ## SYNOPSIS
13 | Returns included target property from PTA
14 |
15 | ## SYNTAX
16 |
17 | ```
18 | Get-PASPTAIncludedTarget []
19 | ```
20 |
21 | ## DESCRIPTION
22 | Returns included target property from PTA security configuration
23 |
24 | ## EXAMPLES
25 |
26 | ### EXAMPLE 1
27 | ```powershell
28 | Get-PASPTAIncludedTarget
29 | ```
30 |
31 | Returns all configured included targets from PTA configuration
32 |
33 | ## PARAMETERS
34 |
35 | ### CommonParameters
36 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
37 |
38 | ## INPUTS
39 |
40 | ## OUTPUTS
41 |
42 | ## NOTES
43 |
44 | ## RELATED LINKS
45 |
46 | [https://pspas.pspete.dev/commands/Get-PASPTAPrivilegedGroup](https://pspas.pspete.dev/commands/Get-PASPTAIncludedTarget)
47 |
48 | [https://docs.cyberark.com/PAS/Latest/en/Content/WebServices/GetAdministration.htm](https://docs.cyberark.com/PAS/Latest/en/Content/WebServices/GetAdministration.htm)
49 |
--------------------------------------------------------------------------------
/docs/collections/_commands/Get-PASPTAPrivilegedGroup.md:
--------------------------------------------------------------------------------
1 | ---
2 | category: PSPAS
3 | external help file: psPAS-help.xml
4 | Module Name: psPAS
5 | online version: https://pspas.pspete.dev/commands/Get-PASPTAPrivilegedGroup
6 | schema: 2.0.0
7 | title: Get-PASPTAPrivilegedGroup
8 | ---
9 |
10 | # Get-PASPTAPrivilegedGroup
11 |
12 | ## SYNOPSIS
13 | Get configured PTA PrivilegedDomainGroupsList
14 |
15 | ## SYNTAX
16 |
17 | ```
18 | Get-PASPTAPrivilegedGroup []
19 | ```
20 |
21 | ## DESCRIPTION
22 | Return PrivilegedDomainGroupsList from PTA
23 |
24 | ## EXAMPLES
25 |
26 | ### EXAMPLE 1
27 | ```powershell
28 | Get-PASPTAPrivilegedGroup
29 | ```
30 |
31 | Return PrivilegedDomainGroupsList from PTA
32 |
33 | ## PARAMETERS
34 |
35 | ### CommonParameters
36 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
37 |
38 | ## INPUTS
39 |
40 | ## OUTPUTS
41 |
42 | ## NOTES
43 |
44 | ## RELATED LINKS
45 |
46 | [https://pspas.pspete.dev/commands/Get-PASPTAPrivilegedGroup](https://pspas.pspete.dev/commands/Get-PASPTAPrivilegedGroup)
47 |
48 | [https://docs.cyberark.com/PAS/Latest/en/Content/WebServices/GetSecurity.htm](https://docs.cyberark.com/PAS/Latest/en/Content/WebServices/GetSecurity.htm)
49 |
--------------------------------------------------------------------------------
/docs/collections/_commands/Get-PASPTARemediation.md:
--------------------------------------------------------------------------------
1 | ---
2 | category: PSPAS
3 | external help file: psPAS-help.xml
4 | Module Name: psPAS
5 | online version: https://pspas.pspete.dev/commands/Get-PASPTARemediation
6 | schema: 2.0.0
7 | title: Get-PASPTARemediation
8 | ---
9 |
10 | # Get-PASPTARemediation
11 |
12 | ## SYNOPSIS
13 | Returns automatic remediation settings from PTA
14 |
15 | ## SYNTAX
16 |
17 | ```
18 | Get-PASPTARemediation []
19 | ```
20 |
21 | ## DESCRIPTION
22 | Returns automatic remediation settings configured in PTA
23 |
24 | ## EXAMPLES
25 |
26 | ### EXAMPLE 1
27 | ```
28 | Get-PASPTARemediation
29 | ```
30 |
31 | Returns all automatic remediation settings from PTA
32 |
33 | ## PARAMETERS
34 |
35 | ### CommonParameters
36 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
37 |
38 | ## INPUTS
39 |
40 | ## OUTPUTS
41 |
42 | ## NOTES
43 | Minimum Version CyberArk 10.4
44 |
45 | ## RELATED LINKS
46 |
47 | [https://pspas.pspete.dev/commands/Get-PASPTARemediation](https://pspas.pspete.dev/commands/Get-PASPTARemediation)
48 |
49 | [https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/WebServices/GetSettings.htm](https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/WebServices/GetSettings.htm)
50 |
--------------------------------------------------------------------------------
/docs/collections/_commands/Get-PASPTARiskSummary.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: psPAS-help.xml
3 | Module Name: psPAS
4 | online version: https://pspas.pspete.dev/commands/Get-PASPTARiskEventSummary
5 | schema: 2.0.0
6 | ---
7 |
8 | # Get-PASPTARiskSummary
9 |
10 | ## SYNOPSIS
11 |
12 | Get PTA risk events summary.
13 |
14 | ## SYNTAX
15 |
16 | ```
17 | Get-PASPTARiskSummary []
18 | ```
19 |
20 | ## DESCRIPTION
21 | Display count and summary information on current PTA Risk Events.
22 |
23 | Requires minimum version of 13.2
24 |
25 | ## EXAMPLES
26 |
27 | ### EXAMPLE 1
28 | ```powershell
29 | Get-PASPTARiskEventSummary
30 | ```
31 |
32 | Output PTA risk events summary
33 |
34 | ## PARAMETERS
35 |
36 | ### CommonParameters
37 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
38 |
39 | ## INPUTS
40 |
41 | ## OUTPUTS
42 |
43 | ## NOTES
44 |
45 | ## RELATED LINKS
46 |
47 | [https://pspas.pspete.dev/commands/Get-PASPTARiskEventSummary](https://pspas.pspete.dev/commands/Get-PASPTARiskEventSummary)
48 |
49 | [https://docs.cyberark.com/PAS/Latest/en/Content/WebServices/GetRisks.htm](https://docs.cyberark.com/PAS/Latest/en/Content/WebServices/GetRisks.htm)
50 |
--------------------------------------------------------------------------------
/docs/collections/_commands/Get-PASPTARule.md:
--------------------------------------------------------------------------------
1 | ---
2 | category: PSPAS
3 | external help file: psPAS-help.xml
4 | Module Name: psPAS
5 | online version: https://pspas.pspete.dev/commands/Get-PASPTARule
6 | schema: 2.0.0
7 | title: Get-PASPTARule
8 | ---
9 |
10 | # Get-PASPTARule
11 |
12 | ## SYNOPSIS
13 | Returns risky activities rules from PTA
14 |
15 | ## SYNTAX
16 |
17 | ```
18 | Get-PASPTARule []
19 | ```
20 |
21 | ## DESCRIPTION
22 | Returns risky activities rules configured in PTA
23 |
24 | ## EXAMPLES
25 |
26 | ### EXAMPLE 1
27 | ```
28 | Get-PASPTARule
29 | ```
30 |
31 | Returns all risky activities rules from PTA
32 |
33 | ## PARAMETERS
34 |
35 | ### CommonParameters
36 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
37 |
38 | ## INPUTS
39 |
40 | ## OUTPUTS
41 |
42 | ## NOTES
43 | Minimum Version CyberArk 10.4
44 |
45 | ## RELATED LINKS
46 |
47 | [https://pspas.pspete.dev/commands/Get-PASPTARule](https://pspas.pspete.dev/commands/Get-PASPTARule)
48 |
49 | [https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/WebServices/GetSettings.htm](https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/WebServices/GetSettings.htm)
50 |
--------------------------------------------------------------------------------
/docs/collections/_commands/Get-PASPlatformSummary.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: psPAS-help.xml
3 | Module Name: psPAS
4 | online version: https://pspas.pspete.dev/commands/Get-PASPlatformSummary
5 | schema: 2.0.0
6 | title: Get-PASPlatformSummary
7 | ---
8 |
9 | # Get-PASPlatformSummary
10 |
11 | ## SYNOPSIS
12 |
13 | Get list of all platform system types
14 |
15 | ## SYNTAX
16 |
17 | ```
18 | Get-PASPlatformSummary []
19 | ```
20 |
21 | ## DESCRIPTION
22 | Retrieve basic information on all existing platform system types.
23 |
24 | ## EXAMPLES
25 |
26 | ### EXAMPLE 1
27 | ```powershell
28 | PS C:\> Get-PASPlatformSummary
29 | ```
30 |
31 | Returns list and count of each current platform system types.
32 |
33 | ## PARAMETERS
34 |
35 | ### CommonParameters
36 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
37 |
38 | ## INPUTS
39 |
40 | ## OUTPUTS
41 |
42 | ## NOTES
43 |
44 | ## RELATED LINKS
45 |
46 | [https://pspas.pspete.dev/commands/Get-PASPlatformSummary](https://pspas.pspete.dev/commands/Get-PASPlatformSummary)
47 |
--------------------------------------------------------------------------------
/docs/collections/_commands/Get-PASUserLoginInfo.md:
--------------------------------------------------------------------------------
1 | ---
2 | category: PSPAS
3 | external help file: psPAS-help.xml
4 | Module Name: psPAS
5 | online version: https://pspas.pspete.dev/commands/Get-PASUserLoginInfo
6 | schema: 2.0.0
7 | title: Get-PASUserLoginInfo
8 | ---
9 |
10 | # Get-PASUserLoginInfo
11 |
12 | ## SYNOPSIS
13 | Get Login information for the current user
14 |
15 | ## SYNTAX
16 |
17 | ```
18 | Get-PASUserLoginInfo []
19 | ```
20 |
21 | ## DESCRIPTION
22 | Returns data about the User that is currently logged into the system
23 |
24 | ## EXAMPLES
25 |
26 | ### EXAMPLE 1
27 | ```
28 | Get-PASUserLoginInfo
29 | ```
30 |
31 | Returns Login Info for the current user
32 |
33 | ## PARAMETERS
34 |
35 | ### CommonParameters
36 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
37 |
38 | ## INPUTS
39 |
40 | ## OUTPUTS
41 |
42 | ## NOTES
43 |
44 | ## RELATED LINKS
45 |
46 | [https://pspas.pspete.dev/commands/Get-PASUserLoginInfo](https://pspas.pspete.dev/commands/Get-PASUserLoginInfo)
47 |
48 |
--------------------------------------------------------------------------------
/docs/collections/_commands/Get-PASUserTypeInfo.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: psPAS-help.xml
3 | Module Name: psPAS
4 | online version: https://pspas.pspete.dev/commands/Get-PASUserTypeInfo
5 | schema: 2.0.0
6 | title: Get-PASUserTypeInfo
7 | ---
8 |
9 | # Get-PASUserTypeInfo
10 |
11 | ## SYNOPSIS
12 | Output information about user types
13 |
14 | ## SYNTAX
15 |
16 | ```
17 | Get-PASUserTypeInfo []
18 | ```
19 |
20 | ## DESCRIPTION
21 | Returns information about user types.
22 |
23 | Requires the Audit Users permission.
24 |
25 | Requires minimum version 13.2
26 |
27 | ## EXAMPLES
28 |
29 | ### EXAMPLE 1
30 | ```powershell
31 | Get-PASUserTypeInfo
32 | ```
33 |
34 | Output information about available user types
35 |
36 | ## PARAMETERS
37 |
38 | ### CommonParameters
39 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
40 |
41 | ## INPUTS
42 |
43 | ## OUTPUTS
44 |
45 | ## NOTES
46 |
47 | ## RELATED LINKS
48 |
49 | [https://pspas.pspete.dev/commands/Get-PASUserTypeInfo](https://pspas.pspete.dev/commands/Get-PASUserTypeInfo)
50 |
51 | [https://docs.cyberark.com/PAS/13.2/en/Content/SDK/API-GetUserTypes.htm](https://docs.cyberark.com/PAS/13.2/en/Content/SDK/API-GetUserTypes.htm)
--------------------------------------------------------------------------------
/docs/collections/_docs/24-cpm-operations.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "CPM Operations"
3 | permalink: /docs/cpm-operations/
4 | excerpt: "psPAS CPM Operations"
5 | last_modified_at: 2019-09-01T01:33:52-00:00
6 | ---
7 |
8 | ## Verify
9 |
10 | - Verify passwords
11 |
12 | ```powershell
13 | # immediate verification
14 | Invoke-PASCPMOperation -AccountID $ID -VerifyTask
15 | ```
16 |
17 | ## Change
18 |
19 | - Change passwords for accounts or account groups
20 |
21 | ```powershell
22 | # immediate change
23 | Invoke-PASCPMOperation -AccountID $ID -ChangeTask
24 |
25 | # immediate change to a specific password value
26 | Invoke-PASCPMOperation -AccountID $ID -ChangeTask -ChangeImmediately $true -NewCredentials $SecureString
27 |
28 | # change password in the Vault only
29 | Invoke-PASCPMOperation -AccountID $ID -ChangeTask -NewCredentials $SecureString
30 |
31 | # change password for account group
32 | Invoke-PASCPMOperation -AccountID $ID -ChangeTask -ChangeEntireGroup $true
33 |
34 | # change password for account group to a specific password value
35 | Invoke-PASCPMOperation -AccountID $ID -ChangeTask -ChangeEntireGroup $true -NewCredentials $SecureString
36 | ```
37 |
38 | ## Reconcile
39 |
40 | - Reconcile passwords
41 |
42 | ```powershell
43 | # immediate reconcile
44 | Invoke-PASCPMOperation -AccountID $ID -ReconcileTask
45 | ```
46 |
--------------------------------------------------------------------------------
/docs/collections/_docs/34-psm-sessions.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "PSM Sessions"
3 | permalink: /docs/psm-sessions/
4 | excerpt: "psPAS PSM Sessions"
5 | last_modified_at: 2019-09-01T01:33:52-00:00
6 | ---
7 |
8 | ## Terminate all Active PSM Sessions on a PSM Server
9 |
10 | ````powershell
11 | #Find Active Sessions for a PSM Server IP
12 | #Terminate the Sessions
13 | Get-PASPSMSession | Where-Object{
14 | ($_.RawProperties.ProviderID -eq $(Get-PASComponentDetail -ComponentID SessionManagement |
15 | Where-Object{$_.ComponentIP -eq "192.168.60.20"} |
16 | Select -ExpandProperty ComponentUserName))
17 | -and ($_.IsLive) -and ($_.CanTerminate)} | Stop-PASPSMSession
18 | ````
19 |
--------------------------------------------------------------------------------
/docs/collections/_docs/36-update-accounts.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Update Accounts"
3 | permalink: /docs/update-accounts/
4 | excerpt: "psPAS Update Accounts"
5 | last_modified_at: 2019-09-01T01:33:52-00:00
6 | ---
7 |
8 | ## Updating Multiple Properties of an Account
9 |
10 | - Multiple updates can be performed in a single request:
11 |
12 | ````powershell
13 | [array]$operations += @{"op"="remove";"path"="/platformAccountProperties/LogonDomain"}
14 | [array]$operations += @{"op"="replace";"path"="/name";"value"="SomeNewName"}
15 | [array]$operations += @{"op"="replace";"path"="/address";"value"="domain.co.uk"}
16 |
17 | Set-PASAccount -AccountID 286_4 -operations $operations
18 |
19 | AccountID : 286_4
20 | Safe : 3_TestSafe_028_XYJ
21 | address : domain.co.uk
22 | userName : sbwudlov
23 | name : SomeNewName
24 | platformId : Z_WINDOMAIN_OFF
25 | secretType : password
26 | secretManagement : @{automaticManagementEnabled=True; lastModifiedTime=1559864222}
27 | createdTime : 06/06/2019 23:37:02
28 | ````
29 |
--------------------------------------------------------------------------------
/docs/collections/_docs/38-methods.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Methods"
3 | permalink: /docs/methods/
4 | excerpt: "psPAS Methods"
5 | last_modified_at: 2019-09-01T01:33:52-00:00
6 | ---
7 |
8 | ## Using Methods
9 |
10 | Methods present on objects returned from psPAS functions can be leveraged to get the data you need with ease.
11 |
12 | - The `psPAS.CyberArk.Vault.Safe` object returned by `Get-PASSafe` has a ScriptMethod (`SafeMembers()`), which will run a query for the members of the safe:
13 |
14 | ```powershell
15 | #List all safes where AppUser is not a member
16 | Get-PASSafe | Where-Object{ ($_.safemembers() | Select-Object -ExpandProperty UserName) -notcontains "AppUser"}
17 | ```
18 |
19 | - Retrieved credentials can be immediately converted into Secure Strings:
20 |
21 | ```powershell
22 | (Get-PASAccount -id 330_5 | Get-PASAccountPassword).ToSecureString()
23 | ```
24 |
--------------------------------------------------------------------------------
/docs/collections/_drafts/####-##-##-pspas-release-#-#.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "psPAS Release #.#"
3 | date: 2022-02-12 00:00:00
4 | tags:
5 | - Release Notes
6 | ---
7 |
8 | ## #.#.# (Month ## ####)
9 |
10 | Content
--------------------------------------------------------------------------------
/docs/collections/_drafts/2024-01-27-pspas-release-6-1.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "psPAS Release 6.1"
3 | date: 2024-01-27 00:00:00
4 | tags:
5 | - Release Notes
6 | ---
7 |
8 | ## 6.1.0 (January 27 2024)
9 |
10 | ### Module update to cover all CyberArk 14.0 API features
11 |
12 | ### Added
13 | - N/A
14 |
15 | ### Changed
16 | - N/A
17 |
18 | ### Fixed
19 | - N/A
20 |
21 |
--------------------------------------------------------------------------------
/docs/collections/_pages/articles.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "psPAS Articles"
3 | permalink: /articles/
4 | layout: posts
5 | author_profile: true
6 | ---
7 |
--------------------------------------------------------------------------------
/docs/collections/_pages/category-archive.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Posts by Category"
3 | layout: categories
4 | permalink: /categories/
5 | author_profile: true
6 | ---
--------------------------------------------------------------------------------
/docs/collections/_pages/tag-archive.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Posts by Tag"
3 | permalink: /tags/
4 | layout: tags
5 | author_profile: true
6 | ---
--------------------------------------------------------------------------------
/docs/collections/_posts/2018-02-12-pspas-release-1-0.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "psPAS Release 1.0"
3 | date: 2018-02-12 00:00:00
4 | tags:
5 | - Release Notes
6 | - PowerShell Gallery
7 | ---
8 |
9 | ## 1.0.6 (February 12 2018)
10 |
11 | Published to [PowerShell Gallery](http://powershellgallery.com/packages/psPAS)
12 |
--------------------------------------------------------------------------------
/docs/collections/_posts/2018-03-09-pspas-release-1-1.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "psPAS Release 1.1"
3 | date: 2018-02-12 00:00:00
4 | tags:
5 | - Release Notes
6 | - Add-PASAccountGroupMember
7 | - New-PASAccountGroup
8 | - Get-PASOnboardingRule
9 | - New-PASOnboardingRule
10 | - Remove-PASOnboardingRule
11 | ---
12 |
13 | ## 1.1.8 (March 09 2018)
14 |
15 | - Bug Fixes:
16 | - `Add-PASAccountGroupMember` now sends AccountID with request.
17 | - `New-PASAccountGroup` fixed an incorrect parameter name (_GroupPlatformID_).
18 | - `New-PASSAMLSession` - basic authentication token now sent in request header.
19 | - `Get-PASOnboardingRule`, `New-PASOnboardingRule` & `Remove-PASOnboardingRule`,
20 | parameters updated to allow specification of alternate PVWA application name
21 | (in-line with the rest of the module's functions).
22 |
--------------------------------------------------------------------------------
/docs/collections/_posts/2018-06-05-pspas-release-1-3.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "psPAS Release 1.3"
3 | date: 2018-06-05 00:00:00
4 | tags:
5 | - Release Notes
6 | - Import-PASConnectionComponent
7 | ---
8 |
9 | ## 1.3.0 (June 5 2018)
10 |
11 | ### Module update to cover CyberArk 10.3 API features ~~(part 1)~~
12 |
13 | - New Function
14 | - `Import-PASConnectionComponent` function added, allows import of connection component from zip file.
15 |
16 | - Bug Fixes
17 | - Updates to some functions and test scripts to fix Pester & PSScriptAnalyzer failures/violations/errors
18 | - Updates to some pester tests to allow them to run & pass in PowerShell Core
19 |
20 | - Other Updates
21 | - Build, Test, Deploy process updated to run in PowerShell Core instead of Windows PowerShell 5
22 | - Removed about_psPAS_Versions.help.txt - an unhelpful help file.
23 |
--------------------------------------------------------------------------------
/docs/collections/_posts/2018-07-18-pspas-release-2-1.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "psPAS Release 2.1"
3 | date: 2018-07-18 00:00:00
4 | tags:
5 | - Release Notes
6 | - Get-PASPTAEvent
7 | - Get-PASPTARule
8 | - Get-PASPTARemediation
9 | - Add-PASPTARule
10 | - Set-PASPTARule
11 | - Set-PASPTARemediation
12 | ---
13 |
14 | ## 2.1.0 (July 18th 2018)
15 |
16 | - New Functions
17 | - `Get-PASPTAEvent` - function added, returns security events from PTA.
18 | - `Get-PASPTARule` - function added, returns rules from PTA.
19 | - `Get-PASPTARemediation` - function added, returns automatic remediation settings frm PTA.
20 | - `Add-PASPTARule` - function added, adds a new rule to PTA.
21 | - `Set-PASPTARule` - function added, updates a rule in PTA.
22 | - `Set-PASPTARemediation` - function added, updates automatic remediation.settings in PTA.
23 |
--------------------------------------------------------------------------------
/docs/collections/_posts/2018-10-21-pspas-release-2-2.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "psPAS Release 2.2"
3 | date: 2018-10-21 00:00:00
4 | tags:
5 | - Release Notes
6 | - New-PASSession
7 | - Get-PASAccountPassword
8 | - Get-PASAccount
9 | - Export-PASPlatform
10 | ---
11 |
12 | ## 2.2.22 (October 21st 2018)
13 |
14 | - Update
15 | - `New-PASSession`
16 | - Option added to use Windows integrated authentication with default credentials
17 | - Thanks [steveredden](https://github.com/steveredden)!
18 |
19 | ## 2.2.10 (September 23rd 2018)
20 |
21 | - Bug Fix
22 | - `Get-PASAccountPassword`
23 | - Fix applied to allow accountID from version 10 to be accepted from pipeline object.
24 | - `Get-PASAccount`
25 | - Validation added to `limit` parameter.
26 |
27 | ## 2.2.2 (September 12th 2018)
28 |
29 | - Bug Fix
30 | - `Get-PASAccountPassword`
31 | - Backward compatibility for retrieving password values from CyberArk version 9 restored.
32 |
33 | ## 2.2.0 (July 27th 2018)
34 |
35 | - Bug Fix
36 | - `Export-PASPlatform`
37 | - Exported files were invalid, now fixed.
38 | - Thanks [jmk-foofus](https://github.com/jmk-foofus)!
39 |
--------------------------------------------------------------------------------
/docs/collections/_posts/2019-05-16-pspas-release-2-6.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "psPAS Release 2.6"
3 | date: 2019-05-16 00:00:00
4 | tags:
5 | - Release Notes
6 | - Add-PASDirectory
7 | - New-PASUser
8 | - Get-PASUser
9 |
10 | ---
11 |
12 | ## 2.6.17 (May 16th 2019)
13 |
14 | - Fix
15 | - `Add-PASDirectory`
16 | - Parameter `SSLConnect` added (required if adding LDAPS hosts)
17 | - Thanks (again) [jmk-foofus](https://github.com/jmk-foofus)!
18 |
19 | ## 2.6.15 (May 2nd 2019)
20 |
21 | ### Module update to cover CyberArk 10.9 API features
22 |
23 | - Updated Functions
24 | - `New-PASUser`
25 | - Added support for the updated Add User API method for v10.9
26 | - `Get-PASUser`
27 | - Added support for the updated Get Users API method for v10.9
28 |
--------------------------------------------------------------------------------
/docs/collections/_posts/2019-09-17-pspas-release-3-2.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "psPAS Release 3.2"
3 | date: 2019-09-17 00:00:00
4 | tags:
5 | - Release Notes
6 | - New-PASSession
7 | - Get-PASAccountPassword
8 | - Add-PASSafeMember
9 | ---
10 |
11 | ## 3.2.37 (Sept 17th 2019)
12 |
13 | - Update Format for `psPAS.CyberArk.Vault.User`
14 | - Change default displayed properties when searching users with V10 API.
15 |
16 | ## 3.2.34 (Sept 11th 2019)
17 |
18 | - Minor updates to Help Text.
19 | - Clarified version requirements for parameters & api capabilities.
20 |
21 | ## 3.2.32 (Sept 5th 2019)
22 |
23 | - Fixes
24 | - `Add-PASSafeMember`
25 | - Update validation of MemberName parameter to not accept values containing `&` symbol.
26 |
27 | ## 3.2.30 (Sept 1st 2019)
28 |
29 | - Update
30 | - Raise minimum required PowerShell version to 5.0.
31 |
32 | ## 3.2.27 (Sept 1st 2019)
33 |
34 | - Updates
35 | - `New-PASSession`
36 | - Adds support for sending OTP in response to RADIUS Challenge
37 | - Adds support to skip certificate validation
38 |
39 | - Fixes
40 | - `Get-PASAccountPassword`
41 | - Parameter name corrected to `TicketingSystem` from `TicketingSystemName`
42 |
--------------------------------------------------------------------------------
/docs/collections/_posts/2020-08-24-pspas-release-4-4.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "psPAS Release 4.4"
3 | date: 2020-08-24 00:00:00
4 | tags:
5 | - Release Notes
6 | - Set-PASUser
7 | - New-PASUser
8 | - Add-PASAccount
9 | - Get-PASAccount
10 | - Get-PASDiscoveredAccount
11 | - New-PASAccountObject
12 | - Get-PASAccountImportJob
13 | - Start-PASAccountImportJob
14 | ---
15 |
16 | ## **4.4.71** (August 24th 2020)
17 |
18 | ### Module update to cover all CyberArk 11.6 API features
19 |
20 | - New Functions
21 | - `Start-PASAccountImportJob`
22 | - Add multiple accounts to existing safes
23 | - `Get-PASAccountImportJob`
24 | - Get status of bulk account import jobs
25 | - `New-PASAccountObject`
26 | - Formats an object to include in the list of accounts to be added using `Start-PASAccountImportJob`.
27 | - `Get-PASDiscoveredAccount`
28 | - Search for and list discovered accounts.
29 | - Updated Functions
30 | - `Get-PASAccount`
31 | - Updated to remove repeated code
32 | - `Add-PASAccount`
33 | - Updated to use `New-PASAccountObject` to create required request object.
34 | - `New-PASUser`
35 | - Updated to remove repeated code
36 | - `Set-PASUser`
37 | - Updated to remove repeated code
38 |
--------------------------------------------------------------------------------
/docs/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pspete/psPAS/4f44ad552862c4b0b8de333993f058a1b394c40c/docs/favicon.ico
--------------------------------------------------------------------------------
/docs/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "psPAS"
3 | layout: splash
4 | excerpt: "The Community Developed PowerShell Module for the CyberArk REST API."
5 | header:
6 | overlay_image: /assets/images/shop_banner_symbol.png
7 | overlay_filter: rgba(40, 106, 205, 0.9)
8 | actions:
9 | - label: "GitHub"
10 | url: "https://github.com/pspete/psPAS"
11 | - label: "PowerShell Gallery"
12 | url: "https://www.powershellgallery.com/packages/psPAS/"
13 | - label: "GitHub Sponsors"
14 | url: "https://github.com/sponsors/pspete"
15 | feature_row:
16 | - image_path: /assets/images/install.png
17 | title: "Install Options"
18 | excerpt: "Read about the installation options currently available for psPAS."
19 | url: "/docs/install/"
20 | btn_label: "Read More"
21 | btn_class: "btn--light-outline"
22 | - image_path: /assets/images/import.png
23 | title: "Module Guide"
24 | excerpt: "An overview of the psPAS module & how to use it to make your life easier."
25 | url: "/docs/authentication/"
26 | btn_label: "Read More"
27 | btn_class: "btn--light-outline"
28 | - image_path: /assets/images/help.png
29 | title: "Command Reference"
30 | excerpt: "Detailed documentation to help you understand the syntax of psPAS commands."
31 | url: "/commands/New-PASSession"
32 | btn_label: "Read More"
33 | btn_class: "btn--light-outline"
34 | ---
35 |
36 | {% include feature_row %}
37 |
--------------------------------------------------------------------------------
/docs/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "minimal-mistakes",
3 | "version": "4.16.5",
4 | "description": "Minimal Mistakes 2 column Jekyll theme.",
5 | "repository": {
6 | "type": "git",
7 | "url": "git://github.com/mmistakes/minimal-mistakes.git"
8 | },
9 | "keywords": [
10 | "jekyll",
11 | "theme",
12 | "minimal"
13 | ],
14 | "author": "Michael Rose",
15 | "license": "MIT",
16 | "bugs": {
17 | "url": "https://github.com/mmistakes/minimal-mistakes/issues"
18 | },
19 | "homepage": "https://mmistakes.github.io/minimal-mistakes/",
20 | "engines": {
21 | "node": ">= 0.10.0"
22 | },
23 | "devDependencies": {
24 | "npm-run-all": "^4.1.5",
25 | "onchange": "^5.1.3",
26 | "uglify-js": "^3.4.9"
27 | },
28 | "scripts": {
29 | "uglify": "uglifyjs assets/js/vendor/jquery/jquery-3.4.1.js assets/js/plugins/jquery.fitvids.js assets/js/plugins/jquery.greedy-navigation.js assets/js/plugins/jquery.magnific-popup.js assets/js/plugins/jquery.ba-throttle-debounce.js assets/js/plugins/smooth-scroll.js assets/js/plugins/gumshoe.js assets/js/_main.js -c -m -o assets/js/main.min.js",
30 | "add-banner": "node banner.js",
31 | "watch:js": "onchange \"assets/js/**/*.js\" -e \"assets/js/main.min.js\" -- npm run build:js",
32 | "build:js": "npm run uglify && npm run add-banner"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/psPAS/Functions/AccountACL/Get-PASAccountACL.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASAccountACL {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [Alias('PolicyID')]
10 | [string]$AccountPolicyId,
11 |
12 | [parameter(
13 | Mandatory = $true,
14 | ValueFromPipelinebyPropertyName = $true
15 | )]
16 | [Alias('Address')]
17 | [ValidateNotNullOrEmpty()]
18 | [string]$AccountAddress,
19 |
20 | [parameter(
21 | Mandatory = $true,
22 | ValueFromPipelinebyPropertyName = $true
23 | )]
24 | [Alias('UserName')]
25 | [ValidateNotNullOrEmpty()]
26 | [string]$AccountUserName
27 | )
28 |
29 | BEGIN {
30 | Assert-VersionRequirement -SelfHosted
31 | }#begin
32 |
33 | PROCESS {
34 |
35 | #Create URL for request
36 | $URI = "$($psPASSession.BaseURI)/WebServices/PIMServices.svc/Account/$($AccountAddress |
37 |
38 | Get-EscapedString)|$($AccountUserName |
39 |
40 | Get-EscapedString)|$($AccountPolicyId |
41 |
42 | Get-EscapedString)/PrivilegedCommands/"
43 |
44 | #Send request to Web Service
45 | $result = Invoke-PASRestMethod -Uri $URI -Method GET #DevSkim: ignore DS104456
46 |
47 | If ($null -ne $result) {
48 |
49 | $result.ListAccountPrivilegedCommandsResult |
50 |
51 | Add-ObjectDetail -typename psPAS.CyberArk.Vault.ACL.Account
52 |
53 | }
54 |
55 | }#process
56 |
57 | END { }#end
58 |
59 | }
--------------------------------------------------------------------------------
/psPAS/Functions/AccountGroups/Add-PASAccountGroupMember.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Add-PASAccountGroupMember {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [string]$GroupID,
11 |
12 | [parameter(
13 | Mandatory = $true,
14 | ValueFromPipelinebyPropertyName = $true
15 | )]
16 | [string]$AccountID
17 | )
18 |
19 | BEGIN {
20 | Assert-VersionRequirement -RequiredVersion 9.9.5
21 | }#begin
22 |
23 | PROCESS {
24 |
25 | #Create URL for Request
26 | $URI = "$($psPASSession.BaseURI)/API/AccountGroups/$($GroupID |
27 |
28 | Get-EscapedString)/Members"
29 |
30 | #Create body of request
31 | $body = $PSBoundParameters |
32 |
33 | Get-PASParameter -ParametersToRemove GroupID | ConvertTo-Json
34 |
35 | #send request to PAS web service
36 | Invoke-PASRestMethod -Uri $URI -Method POST -Body $Body
37 |
38 | }#process
39 |
40 | END { }#end
41 |
42 | }
--------------------------------------------------------------------------------
/psPAS/Functions/AccountGroups/Get-PASAccountGroupMember.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASAccountGroupMember {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$GroupID
10 | )
11 |
12 | BEGIN {
13 | Assert-VersionRequirement -RequiredVersion 9.10
14 | }#begin
15 |
16 | PROCESS {
17 |
18 | #Create URL for Request
19 | $URI = "$($psPASSession.BaseURI)/API/AccountGroups/$GroupID/Members"
20 |
21 | #send request to PAS web service
22 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
23 |
24 | If ($null -ne $result) {
25 |
26 | $result | Add-ObjectDetail -typename psPAS.CyberArk.Vault.Account.Group.Member
27 |
28 | }
29 |
30 | }#process
31 |
32 | END { }#end
33 |
34 | }
--------------------------------------------------------------------------------
/psPAS/Functions/AccountGroups/New-PASAccountGroup.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function New-PASAccountGroup {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [string]$GroupName,
11 |
12 | [parameter(
13 | Mandatory = $true,
14 | ValueFromPipelinebyPropertyName = $true
15 | )]
16 | [string]$GroupPlatformID,
17 |
18 | [parameter(
19 | Mandatory = $true,
20 | ValueFromPipelinebyPropertyName = $true
21 | )]
22 | [string]$Safe
23 | )
24 |
25 | BEGIN {
26 | Assert-VersionRequirement -RequiredVersion 9.9.5
27 | }#begin
28 |
29 | PROCESS {
30 |
31 | #Create URL for Request
32 | $URI = "$($psPASSession.BaseURI)/API/AccountGroups/"
33 |
34 | #Create body of request
35 | $body = $PSBoundParameters | Get-PASParameter | ConvertTo-Json
36 |
37 | if ($PSCmdlet.ShouldProcess($GroupName, 'Define New Account Group')) {
38 |
39 | #send request to PAS web service
40 | Invoke-PASRestMethod -Uri $URI -Method POST -Body $Body
41 |
42 | }
43 |
44 | }#process
45 |
46 | END { }#end
47 |
48 | }
--------------------------------------------------------------------------------
/psPAS/Functions/AccountGroups/Remove-PASAccountGroupMember.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Remove-PASAccountGroupMember {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$AccountID,
10 |
11 | [parameter(
12 | Mandatory = $true,
13 | ValueFromPipelinebyPropertyName = $true
14 | )]
15 | [string]$GroupID
16 | )
17 |
18 | BEGIN {
19 | Assert-VersionRequirement -RequiredVersion 9.10
20 | }#begin
21 |
22 | PROCESS {
23 |
24 | #Create URL for Request
25 | $URI = "$($psPASSession.BaseURI)/API/AccountGroups/$GroupID/Members/$AccountID"
26 |
27 | if ($PSCmdlet.ShouldProcess($AccountID, "Delete Member from Account Group $($GroupID)")) {
28 |
29 | #send request to PAS web service
30 | Invoke-PASRestMethod -Uri $URI -Method DELETE
31 |
32 | }
33 |
34 | }#process
35 |
36 | END { }#end
37 |
38 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Clear-PASDiscoveredAccountList.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Clear-PASDiscoveredAccountList {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param()
5 |
6 | BEGIN {
7 |
8 | Assert-VersionRequirement -RequiredVersion 12.1
9 |
10 | }#begin
11 |
12 | PROCESS {
13 |
14 | $URI = "$($psPASSession.BaseURI)/api/DiscoveredAccounts"
15 |
16 | if ($PSCmdlet.ShouldProcess('Discovered/Pending Account List', 'Delete')) {
17 |
18 | Invoke-PASRestMethod -Uri $URI -Method DELETE
19 |
20 | }
21 |
22 | }#process
23 |
24 | END { }#end
25 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Clear-PASDiscoveredLocalAccount.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Clear-PASDiscoveredLocalAccount {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param()
5 |
6 | BEGIN {
7 |
8 | Assert-VersionRequirement -PrivilegeCloud
9 |
10 | }#begin
11 |
12 | PROCESS {
13 |
14 | $URI = "$($psPASSession.ApiURI)/api/discovered-accounts/clear"
15 |
16 | if ($PSCmdlet.ShouldProcess('Discovered Local Account List', 'Delete')) {
17 |
18 | Invoke-PASRestMethod -Uri $URI -Method DELETE
19 |
20 | }
21 |
22 | }#process
23 |
24 | END { }#end
25 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Clear-PASLinkedAccount.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Clear-PASLinkedAccount {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [Alias('id')]
10 | [string]$AccountID,
11 |
12 | [parameter(
13 | Mandatory = $true,
14 | ValueFromPipelinebyPropertyName = $true
15 | )]
16 | [int]$extraPasswordIndex
17 |
18 | )
19 |
20 | BEGIN {
21 |
22 | Assert-VersionRequirement -RequiredVersion 12.2
23 |
24 | }#begin
25 |
26 | PROCESS {
27 |
28 | #Create URL for Request
29 | $URI = "$($psPASSession.BaseURI)/api/Accounts/$AccountID/LinkAccount/$extraPasswordIndex"
30 |
31 | if ($PSCmdlet.ShouldProcess($AccountID, "Clear extraPass$extraPasswordIndex Linked Account")) {
32 |
33 | #Send request to web service
34 | Invoke-PASRestMethod -Uri $URI -Method DELETE
35 |
36 | }
37 |
38 | }#process
39 |
40 | END { }#end
41 |
42 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Disable-PASCPMAutoManagement.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Disable-PASCPMAutoManagement {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [Alias('id')]
10 | [string]$AccountID,
11 |
12 | [parameter(
13 | Mandatory = $false,
14 | ValueFromPipelinebyPropertyName = $true,
15 | ParameterSetName = 'manualManagementReason'
16 | )]
17 | [string]$Reason
18 |
19 | )
20 |
21 | BEGIN {
22 |
23 | Assert-VersionRequirement -RequiredVersion 10.4
24 |
25 | $ops = [Collections.Generic.List[Object]]@(
26 | @{
27 | 'path' = '/secretManagement/automaticManagementEnabled'
28 | 'op' = 'replace'
29 | 'value' = $false
30 | }
31 | )
32 |
33 | }#begin
34 |
35 | PROCESS {
36 |
37 | if ($PSCmdlet.ParameterSetName -eq 'manualManagementReason') {
38 |
39 | $null = $ops.Add(@{
40 | 'path' = '/secretManagement/manualManagementReason'
41 | 'op' = 'replace'
42 | 'value' = $Reason
43 | })
44 | }
45 |
46 | Set-PASAccount -AccountID $AccountID -operations $ops
47 |
48 | }#process
49 |
50 | END { }#end
51 |
52 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Enable-PASCPMAutoManagement.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Enable-PASCPMAutoManagement {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [Alias('id')]
10 | [string]$AccountID
11 |
12 | )
13 |
14 | BEGIN {
15 |
16 | Assert-VersionRequirement -RequiredVersion 10.4
17 |
18 | $ops = [Collections.Generic.List[Object]]@(
19 | @{
20 | 'path' = '/secretManagement/automaticManagementEnabled'
21 | 'op' = 'replace'
22 | 'value' = $true
23 | },
24 | @{
25 | 'path' = '/secretManagement/manualManagementReason'
26 | 'op' = 'replace'
27 | 'value' = ''
28 | }
29 | )
30 |
31 | }#begin
32 |
33 | PROCESS {
34 |
35 | Set-PASAccount -AccountID $AccountID -operations $ops
36 |
37 | }#process
38 |
39 | END { }#end
40 |
41 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Get-PASAccountDetail.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASAccountDetail {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true,
8 | ParameterSetName = 'Gen2ID'
9 | )]
10 | [Alias('AccountID')]
11 | [string]$id
12 | )
13 |
14 | BEGIN {
15 | #check minimum version (10.4 assumed)
16 | Assert-VersionRequirement -RequiredVersion 10.4
17 | }#begin
18 |
19 | PROCESS {
20 |
21 | #define base URL
22 | $URI = "$($psPASSession.BaseURI)/api/ExtendedAccounts/$id/overview"
23 |
24 | #Send request to web service
25 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
26 |
27 | If ($null -ne $result) {
28 | $result
29 | }
30 |
31 | }#process
32 |
33 | END { }#end
34 |
35 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Get-PASAccountImportJob.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASAccountImportJob {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $false,
7 | ValueFromPipelinebyPropertyName = $true,
8 | ParameterSetName = 'byID'
9 | )]
10 | [string]$id
11 | )
12 |
13 | Begin {
14 |
15 | Assert-VersionRequirement -RequiredVersion 11.6
16 |
17 | }
18 |
19 | Process {
20 |
21 | #Create URL for Request
22 | $URI = "$($psPASSession.BaseURI)/api/bulkactions/accounts"
23 |
24 | If ($PSCmdlet.ParameterSetName -eq 'byID') {
25 |
26 | $URI = "$URI/$id"
27 |
28 | }
29 |
30 | #send request
31 | $Result = Invoke-PASRestMethod -Uri $URI -Method GET
32 |
33 | If ($null -ne $Result) {
34 |
35 | If ($PSCmdlet.ParameterSetName -ne 'byID') {
36 |
37 | $Result = $Result.BulkActions
38 |
39 | }
40 |
41 | $Result | Add-ObjectDetail -typename 'psPAS.CyberArk.Vault.Account.Job'
42 |
43 | }
44 |
45 | }
46 |
47 | End {}
48 |
49 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Get-PASDiscoveredLocalAccountActivity.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASDiscoveredLocalAccountActivity {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$id
10 | )
11 |
12 | Begin {
13 |
14 | Assert-VersionRequirement -PrivilegeCloud
15 |
16 | }
17 |
18 | Process {
19 |
20 | #Create URL for Request
21 | $URI = "$($psPASSession.ApiURI)/api/discovered-accounts/$id/activities"
22 |
23 | #Send request to web service
24 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
25 |
26 | If ($null -ne $Result) {
27 |
28 | #Return result
29 | $Result
30 |
31 | }
32 |
33 | }
34 |
35 | End {}
36 |
37 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Get-PASLinkedAccount.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASLinkedAccount {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [Alias('AccountID')]
10 | [string]$id
11 |
12 | )
13 |
14 | BEGIN {
15 |
16 | #Assume this is possible since Link/Unlink account capability in the newer UI
17 | Assert-VersionRequirement -RequiredVersion 12.2
18 |
19 | }#begin
20 |
21 | PROCESS {
22 |
23 | #Create URL for Request
24 | $URI = "$($psPASSession.BaseURI)/api/ExtendedAccounts/$id/LinkedAccounts"
25 |
26 | #Send request to web service
27 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
28 |
29 | If ($null -ne $result) {
30 |
31 | #Return Results
32 | $result.LinkedAccounts | Add-ObjectDetail -typename psPAS.CyberArk.Vault.Account.LinkedAccount
33 |
34 | }
35 |
36 | }#process
37 |
38 | END { }#end
39 |
40 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Get-PASLinkedGroup.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASLinkedGroup {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [Alias('AccountID')]
10 | [string]$id
11 |
12 | )
13 |
14 | BEGIN {
15 |
16 | #Assume this is possible since Link/Unlink account capability in the newer UI
17 | Assert-VersionRequirement -RequiredVersion 12.2
18 |
19 | }#begin
20 |
21 | PROCESS {
22 |
23 | #Create URL for Request
24 | $URI = "$($psPASSession.BaseURI)/api/ExtendedAccounts/$id/LinkedAccounts"
25 |
26 | #Send request to web service
27 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
28 |
29 | If ($null -ne $result) {
30 |
31 | #Return Results
32 | $result | Select-Object -Property * -ExcludeProperty LinkedAccounts | Add-ObjectDetail -typename psPAS.CyberArk.Vault.Account.LinkedGroup
33 |
34 | }
35 |
36 | }#process
37 |
38 | END { }#end
39 |
40 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/New-PASAccountPassword.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function New-PASAccountPassword {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [Alias('id')]
11 | [string]$AccountID
12 | )
13 |
14 | BEGIN {
15 |
16 | #check minimum version
17 | Assert-VersionRequirement -RequiredVersion 12.0
18 |
19 | }#begin
20 |
21 | PROCESS {
22 |
23 | #Create URL for request
24 | $URI = "$($psPASSession.BaseURI)/api/Accounts/$AccountID/Secret/Generate"
25 |
26 | if ($PSCmdlet.ShouldProcess($AccountID, 'Generate New Password')) {
27 |
28 | #Send request to webservice
29 | $result = Invoke-PASRestMethod -Uri $URI -Method POST
30 |
31 | if ($null -ne $result) {
32 |
33 | #Unescape returned string.
34 | $result = [System.Text.RegularExpressions.Regex]::Unescape($result.password)
35 |
36 | [PSCustomObject] @{'Password' = $result } | Add-ObjectDetail -typename psPAS.CyberArk.Vault.Credential
37 |
38 | }
39 |
40 | }
41 |
42 | }#process
43 |
44 | END { }#end
45 |
46 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Remove-PASAccount.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Remove-PASAccount {
3 | [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', 'UseGen1API', Justification = 'False Positive')]
4 | [CmdletBinding(SupportsShouldProcess)]
5 | param(
6 | [parameter(
7 | Mandatory = $true,
8 | ValueFromPipelinebyPropertyName = $true
9 | )]
10 | [ValidateNotNullOrEmpty()]
11 | [Alias('id')]
12 | [string]$AccountID,
13 |
14 | [parameter(
15 | Mandatory = $false,
16 | ValueFromPipelinebyPropertyName = $false,
17 | ParameterSetName = 'Gen1'
18 | )]
19 | [Alias('UseClassicAPI')]
20 | [switch]$UseGen1API
21 | )
22 |
23 | BEGIN {
24 | #check minimum version
25 | Assert-VersionRequirement -RequiredVersion 10.4
26 | }#begin
27 |
28 | PROCESS {
29 |
30 | switch ($PSCmdlet.ParameterSetName) {
31 |
32 | 'Gen1' {
33 |
34 | #Create URL for request (earlier than 10.4)
35 | $URI = "$($psPASSession.BaseURI)/WebServices/PIMServices.svc/Accounts/$AccountID"
36 | break
37 |
38 | }
39 |
40 | default {
41 |
42 | #Create URL for request (Version 10.4 onwards)
43 | $URI = "$($psPASSession.BaseURI)/api/Accounts/$AccountID"
44 |
45 | }
46 |
47 | }
48 |
49 | if ($PSCmdlet.ShouldProcess($AccountID, 'Delete Account')) {
50 |
51 | #Send request to webservice
52 | Invoke-PASRestMethod -Uri $URI -Method DELETE
53 |
54 | }
55 |
56 | }#process
57 |
58 | END { }#end
59 |
60 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Remove-PASDiscoveredLocalAccount.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Remove-PASDiscoveredLocalAccount {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$id
10 | )
11 |
12 | BEGIN {
13 |
14 | Assert-VersionRequirement -PrivilegeCloud
15 |
16 | }#begin
17 |
18 | PROCESS {
19 |
20 | $URI = "$($psPASSession.ApiURI)/api/discovered-accounts/$id"
21 |
22 | if ($PSCmdlet.ShouldProcess("Discovered Local Account: $id", 'Delete')) {
23 |
24 | Invoke-PASRestMethod -Uri $URI -Method DELETE
25 |
26 | }
27 |
28 | }#process
29 |
30 | END { }#end
31 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Request-PASJustInTimeAccess.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Request-PASJustInTimeAccess {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [Alias('id')]
11 | [string]$AccountID
12 | )
13 |
14 | BEGIN {
15 | #check minimum version
16 | Assert-VersionRequirement -RequiredVersion 10.6
17 | }#begin
18 |
19 | PROCESS {
20 |
21 | #Create URL for request (Version 10.4 onwards)
22 | $URI = "$($psPASSession.BaseURI)/api/Accounts/$AccountID/grantAdministrativeAccess"
23 |
24 | #Send request to webservice
25 | Invoke-PASRestMethod -Uri $URI -Method POST
26 |
27 | }#process
28 |
29 | END { }#end
30 |
31 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Revoke-PASJustInTimeAccess.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Revoke-PASJustInTimeAccess {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [Alias('id')]
11 | [string]$AccountID
12 | )
13 |
14 | BEGIN {
15 | #check minimum version
16 | Assert-VersionRequirement -RequiredVersion 12.0
17 | }#begin
18 |
19 | PROCESS {
20 |
21 | #Create URL for request
22 | $URI = "$($psPASSession.BaseURI)/api/Accounts/$AccountID/RevokeAdministrativeAccess"
23 |
24 | #Send request to webservice
25 | Invoke-PASRestMethod -Uri $URI -Method POST
26 |
27 | }#process
28 |
29 | END { }#end
30 |
31 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Accounts/Start-PASAccountImportJob.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Start-PASAccountImportJob {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $false,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$source,
10 |
11 | [parameter(
12 | Mandatory = $true,
13 | ValueFromPipelinebyPropertyName = $true
14 | )]
15 | [object[]]$accountsList
16 | )
17 |
18 | Begin {
19 |
20 | Assert-VersionRequirement -RequiredVersion 11.6
21 |
22 | #Create URL for Request
23 | $URI = "$($psPASSession.BaseURI)/api/bulkactions/accounts"
24 |
25 | }
26 |
27 | Process {
28 |
29 | #Get all parameters that will be sent in the request
30 | $boundParameters = $PSBoundParameters | Get-PASParameter
31 |
32 | #Create body of request
33 | $body = $boundParameters | Get-PASParameter | ConvertTo-Json -Depth 3
34 |
35 | if ($PSCmdlet.ShouldProcess("List of $($accountsList.count) account(s)", 'Start Bulk Account Import Job')) {
36 |
37 | #send request
38 | $Result = Invoke-PASRestMethod -Uri $URI -Method POST -Body $Body
39 |
40 | If ($null -ne $Result) {
41 |
42 | #Return Results
43 | try {
44 |
45 | #Query Import Job Status
46 | Get-PASAccountImportJob -id $Result
47 |
48 | }
49 |
50 | catch {
51 |
52 | #Return Import Job ID
53 | [PSCustomObject]@{'id' = $Result }
54 |
55 | }
56 |
57 | }
58 |
59 | }
60 |
61 | }
62 |
63 | End {}
64 |
65 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Applications/Get-PASApplicationAuthenticationMethod.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASApplicationAuthenticationMethod {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$AppID
10 | )
11 |
12 | BEGIN { }#begin
13 |
14 | PROCESS {
15 |
16 | $URI = "$($psPASSession.BaseURI)/WebServices/PIMServices.svc/Applications/$($AppID |
17 |
18 | Get-EscapedString)/Authentications/"
19 |
20 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
21 |
22 | If ($null -ne $result) {
23 |
24 | $result.authentication | Add-ObjectDetail -typename psPAS.CyberArk.Vault.ApplicationAuth
25 |
26 | }
27 |
28 | }#process
29 |
30 | END { }#end
31 |
32 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Applications/Remove-PASApplication.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Remove-PASApplication {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [string]$AppID
11 | )
12 |
13 | BEGIN { }#begin
14 |
15 | PROCESS {
16 |
17 | #Request URL
18 | $URI = "$($psPASSession.BaseURI)/WebServices/PIMServices.svc/Applications/$($AppID | Get-EscapedString)/"
19 |
20 | if ($PSCmdlet.ShouldProcess($AppID, 'Delete Application')) {
21 |
22 | #Send Request
23 | Invoke-PASRestMethod -Uri $URI -Method DELETE
24 |
25 | }
26 |
27 | }#process
28 |
29 | END { }#end
30 |
31 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Applications/Remove-PASApplicationAuthenticationMethod.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Remove-PASApplicationAuthenticationMethod {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [string]$AppID,
11 |
12 | [parameter(
13 | Mandatory = $true,
14 | ValueFromPipelinebyPropertyName = $true
15 | )]
16 | [ValidateNotNullOrEmpty()]
17 | [string]$AuthID
18 | )
19 |
20 | BEGIN { }#begin
21 |
22 | PROCESS {
23 |
24 | #request URL
25 | $URI = "$($psPASSession.BaseURI)/WebServices/PIMServices.svc/Applications/$($AppID |
26 |
27 | Get-EscapedString)/Authentications/$($AuthID | Get-EscapedString)"
28 |
29 | if ($PSCmdlet.ShouldProcess($AppID, "Delete Authentication Method '$AuthID'")) {
30 |
31 | #Send Request
32 | Invoke-PASRestMethod -Uri $URI -Method DELETE
33 |
34 | }
35 |
36 | }#process
37 |
38 | END { }#end
39 |
40 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Authentication/Add-PASPublicSSHKey.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Add-PASPublicSSHKey {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateScript( { $_ -notmatch '.*(%|\&|\+).*' })]
10 | [string]$UserName,
11 |
12 | [parameter(
13 | Mandatory = $true,
14 | ValueFromPipelinebyPropertyName = $true
15 | )]
16 | [ValidateScript( { $_ -notmatch "`n" })]
17 | [string]$PublicSSHKey
18 |
19 | )
20 |
21 | BEGIN { }#begin
22 |
23 | PROCESS {
24 |
25 | #Create URL to endpoint for request
26 | $URI = "$($psPASSession.BaseURI)/WebServices/PIMServices.svc/Users/$($UserName |
27 |
28 | Get-EscapedString)/AuthenticationMethods/SSHKeyAuthentication/AuthorizedKeys/"
29 |
30 | #create request body
31 | $Body = @{
32 |
33 | 'PublicSSHKey' = $PublicSSHKey
34 |
35 | } | ConvertTo-Json
36 |
37 | #send request to webservice
38 | $result = Invoke-PASRestMethod -Uri $URI -Method POST -Body $Body
39 |
40 | If ($null -ne $result) {
41 |
42 | $result.AddUserAuthorizedKeyResult |
43 |
44 | Add-ObjectDetail -typename psPAS.CyberArk.Vault.PublicSSHKey -PropertyToAdd @{
45 |
46 | 'UserName' = $UserName
47 |
48 | }
49 |
50 | }
51 |
52 | }#process
53 |
54 | END { }#end
55 |
56 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Authentication/Clear-PASPrivateSSHKey.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Clear-PASPrivateSSHKey {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN {
7 |
8 | Assert-VersionRequirement -RequiredVersion 12.1
9 |
10 | }#begin
11 |
12 | PROCESS {
13 |
14 | $URI = "$($psPASSession.BaseURI)/api/Users/Secret/SSHKeys/ClearCache"
15 |
16 | #send request to webservice
17 | Invoke-PASRestMethod -Uri $URI -Method DELETE
18 |
19 | }#process
20 |
21 | END { }#end
22 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Authentication/Get-PASAuthenticationMethod.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASAuthenticationMethod {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $false,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [ValidateLength(1, 50)]
11 | [string]$ID
12 |
13 | )
14 |
15 | BEGIN {
16 |
17 | Assert-VersionRequirement -RequiredVersion 11.5
18 |
19 | }#begin
20 |
21 | PROCESS {
22 |
23 | #Create URL for request
24 | $URI = "$($psPASSession.BaseURI)/api/Configuration/AuthenticationMethods/$($ID | Get-EscapedString)"
25 |
26 | #send request to web service
27 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
28 |
29 |
30 | If ($null -ne $result) {
31 |
32 | if ($null -ne $result.Methods) {
33 |
34 | $result = $result | Select-Object -ExpandProperty Methods
35 |
36 | }
37 |
38 | $result
39 |
40 | }
41 |
42 | }#process
43 |
44 | END { }#end
45 |
46 |
47 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Authentication/Get-PASOpenIDConnectProvider.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASOpenIDConnectProvider {
3 |
4 | [CmdletBinding()]
5 | param(
6 | [parameter(
7 | Mandatory = $false,
8 | ValueFromPipelinebyPropertyName = $true
9 | )]
10 | [ValidateNotNullOrEmpty()]
11 | [string]$id
12 |
13 | )
14 |
15 | BEGIN {
16 |
17 | Assert-VersionRequirement -RequiredVersion 11.7
18 |
19 | }#begin
20 |
21 | PROCESS {
22 |
23 | #Create URL for request
24 | $URI = "$($psPASSession.BaseURI)/api/Configuration/OIDC/Providers/$($id | Get-EscapedString)"
25 |
26 | #send request to web service
27 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
28 |
29 | If ($null -ne $result) {
30 |
31 | if ($null -ne $result.Providers) {
32 |
33 | $result = $result | Select-Object -ExpandProperty Providers
34 |
35 | }
36 |
37 | $result
38 |
39 | }
40 |
41 | }#process
42 |
43 | END { }#end
44 |
45 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Authentication/Get-PASPublicSSHKey.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASPublicSSHKey {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateScript( { $_ -notmatch '.*(%|\&|\+).*' })]
10 | [string]$UserName
11 |
12 | )
13 |
14 | BEGIN { }#begin
15 |
16 | PROCESS {
17 |
18 | #Create URL for request
19 | $URI = "$($psPASSession.BaseURI)/WebServices/PIMServices.svc/Users/$($UserName |
20 |
21 | Get-EscapedString)/AuthenticationMethods/SSHKeyAuthentication/AuthorizedKeys/"
22 |
23 | #Send request to web service
24 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
25 |
26 | If ($null -ne $result) {
27 |
28 | $result.GetUserAuthorizedKeysResult |
29 |
30 | Add-ObjectDetail -typename psPAS.CyberArk.Vault.PublicSSHKey -PropertyToAdd @{
31 |
32 | 'UserName' = $UserName
33 |
34 | }
35 |
36 | }
37 |
38 | }#process
39 |
40 | END { }#end
41 |
42 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Authentication/Get-PASSession.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASSession {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN { }#begin
7 |
8 | PROCESS {
9 |
10 | #Calculate the time elapsed since the start of the session and include in return data
11 | if ($null -ne $psPASSession.StartTime) {
12 | $psPASSession.ElapsedTime = '{0:HH:mm:ss}' -f ([datetime]$($(Get-Date) - $($psPASSession.StartTime)).Ticks)
13 | } else { $psPASSession.ElapsedTime = $null }
14 |
15 | #Deep Copy the $psPASSession session object and return as psPAS Session type.
16 | Get-SessionClone -InputObject $psPASSession | Add-ObjectDetail -typename psPAS.CyberArk.Vault.Session
17 |
18 | }#process
19 |
20 | END { }#end
21 |
22 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Authentication/Remove-PASAuthenticationMethod.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Remove-PASAuthenticationMethod {
3 |
4 | [CmdletBinding(SupportsShouldProcess)]
5 | param(
6 | [parameter(
7 | Mandatory = $true,
8 | ValueFromPipelinebyPropertyName = $true
9 | )]
10 | [ValidateLength(1, 50)]
11 | [string]$id
12 | )
13 |
14 | BEGIN {
15 |
16 | Assert-VersionRequirement -RequiredVersion 11.7
17 |
18 | }#begin
19 |
20 | PROCESS {
21 |
22 | #Create URL for request
23 | $URI = "$($psPASSession.BaseURI)/api/Configuration/AuthenticationMethods/$($id | Get-EscapedString)"
24 |
25 | if ($PSCmdlet.ShouldProcess($id, 'Delete Authentication Method')) {
26 |
27 | #send request to web service
28 | $result = Invoke-PASRestMethod -Uri $URI -Method DELETE
29 |
30 | If ($null -ne $result) {
31 |
32 | $result
33 |
34 | }
35 |
36 | }
37 |
38 | }#process
39 |
40 | END { }#end
41 |
42 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Authentication/Remove-PASOpenIDConnectProvider.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Remove-PASOpenIDConnectProvider {
3 |
4 | [CmdletBinding(SupportsShouldProcess)]
5 | param(
6 | [parameter(
7 | Mandatory = $false,
8 | ValueFromPipelinebyPropertyName = $true
9 | )]
10 | [ValidateNotNullOrEmpty()]
11 | [string]$id
12 |
13 | )
14 |
15 | BEGIN {
16 |
17 | Assert-VersionRequirement -RequiredVersion 11.7
18 |
19 | }#begin
20 |
21 | PROCESS {
22 |
23 | #Create URL for request
24 | $URI = "$($psPASSession.BaseURI)/api/Configuration/OIDC/Providers/$($id | Get-EscapedString)"
25 |
26 | if ($PSCmdlet.ShouldProcess($id, 'Delete OIDC Provider')) {
27 |
28 | #Send request to web service
29 | Invoke-PASRestMethod -Uri $URI -Method DELETE
30 |
31 | }
32 |
33 | }#process
34 |
35 | END { }#end
36 |
37 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Authentication/Remove-PASPrivateSSHKey.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Remove-PASPrivateSSHKey {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $false,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [int]$UserID
10 |
11 | )
12 |
13 | BEGIN {
14 |
15 | Assert-VersionRequirement -RequiredVersion 12.1
16 |
17 | }#begin
18 |
19 | PROCESS {
20 |
21 | $URI = "$($psPASSession.BaseURI)/api/Users"
22 |
23 | If ($PSBoundParameters.ContainsKey('UserID')) {
24 |
25 | $user = $UserID
26 | $URI = "$URI/$UserID/Secret/SSHKeys/Cache"
27 |
28 |
29 | }
30 |
31 | else {
32 |
33 | $user = 'Personal'
34 | $URI = "$URI/Secret/SSHKeys/Cache"
35 |
36 | }
37 | if ($PSCmdlet.ShouldProcess($user, 'Delete Private SSH Key')) {
38 |
39 | #send request to webservice
40 | Invoke-PASRestMethod -Uri $URI -Method DELETE
41 |
42 | }
43 |
44 | }#process
45 |
46 | END { }#end
47 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Authentication/Remove-PASPublicSSHKey.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Remove-PASPublicSSHKey {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateScript( { $_ -notmatch '.*(%|\&|\+).*' })]
10 | [string]$UserName,
11 |
12 | [parameter(
13 | Mandatory = $true,
14 | ValueFromPipelinebyPropertyName = $true
15 | )]
16 | [string]$KeyID
17 |
18 | )
19 |
20 | BEGIN { }#begin
21 |
22 | PROCESS {
23 |
24 | #Create URL string for request
25 | $URI = "$($psPASSession.BaseURI)/WebServices/PIMServices.svc/Users/$($UserName |
26 |
27 | Get-EscapedString)/AuthenticationMethods/SSHKeyAuthentication/AuthorizedKeys/$KeyID/"
28 |
29 | if ($PSCmdlet.ShouldProcess($KeyID, 'Delete Public SSH Key')) {
30 |
31 | #Send Request to web service
32 | Invoke-PASRestMethod -Uri $URI -Method DELETE
33 |
34 | }
35 |
36 | }#process
37 |
38 | END { }#end
39 |
40 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Authentication/Use-PASSession.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Use-PASSession {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipeline = $true
8 | )]
9 | [psTypeName('psPAS.CyberArk.Vault.Session')]$Session
10 |
11 | )
12 |
13 | BEGIN { }#begin
14 |
15 | PROCESS {
16 |
17 | New-Variable -Name psPASSession -Value $Session -Scope Script -Force
18 |
19 | }#process
20 |
21 | END { }#end
22 |
23 | }
--------------------------------------------------------------------------------
/psPAS/Functions/BYOK/Get-PASBYOKConfig.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASBYOKConfig {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | Begin {
7 | Assert-VersionRequirement -PrivilegeCloud
8 | }
9 |
10 | Process {
11 |
12 | #Create URL for request
13 | $URI = "$($psPASSession.ApiURI)/api/byok"
14 |
15 | #send request to web service
16 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
17 |
18 | If ($null -ne $result) {
19 |
20 | $result
21 |
22 | }
23 |
24 | }
25 |
26 | End {}
27 |
28 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Connections/Get-PASConnectionComponent.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASConnectionComponent {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN {
7 |
8 | Assert-VersionRequirement -RequiredVersion 11.5
9 |
10 | }#begin
11 |
12 | PROCESS {
13 |
14 |
15 | #Create URL for request
16 | $URI = "$($psPASSession.BaseURI)/API/PSM/Connectors"
17 |
18 | #send request to web service
19 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
20 |
21 | if ($null -ne $result.PSMConnectors) {
22 |
23 | $result | Select-Object -ExpandProperty PSMConnectors
24 |
25 | }
26 |
27 | }#process
28 |
29 | END { }#end
30 |
31 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Connections/Get-PASPSMServer.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASPSMServer {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN {
7 |
8 | Assert-VersionRequirement -RequiredVersion 11.5
9 |
10 | }#begin
11 |
12 | PROCESS {
13 |
14 |
15 | #Create URL for request
16 | $URI = "$($psPASSession.BaseURI)/API/PSM/Servers"
17 |
18 | #send request to web service
19 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
20 |
21 | if ($null -ne $result.PSMServers) {
22 |
23 | $result | Select-Object -ExpandProperty PSMServers
24 |
25 | }
26 |
27 | }#process
28 |
29 | END { }#end
30 |
31 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Connections/Import-PASConnectionComponent.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Import-PASConnectionComponent {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [ValidateScript( { Test-Path -Path $_ -PathType Leaf })]
11 | [ValidatePattern( '\.zip$' )]
12 | [string]$ImportFile
13 | )
14 |
15 | BEGIN {
16 | Assert-VersionRequirement -RequiredVersion 10.2
17 | }#begin
18 |
19 | PROCESS {
20 |
21 | #Create URL for request
22 | $URI = "$($psPASSession.BaseURI)/API/ConnectionComponents/Import"
23 |
24 | #Convert File to byte array
25 | $FileBytes = $ImportFile | Get-ByteArray
26 |
27 | #Create Request Body
28 | $Body = @{'ImportFile' = $FileBytes } | ConvertTo-Json
29 |
30 | if ($PSCmdlet.ShouldProcess($ImportFile, 'Imports Connection Component')) {
31 |
32 | #send request to web service
33 | Invoke-PASRestMethod -Uri $URI -Method POST -Body $Body -Debug:$false
34 |
35 | }
36 |
37 | }#process
38 |
39 | END { }#end
40 |
41 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Add-PASPTAExcludedTarget.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Add-PASPTAExcludedTarget {
3 | [CmdletBinding(SupportsShouldProcess = $true)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$cidr
10 | )
11 |
12 | BEGIN {
13 | Assert-VersionRequirement -SelfHosted
14 | Assert-VersionRequirement -RequiredVersion 14.0
15 | }#begin
16 |
17 | PROCESS {
18 |
19 | #Create request URL
20 | $URI = "$($psPASSession.BaseURI)/api/pta/API/Administration/properties/CidrExclusionList"
21 |
22 | #Create body of request
23 | $Body = $PSBoundParameters | Get-PASParameter | ConvertTo-Json
24 |
25 | if ($PSCmdlet.ShouldProcess($cidr, 'Add PTA Excluded Monitored Target')) {
26 |
27 | #send request to web service
28 | Invoke-PASRestMethod -Uri $URI -Method PATCH -Body $Body
29 |
30 | }
31 |
32 | }#process
33 |
34 | END { }#end
35 |
36 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Add-PASPTAIncludedTarget.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Add-PASPTAIncludedTarget {
3 | [CmdletBinding(SupportsShouldProcess = $true)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$cidr
10 | )
11 |
12 | BEGIN {
13 | Assert-VersionRequirement -SelfHosted
14 | Assert-VersionRequirement -RequiredVersion 14.0
15 | }#begin
16 |
17 | PROCESS {
18 |
19 | #Create request URL
20 | $URI = "$($psPASSession.BaseURI)/api/pta/API/Administration/properties/CidrInclusionList"
21 |
22 | #Create body of request
23 | $Body = $PSBoundParameters | Get-PASParameter | ConvertTo-Json
24 |
25 | if ($PSCmdlet.ShouldProcess($cidr, 'Add PTA Included Monitored Target')) {
26 |
27 | #send request to web service
28 | Invoke-PASRestMethod -Uri $URI -Method PATCH -Body $Body
29 |
30 | }
31 |
32 | }#process
33 |
34 | END { }#end
35 |
36 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Add-PASPTAPrivilegedGroup.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Add-PASPTAPrivilegedGroup {
3 | [CmdletBinding(SupportsShouldProcess = $true)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$domain,
10 |
11 | [parameter(
12 | Mandatory = $true,
13 | ValueFromPipelinebyPropertyName = $true
14 | )]
15 | [string]$group
16 | )
17 |
18 | BEGIN {
19 | Assert-VersionRequirement -SelfHosted
20 | Assert-VersionRequirement -RequiredVersion 14.0
21 | }#begin
22 |
23 | PROCESS {
24 |
25 | #Create request URL
26 | $URI = "$($psPASSession.BaseURI)/API/pta/API/configuration/properties/PrivilegedDomainGroupsList"
27 |
28 | #Create body of request
29 | $Body = $PSBoundParameters | Get-PASParameter | ConvertTo-Json
30 |
31 | if ($PSCmdlet.ShouldProcess($group, 'Add PTA Privileged Domain Group Configuration')) {
32 |
33 | #send request to web service
34 | Invoke-PASRestMethod -Uri $URI -Method PATCH -Body $Body
35 |
36 | }
37 |
38 | }#process
39 |
40 | END { }#end
41 |
42 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Add-PASPTAPrivilegedUser.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Add-PASPTAPrivilegedUser {
3 | [CmdletBinding(SupportsShouldProcess = $true)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateSet('UNIX', 'WINDOWS', 'ORACLE', 'CLOUD_AWS', 'CLOUD_AZURE', 'APPLICATION')]
10 | [string]$platform,
11 |
12 | [parameter(
13 | Mandatory = $true,
14 | ValueFromPipelinebyPropertyName = $true
15 | )]
16 | [string]$user
17 | )
18 |
19 | BEGIN {
20 | Assert-VersionRequirement -SelfHosted
21 | Assert-VersionRequirement -RequiredVersion 14.0
22 | }#begin
23 |
24 | PROCESS {
25 |
26 | #Create request URL
27 | $URI = "$($psPASSession.BaseURI)/API/pta/API/configuration/properties/PrivilegedUsersList"
28 |
29 | #Create body of request
30 | $Body = $PSBoundParameters | Get-PASParameter | ConvertTo-Json
31 |
32 | if ($PSCmdlet.ShouldProcess($user, 'Add PTA Privileged User Configuration')) {
33 |
34 | #send request to web service
35 | Invoke-PASRestMethod -Uri $URI -Method PATCH -Body $Body
36 |
37 | }
38 |
39 | }#process
40 |
41 | END { }#end
42 |
43 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Get-PASPTAExcludedTarget.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASPTAExcludedTarget {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN {
7 | Assert-VersionRequirement -SelfHosted
8 | Assert-VersionRequirement -RequiredVersion 14.0
9 | }#begin
10 |
11 | PROCESS {
12 |
13 | #Create request URL
14 | $URI = "$($psPASSession.BaseURI)/API/pta/API/administration"
15 |
16 | #Send request to web service
17 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
18 |
19 | If ($null -ne $result) {
20 |
21 | #Return Results
22 | $result | Where-Object { ($PSItem.propertykey -eq 'CidrExclusionList') -and ($PSItem.categorykey -eq 'MonitoredTargets') } |
23 | Select-Object -ExpandProperty 'ActualValue' |
24 | Add-ObjectDetail -typename psPAS.CyberArk.Vault.PTA.MonitoredTarget
25 |
26 | }
27 |
28 | }#process
29 |
30 | END { }#end
31 |
32 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Get-PASPTAGlobalCatalog.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASPTAGlobalCatalog {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN {
7 | Assert-VersionRequirement -SelfHosted
8 | Assert-VersionRequirement -RequiredVersion 13.0
9 | }#begin
10 |
11 | PROCESS {
12 |
13 | #Create request URL
14 | $URI = "$($psPASSession.BaseURI)/API/pta/API/Administration/GCConnectivity"
15 |
16 | #Send request to web service
17 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
18 |
19 | If ($null -ne $result) {
20 |
21 | #Return Results
22 | $result
23 |
24 | }
25 |
26 | }#process
27 |
28 | END { }#end
29 |
30 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Get-PASPTAIncludedTarget.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASPTAIncludedTarget {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN {
7 | Assert-VersionRequirement -SelfHosted
8 | Assert-VersionRequirement -RequiredVersion 14.0
9 | }#begin
10 |
11 | PROCESS {
12 |
13 | #Create request URL
14 | $URI = "$($psPASSession.BaseURI)/API/pta/API/administration"
15 |
16 | #Send request to web service
17 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
18 |
19 | If ($null -ne $result) {
20 |
21 | #Return Results
22 | $result | Where-Object { ($PSItem.propertykey -eq 'CidrInclusionList') -and ($PSItem.categorykey -eq 'MonitoredTargets') } |
23 | Select-Object -ExpandProperty 'actualValue' |
24 | Add-ObjectDetail -typename psPAS.CyberArk.Vault.PTA.MonitoredTarget
25 |
26 | }
27 |
28 | }#process
29 |
30 | END { }#end
31 |
32 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Get-PASPTAPrivilegedGroup.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASPTAPrivilegedGroup {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN {
7 | Assert-VersionRequirement -SelfHosted
8 | Assert-VersionRequirement -RequiredVersion 14.0
9 | }#begin
10 |
11 | PROCESS {
12 |
13 | #Create request URL
14 | $URI = "$($psPASSession.BaseURI)/API/pta/API/configuration"
15 |
16 | #Send request to web service
17 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
18 |
19 | If ($null -ne $result) {
20 |
21 | #Return Results
22 | $result | Where-Object { $PSItem.propertykey -eq 'PrivilegedDomainGroupsList' } |
23 | Select-Object -ExpandProperty 'ActualValue' |
24 | Add-ObjectDetail -typename psPAS.CyberArk.Vault.PTA.PrivilegedDomainGroupsList
25 |
26 | }
27 |
28 | }#process
29 |
30 | END { }#end
31 |
32 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Get-PASPTAPrivilegedUser.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASPTAPrivilegedUser {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $false,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateSet('ActualValue', 'DefaultValue')]
10 | [string]$ValueType
11 | )
12 |
13 | BEGIN {
14 | Assert-VersionRequirement -SelfHosted
15 | Assert-VersionRequirement -RequiredVersion 14.0
16 | $ReturnValue = 'ActualValue'
17 | }#begin
18 |
19 | PROCESS {
20 |
21 | If ($PSBoundParameters.ContainsKey('ValueType')) {
22 | $ReturnValue = $ValueType
23 | }
24 | #Create request URL
25 | $URI = "$($psPASSession.BaseURI)/API/pta/API/configuration"
26 |
27 | #Send request to web service
28 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
29 |
30 | If ($null -ne $result) {
31 |
32 | #Return Results
33 | $result | Where-Object { $PSItem.propertykey -eq 'PrivilegedUsersList' } |
34 | Select-Object -ExpandProperty $ReturnValue |
35 | Add-ObjectDetail -typename psPAS.CyberArk.Vault.PTA.PrivilegedUsersList
36 |
37 | }
38 |
39 | }#process
40 |
41 | END { }#end
42 |
43 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Get-PASPTARemediation.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASPTARemediation {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN {
7 | Assert-VersionRequirement -SelfHosted
8 | Assert-VersionRequirement -RequiredVersion 10.4
9 | }#begin
10 |
11 | PROCESS {
12 |
13 | #Create request URL
14 | $URI = "$($psPASSession.BaseURI)/API/pta/API/Settings"
15 |
16 | #Send request to web service
17 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
18 |
19 | If ($null -ne $result) {
20 |
21 | #Return Results
22 | $result.automaticRemediation | Add-ObjectDetail -typename psPAS.CyberArk.Vault.PTA.Remediation
23 |
24 | }
25 |
26 | }#process
27 |
28 | END { }#end
29 |
30 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Get-PASPTARiskSummary.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASPTARiskSummary {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN {
7 | Assert-VersionRequirement -SelfHosted
8 | Assert-VersionRequirement -RequiredVersion 13.2
9 | }#begin
10 |
11 | PROCESS {
12 |
13 | #Create request URL
14 | $URI = "$($psPASSession.BaseURI)/API/pta/API/Risks/Summary/"
15 |
16 | #Send request to web service
17 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
18 |
19 | If ($null -ne $result) {
20 |
21 | #Return Results
22 | $result | Add-ObjectDetail -typename psPAS.CyberArk.Vault.PTA.Event.Risk.Summary
23 |
24 | }
25 |
26 | }#process
27 |
28 | END { }#end
29 |
30 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Get-PASPTARule.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASPTARule {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN {
7 | Assert-VersionRequirement -SelfHosted
8 | Assert-VersionRequirement -RequiredVersion 10.4
9 | }#begin
10 |
11 | PROCESS {
12 |
13 | #Create request URL
14 | $URI = "$($psPASSession.BaseURI)/API/pta/API/Settings"
15 |
16 | #Send request to web service
17 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
18 |
19 | If ($null -ne $result) {
20 |
21 | #Return Results
22 | $result.riskyActivities | Add-ObjectDetail -typename psPAS.CyberArk.Vault.PTA.Rule
23 |
24 | }
25 |
26 | }#process
27 |
28 | END { }#end
29 |
30 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Remove-PASPTAExcludedTarget.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Remove-PASPTAExcludedTarget {
3 | [CmdletBinding(SupportsShouldProcess = $true)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$ID
10 | )
11 |
12 | BEGIN {
13 | Assert-VersionRequirement -SelfHosted
14 | Assert-VersionRequirement -RequiredVersion 14.0
15 | }#begin
16 |
17 | PROCESS {
18 |
19 | #Create request URL
20 | $URI = "$($psPASSession.BaseURI)/api/pta/API/Administration/properties/CidrExclusionList/$ID"
21 |
22 | if ($PSCmdlet.ShouldProcess($ID, 'Delete PTA Excluded Monitored Target')) {
23 |
24 | #send request to web service
25 | Invoke-PASRestMethod -Uri $URI -Method DELETE
26 |
27 | }
28 |
29 | }#process
30 |
31 | END { }#end
32 |
33 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Remove-PASPTAIncludedTarget.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Remove-PASPTAIncludedTarget {
3 | [CmdletBinding(SupportsShouldProcess = $true)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$ID
10 | )
11 |
12 | BEGIN {
13 | Assert-VersionRequirement -SelfHosted
14 | Assert-VersionRequirement -RequiredVersion 14.0
15 | }#begin
16 |
17 | PROCESS {
18 |
19 | #Create request URL
20 | $URI = "$($psPASSession.BaseURI)/api/pta/API/Administration/properties/CidrInclusionList/$ID"
21 |
22 | if ($PSCmdlet.ShouldProcess($ID, 'Delete PTA Included Monitored Target')) {
23 |
24 | #send request to web service
25 | Invoke-PASRestMethod -Uri $URI -Method DELETE
26 |
27 | }
28 |
29 | }#process
30 |
31 | END { }#end
32 |
33 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Remove-PASPTAPrivilegedGroup.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Remove-PASPTAPrivilegedGroup {
3 | [CmdletBinding(SupportsShouldProcess = $true)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$ID
10 | )
11 |
12 | BEGIN {
13 | Assert-VersionRequirement -SelfHosted
14 | Assert-VersionRequirement -RequiredVersion 14.0
15 | }#begin
16 |
17 | PROCESS {
18 |
19 | #Create request URL
20 | $URI = "$($psPASSession.BaseURI)/API/pta/API/configuration/properties/PrivilegedDomainGroupsList/$ID"
21 |
22 | if ($PSCmdlet.ShouldProcess($ID, 'Delete PTA Privileged Domain Group Configuration')) {
23 |
24 | #send request to web service
25 | Invoke-PASRestMethod -Uri $URI -Method DELETE
26 |
27 | }
28 |
29 | }#process
30 |
31 | END { }#end
32 |
33 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Remove-PASPTAPrivilegedUser.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Remove-PASPTAPrivilegedUser {
3 | [CmdletBinding(SupportsShouldProcess = $true)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$ID
10 | )
11 |
12 | BEGIN {
13 | Assert-VersionRequirement -SelfHosted
14 | Assert-VersionRequirement -RequiredVersion 14.0
15 | }#begin
16 |
17 | PROCESS {
18 |
19 | #Create request URL
20 | $URI = "$($psPASSession.BaseURI)/API/pta/API/configuration/properties/PrivilegedUsersList/$ID"
21 |
22 | if ($PSCmdlet.ShouldProcess($ID, 'Delete PTA Privileged User Configuration')) {
23 |
24 | #send request to web service
25 | Invoke-PASRestMethod -Uri $URI -Method DELETE
26 |
27 | }
28 |
29 | }#process
30 |
31 | END { }#end
32 |
33 | }
--------------------------------------------------------------------------------
/psPAS/Functions/EventSecurity/Set-PASPTAEvent.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Set-PASPTAEvent {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$EventID,
10 |
11 | [parameter(
12 | Mandatory = $false,
13 | ValueFromPipelinebyPropertyName = $true
14 | )]
15 | [ValidateSet('OPEN', 'CLOSED')]
16 | [string]$mStatus
17 |
18 | )
19 |
20 | BEGIN {
21 | Assert-VersionRequirement -SelfHosted
22 | Assert-VersionRequirement -RequiredVersion 11.3
23 | }#begin
24 |
25 | PROCESS {
26 |
27 | #Create request URL
28 | $URI = "$($psPASSession.BaseURI)/API/pta/API/Events/$EventID"
29 |
30 | #Get Parameters to include in request
31 | $Body = $PSBoundParameters | Get-PASParameter -ParametersToRemove EventID | ConvertTo-Json
32 |
33 | if ($PSCmdlet.ShouldProcess($EventID, 'Update Event Status')) {
34 |
35 | #Send request to web service
36 | $result = Invoke-PASRestMethod -Uri $URI -Method PATCH -Body $Body
37 |
38 | }
39 |
40 | If ($null -ne $result) {
41 |
42 | #Return Results
43 | $result | Add-ObjectDetail -typename psPAS.CyberArk.Vault.PTA.Event
44 |
45 | }
46 |
47 | }#process
48 |
49 | END { }#end
50 |
51 | }
--------------------------------------------------------------------------------
/psPAS/Functions/General/Add-PASAllowedReferrer.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Add-PASAllowedReferrer {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$referrerURL,
10 |
11 | [parameter(
12 | Mandatory = $false,
13 | ValueFromPipelinebyPropertyName = $true
14 | )]
15 | [boolean]$regularExpression
16 | )
17 |
18 | BEGIN {
19 |
20 | Assert-VersionRequirement -RequiredVersion 11.5
21 |
22 | }#begin
23 |
24 | PROCESS {
25 |
26 | #Create URL for request
27 | $URI = "$($psPASSession.BaseURI)/api/Configuration/AccessRestriction/AllowedReferrers"
28 |
29 | #Create request body
30 | $body = $PSBoundParameters | Get-PASParameter | ConvertTo-Json
31 |
32 | #send request to web service
33 | $result = Invoke-PASRestMethod -Uri $URI -Method POST -Body $Body
34 |
35 | If ($null -ne $result) {
36 |
37 | $result
38 |
39 | }
40 |
41 | }#process
42 |
43 | END { }#end
44 |
45 | }
--------------------------------------------------------------------------------
/psPAS/Functions/General/Get-PASAllowedReferrer.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASAllowedReferrer {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN {
7 |
8 | Assert-VersionRequirement -RequiredVersion 11.5
9 |
10 | }#begin
11 |
12 | PROCESS {
13 |
14 | #Create URL for request
15 | $URI = "$($psPASSession.BaseURI)/api/Configuration/AccessRestriction/AllowedReferrers"
16 |
17 | #send request to web service
18 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
19 |
20 | If ($null -ne $result) {
21 |
22 | $result
23 |
24 | }
25 |
26 | }#process
27 |
28 | END { }#end
29 |
30 | }
--------------------------------------------------------------------------------
/psPAS/Functions/IPAllowlist/Get-PASIPAllowList.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASIPAllowList {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | Begin {
7 | Assert-VersionRequirement -PrivilegeCloud
8 | }
9 |
10 | Process {
11 |
12 | #Create URL for request
13 | $URI = "$($psPASSession.ApiURI)/api/advanced-settings/ip-allowlist"
14 |
15 | #send request to web service
16 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
17 |
18 | If ($null -ne $result) {
19 |
20 | $result
21 |
22 | }
23 |
24 | }
25 |
26 | End {}
27 |
28 | }
--------------------------------------------------------------------------------
/psPAS/Functions/IPAllowlist/Set-PASIPAllowList.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Set-PASIPAllowList {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [AllowEmptyCollection()]
10 | [ValidatePattern('^(?:(25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}\/(?:2[2-9]|3[0-2])$')]
11 | [string[]]$customerPublicIPs
12 | )
13 |
14 | Begin {
15 | Assert-VersionRequirement -PrivilegeCloud
16 | }
17 |
18 | Process {
19 |
20 | #Create URL for request
21 | $URI = "$($psPASSession.ApiURI)/api/advanced-settings/ip-allowlist"
22 |
23 | $body = $PSBoundParameters | Get-PASParameter | ConvertTo-Json
24 |
25 | if ($PSCmdlet.ShouldProcess($($customerPublicIPs -join ','), 'Set IP AllowList Properties')) {
26 |
27 | #send request to web service
28 | $result = Invoke-PASRestMethod -Uri $URI -Method PUT -Body $body
29 |
30 | If ($null -ne $result) {
31 |
32 | $result
33 |
34 | }
35 |
36 | }
37 |
38 | }
39 |
40 | End {}
41 |
42 | }
--------------------------------------------------------------------------------
/psPAS/Functions/LDAPDirectories/Get-PASDirectory.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASDirectory {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $false,
7 | ValueFromPipelinebyPropertyName = $true,
8 | ParameterSetName = 'id'
9 | )]
10 | [Alias('DomainName')]
11 | [string]$id
12 |
13 | )
14 |
15 | BEGIN {
16 | Assert-VersionRequirement -SelfHosted
17 | Assert-VersionRequirement -RequiredVersion 10.4
18 |
19 | }#begin
20 |
21 | PROCESS {
22 |
23 | #Create URL for request
24 | $URI = "$($psPASSession.BaseURI)/api/Configuration/LDAP/Directories"
25 |
26 | switch ($PSCmdlet.ParameterSetName) {
27 |
28 | 'id' {
29 |
30 | Assert-VersionRequirement -RequiredVersion 10.5
31 |
32 | #Update URL for request
33 | $URI = "$URI/$id/"
34 |
35 | $type = 'psPAS.CyberArk.Vault.Directory.Extended'
36 |
37 | break
38 |
39 | }
40 |
41 | default {
42 |
43 | $type = 'psPAS.CyberArk.Vault.Directory'
44 |
45 | break
46 |
47 | }
48 |
49 | }
50 |
51 | #send request to web service
52 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
53 |
54 | If ($null -ne $result) {
55 |
56 | #Return Results
57 | $result | Add-ObjectDetail -typename $type
58 |
59 | }
60 |
61 | }#process
62 |
63 | END { }#end
64 |
65 | }
--------------------------------------------------------------------------------
/psPAS/Functions/LDAPDirectories/Get-PASDirectoryMapping.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASDirectoryMapping {
3 | [CmdletBinding(DefaultParameterSetName = 'All')]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true,
8 | ParameterSetName = 'All'
9 | )]
10 | [parameter(
11 | Mandatory = $true,
12 | ValueFromPipelinebyPropertyName = $true,
13 | ParameterSetName = 'Mapping'
14 | )]
15 | [Alias('DomainName')]
16 | [string]$DirectoryName,
17 |
18 | [parameter(
19 | Mandatory = $true,
20 | ValueFromPipelinebyPropertyName = $true,
21 | ParameterSetName = 'Mapping'
22 | )]
23 | [string]$MappingID
24 |
25 | )
26 |
27 | BEGIN {
28 | Assert-VersionRequirement -SelfHosted
29 | Assert-VersionRequirement -RequiredVersion 10.7
30 | }#begin
31 |
32 | PROCESS {
33 |
34 | #Create URL for request
35 | $URI = "$($psPASSession.BaseURI)/api/Configuration/LDAP/Directories/$DirectoryName/Mappings/"
36 |
37 | if ($PSCmdlet.ParameterSetName -eq 'Mapping') {
38 |
39 | #Update URL for request
40 | $URI = "$URI$MappingID/"
41 |
42 | }
43 |
44 | #send request to web service
45 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
46 |
47 | If ($null -ne $result) {
48 |
49 | #Return Results
50 | $result | Add-ObjectDetail -typename psPAS.CyberArk.Vault.Directory.Mapping
51 |
52 | }
53 |
54 | }#process
55 |
56 | END { }#end
57 |
58 | }
--------------------------------------------------------------------------------
/psPAS/Functions/LDAPDirectories/Remove-PASDirectory.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Remove-PASDirectory {
3 | [CmdletBinding(SupportsShouldProcess = $true)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [Alias('DomainName')]
10 | [string]$id
11 |
12 | )
13 |
14 | BEGIN {
15 | Assert-VersionRequirement -SelfHosted
16 | Assert-VersionRequirement -RequiredVersion 10.7
17 | }#begin
18 |
19 | PROCESS {
20 |
21 | #Create URL for request
22 | $URI = "$($psPASSession.BaseURI)/api/Configuration/LDAP/Directories/$id/"
23 |
24 | if ($PSCmdlet.ShouldProcess($id, 'Delete Directory')) {
25 |
26 | #send request to web service
27 | Invoke-PASRestMethod -Uri $URI -Method DELETE
28 |
29 | }
30 |
31 | }#process
32 |
33 | END { }#end
34 |
35 | }
--------------------------------------------------------------------------------
/psPAS/Functions/LDAPDirectories/Remove-PASDirectoryMapping.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Remove-PASDirectoryMapping {
3 | [CmdletBinding(SupportsShouldProcess = $true)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$DirectoryName,
10 |
11 | [parameter(
12 | Mandatory = $true,
13 | ValueFromPipelinebyPropertyName = $true
14 | )]
15 | [string]$MappingID
16 | )
17 |
18 | BEGIN {
19 | Assert-VersionRequirement -SelfHosted
20 | Assert-VersionRequirement -RequiredVersion 11.1
21 | }#begin
22 |
23 | PROCESS {
24 |
25 | #Create URL for request
26 | $URI = "$($psPASSession.BaseURI)/api/Configuration/LDAP/Directories/$DirectoryName/Mappings/$MappingID/"
27 |
28 | if ($PSCmdlet.ShouldProcess($MappingID, 'Delete Directory Mapping')) {
29 |
30 | #send request to web service
31 | Invoke-PASRestMethod -Uri $URI -Method DELETE
32 |
33 | }
34 |
35 | }#process
36 |
37 | END { }#end
38 |
39 | }
--------------------------------------------------------------------------------
/psPAS/Functions/LDAPDirectories/Set-PASDirectoryMappingOrder.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Set-PASDirectoryMappingOrder {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$DirectoryName,
10 |
11 | [parameter(
12 | Mandatory = $true,
13 | ValueFromPipelinebyPropertyName = $true
14 | )]
15 | [int[]]$MappingsOrder
16 | )
17 |
18 | BEGIN {
19 |
20 | Assert-VersionRequirement -SelfHosted
21 | Assert-VersionRequirement -RequiredVersion 10.10
22 |
23 | }#begin
24 |
25 | PROCESS {
26 |
27 | #Create URL for request
28 | $URI = "$($psPASSession.BaseURI)/api/Configuration/LDAP/Directories/$DirectoryName/Mappings/Reorder/"
29 |
30 | #Get request parameters
31 | $body = $($PSBoundParameters | Get-PASParameter -ParametersToRemove DirectoryName) | ConvertTo-Json
32 |
33 | if ($PSCmdlet.ShouldProcess($DirectoryName, 'Update Directory Mapping Order')) {
34 |
35 | #send request to web service
36 | Invoke-PASRestMethod -Uri $URI -Method POST -Body $Body
37 |
38 | }
39 |
40 | }#process
41 |
42 | END { }#end
43 |
44 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Monitoring/Export-PASPSMRecording.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Export-PASPSMRecording {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$RecordingID,
10 |
11 | [parameter(
12 | Mandatory = $true,
13 | ValueFromPipelinebyPropertyName = $true
14 | )]
15 | [ValidateNotNullOrEmpty()]
16 | [ValidateScript( { Test-Path -Path $_ -IsValid })]
17 | [string]$path
18 | )
19 |
20 | BEGIN {
21 | Assert-VersionRequirement -RequiredVersion 10.6
22 | }#begin
23 |
24 | PROCESS {
25 |
26 | #Create URL for Request
27 | $URI = "$($psPASSession.BaseURI)/API/Recordings/$($RecordingID | Get-EscapedString)/Play"
28 |
29 | #send request to PAS web service
30 | $result = Invoke-PASRestMethod -Uri $URI -Method POST
31 |
32 | #if we get a byte array
33 | If ($null -ne $result) {
34 |
35 | Out-PASFile -InputObject $result -Path $path
36 |
37 | }
38 |
39 | } #process
40 |
41 | END { }#end
42 |
43 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Monitoring/Get-PASPSMRecordingActivity.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASPSMRecordingActivity {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [Alias('SessionID')]
10 | [string]$RecordingID
11 | )
12 |
13 | BEGIN {
14 | Assert-VersionRequirement -RequiredVersion 10.6
15 | }#begin
16 |
17 | PROCESS {
18 |
19 | #Create URL for Request
20 | $URI = "$($psPASSession.BaseURI)/API/Recordings/$($RecordingID | Get-EscapedString)/activities"
21 |
22 | #send request to PAS web service
23 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
24 |
25 | If ($null -ne $result) {
26 |
27 | #Return Results
28 | $result.Activities | Add-ObjectDetail -typename psPAS.CyberArk.Vault.PSM.Recording.Activity
29 |
30 | } #process
31 |
32 | }
33 |
34 | END { }#end
35 |
36 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Monitoring/Get-PASPSMRecordingProperty.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASPSMRecordingProperty {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [Alias('SessionID')]
10 | [string]$RecordingID
11 | )
12 |
13 | BEGIN {
14 | Assert-VersionRequirement -RequiredVersion 10.6
15 | }#begin
16 |
17 | PROCESS {
18 |
19 | #Create URL for Request
20 | $URI = "$($psPASSession.BaseURI)/API/Recordings/$($RecordingID | Get-EscapedString)/properties"
21 |
22 | #send request to PAS web service
23 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
24 |
25 | If ($null -ne $result) {
26 |
27 | #Return Results
28 | $result | Add-ObjectDetail -typename psPAS.CyberArk.Vault.PSM.Recording.Property
29 |
30 | } #process
31 |
32 | }
33 |
34 | END { }#end
35 |
36 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Monitoring/Get-PASPSMSessionActivity.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASPSMSessionActivity {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [Alias('SessionID')]
10 | [string]$liveSessionId
11 | )
12 |
13 | BEGIN {
14 | Assert-VersionRequirement -RequiredVersion 10.6
15 | }#begin
16 |
17 | PROCESS {
18 |
19 | #Create URL for Request
20 | $URI = "$($psPASSession.BaseURI)/API/LiveSessions/$($LiveSessionId | Get-EscapedString)/activities"
21 |
22 | #send request to PAS web service
23 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
24 |
25 | If ($null -ne $result) {
26 |
27 | #Return Results
28 | $result.Activities | Add-ObjectDetail -typename psPAS.CyberArk.Vault.PSM.Session.Activity
29 |
30 | } #process
31 |
32 | }
33 |
34 | END { }#end
35 |
36 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Monitoring/Get-PASPSMSessionProperty.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASPSMSessionProperty {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [Alias('SessionID')]
10 | [string]$liveSessionId
11 | )
12 |
13 | BEGIN {
14 | Assert-VersionRequirement -RequiredVersion 10.6
15 | }#begin
16 |
17 | PROCESS {
18 |
19 | #Create URL for Request
20 | $URI = "$($psPASSession.BaseURI)/API/LiveSessions/$($liveSessionId | Get-EscapedString)/properties"
21 |
22 | #send request to PAS web service
23 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
24 |
25 | If ($null -ne $result) {
26 |
27 | #Return Results
28 | $result | Add-ObjectDetail -typename psPAS.CyberArk.Vault.PSM.Session.Property
29 |
30 | } #process
31 |
32 | }
33 |
34 | END { }#end
35 |
36 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Monitoring/Resume-PASPSMSession.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Resume-PASPSMSession {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [Alias('SessionGuid')]
11 | [string]$LiveSessionId
12 | )
13 |
14 | BEGIN {
15 | Assert-VersionRequirement -RequiredVersion 10.2
16 | }#begin
17 |
18 | PROCESS {
19 |
20 | #Create URL for Request
21 | $URI = "$($psPASSession.BaseURI)/api/LiveSessions/$($LiveSessionId | Get-EscapedString)/Resume"
22 |
23 | if ($PSCmdlet.ShouldProcess($LiveSessionId, 'Resume PSM Session')) {
24 |
25 | #send request to PAS web service
26 | Invoke-PASRestMethod -Uri $URI -Method POST
27 |
28 | }
29 |
30 | } #process
31 |
32 | END { }#end
33 |
34 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Monitoring/Stop-PASPSMSession.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Stop-PASPSMSession {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [Alias('SessionGuid')]
11 | [string]$LiveSessionId
12 | )
13 |
14 | BEGIN {
15 | Assert-VersionRequirement -RequiredVersion 10.1
16 | }#begin
17 |
18 | PROCESS {
19 |
20 | #Create URL for Request
21 | $URI = "$($psPASSession.BaseURI)/api/LiveSessions/$($LiveSessionId | Get-EscapedString)/Terminate"
22 |
23 | if ($PSCmdlet.ShouldProcess($LiveSessionId, 'Terminate PSM Session')) {
24 |
25 | #send request to PAS web service
26 | Invoke-PASRestMethod -Uri $URI -Method POST
27 |
28 | }
29 |
30 | } #process
31 |
32 | END { }#end
33 |
34 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Monitoring/Suspend-PASPSMSession.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Suspend-PASPSMSession {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [Alias('SessionGuid')]
11 | [string]$LiveSessionId
12 | )
13 |
14 | BEGIN {
15 | Assert-VersionRequirement -RequiredVersion 10.2
16 | }#begin
17 |
18 | PROCESS {
19 |
20 | #Create URL for Request
21 | $URI = "$($psPASSession.BaseURI)/api/LiveSessions/$($LiveSessionId | Get-EscapedString)/Suspend"
22 |
23 | if ($PSCmdlet.ShouldProcess($LiveSessionId, 'Suspend PSM Session')) {
24 |
25 | #send request to PAS web service
26 | Invoke-PASRestMethod -Uri $URI -Method POST
27 |
28 | }
29 |
30 | } #process
31 |
32 | END { }#end
33 |
34 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Monitoring/Test-PASPSMRecording.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Test-PASPSMRecording {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$SessionID
10 | )
11 |
12 | BEGIN {
13 | Assert-VersionRequirement -RequiredVersion 11.2
14 | }#begin
15 |
16 | PROCESS {
17 |
18 | #Create URL for Request
19 | $URI = "$($psPASSession.BaseURI)/API/Recordings/$SessionID/valid"
20 |
21 | #send request to PAS web service
22 | Invoke-PASRestMethod -Uri $URI -Method GET
23 |
24 | } #process
25 |
26 | END { }#end
27 |
28 | }
--------------------------------------------------------------------------------
/psPAS/Functions/OnboardingRules/Get-PASOnboardingRule.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASOnboardingRule {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $false,
7 | ValueFromPipelinebyPropertyName = $true,
8 | ParameterSetName = 'Names'
9 | )]
10 | [ValidateNotNullOrEmpty()]
11 | [string]$Names
12 | )
13 |
14 | BEGIN {
15 |
16 | }#begin
17 |
18 | PROCESS {
19 |
20 | #Create URL for request
21 | $URI = "$($psPASSession.BaseURI)/api/AutomaticOnboardingRules"
22 |
23 | If ($PSBoundParameters.ContainsKey('Names')) {
24 |
25 | Assert-VersionRequirement -RequiredVersion 10.2
26 |
27 | #Get Parameters to include in request
28 | $boundParameters = $PSBoundParameters | Get-PASParameter
29 |
30 | #Create Query String, escaped for inclusion in request URL
31 | #!This must be unescaped - send a comma separated string for the value of `Names`
32 | $queryString = $boundParameters | ConvertTo-QueryString -NoEscape
33 |
34 | if ($null -ne $queryString) {
35 |
36 | #Build URL from base URL
37 | $URI = "$URI`?$queryString"
38 |
39 | }
40 |
41 | }
42 |
43 | #send request to web service
44 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
45 |
46 | If ($null -ne $result) {
47 |
48 | $result.AutomaticOnboardingRules | Add-ObjectDetail -typename psPAS.CyberArk.Vault.OnboardingRule
49 |
50 | }
51 |
52 | }#process
53 |
54 | END { }#end
55 |
56 | }
--------------------------------------------------------------------------------
/psPAS/Functions/OnboardingRules/Remove-PASOnboardingRule.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Remove-PASOnboardingRule {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$RuleID
10 | )
11 |
12 | BEGIN { }#begin
13 |
14 | PROCESS {
15 |
16 | #Create URL for request
17 | $URI = "$($psPASSession.BaseURI)/api/AutomaticOnboardingRules/$($RuleID | Get-EscapedString)/"
18 |
19 | if ($PSCmdlet.ShouldProcess($RuleID, 'Delete On-boarding Rule')) {
20 |
21 | #Send request to web service
22 | Invoke-PASRestMethod -Uri $URI -Method DELETE
23 |
24 | }
25 |
26 | }#process
27 |
28 | END { }#end
29 |
30 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Platforms/Export-PASPlatform.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Export-PASPlatform {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$PlatformID,
10 |
11 | [parameter(
12 | Mandatory = $true,
13 | ValueFromPipelinebyPropertyName = $true
14 | )]
15 | [ValidateScript( { Test-Path -Path $_ -IsValid })]
16 | [string]$path
17 | )
18 |
19 | BEGIN {
20 | Assert-VersionRequirement -RequiredVersion 10.4
21 | }#begin
22 |
23 | PROCESS {
24 |
25 | #Create URL for request
26 | $URI = "$($psPASSession.BaseURI)/API/Platforms/$PlatformID/Export?platformID=$PlatformID"
27 |
28 | if ($PSCmdlet.ShouldProcess($PlatformID, 'Exports Platform Package')) {
29 |
30 | #send request to web service
31 | $result = Invoke-PASRestMethod -Uri $URI -Method POST -Debug:$false
32 |
33 | #if we get a platform byte array
34 | If ($null -ne $result) {
35 |
36 | Out-PASFile -InputObject $result -Path $path
37 |
38 | }
39 |
40 | }
41 |
42 | }#process
43 |
44 | END { }#end
45 |
46 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Platforms/Get-PASPlatformPSMConfig.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASPlatformPSMConfig {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [int]$ID
10 | )
11 |
12 | BEGIN {
13 |
14 | Assert-VersionRequirement -RequiredVersion 11.5
15 |
16 | }#begin
17 |
18 | PROCESS {
19 |
20 | #Create URL for request
21 | $URI = "$($psPASSession.BaseURI)/API/Platforms/Targets/$ID/PrivilegedSessionManagement"
22 |
23 | #send request to web service
24 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
25 |
26 | If ($null -ne $result) {
27 |
28 | $result
29 |
30 | }
31 |
32 | }#process
33 |
34 | END { }#end
35 |
36 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Platforms/Get-PASPlatformSafe.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASPlatformSafe {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$PlatformID
10 | )
11 |
12 | BEGIN {
13 | Assert-VersionRequirement -RequiredVersion 11.1
14 | }#begin
15 |
16 | PROCESS {
17 |
18 | #Create request URL
19 | $URI = "$($psPASSession.BaseURI)/API/Platforms/$($PlatformID | Get-EscapedString)/Safes/"
20 |
21 | #Send request to web service
22 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
23 |
24 | If ($result.count -gt 0) {
25 |
26 | #Return Results
27 | $result.value | ForEach-Object { [pscustomobject]@{'SafeName' = $PSItem } }
28 |
29 | }
30 |
31 | }#process
32 |
33 | END { }#end
34 |
35 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Platforms/Get-PASPlatformSummary.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASPlatformSummary {
3 | [CmdletBinding()]
4 | param()
5 |
6 | BEGIN {
7 | Assert-VersionRequirement -RequiredVersion 12.2
8 | }#begin
9 |
10 | PROCESS {
11 |
12 | #Create request URL
13 | $URI = "$($psPASSession.BaseURI)/API/Platforms/Targets/SystemTypes"
14 |
15 | #Send request to web service
16 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
17 |
18 | #$result
19 | If ($null -ne $result) {
20 |
21 | #Return Results
22 | $result.SystemTypes
23 |
24 | }
25 |
26 | }#process
27 |
28 | END { }#end
29 |
30 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Platforms/Import-PASPlatform.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Import-PASPlatform {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [ValidateScript( { Test-Path -Path $_ -PathType Leaf })]
11 | [ValidatePattern( '\.zip$' )]
12 | [string]$ImportFile
13 | )
14 |
15 | BEGIN {
16 | Assert-VersionRequirement -RequiredVersion 10.2
17 | }#begin
18 |
19 | PROCESS {
20 |
21 | #Create URL for request
22 | $URI = "$($psPASSession.BaseURI)/API/Platforms/Import"
23 |
24 | #Convert File to byte array
25 | $FileBytes = $ImportFile | Get-ByteArray
26 |
27 | $Body = @{'ImportFile' = $FileBytes } | ConvertTo-Json
28 |
29 | if ($PSCmdlet.ShouldProcess($ImportFile, 'Imports Platform Package')) {
30 |
31 | #send request to web service
32 | Invoke-PASRestMethod -Uri $URI -Method POST -Body $Body -Debug:$false
33 |
34 | }
35 |
36 | }#process
37 |
38 | END { }#end
39 |
40 | }
--------------------------------------------------------------------------------
/psPAS/Functions/PolicyACL/Get-PASPolicyACL.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASPolicyACL {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [string]$PolicyID
11 |
12 | )
13 |
14 | BEGIN {
15 | Assert-VersionRequirement -SelfHosted
16 | }#begin
17 |
18 | PROCESS {
19 |
20 | #Create URL for request
21 | $URI = "$($psPASSession.BaseURI)/WebServices/PIMServices.svc/Policy/$($PolicyID |
22 |
23 | Get-EscapedString)/PrivilegedCommands/"
24 |
25 | #Send Request to web service
26 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
27 |
28 | If ($null -ne $result) {
29 |
30 | $result.ListPolicyPrivilegedCommandsResult |
31 |
32 | Add-ObjectDetail -typename psPAS.CyberArk.Vault.ACL.Policy
33 |
34 | }
35 |
36 | }#process
37 |
38 | END { }#end
39 |
40 | }
--------------------------------------------------------------------------------
/psPAS/Functions/PolicyACL/Remove-PASPolicyACL.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Remove-PASPolicyACL {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [string]$PolicyID,
11 |
12 | [parameter(
13 | Mandatory = $true,
14 | ValueFromPipelinebyPropertyName = $true
15 | )]
16 | [string]$Id
17 |
18 | )
19 |
20 | BEGIN {
21 | Assert-VersionRequirement -SelfHosted
22 | }#begin
23 |
24 | PROCESS {
25 |
26 | #Create base URL for request
27 | $URI = "$($psPASSession.BaseURI)/WebServices/PIMServices.svc/Policy/$($PolicyID |
28 |
29 | Get-EscapedString)/PrivilegedCommands/$($Id | Get-EscapedString)/"
30 |
31 | if ($PSCmdlet.ShouldProcess($PolicyID, "Delete Rule $Id")) {
32 |
33 | #send request to web service
34 | Invoke-PASRestMethod -Uri $URI -Method DELETE
35 |
36 | }
37 |
38 | }#process
39 |
40 | END { }#end
41 |
42 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Requests/Approve-PASRequest.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Approve-PASRequest {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [string]$RequestId,
11 |
12 | [parameter(
13 | Mandatory = $false,
14 | ValueFromPipelinebyPropertyName = $true
15 | )]
16 | [string]$Reason
17 | )
18 |
19 | BEGIN {
20 | Assert-VersionRequirement -RequiredVersion 9.10
21 | }#begin
22 |
23 | PROCESS {
24 |
25 | #Create URL for Request
26 | $URI = "$($psPASSession.BaseURI)/API/IncomingRequests/$($RequestID)/Confirm"
27 |
28 | #Create body of request
29 | $body = $PSBoundParameters | Get-PASParameter -ParametersToRemove RequestId | ConvertTo-Json
30 |
31 | if ($PSCmdlet.ShouldProcess($RequestId, 'Confirm Request for Account Access')) {
32 |
33 | #send request to PAS web service
34 | Invoke-PASRestMethod -Uri $URI -Method POST -Body $Body
35 |
36 | }
37 |
38 | }#process
39 |
40 | END { }#end
41 |
42 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Requests/Deny-PASRequest.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Deny-PASRequest {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [string]$RequestId,
11 |
12 | [parameter(
13 | Mandatory = $false,
14 | ValueFromPipelinebyPropertyName = $true
15 | )]
16 | [string]$Reason
17 | )
18 |
19 | BEGIN {
20 | Assert-VersionRequirement -RequiredVersion 9.10
21 | }#begin
22 |
23 | PROCESS {
24 |
25 | #Create URL for Request
26 | $URI = "$($psPASSession.BaseURI)/API/IncomingRequests/$($RequestID)/Reject"
27 |
28 | #Create body of request
29 | $body = $PSBoundParameters | Get-PASParameter -ParametersToRemove RequestId | ConvertTo-Json
30 |
31 | if ($PSCmdlet.ShouldProcess($RequestId, 'Reject Request for Account Access')) {
32 |
33 | #send request to PAS web service
34 | Invoke-PASRestMethod -Uri $URI -Method POST -Body $Body
35 |
36 | }
37 |
38 | }#process
39 |
40 | END { }#end
41 |
42 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Requests/Get-PASRequestDetail.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASRequestDetail {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [ValidateSet('MyRequests', 'IncomingRequests')]
11 | [string]$RequestType,
12 |
13 | [parameter(
14 | Mandatory = $true,
15 | ValueFromPipelinebyPropertyName = $true
16 | )]
17 | [string]$RequestID
18 | )
19 |
20 | BEGIN {
21 | Assert-VersionRequirement -RequiredVersion 9.10
22 | }#begin
23 |
24 | PROCESS {
25 |
26 | #Create URL for Request
27 | $URI = "$($psPASSession.BaseURI)/API/$($RequestType)/$($RequestID)"
28 |
29 | #send request to PAS web service
30 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
31 |
32 | If ($null -ne $result) {
33 |
34 | #Return Results
35 | $result | Add-ObjectDetail -typename psPAS.CyberArk.Vault.Request.Extended
36 |
37 | }
38 |
39 | }#process
40 |
41 | END { }#end
42 |
43 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Requests/Remove-PASRequest.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Remove-PASRequest {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [string]$RequestID
11 | )
12 |
13 | BEGIN {
14 | Assert-VersionRequirement -RequiredVersion 9.10
15 | }#begin
16 |
17 | PROCESS {
18 |
19 | #Create URL for request
20 | $URI = "$($psPASSession.BaseURI)/API/MyRequests/$($RequestID)"
21 |
22 | if ($PSCmdlet.ShouldProcess($RequestID, 'Delete Request')) {
23 |
24 | #Send request to web service
25 | Invoke-PASRestMethod -Uri $URI -Method DELETE
26 |
27 | }
28 |
29 | }#process
30 |
31 | END { }#end
32 |
33 | }
--------------------------------------------------------------------------------
/psPAS/Functions/Safes/Find-PASSafe.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Find-PASSafe {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $false,
7 | ValueFromPipelinebyPropertyName = $false
8 | )]
9 | [string]$search,
10 |
11 | [parameter(
12 | Mandatory = $false,
13 | ValueFromPipelineByPropertyName = $false
14 | )]
15 | [int]$TimeoutSec
16 |
17 | )
18 |
19 | BEGIN {
20 |
21 | Assert-VersionRequirement -RequiredVersion 10.1 -MaximumVersion 11.7
22 |
23 | #Create base URL for request
24 | $URI = "$($psPASSession.BaseURI)/api/Safes"
25 | $SearchQuery = $null
26 | $Limit = 25 #default if you call the API with no value
27 |
28 | }#begin
29 |
30 | PROCESS {
31 |
32 | If ( -Not [string]::IsNullOrEmpty($search) ) {
33 |
34 | $SearchQuery = "&$($PSBoundParameters | Get-PASParameter | ConvertTo-QueryString)"
35 |
36 | }
37 |
38 | $InitialResponse = Invoke-PASRestMethod -Uri "$URI`?limit=$Limit$SearchQuery" -Method GET -TimeoutSec $TimeoutSec
39 |
40 | $Total = $InitialResponse.Total
41 |
42 | If ($Total -gt 0) {
43 |
44 | $Safes = [Collections.Generic.List[Object]]::New(($InitialResponse.Safes))
45 |
46 | For ( $Offset = $Limit ; $Offset -lt $Total ; $Offset += $Limit ) {
47 |
48 | $Null = $Safes.AddRange((Invoke-PASRestMethod -Uri "$URI`?limit=$Limit&OffSet=$Offset$searchQuery" -Method GET -TimeoutSec $TimeoutSec).Safes)
49 |
50 | }
51 |
52 | $Safes
53 |
54 | }
55 |
56 | }#process
57 |
58 | END { }#end
59 |
60 | }
--------------------------------------------------------------------------------
/psPAS/Functions/ServerWebServices/Get-PASSafeShareLogo.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASSafeShareLogo {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true
7 | )]
8 | [ValidateSet('Square', 'Watermark')]
9 | [String]$ImageType
10 | )
11 |
12 | BEGIN {
13 | #!Depracated above 13.2
14 | Assert-VersionRequirement -MaximumVersion 13.2
15 | }#begin
16 |
17 | PROCESS {
18 |
19 | #Create URL for request
20 | $URI = "$($psPASSession.BaseURI)/WebServices/PIMServices.svc/Logo?type=$ImageType"
21 |
22 | #send request to web service
23 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
24 |
25 |
26 | If ($null -ne $result) {
27 |
28 | $result
29 |
30 | }
31 |
32 | }#process
33 |
34 | END { }#end
35 |
36 | }
--------------------------------------------------------------------------------
/psPAS/Functions/ServerWebServices/Get-PASServer.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASServer {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN { }#begin
7 |
8 | PROCESS {
9 |
10 | #Create URL for request
11 | $URI = "$($psPASSession.BaseURI)/WebServices/PIMServices.svc/Server"
12 |
13 | #send request to web service
14 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
15 |
16 | If ($null -ne $result) {
17 |
18 | $result
19 |
20 | }
21 |
22 | }#process
23 |
24 | END { }#end
25 |
26 | }
--------------------------------------------------------------------------------
/psPAS/Functions/SystemHealth/Get-PASComponentDetail.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASComponentDetail {
3 | [CmdletBinding()]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [ValidateNotNullOrEmpty()]
10 | [ValidateSet('PVWA', 'SessionManagement', 'CPM', 'AIM', 'PTA')]
11 | [string]$ComponentID
12 |
13 | )
14 |
15 | BEGIN {
16 | Assert-VersionRequirement -RequiredVersion 10.1
17 | }#begin
18 |
19 | PROCESS {
20 |
21 | if ($PSBoundParameters['ComponentID'] -eq 'PTA') {
22 |
23 | Assert-VersionRequirement -RequiredVersion 12.0
24 | Assert-VersionRequirement -SelfHosted
25 |
26 | }
27 |
28 | #Create URL for request
29 | $URI = "$($psPASSession.BaseURI)/api/ComponentsMonitoringDetails/$ComponentID"
30 |
31 | #send request to web service
32 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
33 |
34 | If ($null -ne $result) {
35 |
36 | #output returned data
37 | $result | Select-Object -ExpandProperty ComponentsDetails
38 |
39 | }
40 |
41 | }#process
42 |
43 | END { }#end
44 |
45 | }
--------------------------------------------------------------------------------
/psPAS/Functions/SystemHealth/Get-PASComponentSummary.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Get-PASComponentSummary {
3 | [CmdletBinding()]
4 | param(
5 |
6 | )
7 |
8 | BEGIN {
9 | Assert-VersionRequirement -RequiredVersion 10.1
10 | }#begin
11 |
12 | PROCESS {
13 |
14 | #Create URL for request
15 | $URI = "$($psPASSession.BaseURI)/api/ComponentsMonitoringSummary"
16 |
17 | #send request to web service
18 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
19 |
20 | If ($null -ne $result) {
21 |
22 | $result | Select-Object -ExpandProperty Components
23 |
24 | $result | Select-Object -ExpandProperty Vaults | Add-ObjectDetail -PropertyToAdd @{
25 | 'ComponentID' = 'EPV'
26 | 'ComponentName' = 'EPV'
27 | } | Select-Object ComponentID, ComponentName, Role, IP, IsLoggedOn
28 |
29 | }
30 |
31 | }#process
32 |
33 | END { }#end
34 |
35 | }
--------------------------------------------------------------------------------
/psPAS/Functions/User/Disable-PASUser.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Disable-PASUser {
3 |
4 | [CmdletBinding(SupportsShouldProcess)]
5 | param(
6 | [parameter(
7 | Mandatory = $true,
8 | ValueFromPipelinebyPropertyName = $true
9 | )]
10 | [int]$id
11 | )
12 |
13 | BEGIN {
14 |
15 | Assert-VersionRequirement -RequiredVersion 12.6
16 |
17 | }#begin
18 |
19 | PROCESS {
20 |
21 | $URI = "$($psPASSession.BaseURI)/API/Users/$id/disable/"
22 |
23 | if ($PSCmdlet.ShouldProcess($id, 'Disable User')) {
24 |
25 | #send request to web service
26 | Invoke-PASRestMethod -Uri $URI -Method POST
27 |
28 | }
29 |
30 | }#process
31 |
32 | END { }#end
33 |
34 | }
--------------------------------------------------------------------------------
/psPAS/Functions/User/Enable-PASUser.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Enable-PASUser {
3 |
4 | [CmdletBinding(SupportsShouldProcess)]
5 | param(
6 | [parameter(
7 | Mandatory = $true,
8 | ValueFromPipelinebyPropertyName = $true
9 | )]
10 | [int]$id
11 | )
12 |
13 | BEGIN {
14 |
15 | Assert-VersionRequirement -RequiredVersion 12.6
16 |
17 | }#begin
18 |
19 | PROCESS {
20 |
21 | $URI = "$($psPASSession.BaseURI)/API/Users/$id/enable/"
22 |
23 | if ($PSCmdlet.ShouldProcess($id, 'Enable User')) {
24 |
25 | #send request to web service
26 | Invoke-PASRestMethod -Uri $URI -Method POST
27 |
28 | }
29 |
30 | }#process
31 |
32 | END { }#end
33 |
34 | }
--------------------------------------------------------------------------------
/psPAS/Functions/User/Get-PASLoggedOnUser.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASLoggedOnUser {
3 | [CmdletBinding()]
4 | param(
5 |
6 | )
7 |
8 | BEGIN {
9 | Assert-VersionRequirement -SelfHosted
10 | }#begin
11 |
12 | PROCESS {
13 |
14 | #Create URL for request
15 | $URI = "$($psPASSession.BaseURI)/WebServices/PIMServices.svc/User"
16 |
17 | #send request to web service
18 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
19 |
20 | If ($null -ne $result) {
21 |
22 | $result | Add-ObjectDetail -typename psPAS.CyberArk.Vault.User
23 |
24 | }
25 |
26 | }#process
27 |
28 | END { }#end
29 |
30 | }
--------------------------------------------------------------------------------
/psPAS/Functions/User/Get-PASUserLoginInfo.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASUserLoginInfo {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN {
7 | Assert-VersionRequirement -RequiredVersion 10.4
8 | }#begin
9 |
10 | PROCESS {
11 |
12 | #Create URL for request
13 | $URI = "$($psPASSession.BaseURI)/api/LoginsInfo"
14 |
15 | #send request to web service
16 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
17 |
18 | If ($null -ne $result) {
19 |
20 | #Return Results
21 | $result | Add-ObjectDetail -typename psPAS.CyberArk.Vault.User.Login
22 |
23 | }
24 |
25 | }#process
26 |
27 | END { }#end
28 |
29 | }
--------------------------------------------------------------------------------
/psPAS/Functions/User/Get-PASUserTypeInfo.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Get-PASUserTypeInfo {
3 | [CmdletBinding()]
4 | param( )
5 |
6 | BEGIN {
7 | Assert-VersionRequirement -RequiredVersion 13.2
8 | }#begin
9 |
10 | PROCESS {
11 |
12 | #Create URL for request
13 | $URI = "$($psPASSession.BaseURI)/API/UserTypes/"
14 |
15 | #send request to web service
16 | $result = Invoke-PASRestMethod -Uri $URI -Method GET
17 |
18 | If ($null -ne $result) {
19 |
20 | #Return Results
21 | $result.UserTypes | Add-ObjectDetail -typename psPAS.CyberArk.Vault.User.Type
22 |
23 | }
24 |
25 | }#process
26 |
27 | END { }#end
28 |
29 | }
--------------------------------------------------------------------------------
/psPAS/Functions/User/New-PASGroup.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function New-PASGroup {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [string]$groupName,
10 |
11 | [parameter(
12 | Mandatory = $false,
13 | ValueFromPipelinebyPropertyName = $true
14 | )]
15 | [string]$description,
16 |
17 | [parameter(
18 | Mandatory = $false,
19 | ValueFromPipelinebyPropertyName = $true
20 | )]
21 | [string]$location
22 | )
23 |
24 | BEGIN {
25 | Assert-VersionRequirement -RequiredVersion 11.1
26 | }#begin
27 |
28 | PROCESS {
29 |
30 | #Create URL for request
31 | $URI = "$($psPASSession.BaseURI)/API/UserGroups"
32 |
33 | #Construct Request Body
34 | $Body = $PSBoundParameters | Get-PASParameter | ConvertTo-Json
35 |
36 | if ($PSCmdlet.ShouldProcess($groupName, 'Create Group')) {
37 |
38 | #send request to web service
39 | $result = Invoke-PASRestMethod -Uri $URI -Method POST -Body $Body
40 |
41 | }
42 |
43 | If ($null -ne $result) {
44 |
45 | $result | Add-ObjectDetail -typename psPAS.CyberArk.Vault.Group
46 |
47 | }
48 |
49 | }#process
50 |
51 | END { }#end
52 |
53 | }
--------------------------------------------------------------------------------
/psPAS/Functions/User/Remove-PASGroup.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Remove-PASGroup {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [Alias('GroupID')]
10 | [int]$ID
11 | )
12 |
13 | BEGIN {
14 |
15 | Assert-VersionRequirement -RequiredVersion 11.5
16 |
17 | }#begin
18 |
19 | Process {
20 |
21 | #Create URL for request
22 | $URI = "$($psPASSession.BaseURI)/API/UserGroups/$ID"
23 |
24 | if ($PSCmdlet.ShouldProcess($ID, 'Delete Group')) {
25 |
26 | #send request to web service
27 | Invoke-PASRestMethod -Uri $URI -Method DELETE
28 |
29 | }
30 |
31 | }
32 |
33 | End { }
34 |
35 | }
--------------------------------------------------------------------------------
/psPAS/Functions/User/Remove-PASGroupMember.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Remove-PASGroupMember {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [Alias('ID')]
10 | [string]$GroupID,
11 |
12 | [parameter(
13 | Mandatory = $true,
14 | ValueFromPipelinebyPropertyName = $true
15 | )]
16 | [Alias('UserName')]
17 | [string]$Member
18 | )
19 |
20 | BEGIN {
21 | Assert-VersionRequirement -RequiredVersion 10.5
22 | }#begin
23 |
24 | PROCESS {
25 |
26 | #Create URL for request
27 | $URI = "$($psPASSession.BaseURI)/API/UserGroups/$GroupID/members/$Member/"
28 |
29 | if ($PSCmdlet.ShouldProcess($GroupID, "Remove Group Member $Member")) {
30 |
31 | #send request to web service
32 | Invoke-PASRestMethod -Uri $URI -Method DELETE
33 |
34 | }
35 |
36 | }#process
37 |
38 | END { }#end
39 |
40 | }
--------------------------------------------------------------------------------
/psPAS/Functions/User/Remove-PASUser.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Remove-PASUser {
3 | [CmdletBinding(SupportsShouldProcess, DefaultParameterSetName = 'Gen2')]
4 | param(
5 |
6 | [parameter(
7 | Mandatory = $true,
8 | ValueFromPipelinebyPropertyName = $true,
9 | ParameterSetName = 'Gen2'
10 | )]
11 | [int]$id,
12 |
13 | [parameter(
14 | Mandatory = $true,
15 | ValueFromPipelinebyPropertyName = $true,
16 | ParameterSetName = 'Gen1'
17 | )]
18 | [string]$UserName
19 | )
20 |
21 | BEGIN {
22 |
23 | If ($PSCmdlet.ParameterSetName -eq 'Gen2') {
24 |
25 | Assert-VersionRequirement -RequiredVersion 11.1
26 |
27 | }
28 |
29 | }#begin
30 |
31 | PROCESS {
32 |
33 | switch ($PSCmdlet.ParameterSetName) {
34 |
35 | 'Gen2' {
36 |
37 | $URI = "$($psPASSession.BaseURI)/api/Users/$id"
38 |
39 | $User = $id
40 |
41 | break
42 |
43 | }
44 |
45 | default {
46 |
47 | Assert-VersionRequirement -MaximumVersion 12.3
48 |
49 | #Create URL for request
50 | $URI = "$($psPASSession.BaseURI)/WebServices/PIMServices.svc/Users/$($UserName | Get-EscapedString)"
51 |
52 | $User = $UserName
53 |
54 | break
55 |
56 | }
57 |
58 | }
59 |
60 | if ($PSCmdlet.ShouldProcess($User, 'Delete User')) {
61 |
62 | #send request to web service
63 | Invoke-PASRestMethod -Uri $URI -Method DELETE
64 |
65 | }
66 |
67 | }#process
68 |
69 | END { }#end
70 |
71 | }
--------------------------------------------------------------------------------
/psPAS/Functions/User/Set-PASGroup.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | Function Set-PASGroup {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [Alias('GroupID')]
10 | [int]$ID,
11 |
12 | [parameter(
13 | Mandatory = $true,
14 | ValueFromPipelinebyPropertyName = $true
15 | )]
16 | [string]$GroupName
17 | )
18 |
19 | BEGIN {
20 |
21 | Assert-VersionRequirement -RequiredVersion 12.0
22 |
23 | }#begin
24 |
25 | Process {
26 |
27 | #Create URL for request
28 | $URI = "$($psPASSession.BaseURI)/API/UserGroups/$ID"
29 |
30 | #Get request parameters
31 | $boundParameters = $PSBoundParameters | Get-PASParameter -ParametersToRemove ID
32 |
33 | #Construct Request Body
34 | $Body = $boundParameters | ConvertTo-Json
35 |
36 | if ($PSCmdlet.ShouldProcess($ID, 'Update Group')) {
37 |
38 | #send request to web service
39 | $result = Invoke-PASRestMethod -Uri $URI -Method PUT -Body $Body
40 |
41 | }
42 |
43 | if ($null -ne $result) {
44 |
45 | $result | Add-ObjectDetail -typename psPAS.CyberArk.Vault.Group
46 |
47 | }
48 |
49 | }
50 |
51 | End { }
52 |
53 | }
--------------------------------------------------------------------------------
/psPAS/Functions/User/Set-PASUserPassword.ps1:
--------------------------------------------------------------------------------
1 | # .ExternalHelp psPAS-help.xml
2 | function Set-PASUserPassword {
3 | [CmdletBinding(SupportsShouldProcess)]
4 | param(
5 | [parameter(
6 | Mandatory = $true,
7 | ValueFromPipelinebyPropertyName = $true
8 | )]
9 | [int]$id,
10 |
11 | [parameter(
12 | Mandatory = $true,
13 | ValueFromPipelinebyPropertyName = $true
14 | )]
15 | [securestring]$NewPassword
16 | )
17 |
18 | BEGIN {
19 | Assert-VersionRequirement -RequiredVersion 10.10
20 | }#begin
21 |
22 | PROCESS {
23 |
24 | #Get request parameters
25 | $boundParameters = $PSBoundParameters | Get-PASParameter -ParametersToRemove id
26 |
27 | $Password = ConvertTo-InsecureString -SecureString $NewPassword
28 |
29 | If ($Password.length -gt 39) {
30 | throw 'Password must not exceed 39 characters'
31 | }
32 |
33 | #Include decoded password in request
34 | $boundParameters['NewPassword'] = $Password
35 |
36 | #Create URL for request
37 | $URI = "$($psPASSession.BaseURI)/api/Users/$id/ResetPassword"
38 |
39 | #create request body
40 | $body = $boundParameters | ConvertTo-Json
41 |
42 | if ($PSCmdlet.ShouldProcess($id, 'Reset Password')) {
43 |
44 | #send request to web service
45 | Invoke-PASRestMethod -Uri $URI -Method POST -Body $Body
46 |
47 | }
48 |
49 | }#process
50 |
51 | END { }#end
52 |
53 | }
--------------------------------------------------------------------------------
/psPAS/Private/ConvertFrom-KeyValuePair.ps1:
--------------------------------------------------------------------------------
1 | function ConvertFrom-KeyValuePair {
2 | <#
3 | .SYNOPSIS
4 | Takes object containing key/value pair
5 | Returns Property=Value object
6 |
7 | .DESCRIPTION
8 | Converts:
9 | Key Value
10 | --- -----
11 | PropertyName False
12 |
13 | Into:
14 | UnlockAccounts : False
15 |
16 |
17 | .PARAMETER KeyValue
18 | The object(s) containing the key / value pair data
19 |
20 | .EXAMPLE
21 | $object | ConvertFrom-KeyValuePair
22 |
23 | Returns Key=Value object members for each matching entry in $object
24 |
25 | #>
26 | [CmdletBinding()]
27 | param (
28 | [parameter(
29 | Mandatory = $true,
30 | ValueFromPipeline = $true
31 | )]
32 | [ValidateNotNullOrEmpty()]
33 | [object[]]$KeyValue
34 | )
35 |
36 | begin {
37 |
38 | $OutputObject = [PSCustomObject]@{ }
39 |
40 | }
41 |
42 | process {
43 |
44 | If ($null -ne $KeyValue) {
45 |
46 | $KeyValue | ForEach-Object {
47 |
48 | If ($null -ne $PSItem.key) {
49 |
50 | $OutputObject | Add-Member -Name $($PSItem.key) -Value $($PSItem.value) -MemberType NoteProperty
51 |
52 | }
53 | }
54 | }
55 | }
56 |
57 | end {
58 | $OutputObject
59 | }
60 |
61 | }
--------------------------------------------------------------------------------
/psPAS/Private/ConvertTo-InsecureString.ps1:
--------------------------------------------------------------------------------
1 | Function ConvertTo-InsecureString {
2 | <#
3 | .SYNOPSIS
4 | Returns string value from SecureString input
5 |
6 | .DESCRIPTION
7 | Gets the decoded string value of an encoded SecureString
8 |
9 | .PARAMETER SecureString
10 | The SecureString to decode
11 |
12 | .EXAMPLE
13 | ConvertTo-InsecureString $SecureStringValue
14 | #>
15 | [CmdLetBinding()]
16 | [OutputType('System.String')]
17 | Param (
18 |
19 | [Parameter(
20 | Mandatory = $True,
21 | ValueFromPipeline = $True
22 | )]
23 | [System.Security.SecureString]$SecureString
24 | )
25 |
26 | Process {
27 | Try {
28 |
29 | $ptr = [System.Runtime.InteropServices.Marshal]::SecureStringToGlobalAllocUnicode($SecureString)
30 | [System.Runtime.InteropServices.Marshal]::PtrToStringUni($ptr)
31 |
32 | }
33 |
34 | Finally {
35 |
36 | [System.Runtime.InteropServices.Marshal]::ZeroFreeGlobalAllocUnicode($ptr)
37 |
38 | }
39 | }
40 | }
--------------------------------------------------------------------------------
/psPAS/Private/ConvertTo-UnixTime.ps1:
--------------------------------------------------------------------------------
1 | Function ConvertTo-UnixTime {
2 | <#
3 | .SYNOPSIS
4 | Returns UnixTime of a given date.
5 |
6 | .DESCRIPTION
7 | Returns UnixTime as a whole number.
8 |
9 | .PARAMETER Date
10 | A DateTime object to return the UnixTime of.
11 |
12 | .EXAMPLE
13 | Get-Date | ConvertTo-UnixTime
14 |
15 | #>
16 | [CmdletBinding()]
17 | [OutputType('System.Integer')]
18 | Param(
19 | [Parameter(
20 | Mandatory = $true,
21 | ValueFromPipeline = $true
22 | )]
23 | [DateTime]$Date,
24 |
25 | [Parameter(
26 | Mandatory = $false,
27 | ValueFromPipeline = $false
28 | )]
29 | [switch]$Milliseconds
30 | )
31 | begin {
32 | $currentCulture = [System.Threading.Thread]::CurrentThread.CurrentCulture
33 | $epoch = Get-Date 1/1/1970
34 | }
35 | process {
36 | [System.Threading.Thread]::CurrentThread.CurrentCulture = 'en-US'
37 | if ($Date -ne $epoch) {
38 | #Convert Date with timezone offset
39 | $UnixTime = [math]::Round($(Get-Date $Date.ToUniversalTime() -UFormat %s))
40 | } Else {
41 | #no timezone offset for epoch date
42 | $UnixTime = [math]::Round($(Get-Date $Date -UFormat %s))
43 | }
44 | If ($Milliseconds) {
45 | $UnixTime = $UnixTime * 1000
46 | }
47 |
48 | $UnixTime
49 | }
50 | end {
51 | [System.Threading.Thread]::CurrentThread.CurrentCulture = $currentCulture
52 | }
53 | }
--------------------------------------------------------------------------------
/psPAS/Private/Get-ByteArray.ps1:
--------------------------------------------------------------------------------
1 | Function Get-ByteArray {
2 | <#
3 | .SYNOPSIS
4 | Get a file as a ByteArray
5 |
6 | .DESCRIPTION
7 | Outputs a file to a ByteArray
8 |
9 | .PARAMETER Path
10 | The File to Read as a ByteArray
11 |
12 | .EXAMPLE
13 | Get-ByteArray -Path "C:\SomeFile.zip"
14 |
15 | #>
16 | [CmdletBinding()]
17 | [OutputType('System.Byte[]')]
18 | Param(
19 | # The File to Convert to a ByteArray
20 | [Parameter(
21 | Mandatory = $true,
22 | ValueFromPipeline = $true
23 | )]
24 | [ValidateNotNullOrEmpty()]
25 | [ValidateScript( { Test-Path -Path $_ -PathType Leaf })]
26 | [String]
27 | $Path
28 | )
29 |
30 | Begin {}
31 |
32 | Process {
33 | [System.IO.File]::ReadAllBytes($Path)
34 | }
35 |
36 | End {}
37 |
38 | }
--------------------------------------------------------------------------------
/psPAS/Private/Get-EscapedString.ps1:
--------------------------------------------------------------------------------
1 | function Get-EscapedString {
2 | <#
3 | .SYNOPSIS
4 | Outputs escaped string value.
5 |
6 | .DESCRIPTION
7 | Wrapper for the System.Uri EscapeDataString method.
8 | When provided with an input string, an escaped string will be output.
9 | This can be used for forming URLs and query strings where spaces are not allowed.
10 |
11 | .PARAMETER inputString
12 | String to escape
13 |
14 | .EXAMPLE
15 | "Safe Name" | Get-EscapedString
16 |
17 | .INPUTS
18 | String Value
19 |
20 | .OUTPUTS
21 | Escaped String Value
22 | #>
23 | [CmdletBinding()]
24 | [OutputType('System.String')]
25 | param(
26 | [parameter(
27 | Mandatory = $false,
28 | ValueFromPipeline = $true
29 | )]
30 | [string]$inputString
31 |
32 | )
33 |
34 | Begin {}
35 |
36 | Process {
37 |
38 | #Output escaped string
39 | [System.Uri]::EscapeDataString($inputString)
40 |
41 | }
42 |
43 | End {}
44 |
45 | }
--------------------------------------------------------------------------------
/psPAS/Private/Get-PASSAMLResponse.ps1:
--------------------------------------------------------------------------------
1 | Function Get-PASSAMLResponse {
2 | <#
3 | .SYNOPSIS
4 | Get SAML Token for PAS SAML Auth
5 |
6 | .DESCRIPTION
7 | Get SAML IdP URl using a request the /auth/saml/ PVWA resource
8 | Authenticates to IdP and to obtain Saml Token
9 |
10 | .PARAMETER URL
11 | The PVWA URL
12 |
13 | .EXAMPLE
14 | Get-PASSAMLResponse -URL "https://pvwa.somecompany.com/PasswordVault"
15 |
16 | .NOTES
17 | https://gist.github.com/infamousjoeg/b44faa299ec3de65bdd1d3b8474b0649
18 | #>
19 | [CmdletBinding(SupportsShouldProcess)]
20 | param(
21 | [parameter(
22 | Mandatory = $true,
23 | ValueFromPipeline = $true,
24 | ValueFromPipelinebyPropertyName = $true
25 | )]
26 | $URL
27 | )
28 |
29 | Process {
30 |
31 | Try {
32 |
33 | $Uri = "$URL/auth/saml/"
34 |
35 | if ($PSCmdlet.ShouldProcess($Uri, 'SAML Auth')) {
36 |
37 | $WebResponse = Invoke-WebRequest -Uri $Uri -MaximumRedirection 0 -ErrorAction SilentlyContinue -UseBasicParsing
38 |
39 | $SAMLResponse = Invoke-WebRequest -Uri $($WebResponse.links.href) -MaximumRedirection 1 -UseDefaultCredentials -UseBasicParsing
40 |
41 | If ($SAMLResponse.InputFields[0].name -eq 'SAMLResponse') {
42 |
43 | $SAMLResponse.InputFields[0].value
44 |
45 | } Else { Throw }
46 |
47 | }
48 |
49 | }
50 |
51 | Catch { Throw 'Failed to get SAMLResponse' }
52 |
53 | }
54 |
55 | }
--------------------------------------------------------------------------------
/psPAS/Private/Get-SessionClone.ps1:
--------------------------------------------------------------------------------
1 | function Get-SessionClone {
2 | <#
3 | .SYNOPSIS
4 | Deep copy a hashtable
5 |
6 | .DESCRIPTION
7 | Deep copy a hashtable or ordered dictionary, and return an ordered dictionary
8 |
9 | .PARAMETER InputObject
10 | A hashtable or OrderedDictionary to clone
11 |
12 | .EXAMPLE
13 | Get-SessionClone -InputObject $Hashtable
14 |
15 | Returns a new ordered hashtable, which is a deep copy of $Hashtable
16 |
17 | .OUTPUTS
18 | System.Collections.Specialized.OrderedDictionary
19 | #>
20 | [cmdletbinding()]
21 | [OutputType('System.Collections.Specialized.OrderedDictionary')]
22 | param(
23 | [parameter(
24 | Mandatory = $true,
25 | ValueFromPipeline = $true
26 | )]
27 | $InputObject
28 | )
29 | process {
30 | if (($InputObject -is [hashtable]) -or ($InputObject -is [System.Collections.Specialized.OrderedDictionary])) {
31 | $clone = [ordered]@{}
32 | foreach ($key in $InputObject.keys) {
33 | if ($null -ne $InputObject[$key]) {
34 | $clone[$key] = Get-SessionClone $InputObject[$key]
35 | } else {
36 | $clone[$key] = $null
37 | }
38 | }
39 | return $clone
40 | } else {
41 |
42 | return $InputObject
43 |
44 | }
45 | }
46 | }
--------------------------------------------------------------------------------
/psPAS/Private/Test-IsCoreCLR.ps1:
--------------------------------------------------------------------------------
1 | Function Test-IsCoreCLR {
2 | <#
3 | .SYNOPSIS
4 | Tests for PWSH
5 |
6 | .DESCRIPTION
7 | Returns "$true" if run from PWSH
8 | Returns "$false" if run from PowerShell
9 |
10 | .EXAMPLE
11 | Test-IsCoreCLR
12 |
13 | Returns "$true" if run from PWSH
14 | Returns "$false" if run from PowerShell
15 |
16 | #>
17 |
18 | if ($IsCoreCLR -or $PSEdition -eq 'Core') {
19 |
20 | $true
21 |
22 | } else {
23 |
24 | $false
25 |
26 | }
27 |
28 | }
--------------------------------------------------------------------------------
/psPAS/xml/psPAS.CyberArk.Vault.ACL.Type.ps1xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | psPAS.CyberArk.Vault.ACL.Policy
5 |
6 |
7 | Remove
8 |
23 |
24 |
25 |
26 |
27 | psPAS.CyberArk.Vault.ACL.Account
28 |
29 |
30 | Remove
31 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/psPAS/xml/psPAS.CyberArk.Vault.Account.Type.ps1xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | psPAS.CyberArk.Vault.Account.V10
5 |
6 |
7 | GetActivity
8 |
11 |
12 |
13 | GetDetails
14 |
17 |
18 |
19 | GetPassword
20 |
23 |
24 |
25 | VerifyPassword
26 |
29 |
30 |
31 | ChangePassword
32 |
35 |
36 |
37 | ReconcilePassword
38 |
41 |
42 |
43 | Remove
44 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/psPAS/xml/psPAS.CyberArk.Vault.Credential.Type.ps1xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | psPAS.CyberArk.Vault.Credential
5 |
6 |
7 | ToSecureString
8 |
11 |
12 |
13 | ToPsCredential
14 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/psPAS/xml/psPAS.CyberArk.Vault.User.Type.ps1xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | psPAS.CyberArk.Vault.User
5 |
6 |
7 | Activate
8 |
11 |
12 |
13 | Disable
14 |
17 |
18 |
19 | Enable
20 |
23 |
24 |
25 | Remove
26 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------