Public/Update-AccountFiles.ps1


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

#må kanskje fjerne statisk paths til å bruke et parameter.
<#
  
.DESCRIPTION
 Gets active Autotask Accounts and stores them as securestrings
With the -Folder parameter you have to paste the path as the running instance. ergo the parent folder to where \Crypt is located, not the folder 'crypt' itself.
#>
 
function Update-AccountFiles
{
    param (
        [Switch]$Delete,
        $Folder
    )
    if ($Folder -eq $Null) {
        $Folder = (Get-Location).Path
    }
    if ((Test-Path "$Folder\Crypt") -eq $false) {
        Write-Error ('Did not find Crypt folder in dir {0}' -f (Get-Location))
        exit
    }
    if ($Delete -eq $false)
    {
        
    }
    else 
    {
        write-output "Sletter Filer for oppdatering"
        Get-ChildItem "$Folder\Crypt\*.txt" | ForEach-Object {
            Remove-Item $_
        }
        Wait-Event -Timeout 0.5
    }
        $p = 0
        write-output "Henter kunder fra atws"
        $accounts = Get-AtwsAccount -Active $true
        $accountscsv = $accounts | ConvertTo-Csv
        $int = 50
        for ($i = 0; $i -lt $accountscsv.Count; $i+=50) {
            $t = $accountscsv[$i..$int]
            $int += 50

            $sec = $t | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString
            Set-Content "$Folder\Crypt\$($i)ec.txt" $sec
            Write-Progress -Activity "Encrypting files" -Status "Progress:" -PercentComplete ($p/$accountscsv.Count*100)
            $p++
        }
        Write-Output 'Oppdaterte Kundefiler'
}