Is anyone here who can help me to get this scripts running under alternate credentials.................
Expand|Select|Wrap|Line Numbers
- '''''''''''''''''''''''''''
- '''''''''''''''''''''''''''
- ' Monitor EDID Information'
- strComputer = Trim(inputbox("Enter name or IP address of local or remote computer"))
- Dim oDisplaySubKeys : Set oDisplaySubKeys = CreateObject("Scripting.Dictionary")
- Dim oRawEDID : Set oRawEDID = CreateObject("Scripting.Dictionary")
- Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
- Int intMonitorCount=0
- Int intDisplaySubKeysCount=0
- Int i=0
- Set oRegistry = GetObject("winmgmts:\\" & strComputer & "/root/default:StdRegProv")
- strDisplayBaseKey = "SYSTEM\CurrentControlSet\Enum\DISPLAY\"
- ' Retrieving EISA-Id from HKLM\SYSTEM\CurrentControlSet\Enum\DISPLAY and storing in strarrDisplaySubKeys
- iRC = oRegistry.EnumKey(HKLM, strDisplayBaseKey, strarrDisplaySubKeys)
- ' Deleting from strarrDisplaySubKeys "Default_Monitor" value
- For Each sKey In strarrDisplaySubKeys
- If sKey ="Default_Monitor" Then
- intDisplaySubKeysCount=intDisplaySubKeysCount - 1
- Else
- oDisplaySubKeys.add sKey, intDisplaySubKeysCount
- End If
- intDisplaySubKeysCount=intDisplaySubKeysCount + 1
- Next
- ' Storing result in oDisplaySubKeys
- strResultDisplaySubKeys=oDisplaySubKeys.Keys
- toto=0
- For i = 0 to oDisplaySubKeys.Count -1
- strEisaIdBaseKey = strDisplayBaseKey & strResultDisplaySubKeys(i) & "\"
- ' Retrieving Pnp-Id from HKLM\SYSTEM\CurrentControlSet\Enum\DISPLAY\EISA-Id and storing in strarrEisaIdSubKeys
- iRC2 = oRegistry.EnumKey(HKLM, strEisaIdBaseKey, strarrEisaIdSubKeys)
- For Each sKey2 In strarrEisaIdSubKeys
- oRegistry.GetMultiStringValue HKLM, strEisaIdBaseKey & sKey2 & "\", "HardwareID", sValue
- For tmpctr=0 to ubound(svalue)
- If lcase(Left(svalue(tmpctr),8))="monitor\" then
- strMsIdBaseKey = strEisaIdBaseKey & sKey2 & "\"
- iRC3 = oRegistry.EnumKey(HKLM, strMsIdBaseKey, strarrMsIdSubKeys)
- For Each sKey3 In strarrMsIdSubKeys
- If skey3="Control" then
- toto=toto + 1
- oRegistry.GetBinaryValue HKLM, strMsIdBaseKey & "Device Parameters\", "EDID", intarrEDID
- strRawEDID=""
- strRawEDIDb=""
- If vartype(intarrEDID) = 8204 then
- For each strByteValue in intarrEDID
- strRawEDID=strRawEDID & Chr(strByteValue)
- strRawEDIDb=strRawEDIDb & Chr(strByteValue)
- Next
- Else
- strRawEDID="EDID Not Available"
- End If
- oRawEDID.add intMonitorCount , strRawEDID
- intMonitorCount=intMonitorCount + 1
- End If
- Next
- End If
- Next
- Next
- Next
- 'now the EDID info For each active monitor is stored in an dictionnary of strings called oRawEDID
- 'so we can process it to get the good stuff out of it which we will store in a 5 dimensional array
- 'called arrMonitorInfo, the dimensions are as follows:
- '0=VESA Mfg ID, 1=VESA Device ID, 2=MFG Date (M/YYYY),3=Serial Num (If available),4=Model Descriptor
- strResultRawEDID=oRawEDID.Keys
- dim arrMonitorInfo()
- redim arrMonitorInfo(intMonitorCount-1,5)
- dim location(3)
- For i=0 to oRawEDID.Count - 1
- If oRawEDID(i) <> "EDID Not Available" then
- location(0)=mid(oRawEDID(i),&H36+1,18)
- location(1)=mid(oRawEDID(i),&H48+1,18)
- location(2)=mid(oRawEDID(i),&H5a+1,18)
- location(3)=mid(oRawEDID(i),&H6c+1,18)
- strSerFind=Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&Hff)
- strMdlFind=Chr(&H00) & Chr(&H00) & Chr(&H00) & Chr(&Hfc)
- intSerFoundAt=-1
- intMdlFoundAt=-1
- For findit = 0 to 3
- If instr(location(findit),strSerFind)>0 then
- intSerFoundAt=findit
- End If
- If instr(location(findit),strMdlFind)>0 then
- intMdlFoundAt=findit
- End If
- Next
- 'If a location containing a serial number block was found then store it
- If intSerFoundAt<>-1 then
- tmp=Right(location(intSerFoundAt),14)
- If instr(tmp,Chr(&H0a))>0 then
- tmpser=Trim(Left(tmp,instr(tmp,Chr(&H0a))-1))
- Else
- tmpser=Trim(tmp)
- End If
- If Left(tmpser,1)=Chr(0) then tmpser=Right(tmpser,Len(tmpser)-1)
- Else
- tmpser="Serial Number Not Found in EDID data"
- End If
- 'If a location containing a model number block was found then store it
- If intMdlFoundAt<>-1 then
- tmp=Right(location(intMdlFoundAt),14)
- If instr(tmp,Chr(&H0a))>0 then
- tmpmdl=Trim(Left(tmp,instr(tmp,Chr(&H0a))-1))
- Else
- tmpmdl=Trim(tmp)
- End If
- If Left(tmpmdl,1)=Chr(0) then tmpmdl=Right(tmpmdl,Len(tmpmdl)-1)
- Else
- tmpmdl="Model Descriptor Not Found in EDID data"
- End If
- tmpmfgweek=Asc(mid(oRawEDID(i),&H10+1,1))
- tmpmfgyear=(Asc(mid(oRawEDID(i),&H11+1,1)))+1990
- tmpmdt=month(dateadd("ww",tmpmfgweek,DateValue("1/1/" & tmpmfgyear))) & "/" & tmpmfgyear
- tmpEDIDMajorVer=Asc(mid(oRawEDID(i),&H12+1,1))
- tmpEDIDRev=Asc(mid(oRawEDID(i),&H13+1,1))
- If tmpEDIDMajorVer < 255-48 and tmpEDIDRev < 255-48 Then
- tmpver=Chr(48+tmpEDIDMajorVer) & "." & Chr(48+tmpEDIDRev)
- Else
- tmpver="Not available"
- End If
- tmpEDIDMfg=mid(oRawEDID(i),&H08+1,2)
- Char1=0 : Char2=0 : Char3=0
- Byte1=Asc(Left(tmpEDIDMfg,1)) 'get the first half of the string
- Byte2=Asc(Right(tmpEDIDMfg,1)) 'get the first half of the string
- If (Byte1 and 64) > 0 then Char1=Char1+16
- If (Byte1 and 32) > 0 then Char1=Char1+8
- If (Byte1 and 16) > 0 then Char1=Char1+4
- If (Byte1 and 8) > 0 then Char1=Char1+2
- If (Byte1 and 4) > 0 then Char1=Char1+1
- If (Byte1 and 2) > 0 then Char2=Char2+16
- If (Byte1 and 1) > 0 then Char2=Char2+8
- If (Byte2 and 128) > 0 then Char2=Char2+4
- If (Byte2 and 64) > 0 then Char2=Char2+2
- If (Byte2 and 32) > 0 then Char2=Char2+1
- Char3=Char3+(Byte2 and 16)
- Char3=Char3+(Byte2 and 8)
- Char3=Char3+(Byte2 and 4)
- Char3=Char3+(Byte2 and 2)
- Char3=Char3+(Byte2 and 1)
- tmpmfg=Chr(Char1+64) & Chr(Char2+64) & Chr(Char3+64)
- tmpEDIDDev1=hex(Asc(mid(oRawEDID(i),&H0a+1,1)))
- tmpEDIDDev2=hex(Asc(mid(oRawEDID(i),&H0b+1,1)))
- If Len(tmpEDIDDev1)=1 then tmpEDIDDev1="0" & tmpEDIDDev1
- If Len(tmpEDIDDev2)=1 then tmpEDIDDev2="0" & tmpEDIDDev2
- tmpdev=tmpEDIDDev2 & tmpEDIDDev1
- arrMonitorInfo(i,0)=tmpmfg
- arrMonitorInfo(i,1)=tmpdev
- arrMonitorInfo(i,2)=tmpmdt
- arrMonitorInfo(i,3)=tmpser
- arrMonitorInfo(i,4)=tmpmdl
- arrMonitorInfo(i,5)=tmpver
- End If
- wscript.echo "Monitor " & Chr(i+65) & ")" & VbCrLF & _
- "VESA Manufacturer ID= " & arrMonitorInfo(i,0) & VbCrLF & _
- "Manufacture Date= " & arrMonitorInfo(i,2) & VbCrLF & _
- "Serial Number= " & arrMonitorInfo(i,3) & VbCrLF & _
- "Model Name= " & arrMonitorInfo(i,4)
- Next
- Function ErrorCheck(strErrorNumber)
- Select Case strErrorNumber
- Case "-2147024843"
- ErrorCheck = strError_ComputerNotFound
- Case "-2147023518"
- ErrorCheck = strError_AlreadyAdmin
- Case "-2147023509"
- ErrorCheck = strError_UserNotFound
- End Select
- End Function
- Function Pingable(strComputer)
- Dim objShell
- Dim strTemp
- Dim objFSO
- Dim iReturn
- Dim objTextFile
- Pingable = False
- Set objShell = CreateObject("WScript.Shell")
- strTemp = objShell.ExpandEnvironmentStrings("%temp%") & _
- "/tempping.txt"
- iReturn = objShell.Run("%comspec% /C ping " & strComputer & _
- " -n 1 > " & strTemp, 0, True)
- Set objFSO = CreateObject("Scripting.FileSystemObject")
- Set objTextFile = objFSO.OpenTextFile(strTemp, 1)
- While Not objTextFile.AtEndOfStream
- If InStr(objTextFile.ReadLine, "Reply") Then Pingable = True
- Wend
- objTextFile.Close
- objFSO.DeleteFile (strTemp)
- End Function