mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-25 03:41:25 -07:00
Feature/win stat extra info (#19148)
* Added more return results to win_stat * Changed Win2012 methods to support older versions in setup * staging of the tests to work with older servers
This commit is contained in:
parent
a655e90e41
commit
971783a7fd
8 changed files with 925 additions and 108 deletions
|
@ -225,14 +225,28 @@ Function Parse-Args($arguments, $supports_check_mode = $false)
|
|||
|
||||
# Helper function to calculate a hash of a file in a way which powershell 3
|
||||
# and above can handle:
|
||||
Function Get-FileChecksum($path)
|
||||
Function Get-FileChecksum($path, $algorithm = 'sha1')
|
||||
{
|
||||
If (Test-Path -PathType Leaf $path)
|
||||
{
|
||||
$sp = new-object -TypeName System.Security.Cryptography.SHA1CryptoServiceProvider;
|
||||
$fp = [System.IO.File]::Open($path, [System.IO.Filemode]::Open, [System.IO.FileAccess]::Read, [System.IO.FileShare]::ReadWrite);
|
||||
$hash = [System.BitConverter]::ToString($sp.ComputeHash($fp)).Replace("-", "").ToLower();
|
||||
$fp.Dispose();
|
||||
switch ($algorithm)
|
||||
{
|
||||
'md5' { $sp = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider }
|
||||
'sha1' { $sp = New-Object -TypeName System.Security.Cryptography.SHA1CryptoServiceProvider }
|
||||
'sha256' { $sp = New-Object -TypeName System.Security.Cryptography.SHA256CryptoServiceProvider }
|
||||
'sha384' { $sp = New-Object -TypeName System.Security.Cryptography.SHA384CryptoServiceProvider }
|
||||
'sha512' { $sp = New-Object -TypeName System.Security.Cryptography.SHA512CryptoServiceProvider }
|
||||
default { Fail-Json (New-Object PSObject) "Unsupported hash algorithm supplied '$algorithm'" }
|
||||
}
|
||||
|
||||
If ($PSVersionTable.PSVersion.Major -ge 4) {
|
||||
$raw_hash = Get-FileHash $path -Algorithm $algorithm
|
||||
$hash = $raw_hash.Hash.ToLower()
|
||||
} Else {
|
||||
$fp = [System.IO.File]::Open($path, [System.IO.Filemode]::Open, [System.IO.FileAccess]::Read, [System.IO.FileShare]::ReadWrite);
|
||||
$hash = [System.BitConverter]::ToString($sp.ComputeHash($fp)).Replace("-", "").ToLower();
|
||||
$fp.Dispose();
|
||||
}
|
||||
}
|
||||
ElseIf (Test-Path -PathType Container $path)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue