# 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" # 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() try { $cfg.settings.Load() # 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() } finally { $cfg.settings.Unlock() }