{"id":1885,"date":"2011-12-08T09:38:02","date_gmt":"2011-12-08T14:38:02","guid":{"rendered":"http:\/\/jdhitsolutions.com\/blog\/?p=1885"},"modified":"2011-12-08T09:38:02","modified_gmt":"2011-12-08T14:38:02","slug":"updating-multi-valued-active-directory-properties-part-1","status":"publish","type":"post","link":"https:\/\/jdhitsolutions.com\/blog\/powershell\/1885\/updating-multi-valued-active-directory-properties-part-1\/","title":{"rendered":"Updating Multi-Valued Active Directory Properties Part 1"},"content":{"rendered":"<p>Yesterday on Twitter, I got a tweet from @<a href=\"http:\/\/twitter.com\/docsmooth\" target=\"_blank\">Docsmooth <\/a>regarding how to update a multivalued property in Active Directory. There are a number of ways to handle this, especially from PowerShell naturally, so I tweeted one way in a series of tweets. But that's a hard way to learn something, and anyone jumping in the middle of the tweet stream might have been a bit confused. So I thought I'd write up a more formal explanation. Because there are a few ways to handle this situation, I'll cover each approach in a separate article. Today we'll look at using ADSI in PowerShell.<!--more--><\/p>\n<p>If you don't have an Active Directory cmdlet solution available (I'll cover those separately), you can still use ADSI to retrieve an object and modify it. So the first step is to get the object. The easiest way, relatively speaking, is to create an object using the [ADSI] type accelerator. All you need is the object's distinguished name.<\/p>\n<p>[cc lang=\"PowerShell\"]<br \/>\nPS C:\\> [ADSI]$roy=\"LDAP:\/\/CN=Roy G. Biv,OU=Executive,OU=Employees,DC=jdhlab,DC=local\"<br \/>\nPS C:\\> $roy<\/p>\n<p>distinguishedName : {CN=Roy G. Biv,OU=Executive,OU=Employees,DC=jdhlab,DC=local}<br \/>\nPath              : LDAP:\/\/CN=Roy G. Biv,OU=Executive,OU=Employees,DC=jdhlab,DC=local<br \/>\n[\/cc]<\/p>\n<p>THe type accelerator, [adsi], is not case-sensitive, but the ADSI moniker LDAP, is. I'm telling PowerShell, \"Get the LDAP path for this object in Active Directory, and turn it into a System.DirectoryServices.DirectoryEntry object.\" Don't worry about this last part; just know that this is an Active Directory object. Which means I can look at properties:<\/p>\n<p>[cc lang=\"PowerShell\"]<br \/>\nPS C:\\> $roy.title<br \/>\nManager<br \/>\n[\/cc]<\/p>\n<p>For simple properties like Title all you need is to simply assign a value and commit the change to the directory service by invoking the SetInfo() method.<\/p>\n<p>[cc lang=\"PowerShell\"]<br \/>\nPS C:\\> $roy.title=\"Senior Manager\"<br \/>\nPS C:\\> $roy.Setinfo()<br \/>\n[\/cc]<\/p>\n<p>The more formal, ADSI approach is to use the Put() method.<\/p>\n<p>[cc lang=\"PowerShell\"]<br \/>\nPS C:\\> $roy.put(\"title\",\"Regional VP\")<br \/>\nPS C:\\> $roy.setinfo()<br \/>\n[\/cc]<\/p>\n<p>But now we get to the tricky part. Consider the otherTelephone attribute, which allows you to have a collection of phone numbers. Roy has one entry right now.<\/p>\n<p>[cc lang=\"PowerShell\"]<br \/>\nPS C:\\> $roy.otherTelephone<br \/>\n555-1111<br \/>\n[\/cc]<\/p>\n<p>If I try to add a new number using Put(), I run into a problem.<\/p>\n<p>[cc lang=\"PowerShell\"]<br \/>\nPS C:\\> $roy.put(\"otherTelephone\",\"555-1112\")<br \/>\nPS C:\\> $roy.refreshcache()<br \/>\nPS C:\\> $roy.otherTelephone<br \/>\n555-1111<br \/>\n[\/cc]<\/p>\n<p>The value doesn't change because this is a multivalued attribute. In these situations we need to use the PutEx() method. This method requires 3 parameters. First, an integer that indicates what type of operation you wish to carry out: 1 is Clear, 2 is Update, and 3 is Append. The second parameter is the attribute name, and the last value is an explicit array of new values. With this information, I can update the account with an additional phone number.<\/p>\n<p>[cc lang=\"PowerShell\"]<br \/>\nPS C:\\> $roy.putex(3,\"othertelephone\",@(\"555-1112\"))<br \/>\nPS C:\\> $roy.setinfo()<br \/>\nPS C:\\> $roy.otherTelephone<br \/>\n555-1112<br \/>\n555-1111<br \/>\n[\/cc]<\/p>\n<p>Using the Update value will keep whatever you pass as the array.<\/p>\n<p>[cc lang=\"PowerShell\"]<br \/>\nPS C:\\> $roy.putex(2,\"othertelephone\",@(\"555-1112\"))<br \/>\nPS C:\\> $roy.setinfo()<br \/>\nPS C:\\> $roy.refreshcache()<br \/>\nPS C:\\> $roy.otherTelephone<br \/>\n555-1112<br \/>\n[\/cc]<\/p>\n<p>And to clear the entire attribute use a 0 instead of an empty array.<\/p>\n<p>[cc lang=\"PowerShell\"]<br \/>\nPS C:\\> $roy.putex(1,\"othertelephone\",0)<br \/>\nPS C:\\> $roy.refreshcache()<br \/>\nPS C:\\> $roy.otherTelephone<br \/>\nPS C:\\><br \/>\n[\/cc]<\/p>\n<p>I'm going to back one more time and add the phone numbers back.<\/p>\n<p>[cc lang=\"PowerShell\"]<br \/>\nPS C:\\> $phone=@(\"555-1111\",\"555-1112\",\"555-1113\")<br \/>\nPS C:\\> $roy.putex(3,\"othertelephone\",$phone)<br \/>\nPS C:\\> $roy.setinfo()<br \/>\nPS C:\\> $roy.refreshcache()<br \/>\nPS C:\\> $roy.otherTelephone<br \/>\n555-1113<br \/>\n555-1112<br \/>\n555-1111<br \/>\n[\/cc]<\/p>\n<p>There's nothing wrong with using ADSI, and if you come from a VBScript background much of this probably looks familiar. But using a cmdlet is much easier, and I'll discuss that in a future post. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yesterday on Twitter, I got a tweet from @Docsmooth regarding how to update a multivalued property in Active Directory. There are a number of ways to handle this, especially from PowerShell naturally, so I tweeted one way in a series of tweets. But that&#8217;s a hard way to learn something, and anyone jumping in the&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7,4,8],"tags":[539,39,534],"class_list":["post-1885","post","type-post","status-publish","format-standard","hentry","category-active-directory","category-powershell","category-scripting","tag-active-directory","tag-adsi","tag-powershell"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Updating Multi-Valued Active Directory Properties Part 1 &#8226; The Lonely Administrator<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jdhitsolutions.com\/blog\/powershell\/1885\/updating-multi-valued-active-directory-properties-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Updating Multi-Valued Active Directory Properties Part 1 &#8226; The Lonely Administrator\" \/>\n<meta property=\"og:description\" content=\"Yesterday on Twitter, I got a tweet from @Docsmooth regarding how to update a multivalued property in Active Directory. There are a number of ways to handle this, especially from PowerShell naturally, so I tweeted one way in a series of tweets. But that&#039;s a hard way to learn something, and anyone jumping in the...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jdhitsolutions.com\/blog\/powershell\/1885\/updating-multi-valued-active-directory-properties-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Lonely Administrator\" \/>\n<meta property=\"article:published_time\" content=\"2011-12-08T14:38:02+00:00\" \/>\n<meta name=\"author\" content=\"Jeffery Hicks\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JeffHicks\" \/>\n<meta name=\"twitter:site\" content=\"@JeffHicks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeffery Hicks\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/1885\\\/updating-multi-valued-active-directory-properties-part-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/1885\\\/updating-multi-valued-active-directory-properties-part-1\\\/\"},\"author\":{\"name\":\"Jeffery Hicks\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"headline\":\"Updating Multi-Valued Active Directory Properties Part 1\",\"datePublished\":\"2011-12-08T14:38:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/1885\\\/updating-multi-valued-active-directory-properties-part-1\\\/\"},\"wordCount\":676,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"keywords\":[\"Active Directory\",\"ADSI\",\"PowerShell\"],\"articleSection\":[\"Active Directory\",\"PowerShell\",\"Scripting\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/1885\\\/updating-multi-valued-active-directory-properties-part-1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/1885\\\/updating-multi-valued-active-directory-properties-part-1\\\/\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/1885\\\/updating-multi-valued-active-directory-properties-part-1\\\/\",\"name\":\"Updating Multi-Valued Active Directory Properties Part 1 &#8226; The Lonely Administrator\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#website\"},\"datePublished\":\"2011-12-08T14:38:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/1885\\\/updating-multi-valued-active-directory-properties-part-1\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/1885\\\/updating-multi-valued-active-directory-properties-part-1\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/1885\\\/updating-multi-valued-active-directory-properties-part-1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Active Directory\",\"item\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/category\\\/active-directory\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Updating Multi-Valued Active Directory Properties Part 1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/\",\"name\":\"The Lonely Administrator\",\"description\":\"Practical Advice for the Automating IT Pro\",\"publisher\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\",\"name\":\"Jeffery Hicks\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\",\"caption\":\"Jeffery Hicks\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Updating Multi-Valued Active Directory Properties Part 1 &#8226; The Lonely Administrator","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jdhitsolutions.com\/blog\/powershell\/1885\/updating-multi-valued-active-directory-properties-part-1\/","og_locale":"en_US","og_type":"article","og_title":"Updating Multi-Valued Active Directory Properties Part 1 &#8226; The Lonely Administrator","og_description":"Yesterday on Twitter, I got a tweet from @Docsmooth regarding how to update a multivalued property in Active Directory. There are a number of ways to handle this, especially from PowerShell naturally, so I tweeted one way in a series of tweets. But that's a hard way to learn something, and anyone jumping in the...","og_url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/1885\/updating-multi-valued-active-directory-properties-part-1\/","og_site_name":"The Lonely Administrator","article_published_time":"2011-12-08T14:38:02+00:00","author":"Jeffery Hicks","twitter_card":"summary_large_image","twitter_creator":"@JeffHicks","twitter_site":"@JeffHicks","twitter_misc":{"Written by":"Jeffery Hicks","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/1885\/updating-multi-valued-active-directory-properties-part-1\/#article","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/1885\/updating-multi-valued-active-directory-properties-part-1\/"},"author":{"name":"Jeffery Hicks","@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"headline":"Updating Multi-Valued Active Directory Properties Part 1","datePublished":"2011-12-08T14:38:02+00:00","mainEntityOfPage":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/1885\/updating-multi-valued-active-directory-properties-part-1\/"},"wordCount":676,"commentCount":1,"publisher":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"keywords":["Active Directory","ADSI","PowerShell"],"articleSection":["Active Directory","PowerShell","Scripting"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/jdhitsolutions.com\/blog\/powershell\/1885\/updating-multi-valued-active-directory-properties-part-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/1885\/updating-multi-valued-active-directory-properties-part-1\/","url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/1885\/updating-multi-valued-active-directory-properties-part-1\/","name":"Updating Multi-Valued Active Directory Properties Part 1 &#8226; The Lonely Administrator","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#website"},"datePublished":"2011-12-08T14:38:02+00:00","breadcrumb":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/1885\/updating-multi-valued-active-directory-properties-part-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jdhitsolutions.com\/blog\/powershell\/1885\/updating-multi-valued-active-directory-properties-part-1\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/1885\/updating-multi-valued-active-directory-properties-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Active Directory","item":"https:\/\/jdhitsolutions.com\/blog\/category\/active-directory\/"},{"@type":"ListItem","position":2,"name":"Updating Multi-Valued Active Directory Properties Part 1"}]},{"@type":"WebSite","@id":"https:\/\/jdhitsolutions.com\/blog\/#website","url":"https:\/\/jdhitsolutions.com\/blog\/","name":"The Lonely Administrator","description":"Practical Advice for the Automating IT Pro","publisher":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jdhitsolutions.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9","name":"Jeffery Hicks","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg","caption":"Jeffery Hicks"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg"}}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":1240,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/1240\/get-local-admins-one-liner\/","url_meta":{"origin":1885,"position":0},"title":"Get Local Admins One-Liner","author":"Jeffery Hicks","date":"March 14, 2011","format":false,"excerpt":"Working with local users and groups can get a little messy in PowerShell. But I wanted to share a quick one-liner you could use to list all the members of the Administrators group. This one-liner uses the ADSI type adapter. All you need to do is put in a computer\u2026","rel":"","context":"In &quot;PowerShell&quot;","block_context":{"text":"PowerShell","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":112,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/112\/powershell-mini-conference\/","url_meta":{"origin":1885,"position":1},"title":"PowerShell Mini-Conference","author":"Jeffery Hicks","date":"June 11, 2007","format":false,"excerpt":"If you've got some free time in early November and want to get up to speed on PowerShell in the least amount of time, then come to Las Vegas. Don Jones (PoweShell MVP) and I will be running a 2 day PowerShell mini-conference. This will be an intense 2 days\u2026","rel":"","context":"In &quot;PowerShell&quot;","block_context":{"text":"PowerShell","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1151,"url":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/1151\/create-new-computer-with-adsi\/","url_meta":{"origin":1885,"position":2},"title":"Create New Computer with ADSI","author":"Jeffery Hicks","date":"February 19, 2011","format":false,"excerpt":"UPDATE 12 Sept. 2022: In attempting to correct obsolete information( this was originally published in 2011), I removed the contents of this post. But I did manage to save the function, which is all you probably care about anyway. Function New-Computer { Param( [string]$name=$(Throw \"You must enter a computer name.\"),\u2026","rel":"","context":"In &quot;Active Directory&quot;","block_context":{"text":"Active Directory","link":"https:\/\/jdhitsolutions.com\/blog\/category\/active-directory\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1908,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/1908\/updating-multi-valued-active-directory-properties-part-2\/","url_meta":{"origin":1885,"position":3},"title":"Updating Multi-Valued Active Directory Properties Part 2","author":"Jeffery Hicks","date":"December 19, 2011","format":false,"excerpt":"A few weeks ago I posted about updating multi-valued attributes in Active Directory. Part 1 covered how to accomplish this in PowerShell using ADSI. In Part 2 I'll show you how to accomplish this using the free Active Directory cmdlets from Quest Software. As you'll see, the over all process\u2026","rel":"","context":"In &quot;Active Directory&quot;","block_context":{"text":"Active Directory","link":"https:\/\/jdhitsolutions.com\/blog\/category\/active-directory\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":148,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/148\/order-managing-active-directory-with-windows-powershell-tfm-finally\/","url_meta":{"origin":1885,"position":4},"title":"Order Managing Active Directory with Windows PowerShell: TFM &#8211; Finally!","author":"Jeffery Hicks","date":"September 22, 2008","format":false,"excerpt":"Yes, its finally true. You can finally get your hands on Managing Active Directory with Windows PowerShell: TFM. The book is being printed so you can get your copy today. You can order it today at ScriptingOutpost.com in both print and ebook format. Or if you prefer the best of\u2026","rel":"","context":"In &quot;PowerShell&quot;","block_context":{"text":"PowerShell","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3513,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3513\/managing-local-admin-with-powershell\/","url_meta":{"origin":1885,"position":5},"title":"Managing Local Admin with PowerShell","author":"Jeffery Hicks","date":"October 24, 2013","format":false,"excerpt":"Years ago when I was deep into VBScript and HTAs, I wrote a tool called PWDMan. It was an HTA that processed a list of computers and returned password age information for the local administrator account. It was also capable of setting a new account password. Apparently this is still\u2026","rel":"","context":"In &quot;CommandLine&quot;","block_context":{"text":"CommandLine","link":"https:\/\/jdhitsolutions.com\/blog\/category\/commandline\/"},"img":{"alt_text":"021913_2047_WordTest1.png","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2013\/02\/021913_2047_WordTest1.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/1885","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=1885"}],"version-history":[{"count":0,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/1885\/revisions"}],"wp:attachment":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=1885"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=1885"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=1885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}