Results 1 to 1 of 1

Thread: Impersonation for WMI gets

  1. #1

    Thread Starter
    King of sapila
    Join Date
    Oct 2006
    Location
    Greece
    Posts
    6,597

    Impersonation for WMI gets

    I was looking at impersonation and most of the example was like impersonationlevel.impersonate .
    I am writing here how you can impersonate an actual user and by doing so I am using WMI to get the installed program on a remote computer.
    Be advised to use anything else but WMI to get the products as WMI gets "some" of the product and not all. I guess using the registry to get the products is preferred.

    Code:
    'Must use and register System.Management
    'Also add a gridview
    
    'import these in your form
    'Imports System
    'Imports System.Management
    'Imports System.Globalization
    
      Dim opt As ObjectGetOptions
            opt = New ObjectGetOptions(Nothing, TimeSpan.MaxValue, True)
            Using manClass As New ManagementClass("\\Yourserver\root\cimv2", "Win32_Service", opt)
                manClass.Scope.Options.EnablePrivileges = True
                manClass.Scope.Options.Impersonation = ImpersonationLevel.Impersonate
                manClass.Scope.Options.Username = "yourusername"
                manClass.Scope.Options.Password = "yourpassword"
                manClass.Scope.Options.Authority = "ntlmdomain:yourdomain"
    
    
                Dim query As ObjectQuery
                query = New ObjectQuery( _
                    "Select * from Win32_Product")
                Dim searcher As ManagementObjectSearcher
                searcher = _
                    New ManagementObjectSearcher(manClass.Scope, query)
    
                Dim queryCollection As ManagementObjectCollection
                queryCollection = searcher.Get()
    
       Dim dt As DataTable = New DataTable()
                dt.Columns.Add(New DataColumn("Name", GetType(System.String)))
                dt.Columns.Add(New DataColumn("InstallLocation", GetType(System.String)))
                dt.Columns.Add(New DataColumn("Instal Date", GetType(System.String)))
                dt.Columns.Add(New DataColumn("InstallState", GetType(System.String)))
                dt.Columns.Add(New DataColumn("Vendor", GetType(System.String)))
                dt.Columns.Add(New DataColumn("Version", GetType(System.String)))
                dt.Columns.Add(New DataColumn("PackageName", GetType(System.String)))
                dt.Columns.Add(New DataColumn("InstallSource", GetType(System.String)))
                dt.Columns.Add(New DataColumn("Language", GetType(System.String)))
                dt.Columns.Add(New DataColumn("LocalPackage", GetType(System.String)))
                dt.Columns.Add(New DataColumn("PackageCache", GetType(System.String)))
                dt.Columns.Add(New DataColumn("PackageCode", GetType(System.String)))
                dt.Columns.Add(New DataColumn("HelpTelephone", GetType(System.String)))
                dt.Columns.Add(New DataColumn("AssignmentType", GetType(System.String)))
                dt.Columns.Add(New DataColumn("Caption", GetType(System.String)))
                dt.Columns.Add(New DataColumn("Description", GetType(System.String)))
                dt.Columns.Add(New DataColumn("IdentifyingNumber", GetType(System.String)))
                dt.Columns.Add(New DataColumn("ProductID", GetType(System.String)))
                dt.Columns.Add(New DataColumn("RegOwner", GetType(System.String)))
                dt.Columns.Add(New DataColumn("RegCompany", GetType(System.String)))
                dt.Columns.Add(New DataColumn("SKUNumber", GetType(System.String)))
                dt.Columns.Add(New DataColumn("Transforms", GetType(System.String)))
                dt.Columns.Add(New DataColumn("URLInfoAbout", GetType(System.String)))
                dt.Columns.Add(New DataColumn("URLUpdateInfo", GetType(System.String)))
                dt.Columns.Add(New DataColumn("HelpLink", GetType(System.String)))
                dt.Columns.Add(New DataColumn("WordCount", GetType(System.String)))
    
               ' Dim Sq As SelectQuery = New SelectQuery("Win32_Product")
    
       Dim m As ManagementObject
                For Each m In queryCollection
                    Dim dr As DataRow = dt.NewRow
                    dr("Name") = m("Name").ToString
                    dr("AssignmentType") = m("AssignmentType").ToString
                    dr("Caption") = m("Caption")
                    dr("Description") = m("Description")
                    dr("IdentifyingNumber") = m("IdentifyingNumber")
                    dr("InstallLocation") = m("InstallLocation")
                    Dim newDate As DateTime = DateTime.ParseExact(m("InstallDate").ToString, "yyyyMMdd", CultureInfo.InvariantCulture)
                    dr("Instal Date") = newDate
                    dr("InstallState") = m("InstallState")
                    dr("HelpLink") = m("HelpLink")
                    dr("HelpTelephone") = m("HelpTelephone")
                    dr("InstallSource") = m("InstallSource")
                    dr("Language") = m("Language")
                    dr("LocalPackage") = m("LocalPackage")
                    dr("PackageCache") = m("PackageCache")
                    dr("PackageCode") = m("PackageCode")
                    dr("PackageName") = m("PackageName")
                    dr("InstallState") = m("InstallState")
                    dr("ProductID") = m("ProductID")
                    dr("RegOwner") = m("RegOwner")
                    dr("RegCompany") = m("RegCompany")
                    dr("SKUNumber") = m("SKUNumber")
                    dr("Transforms") = m("Transforms")
                    dr("URLInfoAbout") = m("URLInfoAbout")
                    dr("URLUpdateInfo") = m("URLUpdateInfo")
                    dr("Vendor") = m("Vendor")
                    dr("WordCount") = m("WordCount")
                    dr("Version") = m("Version")
                    dt.Rows.Add(dr)
                Next
                Try
                    DataGridView1.DataSource = dt
                Catch ex As Exception
    
                End Try
            End Using
    Last edited by sapator; Feb 21st, 2018 at 04:23 AM.
    ἄνδρα μοι ἔννεπε, μοῦσα, πολύτροπον, ὃς μάλα πολλὰ
    πλάγχθη, ἐπεὶ Τροίης ἱερὸν πτολίεθρον ἔπερσεν·

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width