$Params = New-Object -ComObject 'klakaut.KlAkParams'; $Params.Add('Address', 'localhost:13000'); $Params.Add('UseSSL', $true); $Proxy = New-Object -ComObject 'klakaut.KlAkProxy'; try { $Proxy.Connect($Params); $Proxy.Disconnect(); } catch { $_; } Remove-Variable -Name 'Params'; Remove-Variable -Name 'Proxy';
Exception calling "Connect" with "1" argument(s): "Transport level error while connecting to http://localhost:13000: authentication failure" At line:7 char:5 + $Proxy.Connect($Params); + ~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ComMethodTargetInvocation
$ Params = New-Object -ComObject 'klakaut.KlAkParams'; $ Params.Add ('Address', 'localhost: 13000'); $ Params.Add ('UseSSL', $ true); # ------------ We set explicitly the login data ------------------------------ - $ Params.Add ('User', 'kavadmin'); $ Params.Add ('Password', 'P @ ssw0rd'); $ Params.Add ('Domain', 'test'); # ------------------------------------------------- ---------------------------------- $ Proxy = New-Object -ComObject 'klakaut.KlAkProxy'; try { $ Proxy.Connect ($ Params); $ Proxy.Disconnect (); } Remove-Variable -Name 'Params'; Remove-Variable -Name 'Proxy';
It is necessary to set in the settings of COM, in the tab Default Properties:
Default Authentication Level: Packet
Default Impersonation Level: Delegate
$ Params = New-Object -ComObject 'klakaut.KlAkParams'; $ Params.Add ('Address', 'localhost: 13000'); $ Params.Add ('UseSSL', $ true); $ Proxy = New-Object -ComObject 'klakaut.KlAkProxy'; $ code = @ " using System; using System.Runtime.InteropServices; public class PowershellComSecurity { [DllImport ("Ole32.dll", CharSet = CharSet.Auto)] public static extern int CoSetProxyBlanket (IntPtr p0, uint p1, uint p2, uint p3, uint p4, uint p5, IntPtr p6, uint p7); public static int EnableImpersonation (object objDCOM) {return CoSetProxyBlanket (Marshal.GetIDispatchForObject (objDCOM), 10, 0, 0, 0, 3, IntPtr.Zero, 0); } } "@ Add-Type -TypeDefinition $ code; Remove-Variable -Name 'code'; [PowershellComSecurity] :: EnableImpersonation ($ Proxy) | Out-null; try { $ Proxy.Connect ($ Params); # <- here we will insert the code $ Proxy.Disconnect (); } catch { $ _; } Remove-Variable -Name 'Params'; Remove-Variable -Name 'Proxy';
try { $ Proxy.Connect ($ Params); $ KSCHost = New-Object -ComObject 'klakaut.KlAkHosts2'; $ KSCHost.AdmServer = $ Proxy; $ HostParams = New-Object -ComObject 'klakaut.KlAkCollection'; $ HostParams.SetSize (1); $ HostParams.SetAt (0, 'KLHST_WKS_DN'); ($ KSCHost.GetHostInfo ($ Proxy.GetProp ('KLADMSRV_SERVER_HOSTNAME'), $ HostParams)). Item ('KLHST_WKS_DN'); Remove-Variable -Name 'HostParams'; Remove-Variable -Name 'KSCHost'; $ Proxy.Disconnect (); }
Returns host's settings as setting storage.
try { $ Proxy.Connect ($ Params); $ KSCHost = New-Object -ComObject 'klakaut.KlAkHosts2'; $ KSCHost.AdmServer = $ Proxy; $ KSCSettings = $ KSCHost.GetHostSettings ($ Proxy.GetProp ('KLADMSRV_SERVER_HOSTNAME'), 'SS_SETTINGS'); $ KSCSettings.Enum () | % { '------------------------'; $ tmp = $ _; $ tmp | % {"$ _ = $ ($ tmp.Item ($ _))";}; Remove-Variable -Name 'tmp'; }; Remove-Variable -Name 'KSCSettings'; Remove-Variable -Name 'KSCHost'; $ Proxy.Disconnect (); }
------------------------ PRODUCT = .core SECTION = SubscriptionData VERSION = .independent ------------------------ PRODUCT = 1093 SECTION = 85 VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = 87 VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = KLEVP_NF_SECTION VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = KLNAG_SECTION_DPNS VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = KLSRV_CONSRVINIT VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = KLSRV_CONSRVUPGRADE VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = KLSRV_DEF_NAGENT_PACKAGE VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = KLSRV_MASTER_SRV VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = KLSRV_NETSIZE_SECTION VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = KLSRV_PKG_ANDROID_CERT_SECTION VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = KLSRV_PROXY_SECTION VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = KLSRV_SRVLIC_SECTION VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = KLSRV_USER_ACCOUNTS_SECTION VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = KSNPROXY_KEY_STORAGE VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = KSNPROXY_SETTINGS VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = Packages VERSION = 1.0.0.0 ------------------------ PRODUCT = 1093 SECTION = Updater VERSION = 1.0.0.0 ------------------------ PRODUCT = 1103 SECTION = 85 VERSION = 1.0.0.0 ------------------------ PRODUCT = 1103 SECTION = 86 VERSION = 1.0.0.0 ------------------------ PRODUCT = 1103 SECTION = FileTransfer VERSION = 1.0.0.0 ------------------------ PRODUCT = 1103 SECTION = KLEVP_NF_SECTION VERSION = 1.0.0.0 ------------------------ PRODUCT = 1103 SECTION = KLNAG_KLNLA_DATA VERSION = 1.0.0.0 ------------------------ PRODUCT = 1103 SECTION = KLNAG_SECTION_NETSCAN VERSION = 1.0.0.0 ------------------------ PRODUCT = 1103 SECTION = KLNAG_SECTION_SERVERDATA VERSION = 1.0.0.0 ------------------------ PRODUCT = 1103 SECTION = Updater VERSION = 1.0.0.0 ------------------------ PRODUCT = KAVFSEE SECTION = .KLNAG_SECTION_REBOOT_REQUEST VERSION = 8.0.0.0 ------------------------ PRODUCT = KAVFSEE SECTION = 85 VERSION = 8.0.0.0 ------------------------ PRODUCT = KAVFSEE SECTION = Backup section VERSION = 8.0.0.0 ------------------------ PRODUCT = KAVFSEE SECTION = Business logic section VERSION = 8.0.0.0 ------------------------ PRODUCT = KAVFSEE SECTION = HSM system section VERSION = 8.0.0.0 ------------------------ PRODUCT = KAVFSEE SECTION = Internal product info VERSION = 8.0.0.0 ------------------------ PRODUCT = KAVFSEE SECTION = KLEVP_NF_SECTION VERSION = 8.0.0.0 ------------------------ PRODUCT = KAVFSEE SECTION = Notification section VERSION = 8.0.0.0 ------------------------ PRODUCT = KAVFSEE SECTION = Predefined tasks section VERSION = 8.0.0.0 ------------------------ PRODUCT = KAVFSEE SECTION = Quarantine section VERSION = 8.0.0.0 ------------------------ PRODUCT = KAVFSEE SECTION = Reporting section VERSION = 8.0.0.0 ------------------------ PRODUCT = KAVFSEE SECTION = Trusted processes section VERSION = 8.0.0.0
try { $ Proxy.Connect ($ Params); $ KSCHost = New-Object -ComObject 'klakaut.KlAkHosts2'; $ KSCHost.AdmServer = $ Proxy; $ KSCSettings = $ KSCHost.GetHostSettings ($ Proxy.GetProp ('KLADMSRV_SERVER_HOSTNAME'), 'SS_SETTINGS'); $ KSCSettings.Read ('1093', '1.0.0.0', '85'); '-----------------'; $ KSCSettings.Read ('1093', '1.0.0.0', '87'); Remove-Variable -Name 'KSCSettings'; Remove-Variable -Name 'KSCHost'; $ Proxy.Disconnect (); }
Eventfolder EventStoragePath KLAG_WAIT_SCHED_FOR_START_EVENT TaskStoragePath ----------------- KLSRV_AD_SCAN_ENABLED KLSRV_CONNECTION_DATA KLSRV_DATABASENAME KLSRV_NET_SCAN_ENABLED KLSRV_SERVERINSTANCENAME KLSRV_SP_DPNS_ENABLE KLSRV_SP_FASTUPDATENET_PERIOD KLSRV_SP_FULLUPDATENET_PERIOD KLSRV_SP_INSTANCE_ID KLSRV_SP_MAX_EVENTS_IN_DB KLSRV_SP_OPEN_AKLWNGT_PORT KLSRV_SP_SCAN_AD KLSRV_SP_SERVERID KLSRV_SP_SERVERID_DPE KLSRV_SP_SERVER_AKLWNGT_PORTS_ARRAY KLSRV_SP_SERVER_PORTS_ARRAY KLSRV_SP_SERVER_SSL_PORTS_ARRAY KLSRV_SP_SERVER_SSL_PORTS_ARRAY_GUI KLSRV_SP_SYNC_LIFETIME KLSRV_SP_SYNC_LOCKTIME KLSRV_SP_SYNC_SEC_PACKET_SIZE KLSRV_SSL_CERT_RSA_BIT_NUMBER
try { $ Proxy.Connect ($ Params); $ KSCHost = New-Object -ComObject 'klakaut.KlAkHosts2'; $ KSCHost.AdmServer = $ Proxy; $ KSCSettings = $ KSCHost.GetHostSettings ($ Proxy.GetProp ('KLADMSRV_SERVER_HOSTNAME'), 'SS_SETTINGS'); $ 87 = $ KSCSettings.Read ('1093', '1.0.0.0', '87'); "KLSRV_SERVERINSTANCENAME = $ ($ 87.Item ('KLSRV_SERVERINSTANCENAME'))"; "KLSRV_DATABASENAME = $ ($ 87.Item ('KLSRV_DATABASENAME'))"; "KLSRV_CONNECTION_DATA =` r`n $ ($ 87.Item ('KLSRV_CONNECTION_DATA') |% {"` t $ _ = $ ($ 87.Item ('KLSRV_CONNECTION_DATA'). Item ($ _)) `r`n";} ) "; Remove-Variable -Name '87'; Remove-Variable -Name 'KSCSettings'; Remove-Variable -Name 'KSCHost'; $ Proxy.Disconnect (); }
KLSRV_SERVERINSTANCENAME =. KLSRV_DATABASENAME = KAV KLSRV_CONNECTION_DATA = KLDBCON_DB = KAV KLDBCON_DBTYPE = MSSQLSRV KLDBCON_HOST =.
$ SrvAddr = 'localhost: 13291' function EnumSrv ( $ Pxy, [bool] $ IsAlive = $ true, [string] $ ParentPxyId = 'Root' ) { [string] $ result = "$ ParentPxyId"; if ($ IsAlive) { $ result + = "| $ ($ Pxy.GetProp ('KLADMSRV_SERVER_HOSTNAME'))"; $ Hosts = New-Object -ComObject 'klakaut.KlAkHosts2'; $ Hosts.AdmServer = $ Pxy; $ Settings = $ Hosts. GetHostSettings ($ Pxy. GetProp ('KLADMSRV_SERVER_HOSTNAME'), 'SS_SETTINGS'). Read ('1093', '1.0.0.0', '87'). Item ('KLSRV_CONNECTION_DATA'); Remove-Variable -Name 'Hosts'; # '--------> DB Info <--------'; $ result + = "| $ ($ Settings.Item ('KLDBCON_HOST'))"; $ result + = "| $ ($ Settings.Item ('KLDBCON_DB'))"; # '-----------------------------'; Remove-Variable -Name 'Settings'; $ SlaveSrvEnum = New-Object -ComObject 'klakaut.KlAkSlaveServers'; $ SlaveSrvEnum.AdmServer = $ Pxy; $ SlaveServers = $ SlaveSrvEnum. GetServers (-1); $ SlaveServers | % { $ Child = $ _; $ TmpSrvId = $ Child.Item ('KLSRVH_SRV_ID'); $ HostActive = $ true; try { $ TmpSrv = $ SlaveSrvEnum.Connect ($ TmpSrvId, -1); } catch { $ HostActive = $ false; }; if ($ HostActive) {$ HostActive = ($ TmpSrv.GetProp ('IsAlive') -eq 1);}; $ result + = "` r`n $ (EnumSrv -Pxy $ TmpSrv -IsAlive $ HostActive -ParentPxyId $ Pxy.GetProp ('KLADMSRV_SERVER_HOSTNAME')) ""; }; Remove-Variable -Name 'SlaveServers'; Remove-Variable -Name 'SlaveSrvEnum'; }; return ("$ result`r`n"); } Clear host $ Params = New-Object -ComObject 'klakaut.KlAkParams' $ Params.Add ('Address', $ SrvAddr) $ Params.Add ('UseSSL', $ true) $ code = @ " using System; using System.Runtime.InteropServices; public class PowershellComSecurity { [DllImport ("Ole32.dll", CharSet = CharSet.Auto)] public static extern int CoSetProxyBlanket (IntPtr p0, uint p1, uint p2, uint p3, uint p4, uint p5, IntPtr p6, uint p7); public static int EnableImpersonation (object objDCOM) {return CoSetProxyBlanket (Marshal.GetIDispatchForObject (objDCOM), 10, 0, 0, 0, 3, IntPtr.Zero, 0); } } "@ Add-Type -TypeDefinition $ code $ Srv = New-Object -ComObject 'klakaut.KlAkProxy' [PowershellComSecurity] :: EnableImpersonation ($ Srv) | Out-null $ Srv.Connect ($ Params) "ParentPxyId | KLADMSRV_SERVER_HOSTNAME | KLDBCON_HOST | KLDBCON_DB`r`n" + (EnumSrv -Pxy $ Srv); Remove-Variable -Name 'Srv'; Remove-Variable -Name 'Params';
ParentPxyId | KLADMSRV_SERVER_HOSTNAME | KLDBCON_HOST | KLDBCON_DB Root | 9d476a75-1e36-4c0e-8145-56e5b888df67 |. | KAV 9d476a75-1e36-4c0e-8145-56e5b888df67 | ef4fc3be-3abd-4322-ae35-2c50afdce780 |. \ KAV_CS_ADMIN_KIT | KAV
Source: https://habr.com/ru/post/278209/
All Articles