Tuesday, December 1, 2009

Map Network Drives and Log the Results


' Name         : Login.vbs

' Version      : 3.2, 04/15/2004

' Author       : J. Jason Bergh




' Declare Variables


Option Explicit


Dim objNetDrive        ' Network Drive Object

Dim objNetDriveEnum    ' Network Drive Enumeration Object

Dim objWMIService      ' WMI Service Object

Dim strComputer        ' WMI Computer Namspace String

Dim colItems           ' WMI Item Collection (Win32_OperatingSystem)

Dim colComputers       ' WMI Computer Collection (Win32_ComputerSystem)

Dim objItem                ' WMI Item Object

Dim objComputer        ' WMI Computer Object

Dim strError           ' Event Log Error String

Dim strSuccess         ' Event Log Success String

Dim strEventLog        ' Event Log Report String

Dim WshShl                 ' Windows Scripting Host Shell Object

Dim WshNet                 ' Windows Scripting Host Network Object

Dim i                      ' Counter


' Instantiate Variables

Set objNetDrive = CreateObject("WScript.Network")

Set WshShl = WScript.CreateObject("WScript.Shell")

Set WshNet = WScript.CreateObject("WScript.Network")


' Ignore Error Messages

On Error Resume Next


' Instantiate Event Log Report

strEventLog = "Login Script v.3.2 status as follows:"


' Determine OS Type and Role



' Enumerate Network Drives

Set objNetDriveEnum = WshNet.EnumNetworkDrives


' Map Network Drives

NetworkMapDrive "V:", "\\GODZILLA\DOWNLOADS"

NetworkMapDrive "W:", "\\GODZILLA\DOCUMENTS"

NetworkMapDrive "X:", "\\GODZILLA\PICTURES"

NetworkMapDrive "Y:", "\\GODZILLA\MUSIC"


' Write Event To The Application Event Log



' End Script




Function OSTypeAndRole()


        ' Instantiate WMI

        strComputer = "."

        Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

        Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)


        ' Query Target OS Type

        For Each objItem In colItems

               ' Target is in the Windows NT family if OS Type 18

               If objItem.OSType = 18 Then

                       ' Query target and if the target's role is a Domain Controller (Primary, Backup) the Login script will exit.


                       ' Instantiate WMI

                       Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

                       Set colComputers = objWMIService.ExecQuery ("Select DomainRole from Win32_ComputerSystem")

                       ' Query target role if target is in Windows NT family

                       For Each objComputer In colComputers

                               ' Check target's role and terminate script if target is a Domain Controller (Domain Role > 3)

                               If objComputer.DomainRole > 3 Then


                               End If



                       ' Operating System is not part of the Windows NT family, terminate the Login script


               End If



        ' Instantiate Error and Success string values

        strError = "- Error determining operating system and role."

        strSuccess = " - Windows NT family functioning as a member workstation / server."


        ' Check for errors

        CheckError strError, strSuccess

End Function


Function NetworkMapDrive (Drive, Share)

        ' Enumerate and compare specified Drive Letter and UNC share point to mapped Drive Letters and UNC share points

        For i = 0 to objNetDriveEnum.Count -1 Step 2

               If LCase(Drive) = LCase(objNetDriveEnum.Item(i)) Then

                       If Not LCase(Share) = LCase(objNetDriveEnum.Item(i+1)) Then

                               ' Remove Network Share Point

                               WshNet.RemoveNetworkDrive Drive, TRUE, TRUE


                               ' Drive mapped correctly, exit function

                               Exit Function

                       End If

               End If



        ' Map specified Drive Letter to specified UNC share point

        WshNet.MapNetworkDrive Drive, Share, TRUE


        ' Instantiate Error and Success string values

        strError = " - Error mapping drive " & Drive & " to " & Share & "."

        strSuccess = " - Drive " & Drive & " mapped to " & Share & "."


        ' Check for errors

        CheckError strError, strSuccess

End Function


Function CheckError (EventError, EventSuccess)

        ' Function status reported to Application Event Log string


        ' Check for errors

        If Err > 0 Then

               ' Error occured, mark Event Log string accordingly

               strEventLog = strEventLog & vbCR & EventError



               ' No errors, mark Event Log string complete for this function

               strEventLog = strEventLog & vbCR & EventSuccess

        End If

End Function


Function EventLog()

        ' Write Event to the Application Event Log

        WshShl.LogEvent 0, strEventLog

End Function




Print Friendly and PDF

No comments:

Post a Comment