ADSI Edit

Active Directory introducerades först med Windows 2000 Server och kommer att bli 20 år om ett år. Visst har Active Directory utvecklats längs vägen till idag, men fortfarande följer samma grundstruktur som den gjorde när den först introducerades för nästan tjugo sedan.

Många av Active Directory administrationsverktyg som vi har idag kan också spåra sina rötter till mycket tidigare versioner av Windows. Exempelvis har Active Directory User and Computers som finns idag i Windows Server 2016 verkligen inte förändrats så mycket under åren.

AD administrationsverktyg är utformade för att vara säkra och för att skydda oerfarna administratörer från att göra potentiellt katastrofala misstag. Men samma säkerhetsmekanismer kan dock komma i vägen. De olika AD administrationsverktygen är utformade för att göra registerändringar mycket säkrare genom att fungera som en isoleringsgräns mellan administratören och potentiellt farliga registerinställningar.

Problemet med AD administrationsverktygen är dock att de inte kan hjälpa till i alla situationer. Det är här ADSI Edit spelar in. Ibland måste en administratör direkt redigera registret för att lösa ett problem som helt enkelt inte kan åtgärdas med de vanliga verktygen.

Obs! Man kan göra katastrofala skador genom att använda ADSI Edit felaktigt, så det är en bra idé att säkerhetskopiera din Active Directory innan du använder det här verktyget.

Det enklaste sättet att komma åt ADSI Edit är genom att välja kommandot ADSI Edit från Serverhanterarens verktygsmeny. Klicka på Tools] och välj [ADSI EDIT]

Bild 1: ADSI Edit

Det första steget när det här verktyget är igång är att ansluta det till Active Directory. För att göra det klickar du på [Action] och därefter väljer du [Connect to]. Detta kommer att öppna dialogrutan [Connection Settings].

Bild 2: ADSI Edit ansluts till Active Directory

Acceptera default inställningar. Observera att redigeraren kommer att anslutas till domänen diginto.se (se [Path]). Klicka på OK för att få fram ett grafiskt gränssnitt.

Bild 3: ADSI Edit ansluten till domänen diginto.se

ADSI Edit ger systemadministratörer möjligheten att flytta, radera, byta namn på eller på annat sätt. Att ändra AD-objekt som systemadministratörer vanligtvis inte skulle kunna göra det.

AD Objekthantering med ADSI och LDAP

För att skapa en instans mot Active Directory används typacceleratorn [adsi]. Genom [adsi] och LDAP providern får vi snabbt tillgång till objekt i Active Directory.

För att skapa skripter med hjälp av ADSI och LDAP behöver en redigerare exempelvis Notepad/Antecknare eller PowerShell ISE (Integrated Scripting Environment) som medföljer med Windows Server 2008 R2.

Vi börjar att koda i Notepad och spara skripterna med lämpliga namn och filändelse .ps1
och inte .txt (I Notepad sparas skripter i All Files läge). Det är alltid bra att lägga information just i början så att man vet skriptets syfte.

En annan aspekt är att ha en plats där alla skripter ska lagras. I mitt fall använder jag C:\ADkurs\Scripts.

PowerShell har följande policy för skriptexekvering:
Restricted – Inget skript tillåts köras i systemet.
AllSigned – Endast godkända och signerade skripter kan exekveras.
RemoteSigned – Nedladdade skripter får exekveras om de härkommer från förtrodda samarbetspartner.
Unrestricted – Inga begränsningar för exekvering av skripter.

Som default är exekverings policy av skripter satt till RESTRICTED. För att få fram exekverings policy och sedan sätt till Unrestricted (endast vid laborationer!) kan vi exekvera:

PS C:\ADkurs\Scripts\>Get-ExecutionPolicy
PS C:\ADkurs\Scripts\>Set-ExecutionPolicy Unrestricted

Objekthantering

För att skapa en mapp under C: kan vi koda så här:

#newFolder.ps1
#Creates a new folder named ADlabs
#
#Chalo Reyes, 2013-09-05
#
$newFolder = New-Object -ComObject scripting.filesystemobject
$newFolder.CreateFolder(”C:\ADlabs”)

Skriptet lagras som newFolder.ps1 i en lämplig katalog till exempel c:\ADkurs\Scripts.

newFolder.ps1 kan exekveras så här:

PS C:\ADkurs\Scripts\newFolder.ps1

För att skapa 100 mappar under C:\ kan vi koda så här:

# newFolders.ps1
# Creates 100 sub folders in a directory named C:\ADlabs
#
#Chalo Reyes, 2013-09-05
#
for( $i = 1 ; $i -le 100 ; $i++)
{
new-item -path c:\ADlabs -name ”Eductus_$i” -itemtype directory
}

Skriptet lagras som newFolders.ps1 och kan exekveras så här:

PS C:\ADkurs\Scripts\newFolders.ps1

Nu när vi har sett grundläggande hantering av skripter i PowerShell kan vi börja hantera objekt i Active Directory.

Hantera ou i Active Directory

För att skapa ett nytt OU används metoden Create() och för att sätta egenskaper på ett OU används metoden Put(). Tecknet ”l” i nedanstående exempel motsvarar location på objektet.

Vi utforskar först några enkla skripter som skapar nya AD-objekt.

För att skapa en ny OU med namn ”Eductus” kan vi koda så här:

#newOU.ps1
#Create an OU named Eductus
#
#Chalo Reyes, 2013-09-05
#
$adsi = [adsi]”LDAP://dc=digiskola,dc=local”
$newOU = $adsi.create(”OrganizationalUnit”,”ou=Eductus”)
$newOU.SetInfo()

För att skapa gruppen ”PS Admins” i organisationsenheten Eductus kan vi koda så här:

#CreateGroup.ps1
#Create a group in Eductus OU named PS Admins
#
#Chalo Reyes, 2013-09-05
#
$adsi = [adsi]”LDAP://ou=Eductus,dc=digiskola,dc=local”
$newGroup = $adsi.create(”Group”,”cn=PS Admins”)
$newGroup.SetInfo()

För att skapa ett användarkonto för Hans Gravander i organisationsenheten Eductus kan vi koda:

#newUser.ps1
#Create a user account for Hans Gravander in Eductus OU
#
#Chalo Reyes, 2013-09-05
#
$adsi = [adsi]”LDAP://ou=Eductus,dc=digiskola,dc=local”
$newUser = $adsi.create(”User”,”cn=Hans Gravander”)
$newUser.SetInfo()

Nu ska vi skapa en OU-struktur för MS Certs sajten. Övningen hämtas från tidigare inlägg där AD objekt hanterades enbart med CmdLets. Men nu ska objekten hanteras med hjälp av skripter. Börja med att radera hela OU MScerts.

Följande OU strukture ska skapasmed ett skript.

OU=MScerts
OU=MCSA,OU=MScerts
OU=MCEA,OU=MScerts
OU=Active Directory,OU=MCSA,OU=MScerts
OU=Infrastructure,OU=MCSA,OU=MScerts
OU=Server Administrator,OU=MCSA,OU=MScerts
OU=Active Directory,OU=MCEA,OU=MScerts
OU=Infrastructure,OU=MCEA,OU=MScerts
OU=ApsInfra Configuration,OU=MCEA,OU=MScerts
OU=Enterprise Administrator,OU=MCEA,OU=MScerts

Kod som skrivs i Notepad:
#CreatesOUstructure-MScerts.ps1
#
#Creates OU-structure for MS Certifications
#Chalo Reyes, 2013-09-05
#
#Connecting to Active Directory
$adsi = [adsi]”LDAP://dc=digiskola,dc=local”

#Creating the principal ou
$ou = $adsi.create(”OrganizationalUnit”,”ou=MScerts”)
$ou.put(”l”,”Stockholm City”)
$ou.put(”Description”,”The principal OU”)
$ou.SetInfo()

#Creating ou MCSA and MCEA in MScerts
#Connecting to Active Directory
$adsi = [adsi]”LDAP://ou=MScerts,dc=digiskola,dc=local”
#Creating MCSA
$ou = $adsi.create(”OrganizationalUnit”,”ou=MCSA”)
$ou.put(”l”,”Stockholm City”)
$ou.put(”Description”,”Microsoft Certified Server Administrator”)
$ou.SetInfo()
#Creating MCEA
$ou = $adsi.create(”OrganizationalUnit”,”ou=MCEA”)
$ou.put(”l”,”Stockholm City”)
$ou.put(”Description”,”Microsoft Certified Enterprise Administrator”)
$ou.SetInfo()

#Creating OUs in MCSA
#Connecting to Active Directory
$adsi = [adsi]”LDAP://ou=MCSA,ou=MScerts,dc=digiskola,dc=local”
#Creating ou Active Directory
$ou = $adsi.create(”OrganizationalUnit”,”ou=Active Directory”)
$ou.put(”l”,”Stockholm City”)
$ou.put(”Description”,”Active Directory: Exam 70-640″)
$ou.SetInfo()
#Creating ou Infrastructure
$ou = $adsi.create(”OrganizationalUnit”,”ou=Infrastructure”)
$ou.put(”l”,”Stockholm City”)
$ou.put(”Description”,”Network Infrastructure: Exam 70-642″)
$ou.SetInfo()
#Creating ou Server Administrator
$ou = $adsi.create(”OrganizationalUnit”,”ou=Server Administrator”)
$ou.put(”l”,”Stockholm City”)
$ou.put(”Description”,”Server Administrator: Exam 70-646″)
$ou.SetInfo()

#Creating OUs in MCEA
#Connecting to Active Directory
$adsi = [adsi]”LDAP://ou=MCEA,ou=MScerts,dc=digiskola,dc=local”
#Creating ou Active Directory
$ou = $adsi.create(”OrganizationalUnit”,”ou=Active Directory”)
$ou.put(”l”,”Stockholm City”)
$ou.put(”Description”,”Active Directory: Exam 70-640″)
$ou.SetInfo()
#Creating ou Infrastructure
$ou = $adsi.create(”OrganizationalUnit”,”ou=Infrastructure”)
$ou.put(”l”,”Stockholm City”)
$ou.put(”Description”,”Network Infrastructure: Exam 70-642″)
$ou.SetInfo()
#Creating ou ApsInfra Configuration
$ou = $adsi.create(”OrganizationalUnit”,”ou=ApsInfra Configuration”)
$ou.put(”l”,”Stockholm City”)
$ou.put(”Description”,”Aplications Infrastructure: Exam 70-645″)
$ou.SetInfo()
#Creating ou Enterprise Administrator
$ou = $adsi.create(”OrganizationalUnit”,”ou=Enterprise Administrator”)
$ou.put(”l”,”Stockholm City”)
$ou.put(”Description”,”Enterprise Administrator: Exam 70-643″)
$ou.SetInfo()

Hantera grupper i Active Directory

För att skapa en ny grupp används metoden Create(). För att sätta egenskaper på en grupp används metoden Put(). I söksträngen skriver vi in det OU som gruppen skall skapas i. För att namnge grupperna sätter vi till CN= istället för OU=.

Grupper att skapas också hämtas från tidigare inlägg.

OU=MScerts
OU=MCSA,OU=MScerts
OU=MCEA,OU=MScerts
OU=Active Directory,OU=MCSA,OU=MScerts –> CN=AD Admins, SADamins (SamAccountName)
OU=Infrastructure,OU=MCSA,OU=MScerts –> CN=Infra Admins, SAInfradmins
OU=Server Administrator,OU=MCSA,OU=MScerts –> CN=Server Admins, Serveradmins
OU=Active Directory,OU=MCEA,OU=MScerts –> CN=EAD Admins, EADadmins
OU=Infrastructure,OU=MCEA,OU=MScerts –> CN=EA Infra Admins, EAInfradmins
OU=ApsInfra Configuration,OU=MCEA,OU=MScerts –> CN=AIC Admins, AICadmins
OU=Enterprise Administrator,OU=MCEA,OU=MScerts –> CN=EA Admins, EAadmins

#CreatesGroup-MScerts.ps1
#
#Creates groups for MS Certifications
#Chalo Res, 2013-09-05

#Creating groups in MCSA
#
$adsi = [adsi]”LDAP://ou=Active Directory,ou=MCSA,ou=MScerts,dc=digiskola,dc=local”
$Group = $adsi.create(”Group”,”cn=SAD Admins”)
$Group.put(”SamAccountName”,”SADadmins”)
$Group.put(”Description”,”Microsoft Certified Domain Administrators”)
$Group.setinfo()
#
$adsi = [adsi]”LDAP://ou=Infrastructure,ou=MCSA,ou=MScerts,dc=digiskola,dc=local”
$Group = $adsi.create(”Group”,”cn=SAInfra Admins”)
$Group.put(”SamAccountName”,”SAInfradmins”)
$Group.put(”Description”,”Microsoft Certified Domain Infrastructure Administrators”)
$Group.SetInfo()
#
$adsi = [adsi]”LDAP://ou=Server Administrator,ou=MCSA,ou=MScerts,dc=digiskola,dc=local”
$Group = $adsi.create(”Group”,”cn=Server Admins”)
$Group.put(”SamAccountName”,”Serveradmins”)
$Group.put(”Description”,”Microsoft Certified Domain Server Administrators”)
$Group.SetInfo()
#
#Creating groups in MCEA
#
$adsi = [adsi]”LDAP://ou=Active Directory,ou=MCEA,ou=MScerts,dc=digiskola,dc=local”
$Group = $adsi.create(”Group”,”cn=EAD Admins”)
$Group.put(”SamAccountName”,”EADadmins”)
$Group.put(”Description”,”Microsoft Certified Enterprise Administrators”)
$Group.SetInfo()
#
$adsi = [adsi]”LDAP://ou=Infrastructure,ou=MCEA,ou=MScerts,dc=digiskola,dc=local”
$Group = $adsi.create(”Group”,”cn=EAInfra Admins”)
$Group.put(”SamAccountName”,”EAInfradmins”)
$Group.put(”Description”,”Microsoft Certified Enterprise Infrastructure Administrators”)
$Group.SetInfo()
#
$adsi = [adsi]”LDAP://ou=ApsInfra Configuration,ou=MCEA,ou=MScerts,dc=digiskola, dc=local”
$Group = $adsi.create(”Group”,”cn=AIC Admins”)
$Group.put(”SamAccountName”,”EICadmins”)
$Group.put(”Description”,”Microsoft Certified aplication Infrastructure Administrators”)
$Group.SetInfo()
#
$adsi = [adsi]”LDAP://ou=Enterprise Administrator,ou=MCEA,ou=MScerts,dc=digiskola, dc=local”
$Group = $adsi.create(”Group”,”cn=EA Admins”)
$Group.put(”SamAccountName”,”EAadmins”)
$Group.put(”Description”,”Microsoft Certified Enterprise Administrators”)
$Group.SetInfo()

Hantera användarkonto i Active Directory

Det är nu som börjar bli svårare att koda. Det går bra så länge man skapar några användarkonto, men för många objektkonto räcker inte enbart skripter. Excel eller en vanlig textfil kan användas tillsammans skripter så att indata hämtas från en extern källa.

När vi skapar användaren är lösenordet inte satt och användaren är disabled. För att sätta användarens lösenord samt sätta kontot till enabled kan vi använda oss av psbase för att komma åt de underliggande metoderna på objektet.

Följande användarkonto ska skapas:

OU=Active Directory,OU=MCSA,OU=MScerts –>
CN=Patrik Buskes, patrik.buskes (SamAccountName)
CN=Shuan Humter, shuan.humter (SamAccountName)

OU=Infrastructure,OU=MCSA,OU=MScerts –>
CN=Gunnar Petersson, gunnar.petersson (SamAccountName)
CN=Markus Qvist, markus.qvist (SamAccountName)

OU=Server Administrator,OU=MCSA,OU=MScerts –>
CN=Karim Gutemberg, karim.gutemberg (SamAccountName)
CN=Andrea Muller, andrea.muller (SamAccountName)

OU=Active Directory,OU=MCEA,OU=MScerts –>
CN=Niklas Frederiksson, niklas.fredriksson (SamAccountName)
CN=Ronny Husler, ronny.husler (SamAccountName)

OU=Infrastructure,OU=MCEA,OU=MScerts –>
CN=Cemil Geenberg, cemil.greenberg (SamAccountName)
CN=Mario Martinez, mario.martinez (SamAccountName)

OU=ApsInfra Configuration,OU=MCEA,OU=MScerts –>
CN=Thomas Thellin, thomas.thellin (SamAccountName)
CN=Faras Karlsson, faras.karlsson (SamAccountName)

OU=Enterprise Administrator,OU=MCEA,OU=MScerts –>
CN=Stephen Wallen, stephen.wallen (SamAccountName)
CN=Cenk Berg, cenk.berg (SamAccountName)

För att skapa användarkonto kan vi koda:

#CreatesUsers-MScerts.ps1
#
#Creating Users
#
#Chalo Reyes, 2013-09-05
#
#Users in Active Directory ou
$adsi = [adsi]”LDAP://ou=Active Directory,ou=MCSA,ou=MScerts,dc=digiskola,dc=local”
$user = $adsi.create(”User”,”cn=Patrik Buskes”)
$user.Put(”SamAccountName”,”patrik.buskes”)
$user.Put(”GivenName”,”Patrik”)
$user.Put(”sn”,”Buskes”)
$user.Put(”UserPrincipalName”,”patrik.buskes@digiskola.local”)
$user.Put(”Description”,”AD Administrator”)
$user.setinfo()
#
$user.psbase.invoke(”SetPassword”,”P@ssw0rd”)
$user.pwdLastSet = 0
$user.psbase.invokeSet(”AccountDisabled”,”$False”)
$user.setinfo()
#
$User = $adsi.create(”User”,”cn=Shuan Humter”)
$User.Put(”SamAccountName”,”SHumter”)
$User.Put(”GivenName”,”Shuan”)
$User.Put(”sn”,”Humter”)
$User.Put(”UserPrincipalName”,”shuan.humter@digiskola.local”)
$User.Put(”Description”,”AD Administrator”)
$User.SetInfo()
#
$user.psbase.invoke(”SetPassword”,”P@ssw0rd”)
$user.pwdLastSet = 0
$user.psbase.invokeSet(”AccountDisabled”,”$False”)
$user.setinfo()
#
#Users in Infrastructure ou
$adsi = [adsi]”LDAP://ou=Infrastructure,ou=MCSA,ou=MScerts,dc=digiskola,dc=local”
$user = $adsi.create(”User”,”cn=Gunnar Petersson”)
$user.Put(”SamAccountName”,”gunnar.petersson”)
$user.Put(”GivenName”,”Gunnar”)
$user.Put(”sn”,”Petersson”)
$user.Put(”UserPrincipalName”,”gunnar.petersson@digiskola.local”)
$user.Put(”Description”,”Infrastructure Administrator”)
$user.setinfo()
#
$user.psbase.invoke(”SetPassword”,”P@ssw0rd”)
$user.pwdLastSet = 0
$user.psbase.invokeSet(”AccountDisabled”,”$False”)
$user.setinfo()
#
$User = $adsi.create(”User”,”cn=Markus Qvist”)
$User.Put(”SamAccountName”,”markus.qvist”)
$User.Put(”GivenName”,”Markus”)
$User.Put(”sn”,”Qvist”)
$User.Put(”UserPrincipalName”,”markus.qvist@digiskola.local”)
$User.Put(”Description”,”Infrastructure Administrator”)
$User.SetInfo()
#
$user.psbase.invoke(”SetPassword”,”P@ssw0rd”)
$user.pwdLastSet = 0
$user.psbase.invokeSet(”AccountDisabled”,”$False”)
$user.setinfo()
#
#Users in Server Administrator ou
$adsi = [adsi]”LDAP://ou=Server Administrator,ou=MCSA,ou=MScerts,dc=digiskola,dc=local”
$user = $adsi.create(”User”,”cn=Karim Gutemberg”)
$user.Put(”SamAccountName”,”karim.gutemberg”)
$user.Put(”GivenName”,”Karim”)
$user.Put(”sn”,”Gutemberg”)
$user.Put(”UserPrincipalName”,”karim.gutemberg@digiskola.local”)
$user.Put(”Description”,”Server Administrator”)
$user.setinfo()
#
$user.psbase.invoke(”SetPassword”,”P@ssw0rd”)
$user.pwdLastSet = 0
$user.psbase.invokeSet(”AccountDisabled”,”$False”)
$user.setinfo()
#
$User = $adsi.create(”User”,”cn=Andrea Muller”)
$User.Put(”SamAccountName”,”andrea.muller”)
$User.Put(”GivenName”,”Andrea”)
$User.Put(”sn”,”Muller”)
$User.Put(”UserPrincipalName”,”andrea.muller@digiskola.local”)
$User.Put(”Description”,”Server Administrator”)
$User.SetInfo()
#
$user.psbase.invoke(”SetPassword”,”P@ssw0rd”)
$user.pwdLastSet = 0
$user.psbase.invokeSet(”AccountDisabled”,”$False”)
$user.setinfo()
#
#Users in Active Directory ou
$adsi = [adsi]”LDAP://ou=Active Directory,ou=MCEA,ou=MScerts,dc=digiskola,dc=local”
$user = $adsi.create(”User”,”cn=Niklas Fredriksson”)
$user.Put(”SamAccountName”,”niklas.fredriksson”)
$user.Put(”GivenName”,”Niklas”)
$user.Put(”sn”,”Fredriksson”)
$user.Put(”UserPrincipalName”,”niklas.fredriksson@digiskola.local”)
$user.Put(”Description”,”Enterprise AD Administrator”)
$user.setinfo()
#
$user.psbase.invoke(”SetPassword”,”P@ssw0rd”)
$user.pwdLastSet = 0
$user.psbase.invokeSet(”AccountDisabled”,”$False”)
$user.setinfo()
#
$User = $adsi.create(”User”,”cn=Ronny Husler”)
$User.Put(”SamAccountName”,”ronny.husler”)
$User.Put(”GivenName”,”Ronny”)
$User.Put(”sn”,”Husler”)
$User.Put(”UserPrincipalName”,”ronny.husler@digiskola.local”)
$User.Put(”Description”,”Enterprise AD Administrator”)
$User.SetInfo()
#
$user.psbase.invoke(”SetPassword”,”P@ssw0rd”)
$user.pwdLastSet = 0
$user.psbase.invokeSet(”AccountDisabled”,”$False”)
$user.setinfo()
#
#Users in Infrastructure ou
$adsi = [adsi]”LDAP://ou=Infrastructure,ou=MCEA,ou=MScerts,dc=digiskola,dc=local”
$user = $adsi.create(”User”,”cn=Cemil Greenberg”)
$user.Put(”SamAccountName”,”cemil.greenberg”)
$user.Put(”GivenName”,”Cemil”)
$user.Put(”sn”,”Greenberg”)
$user.Put(”UserPrincipalName”,”cemil.greenberg@digiskola.local”)
$user.Put(”Description”,”Enterprise Infrastructure Administrator”)
$user.setinfo()
#
$user.psbase.invoke(”SetPassword”,”P@ssw0rd”)
$user.pwdLastSet = 0
$user.psbase.invokeSet(”AccountDisabled”,”$False”)
$user.setinfo()
#
$User = $adsi.create(”User”,”cn=Mario Martinez”)
$User.Put(”SamAccountName”,”mario.martinez”)
$User.Put(”GivenName”,”Mario”)
$User.Put(”sn”,”Martinez”)
$User.Put(”UserPrincipalName”,”mario.martinez@digiskola.local”)
$User.Put(”Description”,”Enterprise Infrastructure Administrator”)
$User.SetInfo()
#
$user.psbase.invoke(”SetPassword”,”P@ssw0rd”)
$user.pwdLastSet = 0
$user.psbase.invokeSet(”AccountDisabled”,”$False”)
$user.setinfo()
#
#Users in ApsInfra Configuration ou
$adsi = [adsi]”LDAP://ou=ApsInfra Configuration,ou=MCEA,ou=MScerts,dc=digiskola, dc=local”
$user = $adsi.create(”User”,”cn=Thomas Thellin”)
$user.Put(”SamAccountName”,”thomas.thellin”)
$user.Put(”GivenName”,”Thomas”)
$user.Put(”sn”,”Thelling”)
$user.Put(”UserPrincipalName”,”thomas.thellin@digiskola.local”)
$user.Put(”Description”,”Enterprise AplicationInfra Administrator”)
$user.setinfo()
#
$user.psbase.invoke(”SetPassword”,”P@ssw0rd”)
$user.pwdLastSet = 0
$user.psbase.invokeSet(”AccountDisabled”,”$False”)
$user.setinfo()
#
$User = $adsi.create(”User”,”cn=Faras Karlsson”)
$User.Put(”SamAccountName”,”faras.karlsson”)
$User.Put(”GivenName”,”Faras”)
$User.Put(”sn”,”Karlsson”)
$User.Put(”UserPrincipalName”,”faras.karlsson@digiskola.local”)
$User.Put(”Description”,”Enterprise AplicationInfra Administrator”)
$User.SetInfo()
#
$user.psbase.invoke(”SetPassword”,”P@ssw0rd”)
$user.pwdLastSet = 0
$user.psbase.invokeSet(”AccountDisabled”,”$False”)
$user.setinfo()
#
#Users in Enterprise Administrator ou
$adsi = [adsi]”LDAP://ou=Enterprise Administrator,ou=MCEA,ou=MScerts,dc=digiskola, dc=local”
$user = $adsi.create(”User”,”cn=Stephen Wallen”)
$user.Put(”SamAccountName”,”stephen.wallen”)
$user.Put(”GivenName”,”Stephen”)
$user.Put(”sn”,”Wallen”)
$user.Put(”UserPrincipalName”,”stephen.wallen@digiskola.local”)
$user.Put(”Description”,”Enterpise Administrator”)
$user.setinfo()
#
$user.psbase.invoke(”SetPassword”,”P@ssw0rd”)
$user.pwdLastSet = 0
$user.psbase.invokeSet(”AccountDisabled”,”$False”)
$user.setinfo()
#
$User = $adsi.create(”User”,”cn=Cenk Berg”)
$User.Put(”SamAccountName”,”cenk.berg”)
$User.Put(”GivenName”,”Cenk”)
$User.Put(”sn”,”Berg”)
$User.Put(”UserPrincipalName”,”cenk.berg@digiskola.local”)
$User.Put(”Description”,”Enterprise Administrator”)
$User.SetInfo()
#
$user.psbase.invoke(”SetPassword”,”P@ssw0rd”)
$user.pwdLastSet = 0
$user.psbase.invokeSet(”AccountDisabled”,”$False”)
$user.setinfo()