# 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. # Alternately, your script can also handle errors in a Try/Catch block. $ErrorActionPreference = "Stop" # Check BssCfgManip.htm in your SSH Server installation directory for the correct COM object name for your installation. # The PowerShell instance executing this script needs to run elevated, as administrator, to access SSH Server settings. $cfg = new-object -com "BssCfg815.BssCfg815" # Settings must be locked while undergoing change to preserve their integrity. # If you lock settings and do not unlock them, no other process will be able to edit settings until the object is released. $cfg.settings.Lock() $result = $cfg.settings.Load() if ($result.failure) { Write-Error $result.Describe() } # Create a new virtual account settings entry $cfg.settings.access.virtAccounts.new.virtAccount = "User" $cfg.settings.access.virtAccounts.new.virtPassword.Set("abcd") $cfg.settings.access.virtAccounts.new.group = "Virtual Users" # Add a sample server-configured, client-to-server port forwarding rule $cfg.settings.access.virtAccounts.new.fwding.srvSideC2S.ipv4.new.listenIntf = "127.0.0.1" $cfg.settings.access.virtAccounts.new.fwding.srvSideC2S.ipv4.new.listenPort = 10080 $cfg.settings.access.virtAccounts.new.fwding.srvSideC2S.ipv4.new.targetHost = "127.0.0.1" $cfg.settings.access.virtAccounts.new.fwding.srvSideC2S.ipv4.new.targetPort = 80 $cfg.settings.access.virtAccounts.new.fwding.srvSideC2S.ipv4.new.proxyProfile = "Default" $cfg.settings.access.virtAccounts.new.fwding.srvSideC2S.ipv4.NewCommit() # Add a sample server-configured, server-to-client port forwarding rule $cfg.settings.access.virtAccounts.new.fwding.srvSideS2C.ipv4.new.listenIntf = "127.0.0.1" $cfg.settings.access.virtAccounts.new.fwding.srvSideS2C.ipv4.new.listenPort = 13306 $cfg.settings.access.virtAccounts.new.fwding.srvSideS2C.ipv4.new.targetHost = "127.0.0.1" $cfg.settings.access.virtAccounts.new.fwding.srvSideS2C.ipv4.new.targetPort = 3306 $cfg.settings.access.virtAccounts.new.fwding.srvSideS2C.ipv4.NewCommit() # Commit the new virtual account settings entry $cfg.settings.access.virtAccounts.NewCommit() # Save and unlock server settings $cfg.settings.Save() $cfg.settings.Unlock()