- SOPS+age credential vault created (59 encrypted files, separate repo) - Updated CLAUDE.md credential access to reference SOPS vault - Updated memory for ACG-5070 (Windows 11, replaces CachyOS) - SC-Syncro sync script: enriched 410 SC sessions with company/device data - Syncro scripts: SC property updater, SC deployer, rogue SC killer - Session log with full details Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
61 lines
2.9 KiB
PowerShell
61 lines
2.9 KiB
PowerShell
# Syncro Script: Install ScreenConnect with Company Properties
|
|
#
|
|
# Syncro Platform Variables (set in script editor):
|
|
# $MachineName - platform - {{asset_name}}
|
|
# $OrgName - platform - {{customer_business_name_or_customer_name}}
|
|
#
|
|
# Required File:
|
|
# ScreenConnect.ClientSetup.msi -> c:\screenconnectinstaller.msi
|
|
# (Download from SC Admin > Build Installer > Access > Windows MSI)
|
|
#
|
|
# File Type: PowerShell | Run as: System | Max Run Time: 10 minutes
|
|
|
|
Import-Module $env:SyncroModule
|
|
|
|
$InstallerLocation = 'C:\screenconnectinstaller.msi'
|
|
|
|
# URL-encode spaces in names for SERVICE_ARGUMENTS
|
|
$MachineName = $MachineName -replace '\s','%20'
|
|
$OrgName = $OrgName -replace '\s','%20'
|
|
|
|
# Detect device type from chassis
|
|
$DeviceType = "Desktop"
|
|
try {
|
|
$chassis = (Get-CimInstance -ClassName Win32_SystemEnclosure).ChassisTypes
|
|
if ($chassis | Where-Object { $_ -in @(8,9,10,11,12,14,18,21,31,32) }) { $DeviceType = "Laptop" }
|
|
if ($chassis | Where-Object { $_ -in @(17,23) }) { $DeviceType = "Server" }
|
|
$model = (Get-CimInstance -ClassName Win32_ComputerSystem).Model
|
|
if ($model -match "Virtual|VMware|VirtualBox|Hyper-V|KVM|Xen") { $DeviceType = "Virtual%20$DeviceType" }
|
|
} catch {}
|
|
|
|
# Check if already installed
|
|
$SCService = Get-Service -Name "ScreenConnect Client*" -ErrorAction SilentlyContinue
|
|
if ($SCService) {
|
|
Write-Host "ScreenConnect already installed: $($SCService.Name)"
|
|
Log-Activity -Message "SC Deploy: Already installed ($($SCService.Name))" -EventName "ScreenConnect"
|
|
exit 0
|
|
}
|
|
|
|
# Build SERVICE_ARGUMENTS with custom properties
|
|
# c=Company&c=Site&c=Department&c=DeviceType&c=Tag&c=&c=&c=
|
|
$ServiceArgs = "SERVICE_ARGUMENTS=""?e=Access&y=Guest&h=computerguru.screenconnect.com&p=443&k=BgIAAACkAABSU0ExAAgAAAEAAQCZmJAsjX2QoAvu/VF8SV7ggAxARlSj/TwgdqA8NcZgw9q+6G/FWwABU2WOeGPvRu6rA+sECP+u11d1BOp16iWA+KbkJPT93TIctreTy/BegdplEL5Bq0L3ZJcim++PLZjwYLDaIotdnOl+24JqkV75DxC1MV9dKNkz5DqS1+jNVMBvpOLY8UgPc9Io71pNIMo/rakJNlT4ofNeJiKIfuwRtgNNYKb51vSHGyFPYtHVNjDNYlJeu320yNJdN0zWwSQst/2GR3hAX8SnzJcZeROZ3HJuJc63uT0KS4ie4+4ExKaUimtfl8oAqIp4vBwiEXhm8T5RKhx9hLiJj/5shza8&c=$OrgName&c=&c=&c=$DeviceType&c=Syncro-Deploy&c=&c=&c="""
|
|
|
|
$installparams = '/i', $InstallerLocation, $ServiceArgs
|
|
$uninstallparams = '/uninstall', $InstallerLocation, '/qb'
|
|
|
|
# Install
|
|
Write-Host "Installing ScreenConnect for $OrgName ($DeviceType)..."
|
|
$exitCode = (Start-Process -FilePath msiexec.exe -ArgumentList $installparams -Wait -Passthru).ExitCode
|
|
|
|
if ($exitCode -eq 0 -or $exitCode -eq 3010) {
|
|
Write-Host "ScreenConnect installed successfully (exit code: $exitCode)"
|
|
Log-Activity -Message "SC Deploy: Installed for '$OrgName' ($DeviceType)" -EventName "ScreenConnect"
|
|
} else {
|
|
Write-Host "Installation failed with exit code: $exitCode"
|
|
Log-Activity -Message "SC Deploy FAILED: exit code $exitCode" -EventName "ScreenConnect"
|
|
exit 1
|
|
}
|
|
|
|
# Cleanup
|
|
Remove-Item -Path $InstallerLocation -Force -ErrorAction SilentlyContinue
|