Hey
ich hab ein Problem mit dem Ris:
und zwar funktioniert alles wunderbar wenn ich im active D. die Computeraccounts
von Hand eintrage.
wenn ich jetzt aber versuch die computeraccounts über das PrestagRisScript
einzutragen dann gehts nicht.
es läuft eigentlich alles zu anfang recht gut
er bekommt die ip
F12 netzwerkboot und dann komm ich ins menu wo ich username pass und domain eintragen kann
aber sobald der Ris dann versucht die Temporäre datei zu erstellen kommt ein fehler dass er sie nicht erstellen kann
ich hab mal alle eigenschaften des computeraccounts verglichen nachdem ich ihn per hand eingetragen hab. Die sind identisch mit den Einträgen die das script vornimmt aber er will einfach nicht
hier ist mal der Code vom script vielleicht kann mir ja einer helfen
muss dazu sagen dass ich das script nur gezogen hab und den Code nur ansatzweise versteh
ich musste es auch leicht verändern
im orginal liest er die daten aus ner excel datei.
mein chef wollte das aber aus ner txt datei lesen damit auf den server kein excel drauf muss
musst es kürzen ..ist zu lang
hier ist der relevante teil für die computeraccounts
Sub CreateComputerAccts()
On Error Resume Next
bolErrFlag = False
strCompFail = ""
strMAOName = "<Computername>"
strUUID = "<UUID>"
strLocation = " "
strUser= " "
strDescription = " "
If strCommand = KINTERACTIVE Then
strStartup = strServer & "\REMINST\OSChooser\i386\startrom.com"
ElseIf strCommand = KAUTOMATE Then
strStartup = strServer & "\REMINST\OSChooser\i386\startrom.n12"
ElseIf strCommand = KUNSPECIFIED Then
strStartup = " "
End If
Set rootDSE = GetObject("LDAP://RootDSE")
Set compContainer = GetObject("LDAP://OU=test,DC=test,DC=de")
Set compContainer = GetObject("LDAP://OU=test,DC=test,DC=de")
If Err.Number <> KNOERROR And Hex(Err.Number) <> 80071392 Then
WScript.Echo Time & ": Error0x" & Hex(Err.Number) & _
"occurred getting AD default " & KQUOTE & _
"Computers" & KQUOTE & " object !"
If Err.Description > "" Then
WScript.Echo vbTab & strSpace & Err.Description
End If
Err.Clear
WScript.Quit()
End If
arrayByteOctel = objADsArrayConvert.MakeGUIDByteArray(strUUID)
set objComputer = compContainer.Create("computer", "CN=" & strMAOName)
objComputer.Put "distinguishedname", strMAOName
objComputer.Put "samAccountName", strMAOName + "$"
objComputer.Put "userAccountControl", lFlag
objComputer.Put "netbootMachineFilePath", strServer + ".test.de"
objComputer.Put "netbootGUID", arrayByteOctel
objComputer.Put "description", strDescription
objComputer.Put "Location", strLocation
objComputer.Put "netbootSIFFile", strStartup
objComputer.AccountDisabled = False
objComputer.SetInfo
If Hex(Err.Number) = 80071392 Then
WScript.Echo Time & ": Error0x " & Hex(Err.Number) & " occurred while " & _
"processing " & KQUOTE & strMAOName & KQUOTE & _
vbCrLf & _
vbTab & strSpace & "The computer object already exists !"
WScript.Echo""
bolErrFlag = True
strCompFail = strCompFail & vbTab & strSpace & strMAOName & vbCrLf
Err.Clear
ElseIf Err.Number <> KNOERROR Then
WScript.Echo Time & ": Error0x "& Hex(Err.Number) & _
" occurred while processing " & _
KQUOTE & strMAOName & KQUOTE & " !"
If Err.Description > "" THEN
WScript.Echo vbTab & strSpace & Err.Description
End If
WScript.Echo ""
bolErrFlag = True
strCompFail = strCompFail & vbTab & strSpace & strMAOName & vbCrLf
Err.Clear
End If
objComputer.SetPassword LCase(strMAOName & "$")
Set secDescriptor = objComputer.Get("ntSecurityDescriptor")
Set dACL = secDescriptor.DiscretionaryAcl
Set ACE = CreateObject("AccessControlEntry")
ACE.AccessMask = -1
ACE.AceType = ADS_ACETYPE_ACCESS_ALLOWED
ACE.AceFlags = ADS_ACEFLAG_INHERIT_ACE
ACE.Trustee = strUser
dACL.AddAce ACE
secDescriptor.DiscretionaryAcl = dACL
objComputer.Put "ntSecurityDescriptor", Array(secDescriptor)
objComputer.SetInfo
objComputer.AccountDisabled = False
objComputer.SetInfo
End Sub
mfg Moesi