Pages

Monday, 14 May 2012

Send plain text Email

Import System.Net.Mail

Dim myMail As New MailMessage()
myMail.From = New MailAddress("From Email Address")
myMail.To.Add("To Email Address")
myMail.Subject = "Email Subject"
myMail.Body = "Email Body"

Dim mysmtp As New SmtpClient(<SMTP SERVER>)
mysmtp.Send(MyMail)

Email Webpage/HTML Page

Import System.Net.Mail

Public Sub EmailWebPage()
  Dim myMail As New MailMessage()
  myMail.From = New MailAddress("From Email Address")
  myMail.To.Add("To Email Address")
  myMail.Subject = "Email Subject"
  Dim htmlPg As String = SendWebPage("http://servername/htmlpage.html")
  myMail.Body = htmlPg
  myMail.IsBodyHtml = True
  Dim smtp As New SmtpClient(<SMTP SERVER>)
  smtp.Send(myMail)
End Sub

Public Function SendWebPage(ByVal url As String) As String
  Dim objRequest As WebRequest = System.Net.HttpWebRequest.Create(url)
  Dim strmRder As New StreamReader(objRequest.GetResponse 

         ().GetResponseStream())
  Dim result As String = strmRderstrmRder.ReadToEnd()
  strmRder.Close()
  Return result
End Function

Send HTML Email

Import System.Net.Mail

Dim myMail As New MailMessage()
myMail.From = New MailAddress("From Email Address")
myMail.To.Add("To Email Address")
myMail.Subject = "Email Subject"
myMail.Body = "Email Body"
myMail.IsBodyHTML = True

Dim mysmtp As New SmtpClient(<SMTP SERVER>)
mysmtp.Send(MyMail)

Saturday, 12 May 2012

Start Windows service on local computer

Dim co As ConnectionOptions = New ConnectionOptions()
'CREDENTIALS
With co
   .Username = "username"
   .Password = "password"
End With


Dim strComputer As String = "."
Dim scope As New System.Management.ManagementScope


scope=New System.Management.ManagementScope("\\" & strComputer & "\root\cimv2", co)
'CONNECT TO THE BOX
scope.Connect()

Dim query As ObjectQuery = New ObjectQuery("Select * from Win32_Service Where Name ='SERVICENAME' ")
Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher(scope, query)
Dim observer As ManagementOperationObserver = New ManagementOperationObserver()
Dim queryCollection As ManagementObjectCollection=searcher.Get()
Dim m As ManagementObject
Dim args As Object

'START THE SERVICE
For Each m In queryCollection
   m.InvokeMethod("StartService", args)
Next

Get BIOS details of local computer

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_BIOS",,48)
For Each objItem in colItems
    Msgbox "Win32_BIOS instance"
    If isNull(objItem.BIOSVersion) Then
        Msgbox "BIOSVersion: "
    Else
        Msgbox "BIOSVersion: " & Join(objItem.BIOSVersion, ",")
    End If
    Msgbox "Caption: " & objItem.Caption
    Msgbox "Description: " & objItem.Description
    Msgbox "InstallDate: " & objItem.InstallDate
    Msgbox "Manufacturer: " & objItem.Manufacturer
    Msgbox "Name: " & objItem.Name
Next

Function to get user groups from Active Directory

To use the below function in your project, you need to add the reference for System.DirectoryServices


Public Function GetUserGroupMembership(ByVal strUser As String) As StringCollection 
Dim groups As New StringCollection()
Try
  Dim obEntry As New DirectoryServices.DirectoryEntry("
LDAP://domain/DC=domain,DC=com")
  Dim srch As New DirectoryServices.DirectorySearcher(obEntry, "(sAMAccountName=" & strUser & ")")
  Dim res As DirectoryServices.SearchResult = srch.FindOne()
  If res IsNot Nothing Then
     Dim obUser As New DirectoryServices.DirectoryEntry(res.Path)
   ' Invoke Groups method.
     Dim obGroups As Object = obUser.Invoke("Groups")
       For Each ob As Object In DirectCast(obGroups, IEnumerable)
      ' Create object for each group.
        Dim obGpEntry As New DirectoryServices.DirectoryEntry(ob)
        groups.Add(obGpEntry.Name)
       Next
      End If
Catch
ex As Exception           
    Msgbox(ex.Message)
End Try
Return groups
End Function



USAGE:
Dim Groups As StringCollection = GetUserGroupMembership(username.text)

Get Local Machine Groups using WMI

Dim search As New ManagementObjectSearcher("SELECT * FROM Win32_Group Where LocalAccount = True")
For Each info In search.Get()
  Dim objGroup = GetObject("WinNT://./" & info("Name").ToString &  ",group")
    For Each objMember In objGroup.Members
      Dim info As ManagementObject
         Msgbox(info("Name").ToString)
         Msgbox(objMember.Name)
     Next
Next