# If there's an error in a call such as $cfg.settings.Lock(), it is important that the script stops. # Continuing while another application is also potentially modifying settings may corrupt them. $ErrorActionPreference = "Stop" # The PowerShell instance executing this script needs to run elevated, as administrator, to access SSH Server settings. $cfg = new-object -com "Bitvise.BssCfg" foreach ($instance in $cfg.instances.entries) { if (-not $instance.canManage) { Write-Host "SSH Server instance '$($instance.name)' cannot be managed using the available COM object" } else { Write-Host "Checking SSH Server instance '$($instance.name)'" $cfg.SetInstance($instance.name) $cfg.instanceSettings.Lock() try { $cfg.instanceSettings.Load() if ($cfg.instanceSettings.update.updateType -eq 0) { Write-Host "Automatic checks for updates are disabled for instance '$($instance.name)'" } else { Write-Host "Disabling automatic update checks for instance '$($instance.name)'" $cfg.instanceSettings.update.updateType = 0 # $cfg.enums.AutomaticUpdatesType.doNotCheck $cfg.instanceSettings.Save() } } finally { $cfg.instanceSettings.Unlock() } } }