Neddo Skrevet 9. juni 2009 Del Skrevet 9. juni 2009 (endret) Skal begynne og jobb med en del automatisering på jobben i sommar. Og hadde tenkt og lage til noko script opp i mot AD (windows 2003 server). Det eg hadde tenkt til er at den sjekke opp i mot navn på pc-ar som ligge i AD foreksempel (kjøyre windows xp pro på pc-ane): Viss det ligger nokon pc-ar som heiter: testpc001, testepc 002, testpc003 osv. So skal den klare og finne fram nærmeste navne som testpc04 og klare og gi den det navne. Og so hadde eg tenkt og lage til ein script der den legge pc-en automatisk pc-en inn i domene etter den har fått rett navn. Noken som har noken tips og kome med her eller noke linker til noken gode internett side med tips/guide til korleis en kan gjerde det? Endret 15. juni 2009 av Neddo Lenke til kommentar
kakkle Skrevet 14. juni 2009 Del Skrevet 14. juni 2009 (endret) Hei Du finner nok noen gode tips for å endre navn og legge inn i domene her: http://www.google.co.uk/search?hl=en&e...ame&spell=1 Her er et script som finner det første ledige computername i AD: ' ' Script to change computerName to the first available name ' ' Declare the computerOU variable to apply to all of the script strComputerOU = "OU=Workstations,dc=domiain,dc=no" NewName = changeComputerName () Function changeComputerName () intMinDigits = 3 strPrefix = "testepc" intStart = 1 strComputerName = strPrefix & PadDigits(intStart, 3) ' ' Find new computername ' Do Until computerExists (strComputerName) = False intStart = intStart + 1 strComputerName = strPrefix & PadDigits (intStart, 3) Loop strNewComputerName = strComputerName WScript.Echo "New computerName: " & strNewComputerName changeComputerName = strNewComputerName End Function Function PadDigits(n, totalDigits) If Len(n) < totalDigits Then PadDigits = Right(String(totalDigits,"0") & n, totalDigits) Else PadDigits = n End If End Function ' ' Checks if a computer exists in a specified OU in AD ' Function computerExists (strComputerName) WScript.Echo "Checking " & strComputerName strSQL = "SELECT distinguishedName FROM 'LDAP://" & strComputerOU & "' WHERE objectClass='computer' AND Name='" & strComputerName & "'" Set objRS = getResultSet (strSQL) WScript.Echo strComputerName & ": " & objRS.RecordCount If objRS.RecordCount = 0 Then computerExists = False Else computerExists = True End If End Function Function getResultSet (strQuery) ' Use ADO to search Active Directory. Set objCommand = CreateObject("ADODB.Command") Set objConnection = CreateObject("ADODB.Connection") objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" objCommand.ActiveConnection = objConnection objCommand.CommandText = strQuery objCommand.Properties("Page Size") = 200 objCommand.Properties("Timeout") = 30 Set getResultSet = objCommand.Execute End Function Dette ka da brukes for å finne det nye navnet som pcen skal få. Kan også brukes for å endre navn på en eksisterende pc. Scriptet finner det første ubrukte navnet. F.eks. dersom du har hatt en pc som har hatt navnet testpc003, og har slettet denne fra AD, så vil dette bli det nye navnet, selv om testpc004. testpc005 osv... finnes... (OBS: Scriptet er ikke veldig godt testet, bare litt kjapt) Bare spør dersom du lurer på noe... PS: For automatisering, så anbefaler jeg å ha en skikkelig utrulligs løsning, som f.eks. sccm, WDS eller lignende OS Deployment verktøy. OGså kjører du scriptet som endrer navnet på pce nhelt til slutt. PAss da på at navnet som pc kotoen får først, er unikt, slik at det ikke finnes fra før i AD: EDIT: Bare for å få det med: Scriptet har nok sikkert endel forbedrings potensiale. /kakkle Endret 15. juni 2009 av kakkle Lenke til kommentar
Neddo Skrevet 15. juni 2009 Forfatter Del Skrevet 15. juni 2009 Takk skal begynne og jobbe med dette i sommar, skal sette opp nokon test servara og klienta og begynne og teste litt. Lenke til kommentar
kakkle Skrevet 15. juni 2009 Del Skrevet 15. juni 2009 Husk å endre: strComputerOU = "OU=Workstations,dc=domain,dc=no" til det som er gjeldende for ditt domene... Som standard, så brukes vel nye pcer å legges inn i computers... Det vil da se sånn ut: strComputerOU = "CN=Computers,dc=domain,dc=no" Merk at den default container computers ikke er en OU, derav CN=computers Om du trenger hjelp med å finne distiguishedName, så anbefaler jeg deg å bruke adsiedit, og se på verdien distinguishedName på et object (f.eks. en OU) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå