<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://powershelllive.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Mastering PowerShell in your Lunch Break</title><subtitle type="html" /><id>http://powershelllive.com/blogs/lunch/atom.aspx</id><link rel="alternate" type="text/html" href="http://powershelllive.com/blogs/lunch/default.aspx" /><link rel="self" type="application/atom+xml" href="http://powershelllive.com/blogs/lunch/atom.aspx" /><generator uri="http://communityserver.org" version="2.1.61129.2">Community Server</generator><updated>2007-03-26T11:15:00Z</updated><entry><title>Day 7: Manage Users</title><link rel="alternate" type="text/html" href="http://powershelllive.com/blogs/lunch/archive/2007/04/05/day-7-manage-users.aspx" /><id>http://powershelllive.com/blogs/lunch/archive/2007/04/05/day-7-manage-users.aspx</id><published>2007-04-05T13:40:00Z</published><updated>2007-04-05T13:40:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;In Day 6, you discovered how to connect to domains (or your local computer) and bind to objects. Today, I’ll focus on user objects and what you can do with them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=1 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Grabbing A User&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Even if this header may not be politically correct, it describes the process of accessing or binding to a user. There are many ways how you can pick a user. No matter how you do it, you get back a user object that represents the user.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Binding was covered in Day 6 already. Here’s a quick refresher. Each of these samples returns a user object.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=2 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Getting Local Users&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Get a local user account by name:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = [ADSI]"WinNT://./Administrator,user"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Or (faster):&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$computer = [ADSI]"WinNT://.,computer"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $computer.psbase.children.Find("Administrator", "User")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=2 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Getting Domain Users&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Get a domain user account by name:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$ADsPath = "LDAP://CN=Administrator,CN=Users," + ([ADSI]"").DistinguishedName&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = [ADSI]$AdsPath&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Or (without knowing its exact location):&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$UserName = "Administrator"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$searcher = new-object DirectoryServices.DirectorySearcher([ADSI]"")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$searcher.filter = "(&amp;amp;(objectClass=user)(sAMAccountName= $UserName))"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$founduser = $searcher.findOne()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $searcher.getDirectoryEntry()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Note that the search returns a &lt;I style="mso-bidi-font-style:normal;"&gt;SearchResult&lt;/I&gt; which is &lt;I style="mso-bidi-font-style:normal;"&gt;not&lt;/I&gt; the real user object. You do have access to most of the user object properties so the &lt;I style="mso-bidi-font-style:normal;"&gt;SearchResult&lt;/I&gt; may suffice in some cases:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$founduser.Properties&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;However, to get full access and receive an object of same type as with the direct access samples, you need to call &lt;I style="mso-bidi-font-style:normal;"&gt;getDirectoryEntry()&lt;/I&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Note also that the &lt;I style="mso-bidi-font-style:normal;"&gt;DirectorySearcher&lt;/I&gt; can return more than one result. I have discussed the &lt;I style="mso-bidi-font-style:normal;"&gt;DirectorySearcher&lt;/I&gt; in great detail in Day 6. So if you wanted to retrieve a number of users to do things with them, use the appropriate search filter that fits your need best (Day 6). Here’s a sample:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$UserName = "A*"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$searcher = new-object DirectoryServices.DirectorySearcher([ADSI]"")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$searcher.filter = "(&amp;amp;(objectClass=user)(sAMAccountName= $UserName))"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$searcher.findAll() | % { &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;TEXT-INDENT:35.4pt;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $_.getDirectoryEntry()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;TEXT-INDENT:35.4pt;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.name&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;}&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:115%;mso-ansi-language:EN-AU;mso-bidi-font-size:11.0pt;"&gt;&lt;FONT face=Calibri&gt;Getting A User Based On Its GUID&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;If you read Day 6 carefully, you now know how to retrieve the special GUID from an ADSI object. The GUID is the only object property that never changes throughout its lifetime and therefore a good (and very fast) way of binding to that object. If you know the GUID of a user account, this is how you bind to it:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:DE;"&gt;&lt;FONT color=#ffffff&gt;&lt;FONT face="Lucida Console"&gt;$user = [ADSI]"LDAP:&amp;lt;GUID=D83F10601E7111CFB1F302608C9E7553&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=1 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Reading User Properties (And Writing To Them, Too)&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Each user object contains a rich set of properties. You can see the available properties with &lt;I style="mso-bidi-font-style:normal;"&gt;get-member&lt;/I&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user | get-member&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;Get-Member&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt; does &lt;I style="mso-bidi-font-style:normal;"&gt;not&lt;/I&gt; list &lt;I style="mso-bidi-font-style:normal;"&gt;all&lt;/I&gt; available properties, though. It lists only properties that actually contain data. So if you created a new user with a blank &lt;I style="mso-bidi-font-style:normal;"&gt;description&lt;/I&gt;, the property “description” will not be listed. Once you define that property (as you will in a second), &lt;I style="mso-bidi-font-style:normal;"&gt;get-member&lt;/I&gt; lists “description” as one of the properties.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 3pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 3pt solid;PADDING-LEFT:4pt;BACKGROUND:#fde9d9;PADDING-BOTTOM:1pt;BORDER-LEFT:#bfbfbf 3pt solid;PADDING-TOP:1pt;BORDER-BOTTOM:#bfbfbf 3pt solid;mso-border-shadow:yes;mso-element:para-border-div;"&gt;
&lt;P class=Kasten style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;To get a good overview and see all current properties and their values, use this trick:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=codebox style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;mso-shading-themecolor:text1;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.psbase.properties&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Kasten style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;This is an excellent way of finding the property you are after. For example, if you’d like to know how to set the phone number in a user account, open &lt;I style="mso-bidi-font-style:normal;"&gt;Active Directory Users and Computers&lt;/I&gt; and change the phone number manually.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Kasten style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;Next, bind to that user and use above line to dump all information contained in the user object. Look for the data you entered in the Windows GUI. Next to it, you read the property name.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Kasten style="BACKGROUND:#fde9d9;MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;Once you know the name of the property to change, read on to find out how to read and write (change) that property with PowerShell!&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:115%;mso-ansi-language:EN-AU;mso-bidi-font-size:11.0pt;"&gt;&lt;FONT face=Calibri&gt;Reading Stuff&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;To access one of the properties, you have three choices plus an extra choice:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.objectClass&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Get("objectClass")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.psbase.InvokeGet("objectClass")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;All three seem to pretty much work alike but they are different. You’ll find out in a second.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;There is one extra choice:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.GetEx("objectClass")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;GetEx&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt; always returns an array. So if the property you are reading is an array in the first place – like &lt;I style="mso-bidi-font-style:normal;"&gt;objectClass&lt;/I&gt; is – then there is no difference, and all four alternatives return an array in which you can index into its individual fields. The following lines read the first element from that array:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.objectClass[0]&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Get("objectClass")[0]&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.psbase.InvokeGet("objectClass")[0]&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Get("objectClass")[0]&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;GetEx&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt; really starts to behave different when the property you are reading is not an array. In this case, &lt;I style="mso-bidi-font-style:normal;"&gt;GetEx&lt;/I&gt; still returns an array with just one single element:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.cn.GetType()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Get("cn").GetType()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.psbase.InvokeGet("cn").GetType()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.GetEx("cn").GetType()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.GetEx("cn")[0]&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.GetEx("cn").Count&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;So use &lt;I style="mso-bidi-font-style:normal;"&gt;GetEx&lt;/I&gt; when you want to evaluate a property as array no matter what data the property actually contains.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;To get a good picture of the data contained in your user object, you could query all available properties using either one of the four ways. However, there is a much easier way.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.psbase.properties&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Now PowerShell lists all available properties including their values for you. That’s an excellent way of exploring an object and finding properties that contain needed data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:115%;mso-ansi-language:EN-AU;mso-bidi-font-size:11.0pt;"&gt;&lt;FONT face=Calibri&gt;Writing Stuff&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Next, check out how you change the value of a property. Again, you have three different ways for doing that plus a special extra way. Let us change the description for a user:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Description = "My User"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Put("Description", "My User")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.psbase.InvokeSet("Description", "My User")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Whenever you change a property, the change occurs in your local copy of the object. To become effective, you need to write back your changes to the original object. So to make your changes permanent, you use &lt;I style="mso-bidi-font-style:normal;"&gt;SetInfo()&lt;/I&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 3pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 3pt solid;PADDING-LEFT:4pt;BACKGROUND:#fde9d9;PADDING-BOTTOM:1pt;BORDER-LEFT:#bfbfbf 3pt solid;PADDING-TOP:1pt;BORDER-BOTTOM:#bfbfbf 3pt solid;mso-border-shadow:yes;mso-element:para-border-div;"&gt;
&lt;P class=Kasten style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;Be aware of the fact that only once you call &lt;I style="mso-bidi-font-style:normal;"&gt;SetInfo()&lt;/I&gt;, your property values take effect. Without &lt;I style="mso-bidi-font-style:normal;"&gt;SetInfo()&lt;/I&gt;, the property assignments are valid only in your local copy of the object you are messing with.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Kasten style="BACKGROUND:#fde9d9;MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;Also, when you use &lt;I style="mso-bidi-font-style:normal;"&gt;SetInfo() &lt;/I&gt;to write back your changes, your arguments will be evaluated for validity. So if you specified invalid property values, you get away with it at first. Once you call &lt;I style="mso-bidi-font-style:normal;"&gt;SetInfo()&lt;/I&gt; though, you get the bill.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The exact opposite would be undoing your changes and reloading the original object properties back into your cache, thereby overwriting all the changes you made previously:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.GetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=2 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Deleting Properties&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;There is one extra method for setting property values: &lt;I style="mso-bidi-font-style:normal;"&gt;PutEx&lt;/I&gt;. With &lt;I style="mso-bidi-font-style:normal;"&gt;PutEx&lt;/I&gt;, you manage properties that contain array data. &lt;I style="mso-bidi-font-style:normal;"&gt;PutEx&lt;/I&gt; also is able to completely delete (reset) a value. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;To delete a property value, you use &lt;I style="mso-bidi-font-style:normal;"&gt;PutEx&lt;/I&gt; like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.PutEx(1, "Description", 0)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;This line completely deletes the description property. So when you now try and read the property, you get an error message complaining that there is no value in the cache:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Get("Description")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 3pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 3pt solid;PADDING-LEFT:4pt;BACKGROUND:#fde9d9;PADDING-BOTTOM:1pt;BORDER-LEFT:#bfbfbf 3pt solid;PADDING-TOP:1pt;BORDER-BOTTOM:#bfbfbf 3pt solid;mso-border-shadow:yes;mso-element:para-border-div;"&gt;
&lt;P class=Kasten style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;Side note: When you check the description property using the “.”-notation, you will be surprised:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=codebox style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;mso-shading-themecolor:text1;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Description&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Kasten style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;Although &lt;I style="mso-bidi-font-style:normal;"&gt;PutEx&lt;/I&gt; has blanked the property, this line will still return the old description. That’s a bug in PowerShell. The “.”-notation does not get updated when you change a property through any of the other methods. Check this out:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=codebox style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;mso-shading-themecolor:text1;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Description = "Test 1"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=codebox style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;mso-shading-themecolor:text1;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Description&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=codebox style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;mso-shading-themecolor:text1;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Put("Description", "Test 2")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=codebox style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;mso-shading-themecolor:text1;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Description&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=codebox style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;mso-shading-themecolor:text1;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.psbase.InvokeSet("Description", "Test 3")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=codebox style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;mso-shading-themecolor:text1;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Description&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Kasten style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;It really is a bit messy because every now and then, the “.”-notation does get updated, most of the time it does not.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=2 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Dealing With Properties That Contain Arrays (Multiple Entries)&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;PutEx&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt; takes three arguments. The first one tells &lt;I style="mso-bidi-font-style:normal;"&gt;PutEx&lt;/I&gt; what you want:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE class=MsoTableLightShadingAccent6 style="BORDER-RIGHT:medium none;BORDER-TOP:medium none;BORDER-LEFT:medium none;BORDER-BOTTOM:medium none;BORDER-COLLAPSE:collapse;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-border-top-alt:solid #F79646 1.0pt;mso-border-top-themecolor:accent6;mso-border-bottom-alt:solid #F79646 1.0pt;mso-border-bottom-themecolor:accent6;mso-yfti-tbllook:1184;" cellSpacing=0 cellPadding=0 class="MsoTableLightShadingAccent6"&gt;

&lt;TR style="mso-yfti-irow:-1;mso-yfti-firstrow:yes;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#f79646 1pt solid;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:69.2pt;PADDING-TOP:0cm;BORDER-BOTTOM:#f79646 1pt solid;BACKGROUND-COLOR:transparent;mso-border-top-themecolor:accent6;mso-border-bottom-themecolor:accent6;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:5;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Argument&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#f79646 1pt solid;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:184.3pt;PADDING-TOP:0cm;BORDER-BOTTOM:#f79646 1pt solid;BACKGROUND-COLOR:transparent;mso-border-top-themecolor:accent6;mso-border-bottom-themecolor:accent6;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:1;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Operation&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow:0;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;BACKGROUND:#fde4d0;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:69.2pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;mso-background-themecolor:accent6;mso-background-themetint:63;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:68;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;BACKGROUND:#fde4d0;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:184.3pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;mso-background-themecolor:accent6;mso-background-themetint:63;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:64;"&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Clear property (delete content)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow:1;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:69.2pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;BACKGROUND-COLOR:transparent;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:4;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:184.3pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;BACKGROUND-COLOR:transparent;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Update property (replace content)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow:2;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;BACKGROUND:#fde4d0;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:69.2pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;mso-background-themecolor:accent6;mso-background-themetint:63;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:68;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;BACKGROUND:#fde4d0;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:184.3pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;mso-background-themecolor:accent6;mso-background-themetint:63;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:64;"&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Append property (add content)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow:3;mso-yfti-lastrow:yes;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:69.2pt;PADDING-TOP:0cm;BORDER-BOTTOM:#f79646 1pt solid;BACKGROUND-COLOR:transparent;mso-border-bottom-themecolor:accent6;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:4;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:184.3pt;PADDING-TOP:0cm;BORDER-BOTTOM:#f79646 1pt solid;BACKGROUND-COLOR:transparent;mso-border-bottom-themecolor:accent6;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Delete part of the property content&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The second argument is the name of the property you want to change. The third argument is your value. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;In the previous example where we deleted a property value, the third argument was a dummy argument. If you plan to use the other operation modes to update, append or delete a value, you need to specify a correct value as third argument.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;To update a property, you’d use this line:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.PutEx(2, "Description", @("New Description"))&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Surprised? Note that &lt;I style="mso-bidi-font-style:normal;"&gt;PutEx&lt;/I&gt; deals with arrays. If you work with properties that contain a single value, keep it simple and use &lt;I style="mso-bidi-font-style:normal;"&gt;Put&lt;/I&gt; instead – or any of the other simple ways. If you still want to use &lt;I style="mso-bidi-font-style:normal;"&gt;PutEx&lt;/I&gt;, you must supply the value as array. That’s what &lt;I style="mso-bidi-font-style:normal;"&gt;@(…)&lt;/I&gt; does. It creates an array. In the previous example, the array contained only one member.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;If you assigned more than one value to the &lt;I style="mso-bidi-font-style:normal;"&gt;Description&lt;/I&gt; property, you’d get an error the moment you are trying to update the object with &lt;I style="mso-bidi-font-style:normal;"&gt;SetInfo()&lt;/I&gt; because &lt;I style="mso-bidi-font-style:normal;"&gt;Description&lt;/I&gt; cannot hold an array:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.PutEx(2, "Description", @("New Description", "Another one"))&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;So &lt;I style="mso-bidi-font-style:normal;"&gt;PutEx&lt;/I&gt; really only makes sense with properties that are arrays. One would be the property &lt;I style="mso-bidi-font-style:normal;"&gt;otherHomePhone&lt;/I&gt; which stores any number of phone numbers:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.PutEx(2, "otherHomePhone", @("123", "456", "789"))&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;When you open the user dialog in &lt;I style="mso-bidi-font-style:normal;"&gt;Active Directory Users and Computers&lt;/I&gt;, click on the tab for phone numbers and then click on &lt;I style="mso-bidi-font-style:normal;"&gt;Others&lt;/I&gt;, you see your three numbers in a list.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;To add a new number to the existing list, you use append mode:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.PutEx(3, "otherHomePhone", @("555"))&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;If you’d like to take out a number and leave the others in the list, use delete mode:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.PutEx(4, "otherHomePhone", @("456", "789"))&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=1 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Creating New Users&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Creating a completely new user is of course another way of getting a user object. We did not cover this in Day 6, so here’s how you create new users.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;First, create a new local user:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$computer = [ADSI]"WinNT://."&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $computer.Create("user", "MyNewUser")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetPassword("topsecret")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Description = "My New User"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Next, create a new user account in your domain (provided you are joined to a domain and have the permissions):&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$ADsPath = "LDAP://CN=Users," + ([ADSI]"").distinguishedName&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$container = [ADSI]$ADsPath&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $container.Create("User", "CN=MyNewUser")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Description = "My New User"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetPassword("TopSecret99")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.psbase.InvokeSet('AccountDisabled', $false)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=2 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;An Indepth Look At Imperfection&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;When you look at both scripts, you may be slightly confused, and that’s partially because of certain requirements ADSI imposes but mostly because of the ugly side of PowerShell:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL style="MARGIN-TOP:0cm;"&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;You need to resort to the underlying base objects using &lt;I style="mso-bidi-font-style:normal;"&gt;psbase&lt;/I&gt; all the time because the “processed” friendly objects returned by PowerShell are not so friendly after all. They are crippled to the degree of uselessness&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;You need to know the exact order in which new user objects need to be created. This “protocol” is required by ADSI, but PowerShell changed that also and made it even more complex.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;You need to know lots of methods that are there but for some reason were hidden by the PowerShell team.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;You need to know which properties are handled by which entity to guess how to access them in the correct way. So you end up with a confusing mix of techniques caused by PowerShells immature tries to actually simplify ADSI access.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Let me explain.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=2 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Pick A Container&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;When you create new objects – any ADSI objects for that matter, but let us focus on user objects for the moment – you first access the ADSI container you want to put the objects in. For local user accounts, that is easy because the &lt;I style="mso-bidi-font-style:normal;"&gt;WinNT: &lt;/I&gt;world that handles all local accounts is a single namespace:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$computer = [ADSI]"WinNT://."&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;When you create new objects in your domain, it’s a different ball game because Active Directory is a hierarchical store, and you need to bind to the container that you want your new user to be kept in. This would bind to the Users container in the domain &lt;I style="mso-bidi-font-style:normal;"&gt;scriptinternals.technet&lt;/I&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$container = [ADSI]"CN=Users,DC=scriptinternals,DC=technet"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Using the special X500-related syntax used by &lt;I style="mso-bidi-font-style:normal;"&gt;LDAP&lt;/I&gt;, you could bind to any container this way, let’s say an &lt;I style="mso-bidi-font-style:normal;"&gt;organizationalUnit&lt;/I&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$container = [ADSI]"OU=Marketing,OU=Company,DC=scriptinternals,DC=technet"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Since it is bad habit to hard-code domain names, you can ask ADSI for the domain you are currently logged on to, and that’s what we did in the example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$ADsPath = "LDAP://CN=Users," + ([ADSI]"").distinguishedName&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$container = [ADSI]$ADsPath&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=2 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Create A New Object In Your Container&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Next, you need to create a new object in the container you picked. But how?&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The container object you got from PowerShell does not &lt;I style="mso-bidi-font-style:normal;"&gt;seem&lt;/I&gt; to contain a way of creating new objects, at least get-member won’t show a method that would create new objects. In the past, that was really true and you needed to resort to the underlying raw base object:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $container.psbase.children.psbase.Add("CN=NewUser", "user")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;With the final release of PowerShell V1.0, the team added the &lt;I style="mso-bidi-font-style:normal;"&gt;Create&lt;/I&gt; method to their “friendly” object so you no longer need the &lt;I style="mso-bidi-font-style:normal;"&gt;psbase&lt;/I&gt; object:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $container.Create("user", "CN=NewUser")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;However, &lt;I style="mso-bidi-font-style:normal;"&gt;Create&lt;/I&gt; is hidden, as are all the other methods silently added to the “friendly” user object. So you need to know them at heart, no TAB completion, no discoverability. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=2 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Cook It In The Right Order&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Once you have your new object, you need to be very careful about the right order in which you do things. And now, you’ll also discover some bugs in PowerShell.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;If you try and set default properties of your new object, you fail:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$computer = [ADSI]"WinNT://."&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $computer.Create("user", "MyNewUser")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Description = "My New User"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;You first have to instantiate the object &lt;I style="mso-bidi-font-style:normal;"&gt;using SetInfo()&lt;/I&gt; or &lt;I style="mso-bidi-font-style:normal;"&gt;CommitChanges()&lt;/I&gt; which is the .NET version provided by the raw base object. Either one works:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.psbase.CommitChanges()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;So to set default properties on new objects, you would need to do this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$computer = [ADSI]"WinNT://."&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $computer.Create("user", "MyNewUser")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;SPAN style="mso-tab-count:5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# frankensteinize the base user account&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Description = "My New User"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;SPAN style="mso-tab-count:5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# save any default property values&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;This causes a dilemma, though. Some objects have so called mandatory properties that need to be set before you can instantiate an object. With Windows 2000 Servers, user objects required to have a valid &lt;I style="mso-bidi-font-style:normal;"&gt;sAMAccountname&lt;/I&gt;, and although not required, it’s still a good idea to provide that.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;So to set a property before a new object is instantiated, you must use one of the other ways of setting property values, for example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$computer = [ADSI]"WinNT://."&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $computer.Create("user", "MyNewUser")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Put("Description", "My New User")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;SPAN style="mso-tab-count:5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# save any default property values&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Or:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$computer = [ADSI]"WinNT://."&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $computer.Create("user", "MyNewUser")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.psbase.InvokeSet("Description", "My New User")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;SPAN style="mso-tab-count:5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# save any default property values&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 3pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 3pt solid;PADDING-LEFT:4pt;BACKGROUND:#fde9d9;PADDING-BOTTOM:1pt;BORDER-LEFT:#bfbfbf 3pt solid;PADDING-TOP:1pt;BORDER-BOTTOM:#bfbfbf 3pt solid;mso-border-shadow:yes;mso-element:para-border-div;"&gt;
&lt;P class=Kasten style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;The “.”-notation of accessing object properties is the most natural and convenient one. However, it is also &lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;the most buggy&lt;/I&gt;&lt;/B&gt;.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Kasten style="BACKGROUND:#fde9d9;MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;You just noticed that with “.”-notation, you cannot set properties in new objects until you instantiated them. Also, you have previously discovered that “.”-notation yields wrong data in certain circumstances. So our recommendation for the time being would be either not to use “.”-notation at all or to not mix it with other ways of setting property values.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Now, what about a password? That’s a Catch22 because you need a password to instantiate the user account and you need to instantiate the user account before you can change it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;That’s why you can set the password before you actually instantiate the user account:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$computer = [ADSI]"WinNT://."&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $computer.Create("user", "MyNewUser")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetPassword("topSecret99")&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# you MAY set the password this early&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;#$user.Description = "My New User"&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# you MAY NOT set props at this time using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT color=#ffffff&gt;&lt;FONT face="Lucida Console"&gt;&lt;SPAN style="mso-tab-count:6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# "."-Notation, but you *could* this way:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;#$user.Put("Description", "My New User")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;SPAN style="mso-tab-count:5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# frankensteinize the base user account&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Description = "My New User"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;SPAN style="mso-tab-count:5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# save any default property values&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;With LDAP: objects, it’s yet another ball game. First of all, you run into serious problems if you mess with a new object before you have instantiated it:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$ADsPath = "LDAP://CN=Users," + ([ADSI]"").distinguishedName&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$container = [ADSI]$ADsPath&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $container.Create("User", "CN=MyNewUser")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Description = "My New User"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Once you call &lt;I style="mso-bidi-font-style:normal;"&gt;SetInfo()&lt;/I&gt;, you get a completely misleading error message. In essence, it is complaining about the fact that you already set the &lt;I style="mso-bidi-font-style:normal;"&gt;Description&lt;/I&gt; property. The only way to recover from that problem is to start over again and this time make sure you instantiate your new user object before you use it:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$ADsPath = "LDAP://CN=Users," + ([ADSI]"").distinguishedName&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$container = [ADSI]$ADsPath&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $container.Create("User", "CN=MyNewUser")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;SPAN style="mso-tab-count:4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# Instantiate New Object Before Use&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Description = "My New User"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;With LDAP, you cannot even set a password before you instantiated your user object. That at least makes a bit sense. LDAP: uses Kerberos to communicate the new password to the domain controller, and for that you need to be a) logged on to the domain and b) have an actual object.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Since this would create a Catch22 with domain requirements for a password, LDAP has a workaround. It creates your new user account without a password but disables it. This way, the password security isn’t triggered. All you need to do is make sure you set a proper password before you enable the account. That’s what we did in our sample code next:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetPassword("TopSecret99")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=2 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;A Serious Bug: Special Properties&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The final step in creating a user account is to enable the account. That sounds simple, and it is. All you need to do is set the &lt;I style="mso-bidi-font-style:normal;"&gt;AccountDisabled&lt;/I&gt; property to &lt;I style="mso-bidi-font-style:normal;"&gt;$false&lt;/I&gt;. If you try, though, you most likely fail:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.AccountDisabled = $false&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;An error message appears. There seems to be a conflict. Your only escape is to roll back your changes and reload the object properties from the domain:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.GetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;What happened? It looks like some kind of interface conflict. PowerShell happily adds any property you use to the object. Some properties like &lt;I style="mso-bidi-font-style:normal;"&gt;AccountDisabled&lt;/I&gt; are handled differently, though, so when you try and access &lt;I style="mso-bidi-font-style:normal;"&gt;AccountDisabled&lt;/I&gt; the way we just did, you can no longer write back your object to the domain using &lt;I style="mso-bidi-font-style:normal;"&gt;SetInfo()&lt;/I&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The same conflict occurs when you resort to the Put method:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.Put("AccountDisabled", $false)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;SPAN style="mso-tab-count:5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# ERROR&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.GetInfo()&lt;SPAN style="mso-tab-count:5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# UNDO&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The only way that works with these special properties is using &lt;I style="mso-bidi-font-style:normal;"&gt;InvokeSet&lt;/I&gt;, provided by the underlying raw base object:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.psbase.InvokeSet('AccountDisabled', $false)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 3pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 3pt solid;PADDING-LEFT:4pt;BACKGROUND:#fde9d9;PADDING-BOTTOM:1pt;BORDER-LEFT:#bfbfbf 3pt solid;PADDING-TOP:1pt;BORDER-BOTTOM:#bfbfbf 3pt solid;mso-border-shadow:yes;mso-element:para-border-div;"&gt;
&lt;P class=Kasten style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;Both the “.”-notation and &lt;I style="mso-bidi-font-style:normal;"&gt;Put&lt;/I&gt; are unable to set some properties that have special meaning to the object. That’s clearly a bug in the PowerShell implementation of the user object.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Kasten style="BACKGROUND:#fde9d9;MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;So when you look at all four ways of setting property values, &lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;only InvokeSet() always works&lt;/I&gt;&lt;/B&gt;. The “.”-notation – although the most convenient one – has the most bugs and inconsistencies. &lt;I style="mso-bidi-font-style:normal;"&gt;Put&lt;/I&gt; falls short when it comes to special properties.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=1 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Deleting A User&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Deleting users is dangerous but easy. Keep in mind that deleting a user is permanent. So don’t delete users if you may need them again later. Instead, disable users in this case. Above, you’ve seen how you disable users using &lt;I style="mso-bidi-font-style:normal;"&gt;AccountDisabled&lt;/I&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;To delete a user, you again bind to the container first that contains the user. Next, you remove the user object from that container. This is how you delete a local account:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$computer = [ADSI]"WinNT://."&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$computer.Delete("user", "MyNewUser")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;And this is how you delete a domain account:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$ADsPath = "LDAP://CN=Users," + ([ADSI]"").distinguishedName&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$container = [ADSI]$ADsPath&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$container.Delete("User", "CN=MyNewUser")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;If you don’t know where a user account really lives, use &lt;I style="mso-bidi-font-style:normal;"&gt;DirectorySearcher&lt;/I&gt; again:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$UserName = "MyNewUser"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$searcher = new-object DirectoryServices.DirectorySearcher([ADSI]"")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$searcher.filter = "(&amp;amp;(objectClass=user)(sAMAccountName= $UserName))"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$founduser = $searcher.findOne()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = $searcher.getDirectoryEntry()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.psbase.Parent.Delete("user", "CN=" + $user.cn)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The search returns the user object. Its “Parent” property returns the container the user lives in. All you do is call again “Delete” and supply the user name.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=1 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Setting And Changing A User Password&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Setting a new password is easy if you are an Admin. Simply use &lt;I style="mso-bidi-font-style:normal;"&gt;SetPassword&lt;/I&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.SetPassword("New Password")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 3pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 3pt solid;PADDING-LEFT:4pt;BACKGROUND:#fde9d9;PADDING-BOTTOM:1pt;BORDER-LEFT:#bfbfbf 3pt solid;PADDING-TOP:1pt;BORDER-BOTTOM:#bfbfbf 3pt solid;mso-border-shadow:yes;mso-element:para-border-div;"&gt;
&lt;P class=Kasten style="BACKGROUND:#fde9d9;MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;Just make sure your password meets the security requirements. Otherwise, you may get strange error messages. The same is true when you try and set a password for a domain user account while not joined to the domain. In Day 6, you have seen how you can bind to a domain without being a member of that domain. In this case, though, you may be unable to set passwords, depending on the security settings, because if you are not a domain member, you cannot use Kerberos.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Kasten style="BACKGROUND:#fde9d9;MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;Also note that on stand-alone systems (not domain members), changing the password with brute force like that trashes your security certificates. If you used the encrypting file system (EFS) and reset the password, &lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;you will no longer be able to access your EFS data&lt;/I&gt;&lt;/B&gt;.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;If you know the old password, you can change the password without Admin privileges:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.ChangePassword("Old Password", "New Password")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=1 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Control Group Membership&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Group memberships control what a user can and cannot do. By becoming a member in a group, the user receives all the privileges granted to that group.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=2 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;List Membership Status&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;You can control this membership from both sides. Let’s start with a user and find out its membership status:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$ADsPath = "LDAP://CN=Administrator,CN=Users," + ([ADSI]"").DistinguishedName&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = [ADSI]$AdsPath&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user.memberOf&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The &lt;I style="mso-bidi-font-style:normal;"&gt;memberOf&lt;/I&gt; property returns each group the user is member of.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Next, let’s take the other perspective and see which users are member in a specific group:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$ADsPath = "LDAP://CN=Domain-Admins,CN=Users," + ([ADSI]"").DistinguishedName&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group = [ADSI]$AdsPath&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group.member&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=2 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Add User To Group&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;To get a user into a group, you can use &lt;I style="mso-bidi-font-style:normal;"&gt;Add&lt;/I&gt; which is a hidden method provided by the group:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$ADsPathUser = "LDAP://CN=Administrator,CN=Users," + ([ADSI]"").DistinguishedName&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$ADsPathGroup = "LDAP://CN=Domain-Admins,CN=Users," + ([ADSI]"").DistinguishedName&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = [ADSI]$AdsPathUser&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group = [ADSI]$AdsPathGroup&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group.Add($user.psbase.Path)&lt;SPAN style="mso-tab-count:5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# VARIANT 1&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group.Add("LDAP://" + $user.distinguishedName&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# VARIANT 2&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Or you use a bit more PowerShell style:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$ADsPathUser = "LDAP://CN=Administrator,CN=Users," + ([ADSI]"").DistinguishedName&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$ADsPathGroup = "LDAP://CN=Domain-Admins,CN=Users," + ([ADSI]"").DistinguishedName&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$user = [ADSI]$AdsPathUser&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group = [ADSI]$AdsPathGroup&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group.Member = $group.Member + $user.distinguishedName&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# VARIANT 1&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group.Member += $user.distinguishedName&lt;SPAN style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;# VARIANT 2&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group.SetInfo()&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 3pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 3pt solid;PADDING-LEFT:4pt;BACKGROUND:#fde9d9;PADDING-BOTTOM:1pt;BORDER-LEFT:#bfbfbf 3pt solid;PADDING-TOP:1pt;BORDER-BOTTOM:#bfbfbf 3pt solid;mso-border-shadow:yes;mso-element:para-border-div;"&gt;
&lt;P class=Kasten style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;Just make sure you add the user &lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;only once&lt;/I&gt;&lt;/B&gt; to the group. And please note that here the same buggy behaviour exists when you use “.”-notation. If you wanted to use &lt;I style="mso-bidi-font-style:normal;"&gt;PutEx()&lt;/I&gt; instead, this is how you do it:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=codebox style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;mso-shading-themecolor:text1;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group.PutEx(3, "member", @($user.distinguishedName))&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Kasten style="MARGIN:6pt 0cm;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;You do not necessarily need a live &lt;I style="mso-bidi-font-style:normal;"&gt;$user&lt;/I&gt; object. If you know the &lt;I style="mso-bidi-font-style:normal;"&gt;distinguishedName&lt;/I&gt; by heart, you can specify it directly:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=codebox style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;mso-shading-themecolor:text1;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group.PutEx(3, "member", @("CN=MyNewUser,CN=Users,DC=scriptinternals,DC=technet"))&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=2 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;Remove User From Group&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;To remove a user from a group, you use the &lt;I style="mso-bidi-font-style:normal;"&gt;Remove&lt;/I&gt; method. Any one of the following is valid:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group.Remove($user.psbase.path)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group.Remove("LDAP://" +&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;$user.distinguishedName)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group.Remove("LDAP://CN=MyNewUser,CN=Users,DC=scriptinternals,DC=technet")&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;You can also remove a user using &lt;I style="mso-bidi-font-style:normal;"&gt;PutEx&lt;/I&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:#bfbfbf 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:#bfbfbf 1pt solid;PADDING-LEFT:4pt;BACKGROUND:black;PADDING-BOTTOM:5pt;BORDER-LEFT:#bfbfbf 1pt solid;PADDING-TOP:5pt;BORDER-BOTTOM:#bfbfbf 1pt solid;mso-border-alt:solid #BFBFBF .75pt;mso-shading:black;mso-pattern:gray-15 auto;mso-element:para-border-div;"&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group.PutEx(4, "member", @($user.distinguishedName))&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="BACKGROUND:black;MARGIN:6pt 0cm;mso-shading:black;mso-pattern:gray-15 auto;"&gt;&lt;SPAN&gt;&lt;FONT face="Lucida Console" color=#ffffff&gt;$group.PutEx(4, "member", @("CN=MyNewUser,CN=Users,DC=scriptinternals,DC=technet"))&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=1 style="MARGIN:18pt 0cm 6pt;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT face=Calibri size=5&gt;List Of Hidden Methods&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;As seen before, user objects returned by PowerShell contain important methods that are there but invisible and not discoverable using TAB completion or &lt;I style="mso-bidi-font-style:normal;"&gt;get-member&lt;/I&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;TABLE class=MsoTableLightShadingAccent6 style="BORDER-RIGHT:medium none;BORDER-TOP:medium none;BORDER-LEFT:medium none;BORDER-BOTTOM:medium none;BORDER-COLLAPSE:collapse;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-border-top-alt:solid #F79646 1.0pt;mso-border-top-themecolor:accent6;mso-border-bottom-alt:solid #F79646 1.0pt;mso-border-bottom-themecolor:accent6;mso-yfti-tbllook:1184;" cellSpacing=0 cellPadding=0 class="MsoTableLightShadingAccent6"&gt;

&lt;TR style="mso-yfti-irow:-1;mso-yfti-firstrow:yes;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#f79646 1pt solid;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:111.75pt;PADDING-TOP:0cm;BORDER-BOTTOM:#f79646 1pt solid;BACKGROUND-COLOR:transparent;mso-border-top-themecolor:accent6;mso-border-bottom-themecolor:accent6;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:5;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Method&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#f79646 1pt solid;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:347.25pt;PADDING-TOP:0cm;BORDER-BOTTOM:#f79646 1pt solid;BACKGROUND-COLOR:transparent;mso-border-top-themecolor:accent6;mso-border-bottom-themecolor:accent6;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:1;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Description&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow:0;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;BACKGROUND:#fde4d0;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:111.75pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;mso-background-themecolor:accent6;mso-background-themetint:63;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:68;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Put&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;BACKGROUND:#fde4d0;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:347.25pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;mso-background-themecolor:accent6;mso-background-themetint:63;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:64;"&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Writes a new value to a property&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow:1;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:111.75pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;BACKGROUND-COLOR:transparent;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:4;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;PutEx&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:347.25pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;BACKGROUND-COLOR:transparent;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Deletes a property value or writes array values to a property&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow:2;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;BACKGROUND:#fde4d0;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:111.75pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;mso-background-themecolor:accent6;mso-background-themetint:63;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:68;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Get&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;BACKGROUND:#fde4d0;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:347.25pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;mso-background-themecolor:accent6;mso-background-themetint:63;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:64;"&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Reads a value from a property&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow:3;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:111.75pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;BACKGROUND-COLOR:transparent;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:4;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;GetEx&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:347.25pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;BACKGROUND-COLOR:transparent;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Reads a value from a property and always returns it as array&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow:4;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;BACKGROUND:#fde4d0;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:111.75pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;mso-background-themecolor:accent6;mso-background-themetint:63;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:68;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;SetPassword&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;BACKGROUND:#fde4d0;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:347.25pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;mso-background-themecolor:accent6;mso-background-themetint:63;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:64;"&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Sets a new password. You need Admin privileges for that&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow:5;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:111.75pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;BACKGROUND-COLOR:transparent;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:4;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;ChangePassword&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:347.25pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;BACKGROUND-COLOR:transparent;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Sets a new password. You must specify the old password first and do not need Admin privileges&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow:6;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;BACKGROUND:#fde4d0;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:111.75pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;mso-background-themecolor:accent6;mso-background-themetint:63;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:68;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;GetInfo&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;BACKGROUND:#fde4d0;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:347.25pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;mso-background-themecolor:accent6;mso-background-themetint:63;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:64;"&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Undos any changes you made to the properties and reloads the original property values&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow:7;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:111.75pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;BACKGROUND-COLOR:transparent;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;mso-yfti-cnfc:4;"&gt;&lt;B&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;SetInfo&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:347.25pt;PADDING-TOP:0cm;BORDER-BOTTOM:#ece9d8;BACKGROUND-COLOR:transparent;"&gt;
&lt;P class=MsoNormal style="MARGIN:6pt 0cm;"&gt;&lt;SPAN style="COLOR:#e36c0a;mso-ansi-language:EN-AU;mso-themecolor:accent6;mso-themeshade:191;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Saves your changes to properties and makes them permanent&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow:8;mso-yfti-lastrow:yes;"&gt;
&lt;TD class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:5.4pt;BORDER-TOP:#ece9d8;PADDING-LEFT:5.4pt;BACKGROUND:#fde4d0;PADDING-BOTTOM:0cm;BORDER-LEFT:#ece9d8;WIDTH:111.75pt;PADDING-TOP:0cm;BORDER-BOTTOM:#f79646 1pt solid;mso-background-themecolor:accent6;mso-background-themetint:63;mso-border-bottom-themec