Avatar billede kennethv Nybegynder
14. august 2014 - 09:54 Der er 5 kommentarer og
1 løsning

Nogen der kan kaste lidt lys over dette problem

Jeg har lavet en tilføjelse til vores loginscript, som gør at den henter nogle oplysninger fra computeren og det skal så skrives på computer objektet i vores AD.

Den ændring jeg har lavet virker fint for mig, men når jeg kører loginscriptet på en anden brugers pc. Sker der ikke noget. Hvis jeg sætter Debug = "Yes" få jeg ikke den sidste besked, som fremgår i nedenstående kode på andres computer.

Det er den part hvor der skal skrives til AD, som ikke bliver gennemført.

objComputer.put ....
objComputer.SetInfo

Mv
Kenneth

------------

Sub Main
    Call InitEnv
    Call ADWriteDescription
    Call CleanUpEnv
End Sub 'Main



Sub InitEnv
    strComputer = "."
    Set ADSysInfo = CreateObject("ADSystemInfo")
    Set objComputer = GetObject("LDAP://" & ADSysInfo.ComputerName)
    Set objWMIserviceBIOS = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    set lcolitems = objWMIserviceBIOS.ExecQuery("Select * from Win32_BIOS",,48)
    Set objWMIServiceComputerSystem = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set lcolmodel = objWMIServiceComputerSystem.ExecQuery("SELECT * FROM Win32_ComputerSystem")
End Sub 'InitEnv

Sub CleanUpEnv
    Set WSHShell = Nothing
    Set OBJREG = Nothing
    Set ADSysInfo = Nothing
    Set objComputer = Nothing
    Set objWMIserviceBIOS = Nothing
    Set lcolitems = Nothing
    Set objWMIServiceComputerSystem = Nothing
    Set lcolmodel = Nothing
End Sub 'CleanUpEnv

Sub ADWriteDescription
    'On Error Resume Next
    SelectYourAttribute = "description"
    WriteToYourAttribute= "Hello World!"
    DebugMode = "No"
   
    if DebugMode = "Yes" Then
        MsgBox ("Your Attribute=" + "objComputer" + "." + SelectYourAttribute)
        objAttribute = eval("objComputer" + "." + SelectYourAttribute)
        MsgBox("Change AD attribute for current workstation (" & ADSysInfo.ComputerName & "), Attribute old value: (" & objAttribute & "), Attribute new value: (" & WriteToYourAttribute & ")")
    End If
    For each lobjitem in lcolitems
        ServiceTag = lobjitem.serialnumber
        lBIOSRev = lobjitem.SMBIOSBIOSVersion
    Next
    For Each lobjitem in lcolmodel
        lstrModel = lobjitem.model
    Next
    if DebugMode = "Yes" Then 
        MsgBox ServiceTag & " | " & lBIOSRev & " | " & lstrModel & " | " & mid(objComputer.get("managedBy"),4,InStr(objComputer.get("managedBy"),",")-4)
    End If

        objComputer.Put "description", ServiceTag & " | " & lBIOSRev & " | " & lstrModel & " | " & mid(objComputer.get("managedBy"),4,InStr(objComputer.get("managedBy"),",")-4)
        objComputer.SetInfo
   
    if DebugMode = "Yes" Then 
        MsgBox("Script has reached its end.")
    End If
    'On Error Goto 0
End Sub 'ADWriteDescription
Avatar billede claes57 Ekspert
14. august 2014 - 10:44 #1
jeg ville lægge en msgbox ind tidligt.
hvis den vises så flyt den et par linjer ned og test igen.
når den ikke vises længere, så gå linjen før igennem - evt msbox alle parametre for at se, om der fx er defekte data.
Avatar billede kennethv Nybegynder
14. august 2014 - 14:23 #2
Jeg har ihvertfald fundet ud af at det stopper på:

objComputer.SetInfo

Det mest underlige er, at jeg har 2 computere (A og B), hvor jeg logger ind med det samme brugernavn.

Det virker på A, men ikke på B.
Avatar billede claes57 Ekspert
14. august 2014 - 14:54 #3
Del linjen
        objComputer.Put "description"
Op, så den kun sender en ting. Hvis den virker, så prøv næste data. Det må kunne lade sig gøre at sætte data på et ad gangen til fejl indtræffer.
Avatar billede kennethv Nybegynder
14. august 2014 - 15:04 #4
Hvis jeg laver en:

MsgBox ServiceTag & " | " & lBIOSRev & " | " & lstrModel & " | " & mid(objComputer.get("managedBy"),4,InStr(objComputer.get("managedBy"),",")-4)

kan jeg se at det er de rigtige data.

Jeg har prøvet at dele det op med nogle få, men lige meget hjælper det.
Avatar billede claes57 Ekspert
14. august 2014 - 15:13 #5
så må det nok ligge i rettigheder mht objComputer.SetInfo
kan noget være låst på B?
Avatar billede kennethv Nybegynder
03. september 2014 - 08:16 #6
Jeg fik løst det på en anden måde, som ikke er helt optimalt, men det er det jeg må bruge.

Jeg gemmer indholdet i en fil og har lavet et andet program der læser disse filer. Det program kører så fra min computer.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester