Re: AD i dodawanie kont - skrypt

Autor: Bartek Siebab <bs_at_vt.pl>
Data: Thu 12 May 2005 - 20:11:53 MET DST
Message-ID: <d606ig$l48$1@nemesis.news.tpi.pl>
Content-Type: text/plain; charset=ISO-8859-2; format=flowed

TomekP dnia 2005-05-12 12:58:
> Witam.
> Dodaje konta do AD za pomocą skryptu, modyfikując przy okazji ustawienia,
> problem mam tylko z dodaniem danego użytkownika jako członka grupy (np. chcę
> by był członkiem pięciu grup już stworzonych).
> Jak to zmodyfikować, czy lepiej zrobić modyfikacje tej grupy dodając do niej
> użytkowników (<-jeśli tak to co dopisać do skryptu)

no to tu zacytuje fragment skryptu:

...

Grupa1="tu nazwa grupy 1"
Grupa2="tu nazwa grupy 2"
Jednostka="nazwa jednostki organizacyjnej lub kontenera"
UzytkownikImie="Imie"
UzytkownikNazwisko="Nazwisko"

ImieNazwisko=UzytkownikImie & " " & UzytkownikNazwisko
UzytkownikImieNazwisko=ImieNazwisko
JednostkaORG="ou=" & Jednostka
Uzytkownik="cn=" & ImieNazwisko
SufixLDAP=",dc=xxx,dc=yyy,dc=pl"
UzytkownikDomena="@xxx.yyy.pl"
DrzewoLDAP="LDAP://" & JednostkaORG & SufixLDAP
UzytkownikORG="LDAP://" & Uzytkownik & "," & JednostkaORG & SufixLDAP
GR1ORG="LDAP://cn=" & Grupa1 & ","& JednostkaORG & SufixLDAP
GR2ORG="LDAP://cn=" & Grupa2 & ","& JednostkaORG & SufixLDAP

' tu tworzenie uzytkownika, parametry konta, uslug terminalowych,
' skryptu logowania itp itp itd

' Utworz nowego uzytkownika (ale nie wlaczaj)
Set objOU = GetObject(DrzewoLDAP)
Set objUser = objOU.Create("User", Uzytkownik)
objUser.Put "sAMAccountName", UzytkownikLogin
objUser.SetInfo

' dane o koncie - login itp
Set objUser = GetObject (UzytkownikORG)
objUser.Put "userPrincipalName", UzytkownikLogin & UzytkownikDomena
objUser.Put "sAMAccountName", UzytkownikLogin
objUser.SetInfo

' wlacz konto uzytkownikowi
Set objUser = GetObject (UzytkownikORG)
objUser.AccountDisabled = FALSE
objUser.SetInfo

' Ustaw atrybuty konta uzytkownika
ADS_PROPERTY_UPDATE = 2
Set objUser = GetObject (UzytkownikORG)
objUser.Put "givenName", UzytkownikImie
'objUser.Put "initials", UzytkownikInicjal
objUser.Put "sn", UzytkownikNazwisko
objUser.Put "displayName", UzytkownikImieNazwisko
objUser.Put "physicalDeliveryOfficeName", UzytkownikPokoj
objUser.Put "telephoneNumber", UzytkownikTelefon
if UzytkownikEmail<>"" then objUser.Put "mail", UzytkownikEmail
'objUser.Put "wWWHomePage", "http://www.xxx.yyy.pl"
if UzytkownikOpis<>"" then objUser.PutEx _
  ADS_PROPERTY_UPDATE, "description", Array(UzytkownikOpis)
objUser.SetInfo

' ustaw nowe hsalo uzytkownikowi
Set objUser = GetObject (UzytkownikORG)
objUser.SetPassword UzytkownikHaslo

' wymus zmiane hasla przez uzytkownika po zalogowaniu
Set objUser = GetObject (UzytkownikORG)
objUser.Put "pwdLastSet", 0
objUser.SetInfo

' ustaw dane o organizacji
Set objUser = GetObject (UzytkownikORG)
objUser.Put "title", UzytkownikTytul
objUser.Put "department", UzytkownikWydzial
objUser.Put "company", UzytkownikFirma
objUser.SetInfo

' konfiguruje dane informacji o uzytkowniku
Set objUser = GetObject (UzytkownikORG)
objUser.Put "streetAddress", UzytkownikBudynek _
  & vbCrLf & UzytkownikUlica
objUser.Put "l", UzytkownikMiasto
objUser.Put "st", UzytkownikWojewodztwo
objUser.Put "postalCode", UzytkownikKod
objUser.Put "c", UzytkownikKraj
objUser.SetInfo

' ustaw parametry uslug terminalowych uzytkownikowi
Set objUser = GetObject(UzytkownikORG)
'**********************************************************************
'* Terminal Services Profile tab
'**********************************************************************
objUser.AllowLogon = LogowanieDoTerminali
objUser.TerminalServicesHomeDirectory = ""
objUser.TerminalServicesHomeDrive = ""
objUser.TerminalServicesProfilePath = ""

'**********************************************************************
'* Remote control tab
'**********************************************************************
objUser.EnableRemoteControl = 2 ' EnableRemoteControl Values:
                                       ' Disable = 0
                                       ' EnableInputNotify = 1
                                       ' EnableInputNoNotify = 2
                                       ' EnableNoInputNotify = 3
                                       ' EnableNoInputNoNotify = 4

'**********************************************************************
'* Sessions tab
'**********************************************************************
objUser.BrokenConnectionAction = 1 ' Disconnect = 0, End Session = 1
objUser.MaxConnectionTime = 0 ' Time in minutes
objUser.MaxDisconnectionTime = 1 ' Time in minutes
objUser.MaxIdleTime = 60 ' Time in minutes
objUser.ReconnectionAction = 1 ' Any Client = 0, Originating
client = 1

'**********************************************************************
'* Environment tab
'**********************************************************************
objUser.ConnectClientDrivesAtLogon = 1 ' Disabled = 0, Enabled = 1
objUser.ConnectClientPrintersAtLogon = 0 ' Disabled = 0, Enabled = 1
objUser.DefaultToMainPrinter = 0 ' Disabled = 0, Enabled = 1
if TerminalStartProgram<>"" then objUser.TerminalServicesInitialProgram
= TerminalStartProgram
if TerminalWorkDir<>"" then objUser.TerminalServicesWorkDirectory =
TerminalWorkDir
objUser.SetInfo

' ustaw uzytkownikowi parametry profile
Set objUser = GetObject (UzytkownikORG)
if SciezkaProfiles<>"" then objUser.Put "profilePath", SciezkaProfiles
if LogonScript<>"" then objUser.Put "scriptPath", LogonScript
if SciezkaHomes<>"" then objUser.Put "homeDirectory", SciezkaHomes
if DyskHomes<>"" then objUser.Put "homeDrive", DyskHomes
objUser.SetInfo

' Dodaj uzytkownika do dwoch grup zabezpieczen
ADS_PROPERTY_APPEND = 3

Set objGroup = GetObject (GR1ORG)
objGroup.PutEx ADS_PROPERTY_APPEND, "member", _
  Array(Uzytkownik & "," & JednostkaORG & SufixLDAP)
objGroup.SetInfo

Set objGroup = GetObject (GR2ORG)
objGroup.PutEx ADS_PROPERTY_APPEND, "member", _
  Array(Uzytkownik & "," & JednostkaORG & SufixLDAP)
objGroup.SetInfo

...

-- 
.---------- --------  ------ ----  ---- --- - -- -
| Bartek `saphire` Siebab http://bartek.siebab.net
Received on Thu May 12 20:15:18 2005

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Thu 12 May 2005 - 20:42:02 MET DST