Public/Get-AccountFiles.ps1

<#PSScriptInfo
 
.VERSION 1.0
 
.GUID 936baf47-0936-4906-be5b-581a123f5d0d
 
.AUTHOR Bjørn Wolstad
 
.COMPANYNAME Office Center Høneffoss AS
 
.COPYRIGHT
 
.TAGS
 
.LICENSEURI
 
.PROJECTURI
 
.ICONURI
 
.EXTERNALMODULEDEPENDENCIES
 
.REQUIREDSCRIPTS
 
.EXTERNALSCRIPTDEPENDENCIES
 
.RELEASENOTES
 
 
.PRIVATEDATA
 
#>


<#
  
.DESCRIPTION
 Gets active Autotask Accounts and stores them as securestrings
To start the form run Start-OCHAutotaskForm. It installs and or updated needed modules if run as administrator.
 
This function returns the values inside the stores securestringfiles. Decrypts them if you will.
 Sources:
    https://stackoverflow.com/questions/40617800/opening-powershell-script-and-hide-command-prompt-but-not-the-gui
    https://www.reddit.com/r/PowerShell/comments/7ziv37/print_a_word_document_to_a_specific_printer/
    https://foxdeploy.com/2015/05/14/part-iii-using-advanced-gui-elements-in-powershell/
    http://serverfixes.com/powershell-radiobuttons
#>
 

function Get-AccountFiles ($Folder)
{    
    if ($Folder -eq $null) {
        $Folder = (Get-Location).Path.ToString()
    }
    if ((Test-Path "$Folder\Crypt") -eq $false) {
        Write-Error ('Did not find Crypt folder in dir {0}' -f (Get-Location))
        Break        
    }
    $ATWSuser = Get-Content "C:\temp\ATWSuser.txt"
    $r = 0
    $decrypt = @()
    Get-ChildItem "$Folder\Crypt\*.txt" | Sort-Object { [regex]::Replace($_.Name, '\d+', { $args[0].Value.PadLeft(20) }) } | ForEach-Object{
        $ecreds = @()
        $secaccountsfile = Get-Content $_
        $secfile = $secaccountsfile | Convertto-SecureString
        ForEach ($s in $secfile){
            $ecreds = New-Object System.Management.Automation.PSCredential -ArgumentList $ATWSuser, $s
            $decrypt += $ecreds.GetNetworkCredential().Password
        }#end foreach
    }#end Foreach-Object
    $r = $decrypt | ConvertFrom-Csv
    Return $r
}