forked from OCram85/PSCredentialStore
Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
ab13962f6e | |||
680f37c00e | |||
1773f1fc06 | |||
c0b13052b3 | |||
8d55f2d6fd | |||
ce823d4564 |
14
appveyor.yml
14
appveyor.yml
@ -1,10 +1,10 @@
|
|||||||
version: 0.2.1.{build}
|
version: 0.2.3.{build}
|
||||||
|
|
||||||
branches:
|
#branches:
|
||||||
only:
|
# only:
|
||||||
- master
|
# - master
|
||||||
- dev
|
# - dev
|
||||||
- debug
|
# - debug
|
||||||
|
|
||||||
skip_tags: true
|
skip_tags: true
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ image: Visual Studio 2017
|
|||||||
|
|
||||||
install:
|
install:
|
||||||
- ps: Import-Module .\tools\AppVeyor.psm1
|
- ps: Import-Module .\tools\AppVeyor.psm1
|
||||||
- ps: Invoke-InstallDependencies -Verbose
|
- ps: Invoke-InstallDependencies
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
NuGetToken:
|
NuGetToken:
|
||||||
|
@ -167,8 +167,7 @@ Accept wildcard characters: False
|
|||||||
```
|
```
|
||||||
|
|
||||||
### CommonParameters
|
### CommonParameters
|
||||||
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.
|
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).
|
||||||
For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
|
|
||||||
|
|
||||||
## INPUTS
|
## INPUTS
|
||||||
|
|
||||||
|
@ -111,8 +111,7 @@ Accept wildcard characters: False
|
|||||||
```
|
```
|
||||||
|
|
||||||
### CommonParameters
|
### CommonParameters
|
||||||
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.
|
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).
|
||||||
For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
|
|
||||||
|
|
||||||
## INPUTS
|
## INPUTS
|
||||||
|
|
||||||
|
@ -71,8 +71,7 @@ Accept wildcard characters: False
|
|||||||
```
|
```
|
||||||
|
|
||||||
### CommonParameters
|
### CommonParameters
|
||||||
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.
|
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).
|
||||||
For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
|
|
||||||
|
|
||||||
## INPUTS
|
## INPUTS
|
||||||
|
|
||||||
|
@ -101,8 +101,7 @@ Accept wildcard characters: False
|
|||||||
```
|
```
|
||||||
|
|
||||||
### CommonParameters
|
### CommonParameters
|
||||||
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.
|
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).
|
||||||
For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
|
|
||||||
|
|
||||||
## INPUTS
|
## INPUTS
|
||||||
|
|
||||||
|
@ -5,79 +5,56 @@ online version: https://github.com/OCram85/PSCredentialStore
|
|||||||
schema: 2.0.0
|
schema: 2.0.0
|
||||||
---
|
---
|
||||||
|
|
||||||
# New-CredentialStore
|
# Get-CredentialStoreItem
|
||||||
|
|
||||||
## SYNOPSIS
|
## SYNOPSIS
|
||||||
Creates a new credential store File
|
Returns the Credential from a given remote host item.
|
||||||
|
|
||||||
## SYNTAX
|
## SYNTAX
|
||||||
|
|
||||||
### Private (Default)
|
### Private (Default)
|
||||||
```
|
```
|
||||||
New-CredentialStore [-Force] [<CommonParameters>]
|
Get-CredentialStoreItem -RemoteHost <String> [-Identifier <String>] [<CommonParameters>]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Shared
|
### Shared
|
||||||
```
|
```
|
||||||
New-CredentialStore [-Shared] [-Path <String>] [-Force] [<CommonParameters>]
|
Get-CredentialStoreItem [-Path <String>] -RemoteHost <String> [-Identifier <String>] [-Shared]
|
||||||
|
[<CommonParameters>]
|
||||||
```
|
```
|
||||||
|
|
||||||
## DESCRIPTION
|
## DESCRIPTION
|
||||||
You need to run this script first to create a new credential store before you try to
|
Return the credential as PSCredential object.
|
||||||
save new credentials with New-CredentialStoreItem.
|
|
||||||
|
|
||||||
## EXAMPLES
|
## EXAMPLES
|
||||||
|
|
||||||
### EXAMPLE 1
|
### EXAMPLE 1
|
||||||
```
|
```
|
||||||
New-CredentialStore
|
$myCreds = Get-CredentialStoreItem -Path "C:\TMP\mystore.json" -RemoteHost "esx01.myside.local"
|
||||||
```
|
```
|
||||||
|
|
||||||
# Creates a new private CredentialStore
|
|
||||||
|
|
||||||
### EXAMPLE 2
|
|
||||||
```
|
|
||||||
New-CredentialStore -Force
|
|
||||||
```
|
|
||||||
|
|
||||||
# Resets an existing private CredentialStore
|
|
||||||
|
|
||||||
### EXAMPLE 3
|
|
||||||
```
|
|
||||||
New-CredentialStore -Shared
|
|
||||||
```
|
|
||||||
|
|
||||||
# Creates a new shared CredentialStore
|
|
||||||
|
|
||||||
### EXAMPLE 4
|
|
||||||
```
|
|
||||||
New-CredentialStore -Shared -Path "C:\TMP\CredentialStore.json"
|
|
||||||
```
|
|
||||||
|
|
||||||
# Creates a new shared CredentialStore in the given location.
|
|
||||||
|
|
||||||
## PARAMETERS
|
## PARAMETERS
|
||||||
|
|
||||||
### -Force
|
### -Identifier
|
||||||
Use this switch to reset an existing store.
|
Provide a custom identifier to the given remote host key.
|
||||||
The complete content will be wiped.
|
This enables you to store multiple credentials
|
||||||
|
for a single remote host entry.
|
||||||
|
For example ad/sys1, ftp/sys1, mssql/sys1
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
Type: SwitchParameter
|
Type: String
|
||||||
Parameter Sets: (All)
|
Parameter Sets: (All)
|
||||||
Aliases:
|
Aliases:
|
||||||
|
|
||||||
Required: False
|
Required: False
|
||||||
Position: Named
|
Position: Named
|
||||||
Default value: False
|
Default value: None
|
||||||
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 custom path to a shared CredentialStore.
|
||||||
The default store will be created in
|
|
||||||
$Env:ProgramData\PSCredentialStore dir.
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
Type: String
|
Type: String
|
||||||
@ -91,11 +68,25 @@ Accept pipeline input: False
|
|||||||
Accept wildcard characters: False
|
Accept wildcard characters: False
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### -RemoteHost
|
||||||
|
Specify the host, for which you would like to change the credentials.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
Type: String
|
||||||
|
Parameter Sets: (All)
|
||||||
|
Aliases:
|
||||||
|
|
||||||
|
Required: True
|
||||||
|
Position: Named
|
||||||
|
Default value: None
|
||||||
|
Accept pipeline input: False
|
||||||
|
Accept wildcard characters: False
|
||||||
|
```
|
||||||
|
|
||||||
### -Shared
|
### -Shared
|
||||||
Creates a CredentialStore in the Shared mode.
|
Switch to shared mode with this param.
|
||||||
This enables you to read the CredentialStore Items on
|
This enforces the command to work with a shared CredentialStore which
|
||||||
different systems or profiles.
|
can be decrypted across systems.
|
||||||
In addition you can optionally provide a custom path wit the -Path parameter.
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
Type: SwitchParameter
|
Type: SwitchParameter
|
||||||
@ -110,8 +101,7 @@ Accept wildcard characters: False
|
|||||||
```
|
```
|
||||||
|
|
||||||
### CommonParameters
|
### CommonParameters
|
||||||
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.
|
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).
|
||||||
For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
|
|
||||||
|
|
||||||
## INPUTS
|
## INPUTS
|
||||||
|
|
||||||
@ -119,11 +109,11 @@ For more information, see about_CommonParameters (http://go.microsoft.com/fwlink
|
|||||||
|
|
||||||
## OUTPUTS
|
## OUTPUTS
|
||||||
|
|
||||||
### [None]
|
### [System.Management.Automation.PSCredential]
|
||||||
|
|
||||||
## NOTES
|
## NOTES
|
||||||
\`\`\`
|
\`\`\`
|
||||||
File Name : New-CredentialStore.ps1
|
File Name : Get-CredentialStoreItem.ps1
|
||||||
Author : Marco Blessing - marco.blessing@googlemail.com
|
Author : Marco Blessing - marco.blessing@googlemail.com
|
||||||
Requires :
|
Requires :
|
||||||
\`\`\`
|
\`\`\`
|
||||||
|
@ -119,8 +119,7 @@ Accept wildcard characters: False
|
|||||||
```
|
```
|
||||||
|
|
||||||
### CommonParameters
|
### CommonParameters
|
||||||
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.
|
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).
|
||||||
For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
|
|
||||||
|
|
||||||
## INPUTS
|
## INPUTS
|
||||||
|
|
||||||
|
@ -12,35 +12,35 @@ Locale: en-US
|
|||||||
|
|
||||||
## PSCredentialStore Cmdlets
|
## PSCredentialStore Cmdlets
|
||||||
### [Connect-To](Connect-To.md)
|
### [Connect-To](Connect-To.md)
|
||||||
{{Manually Enter Connect-To Description Here}}
|
Connects to the given host using the stored CredentialStoreItem.
|
||||||
|
|
||||||
### [Disconnect-From](Disconnect-From.md)
|
### [Disconnect-From](Disconnect-From.md)
|
||||||
{{Manually Enter Disconnect-From Description Here}}
|
Terminates a session established with Connect-To using a CredentialStoreItem.
|
||||||
|
|
||||||
### [Get-CredentialStore](Get-CredentialStore.md)
|
### [Get-CredentialStore](Get-CredentialStore.md)
|
||||||
{{Manually Enter Get-CredentialStore Description Here}}
|
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)
|
||||||
{{Manually Enter Get-CredentialStoreItem Description Here}}
|
Returns the Credential from a given remote host item.
|
||||||
|
|
||||||
### [New-CredentialStore](New-CredentialStore.md)
|
### [Get-CredentialStoreItem](Get-CredentialStoreItem.md)
|
||||||
{{Manually Enter New-CredentialStore Description Here}}
|
Returns the Credential from a given remote host item.
|
||||||
|
|
||||||
### [New-CredentialStoreItem](New-CredentialStoreItem.md)
|
### [New-CredentialStoreItem](New-CredentialStoreItem.md)
|
||||||
{{Manually Enter New-CredentialStoreItem Description Here}}
|
Adds a credential store item containing host, user and password to the given store.
|
||||||
|
|
||||||
### [Remove-CredentialStoreItem](Remove-CredentialStoreItem.md)
|
### [Remove-CredentialStoreItem](Remove-CredentialStoreItem.md)
|
||||||
{{Manually Enter Remove-CredentialStoreItem Description Here}}
|
Remove the given credentials from the credential store.
|
||||||
|
|
||||||
### [Set-CredentialStoreItem](Set-CredentialStoreItem.md)
|
### [Set-CredentialStoreItem](Set-CredentialStoreItem.md)
|
||||||
{{Manually Enter Set-CredentialStoreItem Description Here}}
|
Changes the credentials for the given remote host in the store.
|
||||||
|
|
||||||
### [Test-CredentialStore](Test-CredentialStore.md)
|
### [Test-CredentialStore](Test-CredentialStore.md)
|
||||||
{{Manually Enter Test-CredentialStore Description Here}}
|
Returns the credential store state.
|
||||||
|
|
||||||
### [Test-CredentialStoreItem](Test-CredentialStoreItem.md)
|
### [Test-CredentialStoreItem](Test-CredentialStoreItem.md)
|
||||||
{{Manually Enter Test-CredentialStoreItem Description Here}}
|
Checks if the given RemoteHost identifier combination exists in the credential store.
|
||||||
|
|
||||||
### [Test-CSConnection](Test-CSConnection.md)
|
### [Test-CSConnection](Test-CSConnection.md)
|
||||||
{{Manually Enter Test-CSConnection Description Here}}
|
Returns the connection state of a given type to the remote host.
|
||||||
|
|
||||||
|
@ -102,8 +102,7 @@ Accept wildcard characters: False
|
|||||||
```
|
```
|
||||||
|
|
||||||
### CommonParameters
|
### CommonParameters
|
||||||
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.
|
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).
|
||||||
For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
|
|
||||||
|
|
||||||
## INPUTS
|
## INPUTS
|
||||||
|
|
||||||
|
@ -102,8 +102,7 @@ Accept wildcard characters: False
|
|||||||
```
|
```
|
||||||
|
|
||||||
### CommonParameters
|
### CommonParameters
|
||||||
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.
|
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).
|
||||||
For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
|
|
||||||
|
|
||||||
## INPUTS
|
## INPUTS
|
||||||
|
|
||||||
|
@ -61,8 +61,7 @@ Accept wildcard characters: False
|
|||||||
```
|
```
|
||||||
|
|
||||||
### CommonParameters
|
### CommonParameters
|
||||||
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.
|
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).
|
||||||
For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
|
|
||||||
|
|
||||||
## INPUTS
|
## INPUTS
|
||||||
|
|
||||||
|
@ -71,8 +71,7 @@ Accept wildcard characters: False
|
|||||||
```
|
```
|
||||||
|
|
||||||
### CommonParameters
|
### CommonParameters
|
||||||
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.
|
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).
|
||||||
For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
|
|
||||||
|
|
||||||
## INPUTS
|
## INPUTS
|
||||||
|
|
||||||
|
@ -110,8 +110,7 @@ Accept wildcard characters: False
|
|||||||
```
|
```
|
||||||
|
|
||||||
### CommonParameters
|
### CommonParameters
|
||||||
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.
|
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).
|
||||||
For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
|
|
||||||
|
|
||||||
## INPUTS
|
## INPUTS
|
||||||
|
|
||||||
|
@ -182,7 +182,8 @@ function Connect-To {
|
|||||||
FtpMode = 'Passive'
|
FtpMode = 'Passive'
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
$Global:WinSCPSession = New-WinSCPSession @WinSCPConParams
|
$FTPSessionOption = New-WinSCPSessionOption @WinSCPConParams
|
||||||
|
$Global:WinSCPSession = New-WinSCPSession @FTPSessionOption
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
throw "Could not connect to {0} using {1} protocol!" -f $RemoteHost, $Type
|
throw "Could not connect to {0} using {1} protocol!" -f $RemoteHost, $Type
|
||||||
|
@ -32,6 +32,7 @@ function Get-RandomKey {
|
|||||||
[CmdletBinding()]
|
[CmdletBinding()]
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory = $true)]
|
[Parameter(Mandatory = $true)]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
[ValidateSet(16, 24, 32)]
|
[ValidateSet(16, 24, 32)]
|
||||||
[string]$size
|
[string]$size
|
||||||
)
|
)
|
||||||
|
@ -83,14 +83,14 @@ Could not find the required {0} called {1}. Please install the required {0} to r
|
|||||||
}
|
}
|
||||||
|
|
||||||
'PSSnapin' {
|
'PSSnapin' {
|
||||||
if (Get-PSSnapin -Name $Name -Registered) {
|
if (Get-PSSnapin -Name $Name -Registered -ErrorAction SilentlyContinue) {
|
||||||
return $true
|
return $true
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ($StopIfFails) {
|
if ($StopIfFails) {
|
||||||
Write-Error -Message $Message -ErrorAction Stop -Category NotInstalled
|
Write-Error -Message $Message -ErrorAction Stop -Category NotInstalled
|
||||||
return $false
|
|
||||||
}
|
}
|
||||||
|
return $false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,9 +55,9 @@ function New-CredentialStoreItem {
|
|||||||
[ValidateNotNullOrEmpty()]
|
[ValidateNotNullOrEmpty()]
|
||||||
[string]$Identifier,
|
[string]$Identifier,
|
||||||
|
|
||||||
[Parameter(Mandatory = $false)]
|
[Parameter(Mandatory = $false, ValueFromPipeline = $true)]
|
||||||
[ValidateNotNullOrEmpty()]
|
[ValidateNotNullOrEmpty()]
|
||||||
[pscredential]$Credential,
|
[PSCredential]$Credential,
|
||||||
|
|
||||||
[Parameter(Mandatory = $false, ParameterSetName = "Shared")]
|
[Parameter(Mandatory = $false, ParameterSetName = "Shared")]
|
||||||
[switch]$Shared
|
[switch]$Shared
|
||||||
|
@ -53,6 +53,10 @@ function Set-CredentialStoreItem {
|
|||||||
[Parameter(Mandatory = $false, ParameterSetName = "Shared")]
|
[Parameter(Mandatory = $false, ParameterSetName = "Shared")]
|
||||||
[string]$Identifier,
|
[string]$Identifier,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false, ValueFromPipeline = $true)]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
|
[PSCredential]$Credential,
|
||||||
|
|
||||||
[Parameter(Mandatory = $false, ParameterSetName = "Shared")]
|
[Parameter(Mandatory = $false, ParameterSetName = "Shared")]
|
||||||
[switch]$Shared
|
[switch]$Shared
|
||||||
)
|
)
|
||||||
@ -83,18 +87,20 @@ function Set-CredentialStoreItem {
|
|||||||
$CredentialName = $RemoteHost
|
$CredentialName = $RemoteHost
|
||||||
}
|
}
|
||||||
|
|
||||||
$Creds = Get-Credential -Message $CredentialName
|
if (-not($Credential)) {
|
||||||
|
$Credential = Get-Credential -Message $CredentialName
|
||||||
|
}
|
||||||
|
|
||||||
if ($Creds.UserName) {
|
if ($Credential.UserName) {
|
||||||
if ($CSContent.Type -eq "Shared") {
|
if ($CSContent.Type -eq "Shared") {
|
||||||
$Key = Get-ChallengeFile
|
$Key = Get-ChallengeFile
|
||||||
$encypted = ConvertFrom-SecureString -SecureString $Creds.Password -Key $Key
|
$encypted = ConvertFrom-SecureString -SecureString $Credential.Password -Key $Key
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$encypted = ConvertFrom-SecureString -SecureString $Creds.Password
|
$encypted = ConvertFrom-SecureString -SecureString $Credential.Password
|
||||||
}
|
}
|
||||||
if (Get-Member -InputObject $CSContent -Name $CredentialName -Membertype Properties) {
|
if (Get-Member -InputObject $CSContent -Name $CredentialName -Membertype Properties) {
|
||||||
$CSContent.$CredentialName.User = $Creds.UserName
|
$CSContent.$CredentialName.User = $Credential.UserName
|
||||||
$CSContent.$CredentialName.Password = $encypted
|
$CSContent.$CredentialName.Password = $encypted
|
||||||
$CSContent.$CredentialName.Creation = $CurrentDate
|
$CSContent.$CredentialName.Creation = $CurrentDate
|
||||||
ConvertTo-Json -InputObject $CSContent | Out-File -FilePath $Path
|
ConvertTo-Json -InputObject $CSContent | Out-File -FilePath $Path
|
||||||
|
60
tests/ChallengeFile/01_Set-ChallengeFile.Tests.ps1
Normal file
60
tests/ChallengeFile/01_Set-ChallengeFile.Tests.ps1
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
#region HEADER
|
||||||
|
$RepoRoot = (Get-GitDirectory).replace('\.git', '')
|
||||||
|
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.'
|
||||||
|
$sut = $sut -replace "\d{2}`_", ''
|
||||||
|
$suthome = (Get-ChildItem -Path $RepoRoot -Exclude ".\tests\" -Filter $sut -Recurse).FullName
|
||||||
|
# Skip try loading the source file if it doesn't exists.
|
||||||
|
If ($suthome.Length -gt 0) {
|
||||||
|
. $suthome
|
||||||
|
}
|
||||||
|
Else {
|
||||||
|
Write-Warning ("Could not find source file {0}" -f $sut)
|
||||||
|
}
|
||||||
|
|
||||||
|
# load additional functions defined in the repository. Replace the expression <FunctionName>.
|
||||||
|
. (Get-ChildItem -Path $RepoRoot -Filter "Get-RandomKey.ps1" -Recurse).FullName
|
||||||
|
|
||||||
|
#endregion HEADER
|
||||||
|
|
||||||
|
Describe "Set-ChallengeFile" {
|
||||||
|
Context "Tests with custom path" {
|
||||||
|
It "Working dir and path not exist" {
|
||||||
|
{Set-ChallengeFile -Path 'C:\PSCredentialStore\Challenge.bin'} | Should -Not -Throw
|
||||||
|
}
|
||||||
|
It "No parameter and non file should return true" {
|
||||||
|
if (Test-Path -Path ("{0}\PSCredentialStore\Challenge.bin" -f $env:ProgramData)) {
|
||||||
|
Remove-Item -Path ("{0}\PSCredentialStore\Challenge.bin" -f $env:ProgramData)
|
||||||
|
}
|
||||||
|
Set-ChallengeFile
|
||||||
|
Test-Path -Path ("{0}\PSCredentialStore\Challenge.bin" -f $env:ProgramData) | Should -Be $true
|
||||||
|
}
|
||||||
|
It "Existing Credential file should return error" {
|
||||||
|
{ Set-ChallengeFile } | Should -Throw
|
||||||
|
Remove-Item -Path ("{0}\PSCredentialStore\Challenge.bin" -f $env:ProgramData)
|
||||||
|
}
|
||||||
|
It "Use -Force switch should create a new challenge file" {
|
||||||
|
# prepare for test and clean up old data
|
||||||
|
if (Test-Path -Path ("{0}\PSCredentialStore\Challenge.bin" -f $env:ProgramData)) {
|
||||||
|
Remove-Item -Path ("{0}\PSCredentialStore\Challenge.bin" -f $env:ProgramData)
|
||||||
|
}
|
||||||
|
Set-ChallengeFile
|
||||||
|
{ Set-ChallengeFile -Force } | Should -Not -Throw
|
||||||
|
}
|
||||||
|
It "Test directory creation for shared store" {
|
||||||
|
if (Test-Path -Path ("{0}\PSCredentialStore" -f $env:ProgramData)) {
|
||||||
|
Remove-Item -Path ("{0}\PSCredentialStore" -f $env:ProgramData) -Force -Recurse
|
||||||
|
}
|
||||||
|
Set-ChallengeFile
|
||||||
|
Test-Path -Path ("{0}\PSCredentialStore" -f $env:ProgramData) | Should -Be $true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Context "General Exception handling" {
|
||||||
|
Mock New-Item {throw "foobar exception"}
|
||||||
|
It "Test exception handling if the root directory could not be created" {
|
||||||
|
if (Test-Path -Path ("{0}\PSCredentialStore" -f $env:ProgramData)) {
|
||||||
|
Remove-Item -Path ("{0}\PSCredentialStore" -f $env:ProgramData) -Force -Recurse
|
||||||
|
}
|
||||||
|
{ Set-ChallengeFile } | Should -Throw "Could not create the parent data dir"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
38
tests/ChallengeFile/01_Test-ChallengeFile.Tests.ps1
Normal file
38
tests/ChallengeFile/01_Test-ChallengeFile.Tests.ps1
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#region HEADER
|
||||||
|
$RepoRoot = (Get-GitDirectory).replace('\.git', '')
|
||||||
|
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.'
|
||||||
|
$sut = $sut -replace "\d{2}`_", ''
|
||||||
|
$suthome = (Get-ChildItem -Path $RepoRoot -Exclude ".\tests\" -Filter $sut -Recurse).FullName
|
||||||
|
# Skip try loading the source file if it doesn't exists.
|
||||||
|
If ($suthome.Length -gt 0) {
|
||||||
|
. $suthome
|
||||||
|
}
|
||||||
|
Else {
|
||||||
|
Write-Warning ("Could not find source file {0}" -f $sut)
|
||||||
|
}
|
||||||
|
|
||||||
|
# load additional functions defined in the repository. Replace the expression <FunctionName>.
|
||||||
|
#. (Get-ChildItem -Path $RepoRoot -Filter "Test-ChallengeFile.ps1" -Recurse).FullName
|
||||||
|
|
||||||
|
#endregion HEADER
|
||||||
|
|
||||||
|
Describe "Test-ChallengeFile" {
|
||||||
|
Context "Basic input tests" {
|
||||||
|
Mock Test-Path {return $true}
|
||||||
|
It "No parameter with existing challenge file" {
|
||||||
|
{Test-ChallengeFile} | Should -Not -Throw
|
||||||
|
}
|
||||||
|
It "No parameter and existing file should return true" {
|
||||||
|
Test-ChallengeFile | Should -Be $true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Context "Execute with parameter" {
|
||||||
|
$TestChFile = "{0}\resources\cs\Challenge.bin" -f $RepoRoot
|
||||||
|
It "Provide valid path" {
|
||||||
|
Test-ChallengeFile -Path $TestChFile | Should -Be $true
|
||||||
|
}
|
||||||
|
It "Provide fake path" {
|
||||||
|
Test-ChallengeFile -Path "C:\notexisting.bin" | Should -Be $false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
25
tests/Helper/01_Get-ModuleBase.Tests.ps1
Normal file
25
tests/Helper/01_Get-ModuleBase.Tests.ps1
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#region HEADER
|
||||||
|
$RepoRoot = (Get-GitDirectory).replace('\.git', '')
|
||||||
|
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.'
|
||||||
|
$sut = $sut -replace "\d{2}`_", ''
|
||||||
|
$suthome = (Get-ChildItem -Path $RepoRoot -Exclude ".\tests\" -Filter $sut -Recurse).FullName
|
||||||
|
# Skip try loading the source file if it doesn't exists.
|
||||||
|
If ($suthome.Length -gt 0) {
|
||||||
|
. $suthome
|
||||||
|
}
|
||||||
|
Else {
|
||||||
|
Write-Warning ("Could not find source file {0}" -f $sut)
|
||||||
|
}
|
||||||
|
|
||||||
|
# load additional functions defined in the repository. Replace the expression <FunctionName>.
|
||||||
|
# . (Get-ChildItem -Path $RepoRoot -Filter "<FunctionName>.ps1" -Recurse).FullName
|
||||||
|
|
||||||
|
#endregion HEADER
|
||||||
|
|
||||||
|
Describe "Get-ModuleBase" {
|
||||||
|
Context "Basic syntax check" {
|
||||||
|
It "Test1: Should not throw" {
|
||||||
|
{ Get-ModuleBase } | Should -Not -Throw
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
39
tests/Helper/01_Get-RandomKey.Tests.ps1
Normal file
39
tests/Helper/01_Get-RandomKey.Tests.ps1
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#region HEADER
|
||||||
|
$RepoRoot = (Get-GitDirectory).replace('\.git', '')
|
||||||
|
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.'
|
||||||
|
$sut = $sut -replace "\d{2}`_", ''
|
||||||
|
$suthome = (Get-ChildItem -Path $RepoRoot -Exclude ".\tests\" -Filter $sut -Recurse).FullName
|
||||||
|
# Skip try loading the source file if it doesn't exists.
|
||||||
|
If ($suthome.Length -gt 0) {
|
||||||
|
. $suthome
|
||||||
|
}
|
||||||
|
Else {
|
||||||
|
Write-Warning ("Could not find source file {0}" -f $sut)
|
||||||
|
}
|
||||||
|
|
||||||
|
# load additional functions defined in the repository. Replace the expression <FunctionName>.
|
||||||
|
# . (Get-ChildItem -Path $RepoRoot -Filter "<FunctionName>.ps1" -Recurse).FullName
|
||||||
|
|
||||||
|
#endregion HEADER
|
||||||
|
|
||||||
|
Describe "Get-RandomKey" {
|
||||||
|
Context "Basic input tests" {
|
||||||
|
It "Test1: Should throw if wrong size is given" {
|
||||||
|
{Get-RandomKey -size 43} | Should -Throw
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Context "Basic syntax check" {
|
||||||
|
It "Test1: Should return a key with a length of 16" {
|
||||||
|
$Key = Get-RandomKey -size 16
|
||||||
|
$Key.length | Should -Be 16
|
||||||
|
}
|
||||||
|
It "Test2: Should return a key with a length of 24" {
|
||||||
|
$Key = Get-RandomKey -size 24
|
||||||
|
$Key.length | Should -Be 24
|
||||||
|
}
|
||||||
|
It "Test3: Should return a key with a length of 32" {
|
||||||
|
$Key = Get-RandomKey -size 32
|
||||||
|
$Key.length | Should -Be 32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
65
tests/Helper/01_Test-Module.Tests.ps1
Normal file
65
tests/Helper/01_Test-Module.Tests.ps1
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
#region HEADER
|
||||||
|
$RepoRoot = (Get-GitDirectory).replace('\.git', '')
|
||||||
|
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.'
|
||||||
|
$sut = $sut -replace "\d{2}`_", ''
|
||||||
|
$suthome = (Get-ChildItem -Path $RepoRoot -Exclude ".\tests\" -Filter $sut -Recurse).FullName
|
||||||
|
# Skip try loading the source file if it doesn't exists.
|
||||||
|
If ($suthome.Length -gt 0) {
|
||||||
|
. $suthome
|
||||||
|
}
|
||||||
|
Else {
|
||||||
|
Write-Warning ("Could not find source file {0}" -f $sut)
|
||||||
|
}
|
||||||
|
|
||||||
|
# load additional functions defined in the repository. Replace the expression <FunctionName>.
|
||||||
|
#. (Get-ChildItem -Path $RepoRoot -Filter "<FunctionName>.ps1" -Recurse).FullName
|
||||||
|
|
||||||
|
#endregion HEADER
|
||||||
|
|
||||||
|
Describe "Test-ModuleName" {
|
||||||
|
Context "Basic input tests" {
|
||||||
|
It "Testing standard module should not throw" {
|
||||||
|
{ Test-Module -Name 'PowerShellGet' -Type Module } | Should -Not -Throw
|
||||||
|
}
|
||||||
|
It "Existing module should return true" {
|
||||||
|
Test-Module -Name 'PowerShellGet' -Type Module | Should -Be $true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Context "Custom Type tests" {
|
||||||
|
It "Using custom type should throw" {
|
||||||
|
{ Test-Module -Name "foobarr" -Type Custom} | Should -Throw
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Context "Working with PSSnapins" {
|
||||||
|
It "Loading first PSSnaping should not throw " {
|
||||||
|
$Snap = Get-PSSnapin -Registered | Select-Object -First 1
|
||||||
|
{ Test-Module -Name $Snap.Name -Type PSSnapin } | Should -Not -Throw
|
||||||
|
}
|
||||||
|
It "Loading first PSSnaping should return true" {
|
||||||
|
$Snap = Get-PSSnapin -Registered | Select-Object -First 1
|
||||||
|
Test-Module -Name $Snap.Name -Type PSSnapin | Should -Be $true
|
||||||
|
}
|
||||||
|
It "Not existing PSSnaping should return false" {
|
||||||
|
Test-Module -Name 'foobar2000' -Type PSSnapin | Should -Be $false
|
||||||
|
}
|
||||||
|
It "StopifFails switch should thrown an error" {
|
||||||
|
{Test-Module -Name 'foobar2000' -Type PSSnapin -StopIfFails }| Should -Throw
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Context "Working with modules" {
|
||||||
|
It "Loading first module should not throw " {
|
||||||
|
$Mod = Get-Module -ListAvailable | Select-Object -First 1
|
||||||
|
{ Test-Module -Name $Mod.Name -Type Module } | Should -Not -Throw
|
||||||
|
}
|
||||||
|
It "Loading first module should return true" {
|
||||||
|
$Snap = Get-Module -ListAvailable | Select-Object -First 1
|
||||||
|
Test-Module -Name $Snap.Name -Type Module | Should -Be $true
|
||||||
|
}
|
||||||
|
It "Not existing module should return false" {
|
||||||
|
Test-Module -Name 'foobar2000' -Type Module | Should -Be $false
|
||||||
|
}
|
||||||
|
It "StopifFails switch should thrown an error" {
|
||||||
|
{Test-Module -Name 'foobar2000' -Type Module -StopIfFails }| Should -Throw
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -61,5 +61,53 @@ Describe "New-CredentialStoreItem" {
|
|||||||
$res = Get-Member -InputObject $tmpCS -Name $RemoteHost -Membertype Properties
|
$res = Get-Member -InputObject $tmpCS -Name $RemoteHost -Membertype Properties
|
||||||
$res.Name | Should Be $RemoteHost
|
$res.Name | Should Be $RemoteHost
|
||||||
}
|
}
|
||||||
|
It "Adds Item with identifier to shared store" {
|
||||||
|
$tmpCS = 'C:\CredentialStore.json'
|
||||||
|
$UserName = "myuser"
|
||||||
|
$Password = ConvertTo-SecureString -String "mypasswd" -AsPlainText -Force
|
||||||
|
$mycreds = New-Object -TypeName PSCredential -ArgumentList $UserName, $Password
|
||||||
|
$RemoteHost = "foobar2"
|
||||||
|
New-CredentialStoreItem -Path $tmpCS -RemoteHost $RemoteHost -Credential $mycreds -Identifier 'Foo'
|
||||||
|
$writtenItem = Get-CredentialStoreItem -Path $tmpCS -RemoteHost $RemoteHost -Identifier 'Foo'
|
||||||
|
($writtenItem.UserName -eq $UserName) -and ($writtenItem.Password.Length -gt 0) | Should -Be $true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Context "Test optional parameter lookup" {
|
||||||
|
Mock Get-Credential {
|
||||||
|
$UserName = 'testuser'
|
||||||
|
$Password = ConvertTo-SecureString -String "mypasswd" -AsPlainText -Force
|
||||||
|
return [PSCredential]::new($UserName, $Password)
|
||||||
|
|
||||||
|
}
|
||||||
|
It "Test missing Credential" {
|
||||||
|
$tmpCS = 'C:\CredentialStore.json'
|
||||||
|
New-CredentialStoreItem -Path $tmpCs -Shared -RemoteHost 'foobar3'
|
||||||
|
$writtenItem = Get-CredentialStoreItem -Path $tmpCS -Shared -RemoteHost 'foobar3'
|
||||||
|
$writtenItem.UserName | Should -Be "testuser"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Context "General Exception handling" {
|
||||||
|
Mock Test-CredentialStore {return $false}
|
||||||
|
Mock Get-Credential {
|
||||||
|
$UserName = 'myUser'
|
||||||
|
$Password = ConvertTo-SecureString -String "mypasswd" -AsPlainText -Force
|
||||||
|
return [PSCredential]::new($UserName, $Password)
|
||||||
|
|
||||||
|
}
|
||||||
|
It "Missing CredentialStore should throw" {
|
||||||
|
{ New-CredentialStoreItem -Path 'C:\missingStore.json' -RemoteHost 'notrelevant' } | Should -Throw "Could not add anything"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Context "Testing pipeline paramter" {
|
||||||
|
It "Add the item with credential value from pipe" {
|
||||||
|
$UserName = 'pipeUser'
|
||||||
|
$Password = ConvertTo-SecureString -String "pipePasswd" -AsPlainText -Force
|
||||||
|
{ [PSCredential]::new($UserName, $Password) | New-CredentialStoreItem -RemoteHost 'PipeHost' } | Should -Not -Throw
|
||||||
|
}
|
||||||
|
|
||||||
|
It "Testing written item" {
|
||||||
|
(Get-CredentialStoreItem -RemoteHost 'PipeHost').UserName | Should -Be 'pipeUser'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -33,5 +33,15 @@ Describe "Get-CredentialStore" {
|
|||||||
|
|
||||||
{Get-CredentialStore -Path $TestCredentialStore} | Should Not Throw
|
{Get-CredentialStore -Path $TestCredentialStore} | Should Not Throw
|
||||||
}
|
}
|
||||||
|
It "Test3: Not existing path should return false" {
|
||||||
|
{ Get-CredentialStore -Path 'C:\foobar\CredentialStore.json' -Shared }| Should -Throw "Could not find the CredentialStore."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Context "Testing invalid json data" {
|
||||||
|
Mock Test-CredentialStore {return $true}
|
||||||
|
Mock Get-Content {return '"foo":"bar",'}
|
||||||
|
It "Should throw with invalid CredentialStore" {
|
||||||
|
{ Get-Credentialstore -Path "C:\dummy.json"} | Should -Throw "Unknown CredentialStore format. Invalid JSON file."
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,6 +92,12 @@ Describe "New-CredentialStore" {
|
|||||||
{New-CredentialStore -Path $pCS -Shared -Force} | Should Not Throw
|
{New-CredentialStore -Path $pCS -Shared -Force} | Should Not Throw
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Context "Test exception handling" {
|
||||||
|
Mock Out-File {throw "foobar exception"}
|
||||||
|
It "JSON Converstion should fail and throw" {
|
||||||
|
{ New-CredentialStore -Path "C:\dummy.json"} | Should -Throw
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Cleanup test stores and restore existing ones.
|
# Cleanup test stores and restore existing ones.
|
||||||
|
@ -36,5 +36,14 @@ Describe "Test-CredentialStore" {
|
|||||||
$res | Should Be $False
|
$res | Should Be $False
|
||||||
$WarningPreference = $oWarningPreference
|
$WarningPreference = $oWarningPreference
|
||||||
}
|
}
|
||||||
|
It "Test4: Not existing path should return false" {
|
||||||
|
Test-CredentialStore -Path 'C:\foobar\CredentialStore.json' | Should -Be $false
|
||||||
|
}
|
||||||
|
It "Test5: testing private CredentialStore path" {
|
||||||
|
if (Test-Path -Path ("{0}\CredentialStore.json" -f $env:APPDATA) ) {
|
||||||
|
Remove-Item -Path ("{0}\CredentialStore.json" -f $env:APPDATA)
|
||||||
|
}
|
||||||
|
Test-CredentialStore | Should -Be $false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -154,7 +154,6 @@ Function Invoke-CoverageReport() {
|
|||||||
[String]$RepoToken = $Env:CoverallsToken
|
[String]$RepoToken = $Env:CoverallsToken
|
||||||
)
|
)
|
||||||
|
|
||||||
Import-Module ('.\src\{0}.psm1' -f $CALLSIGN) -Verbose -Force
|
|
||||||
$FileMap = New-PesterFileMap -SourceRoot '.\src' -PesterRoot '.\tests'
|
$FileMap = New-PesterFileMap -SourceRoot '.\src' -PesterRoot '.\tests'
|
||||||
$CoverageReport = New-CoverageReport -PesterFileMap $FileMap -RepoToken $RepoToken
|
$CoverageReport = New-CoverageReport -PesterFileMap $FileMap -RepoToken $RepoToken
|
||||||
Write-Host "CoverageReport JSON:" -ForegroundColor Yellow
|
Write-Host "CoverageReport JSON:" -ForegroundColor Yellow
|
||||||
|
Reference in New Issue
Block a user