Compare commits

..

2 Commits

Author SHA1 Message Date
01cc073e09 update changelog
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
continuous-integration/drone/tag Build is passing
2022-07-15 12:06:40 +02:00
273c45906a add Changelog template 2022-07-15 12:05:39 +02:00
51 changed files with 2014 additions and 2147 deletions

View File

@ -1,32 +0,0 @@
# The full repository name
repo: OCram85/PSCredentialStore
# Service type (gitea or github)
service: gitea
# Base URL for Gitea instance if using gitea service type (optional)
# Default: https://gitea.com
base-url: https://gitea.ocram85.com
# Changelog groups and which labeled PRs to add to each group
groups:
- name: ✨ FEATURES
labels:
- feature
- name: 📦 META
labels:
- meta
- name: 🐛 BUGFIXES
labels:
- bug
- name: 🛠️ ENHANCEMENTS
labels:
- enhancement
- name: 📚 DOCS
labels:
- docs
- name: 🔖 MISC
default: true
# regex indicating which labels to skip for the changelog
skip-labels: skip-changelog|backport\/.+

View File

@ -120,7 +120,7 @@ steps:
Install-Module -Name 'DroneHelper' -Repository 'PSGallery' -ErrorAction 'Stop' -AllowPrerelease -Force; Install-Module -Name 'DroneHelper' -Repository 'PSGallery' -ErrorAction 'Stop' -AllowPrerelease -Force;
Import-Module -Name 'DroneHelper' -ErrorAction 'Stop'; Import-Module -Name 'DroneHelper' -ErrorAction 'Stop';
Install-ModuleDependency; Install-ModuleDependency;
New-BuildPackage -Verbose -AdditionalPath @('./src/Vendor', './src/openssl.conf') New-BuildPackage -Verbose
}" }"
- name: GiteaRelease - name: GiteaRelease

1
.gitattributes vendored
View File

@ -21,5 +21,4 @@
# Vendor resources config # Vendor resources config
src/Vendor/libressl255/* filter=lfs diff=lfs merge=lfs -text src/Vendor/libressl255/* filter=lfs diff=lfs merge=lfs -text
src/Vendor/libressl/* filter=lfs diff=lfs merge=lfs -text
*.pfx filter=lfs diff=lfs merge=lfs -text *.pfx filter=lfs diff=lfs merge=lfs -text

View File

@ -1,29 +1,9 @@
# Changelog # Changelog
<!-- insertMark --> <!-- insertMark -->
## [v1.1.1](https://gitea.ocram85.com/OCram85/PSCredentialStore/releases/tag/v1.1.1) - 2022-10-10 ## `v1.1.0-dev1`
* 📦 META - (273c459) add Changelog template
* Adds changelog config for gitea changelog cli tool (#77)
* 🐛 BUGFIXES
* Fix Set-CredentialStoreItem (#76)
* Fix optional module dependencies (#75)
### Contributors
* [@OCram85](https://gitea.ocram85.com/OCram85)
* [@pinguinfuss](https://gitea.ocram85.com/pinguinfuss)
## `v1.1.0`
- (3d4f53d) adds pinguinfuss contributed fix (#73)
- (6fce8d6) Updates libressl files (#71)
- (ddb85d9) addChangelog (#70)
- (5bdb383) updates Readme (#69)
- (a95ba31) remove optional depenency helper (#68)
- (1e7dd78) adds CiscoUCSCentral connection type (#67)
- (b76668c) fix Test-CredentialStoreItem return (#66)
- (ae62ccc) switch to GNU AGPLv3 license (#64) - (ae62ccc) switch to GNU AGPLv3 license (#64)
- (a66e824) adds community contribution for CiscoUCS connection fix (#63) - (a66e824) adds community contribution for CiscoUCS connection fix (#63)
- (3d90d91) fix lint (PSScriptAnalyzer) issues (#62) - (3d90d91) fix lint (PSScriptAnalyzer) issues (#62)
@ -36,6 +16,3 @@
- (4abfec5) adds PR template (#55) - (4abfec5) adds PR template (#55)
- (7708df9) Update pwsh style to latest community standards (#52) - (7708df9) Update pwsh style to latest community standards (#52)
## `v1.0.542`
- 🧙 pre migrated Gitea version

View File

@ -5,10 +5,7 @@
<p align="center"> <p align="center">
<a href="https://gitea.ocram85.com/OCram85/PSCredentialStore/"> <a href="https://gitea.ocram85.com/OCram85/PSCredentialStore/">
<img <img src="https://gitea.ocram85.com/OCram85/PSCredentialStore/raw/branch/master/assets/social-logo.png" alt="PSCredentialStore" />
src="https://gitea.ocram85.com/OCram85/PSCredentialStore/raw/branch/master/assets/social-logo.png"
alt="PSCredentialStore"
>
</a> </a>
</p> </p>
@ -22,10 +19,7 @@
<p align="center"> <p align="center">
<a href="https://drone.ocram85.com/OCram85/PSCredentialStore"> <a href="https://drone.ocram85.com/OCram85/PSCredentialStore">
<img <img src="https://drone.ocram85.com/api/badges/OCram85/PSCredentialStore/status.svg" alt="Master Branch Build Status">
src="https://drone.ocram85.com/api/badges/OCram85/PSCredentialStore/status.svg"
alt="Master Branch Build Status"
>
</a> </a>
<!-- CodeCove disabled for self hosting git <!-- CodeCove disabled for self hosting git
<a href="https://codecov.io/gh/OCram85/PSCredentialStore"> <a href="https://codecov.io/gh/OCram85/PSCredentialStore">
@ -33,30 +27,23 @@
</a> </a>
--> -->
<a href="https://www.powershellgallery.com/packages/PSCredentialStore"> <a href="https://www.powershellgallery.com/packages/PSCredentialStore">
<img <img src="https://img.shields.io/powershellgallery/v/PSCredentialStore.svg?style=plastic" alt="PowershellGallery Published Version">
src="https://img.shields.io/powershellgallery/v/PSCredentialStore.svg?style=plastic"
alt="PowershellGallery Published Version"
>
</a> </a>
<a href="https://www.powershellgallery.com/packages/PSCredentialStore"> <a href="https://www.powershellgallery.com/packages/PSCredentialStore">
<img <img src="https://img.shields.io/powershellgallery/vpre/PSCredentialStore.svg?label=latest%20preview&style=plastic" />
src="https://img.shields.io/powershellgallery/vpre/PSCredentialStore.svg?label=latest%20preview&style=plastic"
>
</a> </a>
<a href="https://www.powershellgallery.com/packages/PSCredentialStore"> <a href="https://www.powershellgallery.com/packages/PSCredentialStore">
<img <img src="https://img.shields.io/powershellgallery/dt/PSCredentialStore.svg?style=plastic" />
src="https://img.shields.io/powershellgallery/dt/PSCredentialStore.svg?style=plastic"
>
</a> </a>
</p> </p>
## :key: General ## :key: General
The PSCredentialStore is a simple credential manager for `PSCredential` objects. It stores PSCredentials in a simple The PSCredentialStore is a simple credential manager for `PSCredential` objects. It stores PSCredentials in a simple json
json file. You can choose between a private and shared credential store. The private one exists in your profile and file. You can choose between a private and shared credential store. The private one exists in your profile and can
can ony accessed by your account on the same machine. The shared store enables you to use different credentials for ony accessed by your account on the same machine. The shared store enables you to use different credentials for your
your scripts without exposing them as plain text. scripts without exposing them as plain text.
PSCredentialStore was developed to simplify the delegation of complex powershell scripts. In this case you often 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. need to store credentials for non interactive usage like in scheduled tasks.
@ -64,10 +51,10 @@ 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 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. 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 For more details read the [about_PSCredentialStore](/docs/about_PSCredentialStore.md) page on gitea or via CLI with
`Get-Help about_PSCredentialStore`. `Get-Help about_PSCredentialStore`.
You can find the full [reference](docs/Readme.md) in the */docs/* path as well. You can find the [reference](/docs/PSCredentialStore.md) in the /docs/ path as well.
## :vulcan_salute: Requirements ## :vulcan_salute: Requirements
@ -76,26 +63,24 @@ You can find the full [reference](docs/Readme.md) in the */docs/* path as well.
## :bomb: About Security ## :bomb: About Security
> This section explains some security topics and the design decisions we made to balance the usage and security needs. >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 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 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. 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 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. 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 So we decided to use the public and private keys from valid certificates as part of the custom encryption keys to encrypt your data.
encrypt your data.
This means clearly: Everyone who has access to the `CredentialStore` needs also access to the certificate file to This means clearly: Everyone who has access to the `CredentialStore` needs also access to the certificate file to work with it.
work with it.
Keep in mind you need to secure the access with your NTFS file permissions to avoid unwanted usage. Another option Keep in mind you need to secure the access with your NTFS file permissions to avoid unwanted usage. Another option is
is to import the certificate into your certification vaults of you operating system. In this case you can grand the to import the certificate into your certification vaults of you operating system. In this case you can grand the
permission to the certificates itself. permission to the certificates itself.
Here is a brief hierarchy description for the certificate lookup order: *(First match wins)* Here is s brief hierarchy description of the certificate location: *(First match wins)*
| CredentialStore Type | Certificate Location | | CredentialStore Type | Certificate Location |
| -------------------- | ---------------------- | | -------------------- | ---------------------- |
@ -110,9 +95,9 @@ Here is a brief hierarchy description for the certificate lookup order: *(First
### :artificial_satellite: PowerShellGallery.com (Recommended Way) ### :artificial_satellite: PowerShellGallery.com (Recommended Way)
* Make sure you use PowerShell 5.1 or higher with `$PSVersionTable`. * Make sure you use PowerShell 5.1 or higher with `$PSVersionTable`.
* Use the builtin PackageManagement + PowerShellGet module and install PSCredentialStore with: `Import-Module PowerShellGet; Install-Module 'PSCredentialStore' -Repository 'PSGallery'` * Use the builtin PackageManagement and install with: `Import-Module PowerShellGet; Install-Module 'PSCredentialStore' -Repository 'PSGallery'`
* Additionally use the `-AllowPrerelease` switch until we publish the final release! * Additionally use the `-AllowPrerelease` switch until we publish the final release!
* Done. Start exploring the Module with `Import-Module PSCredentialStore; Get-Command -Module PSCredentialStore` * Done. Start exploring the Module with `Import-Module PSCredentialStore ; Get-Command -Module PSCredentialStore`
### :building_construction: Manual Way ### :building_construction: Manual Way
@ -124,9 +109,8 @@ Here is a brief hierarchy description for the certificate lookup order: *(First
### :sparkles: Quick Start ### :sparkles: Quick Start
**1.** First we need a blank credential store. You can decide between a *private* or *shared* one. **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.
> :bulb: Note: 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 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 PSCredentialStore creates a new pfx certificate file beside the credential store itself. Optionally you can provide
@ -142,12 +126,11 @@ New-CredentialStore -UseCertStore
# Shared credential store # Shared credential store
New-CredentialStore -Shared New-CredentialStore -Shared
# Shared credential store in custom location #Shared credential store in custom location
New-CredentialStore -Shared -Path 'C:\CredentialStore.json' New-CredentialStore -Shared -Path 'C:\CredentialStore.json'
``` ```
**2.** Now you can manage your credential store items: **2.** Now you can manage your credential store items:
```powershell ```powershell
# This will prompt for credentials and stores it in a private store # This will prompt for credentials and stores it in a private store
New-CredentialStoreItem -RemoteHost 'dc01.myside.local' -Identifier 'AD' New-CredentialStoreItem -RemoteHost 'dc01.myside.local' -Identifier 'AD'
@ -158,7 +141,7 @@ Invoke-Command -ComputerName 'dc01.myside.local' -Credential $DCCreds -ScripBloc
``` ```
The credential store contains also a simple function to establish a connection with several systems or protocols. The credential store contains also a simple function to establish a connection with several systems or protocols.
If you have already installed the underlying framework / modules, you can connect to these endpoint types: If you have already installed the underlying framework / modules, you can connect these endpoints:
* **CiscoUcs** - Establish a connection to a Cisco UCS fabric interconnect. * **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) * Required Modules: [`Cisco.UCS.Core`, `Cisco.UCSManager`](https://software.cisco.com/download/release.html?i=!y&mdfid=286305108&softwareid=284574017&release=2.1.1)

View File

@ -1,7 +1,6 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version:
schema: 2.0.0 schema: 2.0.0
--- ---
@ -36,35 +35,30 @@ Connect-To -RemoteHost "ucs.myside.local" -Type CiscoUcs
### EXAMPLE 2 ### EXAMPLE 2
``` ```
Connect-To -RemoteHost "ucscentral.myside.local" -Type 'CiscoUcsCentral' Connect-To -RemoteHost "ftp.myside.local" -Type FTP
``` ```
### EXAMPLE 3 ### EXAMPLE 3
``` ```
Connect-To -RemoteHost "ftp.myside.local" -Type FTP Connect-To -RemoteHost "fas.myside.local" -Type NetAppFAS
``` ```
### EXAMPLE 4 ### EXAMPLE 4
``` ```
Connect-To -RemoteHost "fas.myside.local" -Type NetAppFAS Connect-To -RemoteHost "esx01.myside.local" -Type VMware
``` ```
### EXAMPLE 5 ### EXAMPLE 5
``` ```
Connect-To -RemoteHost "esx01.myside.local" -Type VMware Connect-To -RemoteHost "vCenter.myside.local" -Type CisServer
``` ```
### EXAMPLE 6 ### EXAMPLE 6
``` ```
Connect-To -RemoteHost "vCenter.myside.local" -Type CisServer
```
### EXAMPLE 7
```
Connect-To -RemoteHost "exchange01.myside.local" -Type ExchangeHTTP Connect-To -RemoteHost "exchange01.myside.local" -Type ExchangeHTTP
``` ```
### EXAMPLE 8 ### EXAMPLE 7
``` ```
Connect-To -RemoteHost "exchange01.myside.local" -Type ExchangeHTTPS Connect-To -RemoteHost "exchange01.myside.local" -Type ExchangeHTTPS
``` ```
@ -172,16 +166,7 @@ Accept wildcard characters: False
### -Type ### -Type
Specify the host type of the target. Specify the host type of the target.
Currently implemented targets are: Possible connection values are: Currently implemented targets are: Possible connection values are:
CiscoUcs, FTP, NetAppFAS, VMware, CisServer, ExchangeHTTP, ExchangeHTTPS, SCP.
- CiscoUcs
- CiscoUcsCentral
- CisServer
- ExchangeHTTP
- ExchangeHTTPS
- FTP
- NetAppFAS
- SCP
- VMware
```yaml ```yaml
Type: String Type: String

View File

@ -1,7 +1,6 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version:
schema: 2.0.0 schema: 2.0.0
--- ---
@ -95,17 +94,8 @@ Accept wildcard characters: False
### -Type ### -Type
Specify the host type of the target. Specify the host type of the target.
Currently implemented targets are: Currently implemented targets are: CiscoUcs, FTP, NetAppFAS, VMware,
CisServer, ExchangeHTTP, ExchangeHTTPS, SCP.
- CiscoUcs
- CiscoUcsCentral
- FTP
- NetAppFAS
- VMware
- CisServer
- ExchangeHTTP
- ExchangeHTTPS
- SCP
```yaml ```yaml
Type: String Type: String

View File

@ -1,72 +1,71 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# Get-CSCertificate
# Get-CSCertificate
## SYNOPSIS
## SYNOPSIS Returns the current used valid PfX certificate.
Returns the current used valid PfX certificate.
## SYNTAX
## SYNTAX
```
``` Get-CSCertificate [-Type] <String> [-Thumbprint] <String> [<CommonParameters>]
Get-CSCertificate [-Type] <String> [-Thumbprint] <String> [<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION Use this function to get the available pfx certificate respecting the config hierarchy.
Use this function to get the available pfx certificate respecting the config hierarchy.
## EXAMPLES
## EXAMPLES
### EXAMPLE 1
### EXAMPLE 1 ```
``` Get-CSCertificate -Type 'Shared' -Thumbprint '12334456'
Get-CSCertificate -Type 'Shared' -Thumbprint '12334456' ```
```
## PARAMETERS
## PARAMETERS
### -Thumbprint
### -Thumbprint Provide the credentials thumbprint for the search.
Provide the credentials thumbprint for the search.
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: True
Required: True Position: 2
Position: 2 Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Type
### -Type Select the current credential store type.
Select the current credential store type.
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: True
Required: True Position: 1
Position: 1 Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### CommonParameters
### CommonParameters 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).
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).
## INPUTS
## INPUTS
### [None]
### [None] ## OUTPUTS
## OUTPUTS
### [System.Security.Cryptography.X509Certificates.X509Certificate2]
### [System.Security.Cryptography.X509Certificates.X509Certificate2] ## NOTES
## NOTES
## RELATED LINKS
## RELATED LINKS

View File

@ -1,84 +1,83 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# Get-CredentialStore
# Get-CredentialStore
## SYNOPSIS
## SYNOPSIS Reads the complete content of the credential store and returns it as a new object.
Reads the complete content of the credential store and returns it as a new object.
## SYNTAX
## SYNTAX
### Private (Default)
### Private (Default) ```
``` Get-CredentialStore [<CommonParameters>]
Get-CredentialStore [<CommonParameters>] ```
```
### Shared
### Shared ```
``` Get-CredentialStore [-Path <String>] [-Shared] [<CommonParameters>]
Get-CredentialStore [-Path <String>] [-Shared] [<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION The content is in a raw format.
The content is in a raw format. It means there is no transformation to the different credential types.
It means there is no transformation to the different credential types. You can not use the object properties to connect with remote host.
You can not use the object properties to connect with remote host. Therefore please use
Therefore please use Get-CredentialStoreItem.
Get-CredentialStoreItem.
## EXAMPLES
## EXAMPLES
### EXAMPLE 1
### EXAMPLE 1 ```
``` $CSContent = Get-CredentialStore -Path "C:\TMP\mystore.json"
$CSContent = Get-CredentialStore -Path "C:\TMP\mystore.json" ```
```
## PARAMETERS
## PARAMETERS
### -Path
### -Path Define a custom path to a shared CredentialStore.
Define a custom path to a shared CredentialStore.
```yaml
```yaml Type: String
Type: String Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Shared
### -Shared Switch to shared mode with this param.
Switch to shared mode with this param. This enforces the command to work with a shared CredentialStore which
This enforces the command to work with a shared CredentialStore which can be decrypted across systems.
can be decrypted across systems.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: True
Required: True Position: Named
Position: Named Default value: False
Default value: False Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### CommonParameters
### CommonParameters 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).
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).
## INPUTS
## INPUTS
### [None]
### [None] ## OUTPUTS
## OUTPUTS
### [PSObject] Returns the credential store content as PSObject.
### [PSObject] Returns the credential store content as PSObject. ## NOTES
## NOTES
## RELATED LINKS
## RELATED LINKS

View File

@ -1,114 +1,113 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# Get-CredentialStoreItem
# Get-CredentialStoreItem
## SYNOPSIS
## SYNOPSIS Returns the Credential from a given remote host item.
Returns the Credential from a given remote host item.
## SYNTAX
## SYNTAX
### Private (Default)
### Private (Default) ```
``` Get-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [<CommonParameters>]
Get-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [<CommonParameters>] ```
```
### Shared
### Shared ```
``` Get-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [-Shared] [-Path <String>]
Get-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [-Shared] [-Path <String>] [<CommonParameters>]
[<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION Return the credential as PSCredential object.
Return the credential as PSCredential object.
## EXAMPLES
## EXAMPLES
### EXAMPLE 1
### EXAMPLE 1 ```
``` $myCreds = Get-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local"
$myCreds = Get-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local" ```
```
## PARAMETERS
## PARAMETERS
### -Identifier
### -Identifier Provide a custom identifier to the given remote host key.
Provide a custom identifier to the given remote host key. This enables you to store multiple credentials
This enables you to store multiple credentials for a single remote host entry.
for a single remote host entry. For example ad/sys1, ftp/sys1, mssql/sys1
For example ad/sys1, ftp/sys1, mssql/sys1
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Path
### -Path Define a custom path to a shared CredentialStore.
Define a custom path to a shared CredentialStore.
```yaml
```yaml Type: String
Type: String Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -RemoteHost
### -RemoteHost Specify the host, for which you would like to change the credentials.
Specify the host, for which you would like to change the credentials.
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: True
Required: True Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Shared
### -Shared Switch to shared mode with this param.
Switch to shared mode with this param. This enforces the command to work with a shared CredentialStore which
This enforces the command to work with a shared CredentialStore which can be decrypted across systems.
can be decrypted across systems.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: True
Required: True Position: Named
Position: Named Default value: False
Default value: False Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### CommonParameters
### CommonParameters 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).
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).
## INPUTS
## INPUTS
### [None]
### [None] ## OUTPUTS
## OUTPUTS
### [System.Management.Automation.PSCredential]
### [System.Management.Automation.PSCredential] ## NOTES
## NOTES
## RELATED LINKS
## RELATED LINKS

View File

@ -1,73 +1,72 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# Import-CSCertificate
# Import-CSCertificate
## SYNOPSIS
## SYNOPSIS Imports a linked certificate to the valid store location.
Imports a linked certificate to the valid store location.
## SYNTAX
## SYNTAX
```
``` Import-CSCertificate [-Type] <String> [-Path] <FileInfo> [<CommonParameters>]
Import-CSCertificate [-Type] <String> [-Path] <FileInfo> [<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION Import-CSCertificate takes a pfx certificate file and imports it to the supposed certificate store for
Import-CSCertificate takes a pfx certificate file and imports it to the supposed certificate store for private and shared credential stores.
private and shared credential stores.
## EXAMPLES
## EXAMPLES
### EXAMPLE 1
### EXAMPLE 1 ```
``` Import-CSCertificate -Type 'Private' -Path (Join-Path -Path $Env:APPDATA -ChildItem 'PfxCertificate.pfx')
Import-CSCertificate -Type 'Private' -Path (Join-Path -Path $Env:APPDATA -ChildItem 'PfxCertificate.pfx') ```
```
## PARAMETERS
## PARAMETERS
### -Path
### -Path Provide a valid path to pfx certificate file.
Provide a valid path to pfx certificate file.
```yaml
```yaml Type: FileInfo
Type: FileInfo Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: True
Required: True Position: 2
Position: 2 Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Type
### -Type Select between the a private and shared credential store.
Select between the a private and shared credential store.
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: True
Required: True Position: 1
Position: 1 Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### CommonParameters
### CommonParameters 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).
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).
## INPUTS
## INPUTS
### [None]
### [None] ## OUTPUTS
## OUTPUTS
### [None]
### [None] ## NOTES
## NOTES
## RELATED LINKS
## RELATED LINKS

View File

@ -1,156 +1,147 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# New-CSCertAttribute
# New-CSCertAttribute
## SYNOPSIS
## SYNOPSIS Creates required data for a certificate signing request.
Creates required data for a certificate signing request.
## SYNTAX
## SYNTAX
```
``` New-CSCertAttribute [-Country] <String> [-State] <String> [-City] <String> [-Organization] <String>
New-CSCertAttribute [-Country] <String> [-State] <String> [-City] <String> [-Organization] <String> [-OrganizationalUnitName] <String> [-CommonName] <String> [[-Days] <Int32>] [<CommonParameters>]
[-OrganizationalUnitName] <String> [-CommonName] <String> [[-Days] <Int32>] [<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION Defines the certificate related properties for an upcoming New-PfxCertificate execution.
Defines the certificate related properties for an upcoming New-PfxCertificate execution.
## EXAMPLES
## EXAMPLES
### EXAMPLE 1
### EXAMPLE 1 ```
``` New-CSCertAttribute -Country 'DE' -State 'BW' -City 'Karlsruhe' -Organization 'AwesomeIT' -OrganizationalUnitName '' -CommonName 'MyPrivateCert'
$AttribParams = @{ ```
Country = 'DE'
State = 'BW' ## PARAMETERS
City = 'Karlsruhe'
Organization ='AwesomeIT' ### -City
OrganizationalUnitName ='PSCredentialStore' Certificate city value.
CommonName ='MyPrivateCert'
} ```yaml
New-CSCertAttribute @AttribParams Type: String
``` Parameter Sets: (All)
Aliases:
## PARAMETERS
Required: True
### -City Position: 3
Certificate city value. Default value: None
Accept pipeline input: False
```yaml Accept wildcard characters: False
Type: String ```
Parameter Sets: (All)
Aliases: ### -CommonName
The certificate common name.
Required: True
Position: 3 ```yaml
Default value: None Type: String
Accept pipeline input: False Parameter Sets: (All)
Accept wildcard characters: False Aliases:
```
Required: True
### -CommonName Position: 6
The certificate common name. Default value: None
Accept pipeline input: False
```yaml Accept wildcard characters: False
Type: String ```
Parameter Sets: (All)
Aliases: ### -Country
County code like EN, DE, IT, FR...
Required: True
Position: 6 ```yaml
Default value: None Type: String
Accept pipeline input: False Parameter Sets: (All)
Accept wildcard characters: False Aliases:
```
Required: True
### -Country Position: 1
County code like EN, DE, IT, FR... Default value: None
Accept pipeline input: False
```yaml Accept wildcard characters: False
Type: String ```
Parameter Sets: (All)
Aliases: ### -Days
The validation time itself.
Required: True
Position: 1 ```yaml
Default value: None Type: Int32
Accept pipeline input: False Parameter Sets: (All)
Accept wildcard characters: False Aliases:
```
Required: False
### -Days Position: 7
The validation time itself. Default value: 365
Accept pipeline input: False
```yaml Accept wildcard characters: False
Type: Int32 ```
Parameter Sets: (All)
Aliases: ### -Organization
Certificate organization value.
Required: False
Position: 7 ```yaml
Default value: 365 Type: String
Accept pipeline input: False Parameter Sets: (All)
Accept wildcard characters: False Aliases:
```
Required: True
### -Organization Position: 4
Certificate organization value. Default value: None
Accept pipeline input: False
```yaml Accept wildcard characters: False
Type: String ```
Parameter Sets: (All)
Aliases: ### -OrganizationalUnitName
Certificate OrganizationalUnitName value.
Required: True
Position: 4 ```yaml
Default value: None Type: String
Accept pipeline input: False Parameter Sets: (All)
Accept wildcard characters: False Aliases:
```
Required: True
### -OrganizationalUnitName Position: 5
Certificate OrganizationalUnitName value. Default value: None
Accept pipeline input: False
```yaml Accept wildcard characters: False
Type: String ```
Parameter Sets: (All)
Aliases: ### -State
Certificate state value.
Required: True
Position: 5 ```yaml
Default value: None Type: String
Accept pipeline input: False Parameter Sets: (All)
Accept wildcard characters: False Aliases:
```
Required: True
### -State Position: 2
Certificate state value. Default value: None
Accept pipeline input: False
```yaml Accept wildcard characters: False
Type: String ```
Parameter Sets: (All)
Aliases: ### CommonParameters
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).
Required: True
Position: 2 ## INPUTS
Default value: None
Accept pipeline input: False ### [None]
Accept wildcard characters: False ## OUTPUTS
```
### [PSCredentialStore.Certificate.CSRDetails]
### CommonParameters ## NOTES
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).
## RELATED LINKS
## INPUTS
### [None]
## OUTPUTS
### [PSCredentialStore.Certificate.CSRDetails]
## NOTES
## RELATED LINKS

View File

@ -1,121 +1,120 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# New-CSCertificate
# New-CSCertificate
## SYNOPSIS
## SYNOPSIS Creates a new PFX certificate for the CredentialStore encryption.
Creates a new PFX certificate for the CredentialStore encryption.
## SYNTAX
## SYNTAX
```
``` New-CSCertificate [-CRTAttribute] <Object> [[-KeyName] <String>] [[-CertName] <String>] [-WhatIf] [-Confirm]
New-CSCertificate [-CRTAttribute] <Object> [[-KeyName] <String>] [[-CertName] <String>] [-WhatIf] [-Confirm] [<CommonParameters>]
[<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION Use this function to create a custom self signed certificate used by the PSCredentialStore module.
Use this function to create a custom self signed certificate used by the PSCredentialStore module.
## EXAMPLES
## EXAMPLES
### EXAMPLE 1
### EXAMPLE 1 ```
``` New-CSCertificate -CRTAttribute $CRTAttribute -KeyName './myprivate.key' -CertName './mycert.pfx'
New-CSCertificate -CRTAttribute $CRTAttribute -KeyName './myprivate.key' -CertName './mycert.pfx' ```
```
## PARAMETERS
## PARAMETERS
### -CertName
### -CertName Provide a custom full path and name for the PFX certificate file.
Provide a custom full path and name for the PFX certificate file. The file extension has to be \`*.pfx\`
The file extension has to be \`*.pfx\`
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: False
Required: False Position: 3
Position: 3 Default value: ./certificate.pfx
Default value: ./certificate.pfx Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -CRTAttribute
### -CRTAttribute Provide certificate related attributes provided by function New-CRTAttribute.
Provide certificate related attributes provided by function New-CRTAttribute.
```yaml
```yaml Type: Object
Type: Object Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: True
Required: True Position: 1
Position: 1 Default value: None
Default value: None Accept pipeline input: True (ByValue)
Accept pipeline input: True (ByValue) Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -KeyName
### -KeyName Provide a custom full path and name for the private key.
Provide a custom full path and name for the private key. The file extension has to be \`*.key\`.
The file extension has to be \`*.key\`.
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: False
Required: False Position: 2
Position: 2 Default value: ./private.key
Default value: ./private.key Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Confirm
### -Confirm Prompts you for confirmation before running the cmdlet.
Prompts you for confirmation before running the cmdlet.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: (All)
Parameter Sets: (All) Aliases: cf
Aliases: cf
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -WhatIf
### -WhatIf Shows what would happen if the cmdlet runs.
Shows what would happen if the cmdlet runs. The cmdlet is not run.
The cmdlet is not run.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: (All)
Parameter Sets: (All) Aliases: wi
Aliases: wi
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### CommonParameters
### CommonParameters 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).
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).
## INPUTS
## INPUTS
### [PSCredentialStore.Certificate.Attribute]
### [PSCredentialStore.Certificate.Attribute] ## OUTPUTS
## OUTPUTS
### [None]
### [None] ## NOTES
## NOTES
## RELATED LINKS
## RELATED LINKS

View File

@ -1,203 +1,202 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# New-CredentialStore
# New-CredentialStore
## SYNOPSIS
## SYNOPSIS Creates a new credential store File
Creates a new credential store File
## SYNTAX
## SYNTAX
### Private (Default)
### Private (Default) ```
``` New-CredentialStore [-Force] [-PassThru] [-SkipPFXCertCreation] [-UseCertStore] [-WhatIf] [-Confirm]
New-CredentialStore [-Force] [-PassThru] [-SkipPFXCertCreation] [-UseCertStore] [-WhatIf] [-Confirm] [<CommonParameters>]
[<CommonParameters>] ```
```
### Shared
### Shared ```
``` New-CredentialStore [-Shared] [-Path <FileInfo>] [-Force] [-PassThru] [-SkipPFXCertCreation] [-UseCertStore]
New-CredentialStore [-Shared] [-Path <FileInfo>] [-Force] [-PassThru] [-SkipPFXCertCreation] [-UseCertStore] [-WhatIf] [-Confirm] [<CommonParameters>]
[-WhatIf] [-Confirm] [<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION You need to run this script first to create a new credential store before you try to
You need to run this script first to create a new credential store before you try to save new credentials with New-CredentialStoreItem.
save new credentials with New-CredentialStoreItem.
## EXAMPLES
## EXAMPLES
### EXAMPLE 1
### EXAMPLE 1 ```
``` New-CredentialStore
New-CredentialStore # Creates a new private CredentialStore
# Creates a new private CredentialStore ```
```
### EXAMPLE 2
### EXAMPLE 2 ```
``` New-CredentialStore -Force
New-CredentialStore -Force # Resets an existing private CredentialStore
# Resets an existing private CredentialStore ```
```
### EXAMPLE 3
### EXAMPLE 3 ```
``` New-CredentialStore -Shared
New-CredentialStore -Shared # Creates a new shared CredentialStore
# Creates a new shared CredentialStore ```
```
### EXAMPLE 4
### EXAMPLE 4 ```
``` New-CredentialStore -Shared -Path "C:\TMP\CredentialStore.json"
New-CredentialStore -Shared -Path "C:\TMP\CredentialStore.json" # Creates a new shared CredentialStore in the given location.
# Creates a new shared CredentialStore in the given location. ```
```
## PARAMETERS
## PARAMETERS
### -Force
### -Force Use this switch to reset an existing store.
Use this switch to reset an existing store. The complete content will be wiped.
The complete content will be wiped.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: False
Default value: False Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -PassThru
### -PassThru {{ Fill PassThru Description }}
{{ Fill PassThru Description }}
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: False
Default value: False Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Path
### -Path Define a location for the new shared CredentialStore.
Define a location for the new shared CredentialStore. The default store will be created in
The default store will be created in $Env:ProgramData\PSCredentialStore dir.
$Env:ProgramData\PSCredentialStore dir.
```yaml
```yaml Type: FileInfo
Type: FileInfo Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Shared
### -Shared Creates a CredentialStore in the Shared mode.
Creates a CredentialStore in the Shared mode. This enables you to read the CredentialStore Items on
This enables you to read the CredentialStore Items on different systems or profiles.
different systems or profiles. In addition you can optionally provide a custom path wit the -Path parameter.
In addition you can optionally provide a custom path wit the -Path parameter.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: True
Required: True Position: Named
Position: Named Default value: False
Default value: False Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -SkipPFXCertCreation
### -SkipPFXCertCreation You can skip the pfx certificate creation process.
You can skip the pfx certificate creation process. This makes sense if you have a previously created cert or want to
This makes sense if you have a previously created cert import a cert in cross-platform environments.
or want to import a cert in cross-platform environments.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: False
Default value: False Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -UseCertStore
### -UseCertStore Instead of using a plain pfx file beside your CredentialStore file you can import it into the user or machine
Instead of using a plain pfx file beside your CredentialStore file you can import it into the user or certificate store.
machine certificate store. In this case the system itself secures the cert and you don't hat to set custom NTFS
In this case the system itself secures the cert and you don't hat to set custom permissions so secure your shared certificate.
NTFS permissions so secure your shared certificate.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: False
Default value: False Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Confirm
### -Confirm Prompts you for confirmation before running the cmdlet.
Prompts you for confirmation before running the cmdlet.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: (All)
Parameter Sets: (All) Aliases: cf
Aliases: cf
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -WhatIf
### -WhatIf Shows what would happen if the cmdlet runs.
Shows what would happen if the cmdlet runs. The cmdlet is not run.
The cmdlet is not run.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: (All)
Parameter Sets: (All) Aliases: wi
Aliases: wi
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### CommonParameters
### CommonParameters 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).
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).
## INPUTS
## INPUTS
### [None]
### [None] ## OUTPUTS
## OUTPUTS
### ['PSCredentialStore.Store'] Returns the recently created CredentialStore object if the -PassThru parameter
### ['PSCredentialStore.Store'] Returns the recently created CredentialStore object if the -PassThru parameter ### was given.
### was given. ## NOTES
## NOTES
## RELATED LINKS
## RELATED LINKS

View File

@ -1,134 +1,133 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# New-CredentialStoreItem
# New-CredentialStoreItem
## SYNOPSIS
## SYNOPSIS Adds a credential store item containing host, user and password to the given store.
Adds a credential store item containing host, user and password to the given store.
## SYNTAX
## SYNTAX
### Private (Default)
### Private (Default) ```
``` New-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [-Credential <PSCredential>]
New-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [-Credential <PSCredential>] [<CommonParameters>]
[<CommonParameters>] ```
```
### Shared
### Shared ```
``` New-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [-Credential <PSCredential>] [-Shared]
New-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [-Credential <PSCredential>] [-Shared] [-Path <String>] [<CommonParameters>]
[-Path <String>] [<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION The credentials are stored without any relations to it's further use.
The credentials are stored without any relations to it's further use. If you need to change an existing
If you need to change an existing item please use Set-CredentialStoreItem.
item please use Set-CredentialStoreItem. You need to decide afterwards, whether to use the credential for
You need to decide afterwards, whether to use the credential for a VIConnection, NetApp FAS or UCS Fabric Interconnect.
a VIConnection, NetApp FAS or UCS Fabric Interconnect.
## EXAMPLES
## EXAMPLES
### EXAMPLE 1
### EXAMPLE 1 ```
``` New-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local"
New-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local" ```
```
## PARAMETERS
## PARAMETERS
### -Credential
### -Credential You can provide credentials optionally as pre existing pscredential object.
You can provide credentials optionally as pre existing pscredential object.
```yaml
```yaml Type: PSCredential
Type: PSCredential Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: True (ByValue)
Accept pipeline input: True (ByValue) Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Identifier
### -Identifier Provide a custom identifier to the given remote host key.
Provide a custom identifier to the given remote host key. This enables you to store multiple credentials
This enables you to store multiple credentials for a single remote host entry.
for a single remote host entry. For example ad/sys1, ftp/sys1, mssql/sys1
For example ad/sys1, ftp/sys1, mssql/sys1
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Path
### -Path Define the store in which you would like to add a new item.
Define the store in which you would like to add a new item.
```yaml
```yaml Type: String
Type: String Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -RemoteHost
### -RemoteHost The identifier or rather name for the given credentials.
The identifier or rather name for the given credentials.
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: True
Required: True Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Shared
### -Shared Define the CredentialStore where you want to add the new item.
Define the CredentialStore where you want to add the new item. Default is always personal but can be
Default is always personal but can be changed to shared, or even shared with custom path.
changed to shared, or even shared with custom path.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: True
Required: True Position: Named
Position: Named Default value: False
Default value: False Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### CommonParameters
### CommonParameters 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).
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).
## INPUTS
## INPUTS
### [None]
### [None] ## OUTPUTS
## OUTPUTS
### [None]
### [None] ## NOTES
## NOTES
## RELATED LINKS
## RELATED LINKS

View File

@ -1,64 +1,64 @@
--- ---
Module Name: PSCredentialStore Module Name: PSCredentialStore
Module Guid: 6800e192-9df8-4e30-b253-eb2c799bbe84 Module Guid: 6800e192-9df8-4e30-b253-eb2c799bbe84 6800e192-9df8-4e30-b253-eb2c799bbe84
Download Help Link: {{ Update Download Link }} Download Help Link: {{ Update Download Link }}
Help Version: {{ Please enter version of help manually (X.X.X.X) format }} Help Version: {{ Please enter version of help manually (X.X.X.X) format }}
Locale: en-US Locale: en-US
--- ---
# PSCredentialStore Module # PSCredentialStore Module
## Description ## Description
See global Readme file for usage instructions. {{ Fill in the Description }}
## PSCredentialStore Cmdlets ## PSCredentialStore Cmdlets
### [Connect-To](Connect-To.md) ### [Connect-To](Connect-To.md)
Connects to the given host using the stored CredentialStoreItem. Connects to the given host using the stored CredentialStoreItem.
### [Disconnect-From](Disconnect-From.md) ### [Disconnect-From](Disconnect-From.md)
Terminates a session established with Connect-To using a CredentialStoreItem. Terminates a session established with Connect-To using a CredentialStoreItem.
### [Get-CredentialStore](Get-CredentialStore.md) ### [Get-CredentialStore](Get-CredentialStore.md)
Reads the complete content of the credential store and returns it as a new object. Reads the complete content of the credential store and returns it as a new object.
### [Get-CredentialStoreItem](Get-CredentialStoreItem.md) ### [Get-CredentialStoreItem](Get-CredentialStoreItem.md)
Returns the Credential from a given remote host item. Returns the Credential from a given remote host item.
### [Get-CSCertificate](Get-CSCertificate.md) ### [Get-CSCertificate](Get-CSCertificate.md)
Returns the current used valid PfX certificate. Returns the current used valid PfX certificate.
### [Import-CSCertificate](Import-CSCertificate.md) ### [Import-CSCertificate](Import-CSCertificate.md)
Imports a linked certificate to the valid store location. Imports a linked certificate to the valid store location.
### [New-CredentialStore](New-CredentialStore.md) ### [New-CredentialStore](New-CredentialStore.md)
Creates a new credential store File Creates a new credential store File
### [New-CredentialStoreItem](New-CredentialStoreItem.md) ### [New-CredentialStoreItem](New-CredentialStoreItem.md)
Adds a credential store item containing host, user and password to the given store. Adds a credential store item containing host, user and password to the given store.
### [New-CSCertAttribute](New-CSCertAttribute.md) ### [New-CSCertAttribute](New-CSCertAttribute.md)
Creates required data for a certificate signing request. Creates required data for a certificate signing request.
### [New-CSCertificate](New-CSCertificate.md) ### [New-CSCertificate](New-CSCertificate.md)
Creates a new PFX certificate for the CredentialStore encryption. Creates a new PFX certificate for the CredentialStore encryption.
### [Remove-CredentialStoreItem](Remove-CredentialStoreItem.md) ### [Remove-CredentialStoreItem](Remove-CredentialStoreItem.md)
Remove the given credentials from the credential store. Remove the given credentials from the credential store.
### [Set-CredentialStoreItem](Set-CredentialStoreItem.md) ### [Set-CredentialStoreItem](Set-CredentialStoreItem.md)
Changes the credentials for the given remote host in the store. Changes the credentials for the given remote host in the store.
### [Test-CredentialStore](Test-CredentialStore.md) ### [Test-CredentialStore](Test-CredentialStore.md)
Returns the credential store state. Returns the credential store state.
### [Test-CredentialStoreItem](Test-CredentialStoreItem.md) ### [Test-CredentialStoreItem](Test-CredentialStoreItem.md)
Checks if the given RemoteHost identifier combination exists in the credential store. Checks if the given RemoteHost identifier combination exists in the credential store.
### [Test-CSCertificate](Test-CSCertificate.md) ### [Test-CSCertificate](Test-CSCertificate.md)
Tests if the linked certificate is store ein the specified cert stores. Tests if the linked certificate is store ein the specified cert stores.
### [Test-CSConnection](Test-CSConnection.md) ### [Test-CSConnection](Test-CSConnection.md)
Returns the connection state of a given type to the remote host. Returns the connection state of a given type to the remote host.
### [Use-CSCertificate](Use-CSCertificate.md) ### [Use-CSCertificate](Use-CSCertificate.md)
Links an existing PFX Certificate to a CredentialStore. Links an existing PFX Certificate to a CredentialStore.

View File

@ -1,128 +1,127 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# Remove-CredentialStoreItem
# Remove-CredentialStoreItem
## SYNOPSIS
## SYNOPSIS Remove the given credentials from the credential store.
Remove the given credentials from the credential store.
## SYNTAX
## SYNTAX
### Private (Default)
### Private (Default) ```
``` Remove-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [<CommonParameters>]
Remove-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [<CommonParameters>] ```
```
### Shared
### Shared ```
``` Remove-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [-Shared] [-Path <String>]
Remove-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [-Shared] [-Path <String>] [<CommonParameters>]
[<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION Use this CMDLet to completely remove an credential store item.
Use this CMDLet to completely remove an credential store item.
## EXAMPLES
## EXAMPLES
### EXAMPLE 1
### EXAMPLE 1 ```
``` Remove-CredentialStoreItem -RemoteHost "esx01.myside.local"
Remove-CredentialStoreItem -RemoteHost "esx01.myside.local" ```
```
### EXAMPLE 2
### EXAMPLE 2 ```
``` Remove-CredentialStoreItem -Shared -RemoteHost "esx01.myside.local"
Remove-CredentialStoreItem -Shared -RemoteHost "esx01.myside.local" ```
```
### EXAMPLE 3
### EXAMPLE 3 ```
``` Remove-CredentialStoreItem -Shared -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local"
Remove-CredentialStoreItem -Shared -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local" ```
```
### EXAMPLE 4
### EXAMPLE 4 ```
``` Remove-CredentialStoreItem -RemoteHost "esx01.myside.local" -Identifier svc
Remove-CredentialStoreItem -RemoteHost "esx01.myside.local" -Identifier svc ```
```
## PARAMETERS
## PARAMETERS
### -Identifier
### -Identifier Defaults to "".
Defaults to "". Specify a string, which separates two CredentialStoreItems for the
Specify a string, which separates two CredentialStoreItems for the same hostname.
same hostname.
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Path
### -Path Define the store in which your given host entry already exists.
Define the store in which your given host entry already exists.
```yaml
```yaml Type: String
Type: String Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -RemoteHost
### -RemoteHost Specify the host you for which you would like to change the credentials.
Specify the host you for which you would like to change the credentials.
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: True
Required: True Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Shared
### -Shared Switch to shared mode with this param.
Switch to shared mode with this param. This enforces the command to work with a shared CredentialStore which
This enforces the command to work with a shared CredentialStore which can be decrypted across systems.
can be decrypted across systems.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: True
Required: True Position: Named
Position: Named Default value: False
Default value: False Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### CommonParameters
### CommonParameters 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).
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).
## INPUTS
## INPUTS
### [None]
### [None] ## OUTPUTS
## OUTPUTS
### [None]
### [None] ## NOTES
## NOTES
## RELATED LINKS
## RELATED LINKS

View File

@ -1,134 +1,133 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# Set-CredentialStoreItem
# Set-CredentialStoreItem
## SYNOPSIS
## SYNOPSIS Changes the credentials for the given remote host in the store.
Changes the credentials for the given remote host in the store.
## SYNTAX
## SYNTAX
### Private (Default)
### Private (Default) ```
``` Set-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [-Credential <PSCredential>]
Set-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [-Credential <PSCredential>] [<CommonParameters>]
[<CommonParameters>] ```
```
### Shared
### Shared ```
``` Set-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [-Credential <PSCredential>] [-Shared]
Set-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [-Credential <PSCredential>] [-Shared] [-Path <String>] [<CommonParameters>]
[-Path <String>] [<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION Use this function to update your already stored RemoteHost items.
Use this function to update your already stored RemoteHost items.
## EXAMPLES
## EXAMPLES
### EXAMPLE 1
### EXAMPLE 1 ```
``` Set-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local"
Set-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local" ```
```
### EXAMPLE 2
### EXAMPLE 2 ```
``` Set-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local" -Identifier svc
Set-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local" -Identifier svc ```
```
## PARAMETERS
## PARAMETERS
### -Credential
### -Credential Provided the new credentials you want to update inside the RemoteHost item.
Provided the new credentials you want to update inside the RemoteHost item.
```yaml
```yaml Type: PSCredential
Type: PSCredential Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: True (ByValue)
Accept pipeline input: True (ByValue) Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Identifier
### -Identifier Defaults to "".
Defaults to "". Specify a string, which separates two CredentialStoreItems for the
Specify a string, which separates two CredentialStoreItems for the same hostname.
same hostname.
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Path
### -Path Define the store in which your given host entry already exists.
Define the store in which your given host entry already exists.
```yaml
```yaml Type: String
Type: String Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -RemoteHost
### -RemoteHost Specify the host you for which you would like to change the credentials.
Specify the host you for which you would like to change the credentials.
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: True
Required: True Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Shared
### -Shared Switch to shared mode with this param.
Switch to shared mode with this param. This enforces the command to work with a shared CredentialStore which
This enforces the command to work with a shared CredentialStore which can be decrypted across systems.
can be decrypted across systems.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: True
Required: True Position: Named
Position: Named Default value: False
Default value: False Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### CommonParameters
### CommonParameters 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).
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).
## INPUTS
## INPUTS
### [None]
### [None] ## OUTPUTS
## OUTPUTS
### [None]
### [None] ## NOTES
## NOTES
## RELATED LINKS
## RELATED LINKS

View File

@ -1,57 +1,56 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# Test-CSCertificate
# Test-CSCertificate
## SYNOPSIS
## SYNOPSIS Tests if the linked certificate is store ein the specified cert stores.
Tests if the linked certificate is store ein the specified cert stores.
## SYNTAX
## SYNTAX
```
``` Test-CSCertificate [-Type] <String> [<CommonParameters>]
Test-CSCertificate [-Type] <String> [<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION Test-CSCertificate should be an easy high level test for the linked certificate.
Test-CSCertificate should be an easy high level test for the linked certificate.
## EXAMPLES
## EXAMPLES
### EXAMPLE 1
### EXAMPLE 1 ```
``` Test-CSCertificate -Type 'Shared'
Test-CSCertificate -Type 'Shared' ```
```
## PARAMETERS
## PARAMETERS
### -Type
### -Type Select between 'Private' or 'Shared'.
Select between 'Private' or 'Shared'.
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: True
Required: True Position: 1
Position: 1 Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### CommonParameters
### CommonParameters 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).
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).
## INPUTS
## INPUTS
### [None]
### [None] ## OUTPUTS
## OUTPUTS
### [bool]
### [bool] ## NOTES
## NOTES
## RELATED LINKS
## RELATED LINKS

View File

@ -1,74 +1,73 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# Test-CSConnection
# Test-CSConnection
## SYNOPSIS
## SYNOPSIS Returns the connection state of a given type to the remote host.
Returns the connection state of a given type to the remote host.
## SYNTAX
## SYNTAX
```
``` Test-CSConnection [-RemoteHost] <String> [-Type] <String> [<CommonParameters>]
Test-CSConnection [-RemoteHost] <String> [-Type] <String> [<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION Use this script to check a connection which was established with the \`Connect-To\` cmdlet.
Use this script to check a connection which was established with the \`Connect-To\` cmdlet.
## EXAMPLES
## EXAMPLES
### EXAMPLE 1
### EXAMPLE 1 ```
``` Test-CMConnection -RemoteHost "vcr01.internal.net" -Type VMware
Test-CMConnection -RemoteHost "vcr01.internal.net" -Type VMware ```
```
## PARAMETERS
## PARAMETERS
### -RemoteHost
### -RemoteHost Define the remote host you would like to check.
Define the remote host you would like to check.
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: True
Required: True Position: 1
Position: 1 Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Type
### -Type Define the connection type you would like to check.
Define the connection type you would like to check. See the \`Connect-To\` documentation
See the \`Connect-To\` documentation for valid type values.
for valid type values.
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: True
Required: True Position: 2
Position: 2 Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### CommonParameters
### CommonParameters 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).
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).
## INPUTS
## INPUTS
### [None]
### [None] ## OUTPUTS
## OUTPUTS
### [bool]
### [bool] ## NOTES
## NOTES
## RELATED LINKS
## RELATED LINKS

View File

@ -1,81 +1,80 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# Test-CredentialStore
# Test-CredentialStore
## SYNOPSIS
## SYNOPSIS Returns the credential store state.
Returns the credential store state.
## SYNTAX
## SYNTAX
### Private (Default)
### Private (Default) ```
``` Test-CredentialStore [<CommonParameters>]
Test-CredentialStore [<CommonParameters>] ```
```
### Shared
### Shared ```
``` Test-CredentialStore [-Path <String>] [-Shared] [<CommonParameters>]
Test-CredentialStore [-Path <String>] [-Shared] [<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION Use this script to test your credential store.
Use this script to test your credential store. For now it only checks if
For now it only checks if the file exists.
the file exists.
## EXAMPLES
## EXAMPLES
### EXAMPLE 1
### EXAMPLE 1 ```
``` Test-CredentialStore -eq $true
Test-CredentialStore -eq $true ```
```
## PARAMETERS
## PARAMETERS
### -Path
### -Path Define a custom path to a shared CredentialStore.
Define a custom path to a shared CredentialStore.
```yaml
```yaml Type: String
Type: String Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Shared
### -Shared Switch to shared mode with this param.
Switch to shared mode with this param. This enforces the command to work with a shared CredentialStore which
This enforces the command to work with a shared CredentialStore which can be decrypted across systems.
can be decrypted across systems.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: True
Required: True Position: Named
Position: Named Default value: False
Default value: False Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### CommonParameters
### CommonParameters 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).
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).
## INPUTS
## INPUTS
## OUTPUTS
## OUTPUTS
### System.Boolean
### System.Boolean ## NOTES
## NOTES
## RELATED LINKS
## RELATED LINKS

View File

@ -1,127 +1,121 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# Test-CredentialStoreItem
# Test-CredentialStoreItem
## SYNOPSIS
## SYNOPSIS Checks if the given RemoteHost identifier combination exists in the credential store.
Checks if the given RemoteHost identifier combination exists in the credential store.
## SYNTAX
## SYNTAX
### Private (Default)
### Private (Default) ```
``` Test-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [<CommonParameters>]
Test-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [<CommonParameters>] ```
```
### Shared
### Shared ```
``` Test-CredentialStoreItem [-Path <String>] -RemoteHost <String> [-Identifier <String>] [-Shared]
Test-CredentialStoreItem [-Path <String>] -RemoteHost <String> [-Identifier <String>] [-Shared] [<CommonParameters>]
[<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION Use this cmdlet for basic checks with a single item.
Use this cmdlet for basic checks with a single item. Check the item first with this function before
Check the item first with this function before you try to interact with it.
you try to interact with it.
## EXAMPLES
Breaking Change for \`v1.1.0+\`:
Test-CredentialStoreItem will return \`$false\` even if the store doesn't exist. ### EXAMPLE 1
We removed the terminating ```
error and replaced it with a warning message. if (Test-CredentialStoreItem -RemoteHost "Default") {
Get-CredentialStoreItem -RemoteHost "Default"
## EXAMPLES }
else {
### EXAMPLE 1 Write-Warning ("The given Remote Host {0} does not exist in the credential Store!" -f $RemoteHost)
``` }
if (Test-CredentialStoreItem -RemoteHost "Default") { ```
Get-CredentialStoreItem -RemoteHost "Default"
} ## PARAMETERS
else {
Write-Warning ("The given Remote Host {0} does not exist in the credential Store!" -f $RemoteHost) ### -Identifier
} Adds an optional identifier to the given RemoteHost.
``` Makes it possible to store multiple credentials
for a single host.
## PARAMETERS
```yaml
### -Identifier Type: String
Adds an optional identifier to the given RemoteHost. Parameter Sets: (All)
Makes it possible to store multiple credentials Aliases:
for a single host.
Required: False
```yaml Position: Named
Type: String Default value: None
Parameter Sets: (All) Accept pipeline input: False
Aliases: Accept wildcard characters: False
```
Required: False
Position: Named ### -Path
Default value: None Define a custom credential store you try to read from.
Accept pipeline input: False Without the \`-Path\` parameter
Accept wildcard characters: False \`Test-CredentialStoreItem\` tries to read from the default private store.
```
```yaml
### -Path Type: String
Define a custom credential store you try to read from. Parameter Sets: Shared
Without the \`-Path\` parameter Aliases:
\`Test-CredentialStoreItem\` tries to read from the default private store.
Required: False
```yaml Position: Named
Type: String Default value: "{0}\PSCredentialStore\CredentialStore.json" -f $env:ProgramData
Parameter Sets: Shared Accept pipeline input: False
Aliases: Accept wildcard characters: False
```
Required: False
Position: Named ### -RemoteHost
Default value: "{0}\PSCredentialStore\CredentialStore.json" -f $env:ProgramData Specify the host, for which you would like to change the credentials.
Accept pipeline input: False
Accept wildcard characters: False ```yaml
``` Type: String
Parameter Sets: (All)
### -RemoteHost Aliases:
Specify the host, for which you would like to change the credentials.
Required: True
```yaml Position: Named
Type: String Default value: None
Parameter Sets: (All) Accept pipeline input: False
Aliases: Accept wildcard characters: False
```
Required: True
Position: Named ### -Shared
Default value: None Switch to shared mode with this param.
Accept pipeline input: False This enforces the command to work with a shared CredentialStore which
Accept wildcard characters: False can be decrypted across systems.
```
```yaml
### -Shared Type: SwitchParameter
Switch to shared mode with this param. Parameter Sets: Shared
This enforces the command to work with a shared CredentialStore which Aliases:
can be decrypted across systems.
Required: False
```yaml Position: Named
Type: SwitchParameter Default value: False
Parameter Sets: Shared Accept pipeline input: False
Aliases: Accept wildcard characters: False
```
Required: False
Position: Named ### CommonParameters
Default value: False 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).
Accept pipeline input: False
Accept wildcard characters: False ## INPUTS
```
### [None]
### CommonParameters ## OUTPUTS
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).
### [None]
## INPUTS ## NOTES
### [None] ## RELATED LINKS
## OUTPUTS
### [None]
## NOTES
## RELATED LINKS

View File

@ -1,108 +1,107 @@
--- ---
external help file: ModuleRoot-help.xml external help file: PSCredentialStore-help.xml
Module Name: PSCredentialStore Module Name: PSCredentialStore
online version: schema: 2.0.0
schema: 2.0.0 ---
---
# Use-CSCertificate
# Use-CSCertificate
## SYNOPSIS
## SYNOPSIS Links an existing PFX Certificate to a CredentialStore.
Links an existing PFX Certificate to a CredentialStore.
## SYNTAX
## SYNTAX
### Private (Default)
### Private (Default) ```
``` Use-CSCertificate -Path <String> [-UseCertStore] [<CommonParameters>]
Use-CSCertificate -Path <String> [-UseCertStore] [<CommonParameters>] ```
```
### Shared
### Shared ```
``` Use-CSCertificate -Path <String> [-CredentialStore <String>] [-Shared] [-UseCertStore] [<CommonParameters>]
Use-CSCertificate -Path <String> [-CredentialStore <String>] [-Shared] [-UseCertStore] [<CommonParameters>] ```
```
## DESCRIPTION
## DESCRIPTION Linking a certificate is needed if you plan to use the same CredentialStore in cross platform scenarios.
Linking a certificate is needed if you plan to use the same CredentialStore in cross platform scenarios.
## EXAMPLES
## EXAMPLES
### EXAMPLE 1
### EXAMPLE 1 ```
``` Use-CSCertificate -Path 'C:\cert.pfx'
Use-CSCertificate -Path 'C:\cert.pfx' ```
```
## PARAMETERS
## PARAMETERS
### -CredentialStore
### -CredentialStore Specify a custom path for a shared credential store.
Specify a custom path for a shared credential store.
```yaml
```yaml Type: String
Type: String Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Path
### -Path Specify the path to the PFX Certificate you want to link for usage.
Specify the path to the PFX Certificate you want to link for usage.
```yaml
```yaml Type: String
Type: String Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: True
Required: True Position: Named
Position: Named Default value: None
Default value: None Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -Shared
### -Shared Use the credential store in shared mode.
Use the credential store in shared mode.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: Shared
Parameter Sets: Shared Aliases:
Aliases:
Required: True
Required: True Position: Named
Position: Named Default value: False
Default value: False Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### -UseCertStore
### -UseCertStore Use the given certificate and import it into the corresponding certificate store.
Use the given certificate and import it into the corresponding certificate store.
```yaml
```yaml Type: SwitchParameter
Type: SwitchParameter Parameter Sets: (All)
Parameter Sets: (All) Aliases:
Aliases:
Required: False
Required: False Position: Named
Position: Named Default value: False
Default value: False Accept pipeline input: False
Accept pipeline input: False Accept wildcard characters: False
Accept wildcard characters: False ```
```
### CommonParameters
### CommonParameters 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).
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).
## INPUTS
## INPUTS
### [None]
### [None] ## OUTPUTS
## OUTPUTS
### [None]
### [None] ## NOTES
## NOTES
## RELATED LINKS
## RELATED LINKS

38
resources/Dependency.json Normal file
View File

@ -0,0 +1,38 @@
{
"Version": 0.1,
"Mandatory": {},
"Optional": [
{
"Name": "foobar2000",
"Modules": [
"foobar2000"
]
},
{
"Name": "foo",
"Modules": [
"foo",
"bar"
]
},
{
"Name": "bar",
"Modules": [
"bar"
]
},
{
"Name": "Existing",
"Modules": [
"PowerShellGet"
]
},
{
"Name": "PSGetMixed",
"Modules": [
"PowerShellGet",
"foobar2000"
]
}
]
}

View File

@ -66,7 +66,7 @@ function New-CSCertificate {
($PSVersionTable.PSEdition -eq 'Desktop' -and $PSVersionTable.PSVersion.Major -lt 6) -or ($PSVersionTable.PSEdition -eq 'Desktop' -and $PSVersionTable.PSVersion.Major -lt 6) -or
($IsWindows -eq $true) ($IsWindows -eq $true)
) { ) {
$openssl = Join-Path -Path $ModuleBase -ChildPath '/Vendor/libressl/openssl.exe' $openssl = Join-Path -Path $ModuleBase -ChildPath '/Vendor/libressl255/openssl.exe'
} }
$Env:OPENSSL_CONF = Join-Path $ModuleBase -ChildPath '/openssl.conf' $Env:OPENSSL_CONF = Join-Path $ModuleBase -ChildPath '/openssl.conf'

View File

@ -15,16 +15,7 @@ function Connect-To {
.PARAMETER Type .PARAMETER Type
Specify the host type of the target. Currently implemented targets are: Possible connection values are: Specify the host type of the target. Currently implemented targets are: Possible connection values are:
CiscoUcs, FTP, NetAppFAS, VMware, CisServer, ExchangeHTTP, ExchangeHTTPS, SCP.
- CiscoUcs
- CiscoUcsCentral
- CisServer
- ExchangeHTTP
- ExchangeHTTPS
- FTP
- NetAppFAS
- SCP
- VMware
.PARAMETER Credentials .PARAMETER Credentials
Use this parameter to bypass the stored credentials. Without this parameter Connect-To tries to read the Use this parameter to bypass the stored credentials. Without this parameter Connect-To tries to read the
@ -50,9 +41,6 @@ function Connect-To {
.EXAMPLE .EXAMPLE
Connect-To -RemoteHost "ucs.myside.local" -Type CiscoUcs Connect-To -RemoteHost "ucs.myside.local" -Type CiscoUcs
.EXAMPLE
Connect-To -RemoteHost "ucscentral.myside.local" -Type 'CiscoUcsCentral'
.EXAMPLE .EXAMPLE
Connect-To -RemoteHost "ftp.myside.local" -Type FTP Connect-To -RemoteHost "ftp.myside.local" -Type FTP
@ -91,7 +79,6 @@ function Connect-To {
[Parameter(Mandatory = $true, ParameterSetName = 'Private')] [Parameter(Mandatory = $true, ParameterSetName = 'Private')]
[ValidateSet( [ValidateSet(
'CiscoUcs', 'CiscoUcs',
'CiscoUcsCentral',
'FTP', 'FTP',
'NetAppFAS', 'NetAppFAS',
'VMware', 'VMware',
@ -130,6 +117,12 @@ function Connect-To {
} }
} }
# First check the optional modules
if (-not (Resolve-Dependency -Name $Type)) {
Write-Error -Message (
"Could not resolve the optional dependencies defined for {0}" -f $Type
) -ErrorAction 'Stop'
}
switch ($Type) { switch ($Type) {
"VMware" { "VMware" {
# Disable the yellow certificate warning, since we haven't replaced the SSL certs for vCenter/ESXi # Disable the yellow certificate warning, since we haven't replaced the SSL certs for vCenter/ESXi
@ -196,20 +189,6 @@ function Connect-To {
Write-Error @MessageParams Write-Error @MessageParams
} }
} }
"CiscoUcsCentral" {
try {
$handle = Connect-UcsCentral -Name $RemoteHost -Credential $creds -NotDefault
$ExecutionContext.SessionState.PSVariable.Set('DefaultUcsCentral', $handle)
}
catch {
$MessageParams = @{
Message = ('Unable to connect to {0} using {1}' -f $RemoteHost, $Type)
ErrorAction = 'Stop'
}
Write-Error @MessageParams
}
}
"FTP" { "FTP" {
# First establish the FTP session # First establish the FTP session
$WinSCPConParams = @{ $WinSCPConParams = @{

View File

@ -14,17 +14,8 @@ function Disconnect-From {
same hostname. same hostname.
.PARAMETER Type .PARAMETER Type
Specify the host type of the target. Currently implemented targets are: Specify the host type of the target. Currently implemented targets are: CiscoUcs, FTP, NetAppFAS, VMware,
CisServer, ExchangeHTTP, ExchangeHTTPS, SCP.
- CiscoUcs
- CiscoUcsCentral
- FTP
- NetAppFAS
- VMware
- CisServer
- ExchangeHTTP
- ExchangeHTTPS
- SCP
.PARAMETER Force .PARAMETER Force
Force the disconnect, even if the disconnect would fail. Force the disconnect, even if the disconnect would fail.
@ -73,7 +64,6 @@ function Disconnect-From {
[Parameter(Mandatory = $true)] [Parameter(Mandatory = $true)]
[ValidateSet( [ValidateSet(
'CiscoUcs', 'CiscoUcs',
'CiscoUcsCentral',
'FTP', 'FTP',
'NetAppFAS', 'NetAppFAS',
'VMware', 'VMware',
@ -95,10 +85,10 @@ function Disconnect-From {
"VMware" { "VMware" {
try { try {
if ($Force) { if ($Force) {
Disconnect-VIServer -Server $RemoteHost -Confirm:$false -ErrorAction 'Stop' -Force:$true Disconnect-VIServer -Server $RemoteHost -Confirm:$false -ErrorAction Stop -Force:$true
} }
else { else {
Disconnect-VIServer -Server $RemoteHost -Confirm:$false -ErrorAction 'Stop' Disconnect-VIServer -Server $RemoteHost -Confirm:$false -ErrorAction Stop
} }
} }
@ -114,10 +104,10 @@ function Disconnect-From {
"CisServer" { "CisServer" {
try { try {
if ($Force) { if ($Force) {
Disconnect-CisServer -Server $RemoteHost -Confirm:$false -ErrorAction 'Stop' -Force:$true Disconnect-CisServer -Server $RemoteHost -Confirm:$false -ErrorAction Stop -Force:$true
} }
else { else {
Disconnect-CisServer -Server $RemoteHost -Confirm:$false -ErrorAction 'Stop' Disconnect-CisServer -Server $RemoteHost -Confirm:$false -ErrorAction Stop
} }
} }
@ -181,24 +171,10 @@ function Disconnect-From {
Write-Error @MessageParams Write-Error @MessageParams
} }
} }
"CiscoUCSCentral" {
try {
$handle = Connect-UcsCentral -Name $RemoteHost -Credential $creds -NotDefault
$ExecutionContext.SessionState.PSVariable.Set('DefaultUcsCentral', $handle)
}
catch {
$MessageParams = @{
Message = "Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type
ErrorAction = 'Stop'
}
Write-Error @MessageParams
}
}
"ExchangeHTTP*" { "ExchangeHTTP*" {
try { try {
Get-Variable -Name 'PSExchangeRemote' -Scope 'Global' -ErrorAction 'Stop' Get-Variable -Name 'PSExchangeRemote' -Scope Global -ErrorAction Stop
Remove-PSSession -Session $Global:PSExchangeRemote -ErrorAction 'Stop' Remove-PSSession -Session $Global:PSExchangeRemote -ErrorAction Stop
} }
catch { catch {
$MessageParams = @{ $MessageParams = @{
@ -230,4 +206,6 @@ function Disconnect-From {
} }
} }
} }
end {}
} }

View File

@ -102,7 +102,7 @@ Describe "New-CredentialStoreItem" {
It "Missing CredentialStore should throw" { It "Missing CredentialStore should throw" {
{ {
New-CredentialStoreItem -Shared -Path '/tmp/missingStore.json' -RemoteHost 'notrelevant' New-CredentialStoreItem -Shared -Path '/tmp/missingStore.json' -RemoteHost 'notrelevant'
} | Should -Throw "The given credential store (/tmp/missingStore.json) does not exist!" } | Should -Throw "Could not add anything into the given CredentialStore."
} }
} }
Context "Testing pipeline paramter" { Context "Testing pipeline paramter" {

View File

@ -32,7 +32,7 @@ function New-CredentialStoreItem {
[None] [None]
.EXAMPLE .EXAMPLE
New-CredentialStoreItem -Path 'C:\TMP\mystore.json' -RemoteHost esx01.myside.local' New-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local"
#> #>
[CmdletBinding(DefaultParameterSetName = 'Private')] [CmdletBinding(DefaultParameterSetName = 'Private')]
@ -68,7 +68,7 @@ function New-CredentialStoreItem {
begin { begin {
# Set the CredentialStore for private, shared or custom mode. # Set the CredentialStore for private, shared or custom mode.
Write-Debug ('ParameterSetName: {0}' -f $PSCmdlet.ParameterSetName) Write-Debug ("ParameterSetName: {0}" -f $PSCmdlet.ParameterSetName)
if ($PSCmdlet.ParameterSetName -eq 'Private') { if ($PSCmdlet.ParameterSetName -eq 'Private') {
$Path = Get-DefaultCredentialStorePath $Path = Get-DefaultCredentialStorePath
} }
@ -84,9 +84,9 @@ function New-CredentialStoreItem {
if (-not(Test-CredentialStore -Shared -Path $Path)) { if (-not(Test-CredentialStore -Shared -Path $Path)) {
$MessageParams = @{ $MessageParams = @{
Exception = [System.IO.FileNotFoundException]::new( Exception = [System.IO.FileNotFoundException]::new(
'The given credential store ({0}) does not exist!' -f $Path 'Could not add anything into the given CredentialStore.'
) )
ErrorAction = 'Stop' ErrorAction = "Stop"
} }
Write-Error @MessageParams Write-Error @MessageParams
} }
@ -95,8 +95,8 @@ function New-CredentialStoreItem {
$CurrentDate = Get-Date -Format 'u' $CurrentDate = Get-Date -Format 'u'
if ($Identifier -ne '') { if ($Identifier -ne "") {
$CredentialName = $RemoteHost = '{0}/{1}' -f $Identifier, $RemoteHost $CredentialName = $RemoteHost = "{0}/{1}" -f $Identifier, $RemoteHost
} }
else { else {
$CredentialName = $RemoteHost $CredentialName = $RemoteHost

View File

@ -1,130 +0,0 @@
[Diagnostics.CodeAnalysis.SuppressMessageAttribute(
'PSAvoidUsingConvertToSecureStringWithPlainText',
'',
Justification = 'just used in pester tests.'
)]
[Diagnostics.CodeAnalysis.SuppressMessageAttribute(
'PSProvideCommentHelp',
'',
Justification = 'no need in internal pester helpers.'
)]
param ()
BeforeAll {
$ManifestFile = (Get-Item -Path './src/*.psd1').FullName
Import-Module $ManifestFile -Force
$PrivateFunctions = (Get-ChildItem -Path './src/Private/*.ps1' | Where-Object {
$_.BaseName -notmatch '.Tests'
}
).FullName
foreach ( $func in $PrivateFunctions) {
. $func
}
# Backup existing credential stores
$VerbosePreference = 'Continue'
Write-Verbose -Message 'Backup private Credential Store...'
$CSPath = Get-DefaultCredentialStorePath
$BackupFile = '{0}.back' -f $CSPath
if (Test-Path -Path $CSPath) {
Move-Item -Path $CSPath -Destination $BackupFile
}
Write-Verbose -Message 'Backup shared CredentialStore...'
$CSShared = Get-DefaultCredentialStorePath -Shared
$BackupSharedFile = '{0}.back' -f $CSShared
if (Test-Path -Path $CSShared) {
Move-Item -Path $CSShared -Destination $BackupSharedFile
}
Write-Verbose -Message 'Remove old CredentialStore in Temp dir'
$CSTemp = Join-Path -Path (Get-TempDir) -ChildPath '/CredentialStore.json'
if (Test-Path -Path $CSTemp) {
Remove-Item -Path $CSTemp
}
$VerbosePreference = 'SilentlyContinue'
}
Describe 'New-CredentialStoreItem' {
Context 'Private Credential Store tests' {
It 'Add entry to a private store.' {
# Create a fresh CredentialStore first
New-CredentialStore -Force
# Define the content of the CredentialStoreItem.
$RemoteHost = 'barfoo'
$UserName = 'MyUser'
$Password = 'fooobarysdfsfs' | ConvertTo-SecureString -AsPlainText -Force
# Form the CredentialObject.
$creds = [PSCredential]::new($UserName, $Password)
# Create the CredentialStoreItem.
New-CredentialStoreItem -RemoteHost $RemoteHost -Credential $creds
# Formulate an update to the CredentialStoreItem.
$ClearPassword = 'fooobaryadfafa'
$Password = $ClearPassword | ConvertTo-SecureString -AsPlainText -Force
$creds = [PSCredential]::new($UserName, $Password)
{
Set-CredentialStoreItem -RemoteHost $RemoteHost -Credential $creds
} | Should -Not -Throw
# Control the content of the CredentialStore.
$content = Get-CredentialStoreItem -RemoteHost $RemoteHost
$content.GetNetworkCredential().Password | Should -Be $ClearPassword
}
}
Context 'Shared Credential Store tests' {
It 'Add entry to a shared store.' {
# Create a fresh CredentialStore first
$tmpCS = Join-Path -Path (Get-TempDir) -ChildPath '/CredentialStore.json'
New-CredentialStore -Path $tmpCS -Force -Shared
# Define the content of the CredentialStoreItem.
$RemoteHost = 'barfoo'
$UserName = 'MyUser'
$Password = 'fooobarysdfsfs' | ConvertTo-SecureString -AsPlainText -Force
# Form the CredentialObject.
$creds = [PSCredential]::new($UserName, $Password)
# Create the CredentialStoreItem.
New-CredentialStoreItem -RemoteHost $RemoteHost -Credential $creds -Path $tmpCS -Shared
# Formulate an update to the CredentialStoreItem.
$ClearPassword = 'fooobaryadfafa'
$Password = $ClearPassword | ConvertTo-SecureString -AsPlainText -Force
$creds = [PSCredential]::new($UserName, $Password)
{
Set-CredentialStoreItem -RemoteHost $RemoteHost -Credential $creds -Path $tmpCS -Shared
} | Should -Not -Throw
# Control the content of the CredentialStore.
$content = Get-CredentialStoreItem -RemoteHost $RemoteHost -Path $tmpCS -Shared
$content.GetNetworkCredential().Password | Should -Be $ClearPassword
}
}
}
AfterAll {
# Cleanup test stores and restore existing ones.
$VerbosePreference = 'Continue'
Write-Verbose -Message 'Restoring private CredentialStore'
If (Test-Path -Path $BackupFile) {
If (Test-Path -Path $CSPath) {
Remove-Item -Path $CSPath
Move-Item -Path $BackupFile -Destination $CSPath
}
}
Write-Verbose -Message 'Restoring shared CredentialStore'
If (Test-Path -Path $BackupSharedFile) {
If (Test-Path -Path $CSShared) {
Remove-Item -Path $CSShared
Move-Item -Path $BackupSharedFile -Destination $CSShared
}
}
$VerbosePreference = 'SilentlyContinue'
}

View File

@ -13,7 +13,7 @@ function Set-CredentialStoreItem {
Specify the host you for which you would like to change the credentials. Specify the host you for which you would like to change the credentials.
.PARAMETER Identifier .PARAMETER Identifier
Defaults to ''. Specify a string, which separates two CredentialStoreItems for the Defaults to "". Specify a string, which separates two CredentialStoreItems for the
same hostname. same hostname.
.PARAMETER Shared .PARAMETER Shared
@ -30,10 +30,10 @@ function Set-CredentialStoreItem {
[None] [None]
.EXAMPLE .EXAMPLE
Set-CredentialStoreItem -Path 'C:\TMP\mystore.json' -RemoteHost 'esx01.myside.local' Set-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local"
.EXAMPLE .EXAMPLE
Set-CredentialStoreItem -Path 'C:\TMP\mystore.json' -RemoteHost 'esx01.myside.local' -Identifier svc Set-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local" -Identifier svc
#> #>
[CmdletBinding(DefaultParameterSetName = 'Private')] [CmdletBinding(DefaultParameterSetName = 'Private')]
@ -65,7 +65,7 @@ function Set-CredentialStoreItem {
begin { begin {
# Set the CredentialStore for private, shared or custom mode. # Set the CredentialStore for private, shared or custom mode.
Write-Debug ('ParameterSetName: {0}' -f $PSCmdlet.ParameterSetName) Write-Debug ("ParameterSetName: {0}" -f $PSCmdlet.ParameterSetName)
if ($PSCmdlet.ParameterSetName -eq 'Private') { if ($PSCmdlet.ParameterSetName -eq 'Private') {
$Path = Get-DefaultCredentialStorePath $Path = Get-DefaultCredentialStorePath
} }
@ -77,52 +77,32 @@ function Set-CredentialStoreItem {
} }
process { process {
# Define the default splatting. # Lets do a quick test on the given CredentialStore.
$DefaultSplatting = @{ if (-not(Test-CredentialStore -Shared -Path $Path)) {
Path = $Path
}
# Check if the user passed -Shared. If he added -Shared, we'll pass it into the splatting
if ($PSBoundParameters.ContainsKey('Shared')) {
$DefaultSplatting.Add('Shared', $true)
}
else {
$DefaultSplatting.Add('Shared', $false)
}
# Now lets check the given CredentialStore.
if (-not(Test-CredentialStore @DefaultSplatting)) {
$MessageParams = @{ $MessageParams = @{
Message = ('The given CredentialStore ({0}) does no exist.' -f $Path) Message = 'Could not add anything into the given CredentailStore.'
ErrorAction = 'Stop' ErrorAction = 'Stop'
} }
Write-Error @MessageParams Write-Error @MessageParams
} }
# Read the file content based on the given ParameterSetName # Read the file content based on the given ParameterSetName
$CSContent = Get-CredentialStore @DefaultSplatting $CSContent = Get-CredentialStore -Shared -Path $Path
# Get a formatted current date for the last update time of the Item.
$CurrentDate = Get-Date -Format 'u' $CurrentDate = Get-Date -Format 'u'
# Check if the user supplied an identifier. If so, we need to mangle the CredentialName, as that's where if ($Identifier -ne "") {
# the identifier is actually added. $CredentialName = $RemoteHost = "{0}/{1}" -f $Identifier, $RemoteHost
if ($Identifier -ne '') {
$CredentialName = $RemoteHost = '{0}/{1}' -f $Identifier, $RemoteHost
} }
else { else {
$CredentialName = $RemoteHost $CredentialName = $RemoteHost
} }
# If the user didn't supply a CredentialObject, we need to prompt for it.
if (-not($Credential)) { if (-not($Credential)) {
$Credential = Get-Credential -Message $CredentialName $Credential = Get-Credential -Message $CredentialName
} }
# If the username isn't empty, we ca go ahead and update the entry. if ($Credential.UserName) {
if ($null -ne $Credential.UserName -and -not [string]::IsNullOrWhiteSpace($Credential.UserName)) {
# Check if the path to the PfxCertificate is stored in the CredentialStore. If so load the certificate.
# If not, load try loading the certificate from the Filepath of the CredentialStore.
if ($null -eq $CSContent.PfxCertificate) { if ($null -eq $CSContent.PfxCertificate) {
$Cert = Get-CSCertificate -Type $CSContent.Type -Thumbprint $CSContent.Thumbprint $Cert = Get-CSCertificate -Type $CSContent.Type -Thumbprint $CSContent.Thumbprint
} }
@ -130,17 +110,13 @@ function Set-CredentialStoreItem {
$Cert = Get-PfxCertificate -FilePath $CSContent.PfxCertificate -ErrorAction Stop $Cert = Get-PfxCertificate -FilePath $CSContent.PfxCertificate -ErrorAction Stop
} }
# Now locate the Item.
if (Get-Member -InputObject $CSContent -Name $CredentialName -MemberType Properties) { if (Get-Member -InputObject $CSContent -Name $CredentialName -MemberType Properties) {
# Get a random AES key for the entry.
$RSAKey = Get-RandomAESKey $RSAKey = Get-RandomAESKey
$CSContent.$CredentialName.User = $Credential.UserName $CSContent.$CredentialName.User = $Credential.UserName
$ConvertParams = @{ $ConvertParams = @{
SecureString = $Credential.Password SecureString = $Credential.Password
Key = $RSAKey Key = $RSAKey
} }
# Now create a updated item containing the updated credentials.
$CSContent.$CredentialName.Password = ConvertFrom-SecureString @ConvertParams $CSContent.$CredentialName.Password = ConvertFrom-SecureString @ConvertParams
$CSContent.$CredentialName.LastChange = $CurrentDate $CSContent.$CredentialName.LastChange = $CurrentDate
$CSContent.$CredentialName.EncryptedKey = [Convert]::ToBase64String( $CSContent.$CredentialName.EncryptedKey = [Convert]::ToBase64String(
@ -149,15 +125,10 @@ function Set-CredentialStoreItem {
[System.Security.Cryptography.RSAEncryptionPadding]::Pkcs1 [System.Security.Cryptography.RSAEncryptionPadding]::Pkcs1
) )
) )
# Convert the CredentialStore back into JSON and save it to the file.
ConvertTo-Json -InputObject $CSContent -Depth 5 | Out-File -FilePath $Path -Encoding utf8 ConvertTo-Json -InputObject $CSContent -Depth 5 | Out-File -FilePath $Path -Encoding utf8
} }
else {
Write-Warning -Message ('Unable to locate CredentialStoreItem for {0}' -f $CredentialName)
}
} }
else { Else {
$MessageParams = @{ $MessageParams = @{
Message = 'Please Provide at least a valid user!' Message = 'Please Provide at least a valid user!'
ErrorAction = 'Stop' ErrorAction = 'Stop'

View File

@ -7,10 +7,6 @@ function Test-CredentialStoreItem {
Use this cmdlet for basic checks with a single item. Check the item first with this function before Use this cmdlet for basic checks with a single item. Check the item first with this function before
you try to interact with it. you try to interact with it.
Breaking Change for `v1.1.0+`:
Test-CredentialStoreItem will return `$false` even if the store doesn't exist. We removed the terminating
error and replaced it with a warning message.
.PARAMETER Path .PARAMETER Path
Define a custom credential store you try to read from. Without the `-Path` parameter Define a custom credential store you try to read from. Without the `-Path` parameter
`Test-CredentialStoreItem` tries to read from the default private store. `Test-CredentialStoreItem` tries to read from the default private store.
@ -33,11 +29,11 @@ function Test-CredentialStoreItem {
[None] [None]
.EXAMPLE .EXAMPLE
if (Test-CredentialStoreItem -RemoteHost 'Default') { if (Test-CredentialStoreItem -RemoteHost "Default") {
Get-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) Write-Warning ("The given Remote Host {0} does not exist in the credential Store!" -f $RemoteHost)
} }
#> #>
@ -45,7 +41,7 @@ function Test-CredentialStoreItem {
[OutputType([bool])] [OutputType([bool])]
param ( param (
[Parameter(Mandatory = $false, ParameterSetName = 'Shared')] [Parameter(Mandatory = $false, ParameterSetName = 'Shared')]
[string]$Path = '{0}\PSCredentialStore\CredentialStore.json' -f $env:ProgramData, [string]$Path = "{0}\PSCredentialStore\CredentialStore.json" -f $env:ProgramData,
[Parameter(Mandatory = $true)] [Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()] [ValidateNotNullOrEmpty()]
@ -61,7 +57,7 @@ function Test-CredentialStoreItem {
begin { begin {
# Set the CredentialStore for private, shared or custom mode. # Set the CredentialStore for private, shared or custom mode.
Write-Debug ('ParameterSetName: {0}' -f $PSCmdlet.ParameterSetName) Write-Debug ("ParameterSetName: {0}" -f $PSCmdlet.ParameterSetName)
if ($PSCmdlet.ParameterSetName -eq 'Private') { if ($PSCmdlet.ParameterSetName -eq 'Private') {
$Path = Get-DefaultCredentialStorePath $Path = Get-DefaultCredentialStorePath
} }
@ -73,8 +69,8 @@ function Test-CredentialStoreItem {
} }
process { process {
if ($Identifier -ne '') { if ($Identifier -ne "") {
$CredentialName = $RemoteHost = '{0}/{1}' -f $Identifier, $RemoteHost $CredentialName = $RemoteHost = "{0}/{1}" -f $Identifier, $RemoteHost
} }
else { else {
$CredentialName = $RemoteHost $CredentialName = $RemoteHost
@ -92,10 +88,10 @@ function Test-CredentialStoreItem {
} }
else { else {
$MsgParams = @{ $MsgParams = @{
Message = 'The given credential store ({0}) does not exist!' -f $Path ErrorAction = 'Stop'
Message = "The given credential store ({0}) does not exist!" -f $Path
} }
Write-Warning @MsgParams Write-Error @MsgParams
return $false
} }
} }

View File

@ -143,32 +143,7 @@
# RequireLicenseAcceptance = $false # RequireLicenseAcceptance = $false
# External dependent modules of this module # External dependent modules of this module
ExternalModuleDependencies = @( # ExternalModuleDependencies = @()
@{
ModuleName = 'VMware.VimAutomation.Core'
ModuleVersion = '12.7.0.20091293'
},
@{
ModuleName = 'VMware.VimAutomation.Cis.Core'
ModuleVersion = '12.6.0.19601368'
},
@{
ModuleName = 'Cisco.UCS.Common'
ModuleVersion = '3.0.1.2'
},
@{
ModuleName = 'Cisco.UCSManager'
ModuleVersion = '3.0.1.2'
},
@{
ModuleName = 'WinSCP'
ModuleVersion = '5.17.8.1'
},
@{
ModuleName = 'NetApp.ONTAP'
ModuleVersion = '9.10.1.2111'
}
)
} # End of PSData hashtable } # End of PSData hashtable

View File

@ -0,0 +1,60 @@
BeforeAll {
$ManifestFile = (Get-Item -Path "./src/*.psd1").FullName
Import-Module $ManifestFile -Force
$PrivateFunctions = (Get-ChildItem -Path "./src/Private/*.ps1" | Where-Object {
$_.BaseName -notmatch '.Tests'
}
).FullName
foreach ( $func in $PrivateFunctions) {
. $func
}
}
Describe "Resolve-Dependency" {
Context "Basic syntax check" {
BeforeAll {
Mock Get-ModuleBase {
return (Join-Path -Path $PWD -ChildPath '/resources')
}
Mock Test-Module {
return $true
}
}
It "Test1: Should not throw" {
{ Resolve-Dependency -Name 'foobar2000' } | Should -Not -Throw
}
It "Test2: Output type should be bool" {
Resolve-Dependency -Name 'foobar2000' | Should -BeOfType bool
}
}
Context "Enforce Error" {
# Return incorrect module base to enforce there is no config file.
Mock Get-ModuleBase {
if ($IsWindows) { return "C:\" }
elseif ($isLinux) { return "/" }
}
It "Missing dependency file should not cause an error" {
{ Resolve-Dependency -Name 'awesome' } | Should -Not -Throw
}
It "Missing dependency file should return true" {
Resolve-Dependency -Name 'awesome' | Should -Be $true
}
}
Context "Testing input variations" {
It "Should return true if all given dependencies exist" {
Mock Get-ModuleBase {
return (Join-Path -Path $PWD -ChildPath '/resources')
}
Resolve-Dependency -Name 'Existing' | Should -Be $true
}
It "Mixed results should return false" {
Mock Get-ModuleBase {
return (Join-Path -Path $PWD -ChildPath '/resources')
}
Resolve-Dependency -Name 'PSGetMixed' | Should -Be $false
}
}
}

View File

@ -0,0 +1,87 @@
function Resolve-Dependency {
<#
.SYNOPSIS
Tests defined optional dependencies and returns the result as bool.
.DESCRIPTION
Use this function to test for optional modules. You can use it if you provide functions which needs special
modules but you don't want to make them required.
Place a file called Dependency.json in your module root dir. The default format is:
{
"Version": 0.1,
"Mandatory": {},
"Optional": [
{
"Name": "VMware",
"Modules": [
"VMware.VimAutomation.Core"
]
},
{
"Name": "CiscoUCS",
"Modules": []
}
]
}
.PARAMETER Name
Select the dependency item name you defined in the dependency.json.
.INPUTS
[None]
.OUTPUTS
[bool]
.EXAMPLE
If (-not (Resolve-Dependency -Name 'VMware')) {
Write-Error -Message (
"Could not resolve the optional dependencies defined for {0}" -f 'VMware'
) -ErrorAction 'Stop'
}
#>
[OutputType([bool])]
[CmdletBinding()]
param (
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[string]$Name
)
begin {
$ModuleRootDir = Get-ModuleBase
$DepFilePath = Join-Path -Path $ModuleRootDir -ChildPath "Dependency.json"
if (Test-Path -Path $DepFilePath) {
$Dependency = Get-Content -Path $DepFilePath -Raw -Encoding UTF8 | ConvertFrom-Json
}
else {
Write-Warning ("Could not find the dependency file: {0}" -f $DepFilePath)
}
}
process {
# ScriptAnalyzer issue workaround (unused var)
$null = $Name
$SelectedDependency = $Dependency.Optional | Where-Object { $_.Name -match $Name }
# return true if there is no dependency defined
if ($null -eq $SelectedDependency) {
return $true
}
$res = @()
foreach ($Module in $SelectedDependency.Modules) {
$res += Test-Module -Name $Module
}
# return false if there was not module at all
if (($res -contains $false) -or ($res.Count -eq 0)) {
return $false
}
else {
return $true
}
}
end {}
}

BIN
src/Vendor/libressl/openssl.exe (Stored with Git LFS) vendored

Binary file not shown.

BIN
src/Vendor/libressl255/libcrypto-41.dll (Stored with Git LFS) vendored Normal file

Binary file not shown.

BIN
src/Vendor/libressl255/libcrypto-41.exp (Stored with Git LFS) vendored Normal file

Binary file not shown.

BIN
src/Vendor/libressl255/libcrypto-41.lib (Stored with Git LFS) vendored Normal file

Binary file not shown.

BIN
src/Vendor/libressl255/libcrypto-41.pdb (Stored with Git LFS) vendored Normal file

Binary file not shown.

BIN
src/Vendor/libressl255/libssl-43.dll (Stored with Git LFS) vendored Normal file

Binary file not shown.

BIN
src/Vendor/libressl255/libssl-43.exp (Stored with Git LFS) vendored Normal file

Binary file not shown.

BIN
src/Vendor/libressl255/libssl-43.lib (Stored with Git LFS) vendored Normal file

Binary file not shown.

BIN
src/Vendor/libressl255/libssl-43.pdb (Stored with Git LFS) vendored Normal file

Binary file not shown.

BIN
src/Vendor/libressl255/libtls-15.dll (Stored with Git LFS) vendored Normal file

Binary file not shown.

BIN
src/Vendor/libressl255/libtls-15.exp (Stored with Git LFS) vendored Normal file

Binary file not shown.

BIN
src/Vendor/libressl255/libtls-15.lib (Stored with Git LFS) vendored Normal file

Binary file not shown.

BIN
src/Vendor/libressl255/libtls-15.pdb (Stored with Git LFS) vendored Normal file

Binary file not shown.

BIN
src/Vendor/libressl255/ocspcheck.exe (Stored with Git LFS) vendored Normal file

Binary file not shown.

BIN
src/Vendor/libressl255/openssl.exe (Stored with Git LFS) vendored Normal file

Binary file not shown.