Hi
Is anyone here who can help me to get this scripts running under alternate credentials.... .............
Is anyone here who can help me to get this scripts running under alternate credentials.... .............
Code:
'''''''''''''''''''''''''''
'''''''''''''''''''''''''''
' 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
Comment