diff --git a/.github/ISSUE_TEMPLATE/default.md b/.gitea/ISSUE_TEMPLATE.md similarity index 58% rename from .github/ISSUE_TEMPLATE/default.md rename to .gitea/ISSUE_TEMPLATE.md index c458e70..049a408 100644 --- a/.github/ISSUE_TEMPLATE/default.md +++ b/.gitea/ISSUE_TEMPLATE.md @@ -1,11 +1,10 @@ ---- -name: Default -about: Use this template if nothing seems to work. +---- +name: "Default" +about: "Use this template if nothing seems to work." title: ":question: " -labels: question -assignees: '' - ---- +labels: + - question +---- #### :grey_question: Simply ask your question here: :grey_question: diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.gitea/ISSUE_TEMPLATE/Bug.md similarity index 86% rename from .github/ISSUE_TEMPLATE/bug_report.md rename to .gitea/ISSUE_TEMPLATE/Bug.md index f1d8d08..40f0ef0 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.gitea/ISSUE_TEMPLATE/Bug.md @@ -1,12 +1,10 @@ ---- -name: Bug report -about: This template is used to report bugs! +---- +name: "Bug" +about: "This template is used to report bugs!" title: ":lady_beetle: " -labels: bug -assignees: OCram85 - ---- - +labels: + - bug +---- diff --git a/.github/pull_request_template.md b/.gitea/PULL_REQUEST_TEMPLATE.md similarity index 100% rename from .github/pull_request_template.md rename to .gitea/PULL_REQUEST_TEMPLATE.md diff --git a/README.md b/README.md index d518ebb..d785133 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@
@@ -14,16 +14,18 @@- 🔐 A simple credential manager to store and reuse multiple PSCredential objects. + 🔐 A simple cross-platform credential manager for PSCredential objects.
- - + + + @@ -49,7 +51,7 @@ need to store credentials for non interactive usage like in scheduled tasks. Starting with version `1.0.0` PSCredential uses Pfx certificates fo encryption. You can use Pfx certificate files or certificates stored in the certificate store. -For more details read the [about_PSCredentialStore](/docs/about_PSCredentialStore.md) page on github or via CLI with +For more details read the [about_PSCredentialStore](/docs/about_PSCredentialStore.md) page on gitea or via CLI with `Get-Help about_PSCredentialStore`. You can find the [reference](/docs/PSCredentialStore.md) in the /docs/ path as well. @@ -99,7 +101,7 @@ Here is s brief hierarchy description of the certificate location: *(First match ### :building_construction: Manual Way -* Take a look at the [Latest Release](https://github.com/OCram85/PSCredentialStore/releases/latest) page. +* Take a look at the [Latest Release](https://gitea.ocram85.com/OCram85/PSCredentialStore/releases/latest) page. * Download the `PSCredentialStore.zip`. * Unpack the zip file and put it in your Powershell module path. * Don't forget to change the NTFS permission flag in the context menu. diff --git a/docs/Connect-To.md b/docs/Connect-To.md index f0fb164..ed58751 100644 --- a/docs/Connect-To.md +++ b/docs/Connect-To.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # Connect-To ## SYNOPSIS @@ -22,37 +28,37 @@ Establish a connection to the selected host using a stored CredentialStoreItem. ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` Connect-To -RemoteHost "ucs.myside.local" -Type CiscoUcs ``` -### BEISPIEL 2 +### EXAMPLE 2 ``` Connect-To -RemoteHost "ftp.myside.local" -Type FTP ``` -### BEISPIEL 3 +### EXAMPLE 3 ``` Connect-To -RemoteHost "fas.myside.local" -Type NetAppFAS ``` -### BEISPIEL 4 +### EXAMPLE 4 ``` Connect-To -RemoteHost "esx01.myside.local" -Type VMware ``` -### BEISPIEL 5 +### EXAMPLE 5 ``` Connect-To -RemoteHost "vCenter.myside.local" -Type CisServer ``` -### BEISPIEL 6 +### EXAMPLE 6 ``` Connect-To -RemoteHost "exchange01.myside.local" -Type ExchangeHTTP ``` -### BEISPIEL 7 +### EXAMPLE 7 ``` Connect-To -RemoteHost "exchange01.myside.local" -Type ExchangeHTTPS ``` @@ -184,11 +190,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [None] ## NOTES -- File Name : Connect-To.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/Disconnect-From.md b/docs/Disconnect-From.md index 5d0d6df..f4202fa 100644 --- a/docs/Disconnect-From.md +++ b/docs/Disconnect-From.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # Disconnect-From ## SYNOPSIS @@ -14,42 +20,42 @@ Terminates a session established with Connect-To using a CredentialStoreItem. ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` Disconnect-From -RemoteHost "ucs.myside.local" -Type CiscoUcs ``` -### BEISPIEL 2 +### EXAMPLE 2 ``` Disconnect-From -RemoteHost "ftp.myside.local" -Type FTP ``` -### BEISPIEL 3 +### EXAMPLE 3 ``` Disconnect-From -RemoteHost "fas.myside.local" -Type NetAppFAS ``` -### BEISPIEL 4 +### EXAMPLE 4 ``` Disconnect-From -RemoteHost "esx01.myside.local" -Type VMware ``` -### BEISPIEL 5 +### EXAMPLE 5 ``` Disconnect-From -RemoteHost "esx01.myside.local" -Type VMware -Force:$True ``` -### BEISPIEL 6 +### EXAMPLE 6 ``` Disconnect-From -RemoteHost "vcenter.myside.local" -Type CisServer ``` -### BEISPIEL 7 +### EXAMPLE 7 ``` Disconnect-From -RemoteHost "exchange01.myside.local" -Type ExchangeHTTP ``` -### BEISPIEL 8 +### EXAMPLE 8 ``` Disconnect-From -RemoteHost "exchange01.myside.local" -Type ExchangeHTTPS ``` @@ -113,11 +119,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [None] ## NOTES -- File Name : Disconnect-From.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/Get-CSCertificate.md b/docs/Get-CSCertificate.md index 266e8e7..4de7217 100644 --- a/docs/Get-CSCertificate.md +++ b/docs/Get-CSCertificate.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # Get-CSCertificate ## SYNOPSIS @@ -14,7 +20,7 @@ Use this function to get the available pfx certificate respecting the config hie ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` Get-CSCertificate -Type 'Shared' -Thumbprint '12334456' ``` @@ -61,11 +67,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [System.Security.Cryptography.X509Certificates.X509Certificate2] ## NOTES -- File Name : Get-CSCertificate.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/Get-CredentialStore.md b/docs/Get-CredentialStore.md index 24b83e3..722bb8a 100644 --- a/docs/Get-CredentialStore.md +++ b/docs/Get-CredentialStore.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # Get-CredentialStore ## SYNOPSIS @@ -24,7 +30,7 @@ Get-CredentialStoreItem. ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` $CSContent = Get-CredentialStore -Path "C:\TMP\mystore.json" ``` @@ -73,11 +79,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [PSObject] Returns the credential store content as PSObject. ## NOTES -- File Name : Get-CredentialStore.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/Get-CredentialStoreItem.md b/docs/Get-CredentialStoreItem.md index 6b0ab1c..013eb03 100644 --- a/docs/Get-CredentialStoreItem.md +++ b/docs/Get-CredentialStoreItem.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # Get-CredentialStoreItem ## SYNOPSIS @@ -21,7 +27,7 @@ Return the credential as PSCredential object. ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` $myCreds = Get-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local" ``` @@ -103,11 +109,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [System.Management.Automation.PSCredential] ## NOTES -- File Name : Get-CredentialStoreItem.ps1 -- Author : Messing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/Import-CSCertificate.md b/docs/Import-CSCertificate.md index 2211efa..bcda028 100644 --- a/docs/Import-CSCertificate.md +++ b/docs/Import-CSCertificate.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # Import-CSCertificate ## SYNOPSIS @@ -15,7 +21,7 @@ private and shared credential stores. ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` Import-CSCertificate -Type 'Private' -Path (Join-Path -Path $Env:APPDATA -ChildItem 'PfxCertificate.pfx') ``` @@ -62,11 +68,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [None] ## NOTES -- File Name : Import-CSCertificate.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/New-CSCertAttribute.md b/docs/New-CSCertAttribute.md index 8e778c5..5c2c5aa 100644 --- a/docs/New-CSCertAttribute.md +++ b/docs/New-CSCertAttribute.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # New-CSCertAttribute ## SYNOPSIS @@ -15,7 +21,7 @@ Defines the certificate related properties for an upcoming New-PfxCertificate ex ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` New-CSCertAttribute -Country 'DE' -State 'BW' -City 'Karlsruhe' -Organization 'AwesomeIT' -OrganizationalUnitName '' -CommonName 'MyPrivateCert' ``` @@ -137,11 +143,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [PSCredentialStore.Certificate.CSRDetails] ## NOTES -- File Name : New-CSCertAttribute.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/New-CSCertificate.md b/docs/New-CSCertificate.md index 163288c..cdf7a8a 100644 --- a/docs/New-CSCertificate.md +++ b/docs/New-CSCertificate.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # New-CSCertificate ## SYNOPSIS @@ -15,7 +21,7 @@ Use this function to create a custom self signed certificate used by the PSCrede ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` New-CSCertificate -CRTAttribute $CRTAttribute -KeyName './myprivate.key' -CertName './mycert.pfx' ``` @@ -110,11 +116,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [None] ## NOTES -- File Name : New-CSCertificate.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/New-CredentialStore.md b/docs/New-CredentialStore.md index 60a1172..f1e25dd 100644 --- a/docs/New-CredentialStore.md +++ b/docs/New-CredentialStore.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # New-CredentialStore ## SYNOPSIS @@ -23,33 +29,29 @@ save new credentials with New-CredentialStoreItem. ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` New-CredentialStore +# Creates a new private CredentialStore ``` -# Creates a new private CredentialStore - -### BEISPIEL 2 +### EXAMPLE 2 ``` New-CredentialStore -Force +# Resets an existing private CredentialStore ``` -# Resets an existing private CredentialStore - -### BEISPIEL 3 +### EXAMPLE 3 ``` New-CredentialStore -Shared +# Creates a new shared CredentialStore ``` -# Creates a new shared CredentialStore - -### BEISPIEL 4 +### EXAMPLE 4 ``` New-CredentialStore -Shared -Path "C:\TMP\CredentialStore.json" -``` - # Creates a new shared CredentialStore in the given location. +``` ## PARAMETERS @@ -196,11 +198,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### ['PSCredentialStore.Store'] Returns the recently created CredentialStore object if the -PassThru parameter ### was given. ## NOTES -- File Name : New-CredentialStore.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/New-CredentialStoreItem.md b/docs/New-CredentialStoreItem.md index dc185fe..a310af1 100644 --- a/docs/New-CredentialStoreItem.md +++ b/docs/New-CredentialStoreItem.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # New-CredentialStoreItem ## SYNOPSIS @@ -26,7 +32,7 @@ a VIConnection, NetApp FAS or UCS Fabric Interconnect. ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` New-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local" ``` @@ -123,11 +129,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [None] ## NOTES -- File Name : New-CredentialStoreItem.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/PSCredentialStore.md b/docs/PSCredentialStore.md index 7a67d83..219b581 100644 --- a/docs/PSCredentialStore.md +++ b/docs/PSCredentialStore.md @@ -1,6 +1,14 @@ +--- +Module Name: PSCredentialStore +Module Guid: 6800e192-9df8-4e30-b253-eb2c799bbe84 6800e192-9df8-4e30-b253-eb2c799bbe84 +Download Help Link: {{ Update Download Link }} +Help Version: {{ Please enter version of help manually (X.X.X.X) format }} +Locale: en-US +--- + # PSCredentialStore Module ## Description -[about_PSCredentialStore](about_PSCredentialStore.md) +{{ Fill in the Description }} ## PSCredentialStore Cmdlets ### [Connect-To](Connect-To.md) @@ -21,8 +29,8 @@ Returns the current used valid PfX certificate. ### [Import-CSCertificate](Import-CSCertificate.md) Imports a linked certificate to the valid store location. -### [Import-CSCertificate](Import-CSCertificate.md) -Imports a linked certificate to the valid store location. +### [New-CredentialStore](New-CredentialStore.md) +Creates a new credential store File ### [New-CredentialStoreItem](New-CredentialStoreItem.md) Adds a credential store item containing host, user and password to the given store. diff --git a/docs/Remove-CredentialStoreItem.md b/docs/Remove-CredentialStoreItem.md index 20ee2e9..9cac167 100644 --- a/docs/Remove-CredentialStoreItem.md +++ b/docs/Remove-CredentialStoreItem.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # Remove-CredentialStoreItem ## SYNOPSIS @@ -21,22 +27,22 @@ Use this CMDLet to completely remove an credential store item. ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` Remove-CredentialStoreItem -RemoteHost "esx01.myside.local" ``` -### BEISPIEL 2 +### EXAMPLE 2 ``` Remove-CredentialStoreItem -Shared -RemoteHost "esx01.myside.local" ``` -### BEISPIEL 3 +### EXAMPLE 3 ``` Remove-CredentialStoreItem -Shared -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local" ``` -### BEISPIEL 4 +### EXAMPLE 4 ``` Remove-CredentialStoreItem -RemoteHost "esx01.myside.local" -Identifier svc ``` @@ -117,11 +123,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [None] ## NOTES -- File Name : Remove-CredentialStoreItem.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/Set-CredentialStoreItem.md b/docs/Set-CredentialStoreItem.md index ae8d989..b717464 100644 --- a/docs/Set-CredentialStoreItem.md +++ b/docs/Set-CredentialStoreItem.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # Set-CredentialStoreItem ## SYNOPSIS @@ -22,12 +28,12 @@ Use this function to update your already stored RemoteHost items. ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` Set-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local" ``` -### BEISPIEL 2 +### EXAMPLE 2 ``` Set-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local" -Identifier svc ``` @@ -123,11 +129,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [None] ## NOTES -- File Name : Set-CredentialStoreItem.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/Test-CSCertificate.md b/docs/Test-CSCertificate.md index 8234de1..0e3da12 100644 --- a/docs/Test-CSCertificate.md +++ b/docs/Test-CSCertificate.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # Test-CSCertificate ## SYNOPSIS @@ -14,7 +20,7 @@ Test-CSCertificate should be an easy high level test for the linked certificate. ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` Test-CSCertificate -Type 'Shared' ``` @@ -46,11 +52,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [bool] ## NOTES -- File Name : Test-CSCertificate.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/Test-CSConnection.md b/docs/Test-CSConnection.md index ee3ee78..942e874 100644 --- a/docs/Test-CSConnection.md +++ b/docs/Test-CSConnection.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # Test-CSConnection ## SYNOPSIS @@ -14,7 +20,7 @@ Use this script to check a connection which was established with the \`Connect-T ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` Test-CMConnection -RemoteHost "vcr01.internal.net" -Type VMware ``` @@ -63,11 +69,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [bool] ## NOTES -- File Name : Test-CSConnection.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/Test-CredentialStore.md b/docs/Test-CredentialStore.md index 1b6768b..c1a1ea5 100644 --- a/docs/Test-CredentialStore.md +++ b/docs/Test-CredentialStore.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # Test-CredentialStore ## SYNOPSIS @@ -22,7 +28,7 @@ the file exists. ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` Test-CredentialStore -eq $true ``` @@ -68,12 +74,7 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ## OUTPUTS +### System.Boolean ## NOTES -- File Name : Test-CredentialStore.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/Test-CredentialStoreItem.md b/docs/Test-CredentialStoreItem.md index 229ee6c..ea68aa8 100644 --- a/docs/Test-CredentialStoreItem.md +++ b/docs/Test-CredentialStoreItem.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # Test-CredentialStoreItem ## SYNOPSIS @@ -23,16 +29,15 @@ you try to interact with it. ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` -If (Test-CredentialStoreItem -RemoteHost "Default") { -``` - -Get-CredentialStoreItem -RemoteHost "Default" +if (Test-CredentialStoreItem -RemoteHost "Default") { + Get-CredentialStoreItem -RemoteHost "Default" } -Else { +else { Write-Warning ("The given Remote Host {0} does not exist in the credential Store!" -f $RemoteHost) } +``` ## PARAMETERS @@ -112,11 +117,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [None] ## NOTES -- File Name : Test-CredentialStoreItem.ps1 -- Author : Marco Blessing - marco.blessing@googlemail.com -- Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/Use-CSCertificate.md b/docs/Use-CSCertificate.md index 90675d1..d145073 100644 --- a/docs/Use-CSCertificate.md +++ b/docs/Use-CSCertificate.md @@ -1,3 +1,9 @@ +--- +external help file: PSCredentialStore-help.xml +Module Name: PSCredentialStore +schema: 2.0.0 +--- + # Use-CSCertificate ## SYNOPSIS @@ -20,7 +26,7 @@ Linking a certificate is needed if you plan to use the same CredentialStore in c ## EXAMPLES -### BEISPIEL 1 +### EXAMPLE 1 ``` Use-CSCertificate -Path 'C:\cert.pfx' ``` @@ -97,11 +103,5 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ### [None] ## NOTES -File Name : Use-CSCertificate.ps1 -Author : Marco Blessing - marco.blessing@googlemail.com -Requires : ## RELATED LINKS - -[https://github.com/OCram85/PSCredentialStore](https://github.com/OCram85/PSCredentialStore) - diff --git a/docs/about_PSCredentialStore.md b/docs/about_PSCredentialStore.md index e0f33cc..9a3076e 100644 --- a/docs/about_PSCredentialStore.md +++ b/docs/about_PSCredentialStore.md @@ -1,147 +1,147 @@ -# PSCredentialStore -## about_PSCredentialStore - - -# SHORT DESCRIPTION -PSCredentialStore enables managing multiple PSCredential objects. - - -# LONG DESCRIPTION -The PSCredentialStore is a simple credential manager for `PSCredential` objects. It stores PSCredentials in a simple json -file. You can choose between a private and shared credential store. The private one exists in your profile and can -ony accessed by your account on the same machine. The shared store enables you to use different credentials for your -scripts without exposing them as plain text. - -PSCredentialStore was developed to simplify the delegation of complex powershell scripts. In this case you often -need to store credentials for non interactive usage like in scheduled tasks. - -Starting with version `1.0.0` PSCredential uses Pfx certificates fo encryption. You can use Pfx certificate files -or certificates stored in the certificate store. - -For more details read the [about_PSCredentialStore](/docs/about_PSCredentialStore.md) page on github or via CLI with -`Get-Help about_PSCredentialStore`. - -## Requirements - -- PowerShell >= `5.1` -- .NET Framework >= `4.6` or .NET Core >= `1.0` - -## About Security - ->This section explains some security topics and the the design decisions we made to balance the usage and security needs. - -To be able to delegate `PSCredentials` objects we can't exclusively rely on the `SecureString` cmdlets. You can't -decrypt and reuse such credentials from a different user account or even machine. This is caused by automatically -generated encryption key which, is used create a `Secure String` based encrypted string. - -In order to delegate a password, while still using the underlying security framework, we have to provide a custom -encryption key. This leads to the fact, that everyone who has access to the key could encrypt or decrypt your data. - -So we decided to use the public and private keys from valid certificates as part of the custom encryption keys to encrypt your data. - -This means clearly: Everyone who has access to the `CredentialStore` needs also access to the certificate file to work with it. - -Keep in mind you need to secure the access with your NTFS file permissions to avoid unwanted usage. Another option is -to import the certificate into your certification vaults of you operating system. In this case you can grand the -permission to the certificates itself. - -Here is s brief hierarchy description of the certificate location: *(First match wins)* - -| CredentialStore Type | Certificate Location | -| -------------------- | ---------------------- | -| Private | `CurrentUser`\\`My` | -| Shared (Windows) | `CurrentUser`\\`My` | -| | `LocalMachine`\\`Root` | -| Shared (Linux) | `LocalMachine`\\`My` | -| | `LocalMachine`\\`Root` | - - -## Installation - -## PowerShellGallery.com (Recommended Way) - -* Make sure you use PowerShell 5.1 or higher with `$PSVersionTable`. -* Use the builtin PackageManagement and install with: `Install-Module PSCredentialStore` -* Done. Start exploring the Module with `Import-Module PSCredentialStore ; Get-Command -Module PSCredentialStore` - -## Manual Way - -* Take a look at the [Latest Release](https://github.com/OCram85/PSCredentialStore/releases/latest) page. -* Download the `PSCredentialStore.zip`. -* Unpack the Zip and put it in your Powershell Module path. - * Don't forget to change the NTFS permission flag in the context menu. -* Start with `Import-Module PSCredentialStore` - -**1.** First we need a blank credential store. You can decide between a *private* or *shared* store. The private -Credential Store can only be accessed with your profile on the machine you created it. - -Starting with version `1.0.0` you can decide the storage type of your fresh created certificate. As default -PSCredentialStore creates a new pfx certificate file beside the credential store itself. Optionally you can provide -the parameter `-UseCertStore`. This imports the new certificate in the user or machine certificate store as well. - -```powershell -# Private credential store -New-CredentialStore - -# Private credential store with certificate store usage -New-CredentialStore -UseCertStore - -# Shared credential store -New-CredentialStore -Shared - -#Shared credential store in custom Location -New-CredentialStore -Shared -Path 'C:\CredentialStore.json' -``` - - -**2.** Now you can manage your CredentialStoreItems: -```powershell -# This will prompt for credentials and stores it in a private store -New-CredentialStoreItem -RemoteHost 'dc01.myside.local' -Identifier 'AD' - -# You can now use it in other scripts like this: -$DCCreds = Get-CredentialStoreItem -RemoteHost 'dc01.myside.local' -Identifier 'AD' -Invoke-Command -ComputerName 'dc01.myside.local' -Credential $DCCreds -ScripBlock {Get-Process} -``` - -The CredentialStore contains also a simple function to establish a connection with several systems or protocols. -If you have already installed the underlying framework your can connect to: - -* **CiscoUcs** - Establish a connection to a Cisco UCS fabric interconnect. - * Required Modules: [`Cisco.UCS.Core`, `Cisco.UCSManager`](https://software.cisco.com/download/release.html?i=!y&mdfid=286305108&softwareid=284574017&release=2.1.1) -* **FTP** - Establish a connection to a FTP host. - * Required Modules: [`WinSCP`](https://www.powershellgallery.com/packages/WinSCP) -* **NetAppFAS** - Establish a connection to a NetApp Clustered ONTAP filer. - * Required Modules: [`DataONTAP`](http://mysupport.netapp.com/tools/info/ECMLP2310788I.html?productID=61926) -* **VMware** - Establish a connection to a VMware vCenter or ESXi host. - * Required Modules: [`VMware.VimAutomation.Core`](https://www.powershellgallery.com/packages/VMware.PowerCLI) -* **CisServer** - Establish a connection to the CisServer Service on vCenter Host. - * Required Modules: [`VMware.VimAutomation.Cis.Core`](https://www.powershellgallery.com/packages/VMware.PowerCLI)) -* **ExchangeHTTP** - Establish a remote connection with an Exchange endpoint via http. - * Requires PowerShell remoting -* **ExchangeHTTPS** - Establish a remote connection with an Exchange endpoint via https. - * Requires PowerShell remoting -* **SCP** - Establish a SCP connection. - * Required Modules: [`WinSCP`](https://www.powershellgallery.com/packages/WinSCP) -# EXAMPLES - -```powershell -Connect-To -RemoteHost "ucs.myside.local" -Type CiscoUcs -Connect-To -RemoteHost "ftp.myside.local" -Type FTP -Connect-To -RemoteHost "fas.myside.local" -Type NetAppFAS -Connect-To -RemoteHost "esx01.myside.local" -Type VMware -Connect-To -RemoteHost "vcr.myside.local" -Type CisServer -``` -# NOTE - - -# TROUBLESHOOTING NOTE - - -# SEE ALSO - - -# KEYWORDS - -- Credential -- Store +# PSCredentialStore +## about_PSCredentialStore + + +# SHORT DESCRIPTION +PSCredentialStore enables managing multiple PSCredential objects. + + +# LONG DESCRIPTION +The PSCredentialStore is a simple credential manager for `PSCredential` objects. It stores PSCredentials in a simple json +file. You can choose between a private and shared credential store. The private one exists in your profile and can +ony accessed by your account on the same machine. The shared store enables you to use different credentials for your +scripts without exposing them as plain text. + +PSCredentialStore was developed to simplify the delegation of complex powershell scripts. In this case you often +need to store credentials for non interactive usage like in scheduled tasks. + +Starting with version `1.0.0` PSCredential uses Pfx certificates fo encryption. You can use Pfx certificate files +or certificates stored in the certificate store. + +For more details read the [about_PSCredentialStore](/docs/about_PSCredentialStore.md) page on gitea or via CLI with +`Get-Help about_PSCredentialStore`. + +## Requirements + +- PowerShell >= `5.1` +- .NET Framework >= `4.6` or .NET Core >= `1.0` + +## About Security + +>This section explains some security topics and the the design decisions we made to balance the usage and security needs. + +To be able to delegate `PSCredentials` objects we can't exclusively rely on the `SecureString` cmdlets. You can't +decrypt and reuse such credentials from a different user account or even machine. This is caused by automatically +generated encryption key which, is used create a `Secure String` based encrypted string. + +In order to delegate a password, while still using the underlying security framework, we have to provide a custom +encryption key. This leads to the fact, that everyone who has access to the key could encrypt or decrypt your data. + +So we decided to use the public and private keys from valid certificates as part of the custom encryption keys to encrypt your data. + +This means clearly: Everyone who has access to the `CredentialStore` needs also access to the certificate file to work with it. + +Keep in mind you need to secure the access with your NTFS file permissions to avoid unwanted usage. Another option is +to import the certificate into your certification vaults of you operating system. In this case you can grand the +permission to the certificates itself. + +Here is s brief hierarchy description of the certificate location: *(First match wins)* + +| CredentialStore Type | Certificate Location | +| -------------------- | ---------------------- | +| Private | `CurrentUser`\\`My` | +| Shared (Windows) | `CurrentUser`\\`My` | +| | `LocalMachine`\\`Root` | +| Shared (Linux) | `LocalMachine`\\`My` | +| | `LocalMachine`\\`Root` | + + +## Installation + +## PowerShellGallery.com (Recommended Way) + +* Make sure you use PowerShell 5.1 or higher with `$PSVersionTable`. +* Use the builtin PackageManagement and install with: `Install-Module PSCredentialStore` +* Done. Start exploring the Module with `Import-Module PSCredentialStore ; Get-Command -Module PSCredentialStore` + +## Manual Way + +* Take a look at the [Latest Release](https://github.com/OCram85/PSCredentialStore/releases/latest) page. +* Download the `PSCredentialStore.zip`. +* Unpack the Zip and put it in your Powershell Module path. + * Don't forget to change the NTFS permission flag in the context menu. +* Start with `Import-Module PSCredentialStore` + +**1.** First we need a blank credential store. You can decide between a *private* or *shared* store. The private +Credential Store can only be accessed with your profile on the machine you created it. + +Starting with version `1.0.0` you can decide the storage type of your fresh created certificate. As default +PSCredentialStore creates a new pfx certificate file beside the credential store itself. Optionally you can provide +the parameter `-UseCertStore`. This imports the new certificate in the user or machine certificate store as well. + +```powershell +# Private credential store +New-CredentialStore + +# Private credential store with certificate store usage +New-CredentialStore -UseCertStore + +# Shared credential store +New-CredentialStore -Shared + +#Shared credential store in custom Location +New-CredentialStore -Shared -Path 'C:\CredentialStore.json' +``` + + +**2.** Now you can manage your CredentialStoreItems: +```powershell +# This will prompt for credentials and stores it in a private store +New-CredentialStoreItem -RemoteHost 'dc01.myside.local' -Identifier 'AD' + +# You can now use it in other scripts like this: +$DCCreds = Get-CredentialStoreItem -RemoteHost 'dc01.myside.local' -Identifier 'AD' +Invoke-Command -ComputerName 'dc01.myside.local' -Credential $DCCreds -ScripBlock {Get-Process} +``` + +The CredentialStore contains also a simple function to establish a connection with several systems or protocols. +If you have already installed the underlying framework your can connect to: + +* **CiscoUcs** - Establish a connection to a Cisco UCS fabric interconnect. + * Required Modules: [`Cisco.UCS.Core`, `Cisco.UCSManager`](https://software.cisco.com/download/release.html?i=!y&mdfid=286305108&softwareid=284574017&release=2.1.1) +* **FTP** - Establish a connection to a FTP host. + * Required Modules: [`WinSCP`](https://www.powershellgallery.com/packages/WinSCP) +* **NetAppFAS** - Establish a connection to a NetApp Clustered ONTAP filer. + * Required Modules: [`DataONTAP`](http://mysupport.netapp.com/tools/info/ECMLP2310788I.html?productID=61926) +* **VMware** - Establish a connection to a VMware vCenter or ESXi host. + * Required Modules: [`VMware.VimAutomation.Core`](https://www.powershellgallery.com/packages/VMware.PowerCLI) +* **CisServer** - Establish a connection to the CisServer Service on vCenter Host. + * Required Modules: [`VMware.VimAutomation.Cis.Core`](https://www.powershellgallery.com/packages/VMware.PowerCLI)) +* **ExchangeHTTP** - Establish a remote connection with an Exchange endpoint via http. + * Requires PowerShell remoting +* **ExchangeHTTPS** - Establish a remote connection with an Exchange endpoint via https. + * Requires PowerShell remoting +* **SCP** - Establish a SCP connection. + * Required Modules: [`WinSCP`](https://www.powershellgallery.com/packages/WinSCP) +# EXAMPLES + +```powershell +Connect-To -RemoteHost "ucs.myside.local" -Type CiscoUcs +Connect-To -RemoteHost "ftp.myside.local" -Type FTP +Connect-To -RemoteHost "fas.myside.local" -Type NetAppFAS +Connect-To -RemoteHost "esx01.myside.local" -Type VMware +Connect-To -RemoteHost "vcr.myside.local" -Type CisServer +``` +# NOTE + + +# TROUBLESHOOTING NOTE + + +# SEE ALSO + + +# KEYWORDS + +- Credential +- Store diff --git a/src/PSCredentialStore.psd1 b/src/PSCredentialStore.psd1 index 6947b23..4492020 100644 --- a/src/PSCredentialStore.psd1 +++ b/src/PSCredentialStore.psd1 @@ -22,7 +22,7 @@ Copyright = '(c) 2022 OCram85. All rights reserved.' # Description of the functionality provided by this module - Description = 'A simple credential manager to store and reuse multiple credential objects.' + Description = 'A simple cross-platform credential manager for PSCredential objects.' # Minimum version of the PowerShell engine required by this module PowerShellVersion = '5.1' @@ -119,16 +119,16 @@ Tags = 'CredentialStore', 'CredentialManager' # A URL to the license for this module. - LicenseUri = 'https://github.com/OCram85/PSCredentialStore/blob/master/LICENSE' + LicenseUri = 'https://gitea.ocram85.com/OCram85/PSCredentialStore/raw/branch/master/LICENSE' # A URL to the main website for this project. - ProjectUri = 'https://github.com/OCram85/PSCredentialStore' + ProjectUri = 'https://gitea.ocram85.com/OCram85/PSCredentialStore' # A URL to an icon representing this module. - IconUri = 'https://raw.githubusercontent.com/OCram85/PSCredentialStore/master/assets/logo256.png' + IconUri = 'https://gitea.ocram85.com/OCram85/PSCredentialStore/raw/branch/master/assets/logo256.png' # ReleaseNotes of this module - ReleaseNotes = 'See https://github.com/OCram85/PSCredentialStore/releases page for details.' + ReleaseNotes = 'See https://gitea.ocram85.com/OCram85/PSCredentialStore/releases page for details.' # Prerelease string of this module #Prerelease = 'preview' @@ -144,7 +144,7 @@ } # End of PrivateData hashtable # HelpInfo URI of this module - HelpInfoURI = 'https://github.com/OCram85/PSCredentialStore' + HelpInfoURI = 'https://gitea.ocram85.com/OCram85/PSCredentialStore' # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. # DefaultCommandPrefix = ''