# 02-OpenTextCSF.ps1 — Deploy OpenText HostExplorer CSF profiles (baseline) # Copies connection profiles, keymaps, menus, and macros to ProgramData. $setupDir = Split-Path -Parent $MyInvocation.MyCommand.Path $csfSource = Join-Path $setupDir "csf" $destRoot = "C:\ProgramData\Hummingbird\Connectivity\15.00\Shared" if (-not (Test-Path $csfSource)) { Write-Warning "CSF source folder not found at $csfSource - skipping." return } Write-Host "Deploying OpenText CSF profiles to $destRoot ..." # Map of source subdirectories to destination subdirectories $folders = @( @{ Src = "Profile"; Dest = "Profile" } @{ Src = "Accessories\EB"; Dest = "Accessories\EB" } @{ Src = "HostExplorer\Keymap"; Dest = "HostExplorer\Keymap" } @{ Src = "HostExplorer\Menu"; Dest = "HostExplorer\Menu" } ) foreach ($folder in $folders) { $src = Join-Path $csfSource $folder.Src $dest = Join-Path $destRoot $folder.Dest if (-not (Test-Path $src)) { Write-Host " Skipping $($folder.Src) (not present in csf source)" continue } if (-not (Test-Path $dest)) { New-Item -Path $dest -ItemType Directory -Force | Out-Null Write-Host " Created $dest" } $files = Get-ChildItem -Path $src -File foreach ($file in $files) { Copy-Item -Path $file.FullName -Destination $dest -Force Write-Host " Copied $($file.Name) -> $dest" } } # Copy pre-made .lnk shortcuts to Public Desktop $lnkFiles = Get-ChildItem -Path $csfSource -Filter "*.lnk" -File foreach ($lnk in $lnkFiles) { Copy-Item -Path $lnk.FullName -Destination "C:\Users\Public\Desktop" -Force Write-Host " Copied $($lnk.Name) -> Public Desktop" } Write-Host "OpenText CSF deployment complete."