# File lib/puppet/provider/nameservice/directoryservice.rb, line 347
347:   def password=(passphrase)
348:     exec_arg_vector = self.class.get_exec_preamble("-read", @resource.name)
349:     exec_arg_vector << @@ns_to_ds_attribute_map[:guid]
350:     begin
351:       guid_output = execute(exec_arg_vector)
352:       guid_plist = Plist.parse_xml(guid_output)
353:       # Although GeneratedUID like all DirectoryService values can be multi-valued
354:       # according to the schema, in practice user accounts cannot have multiple UUIDs
355:       # otherwise Bad Things Happen, so we just deal with the first value.
356:       guid = guid_plist["dsAttrTypeStandard:#{@@ns_to_ds_attribute_map[:guid]}"][0]
357:       self.class.set_password(@resource.name, guid, passphrase)
358:     rescue Puppet::ExecutionFailure => detail
359:       fail("Could not set #{param} on #{@resource.class.name}[#{@resource.name}]: #{detail}")
360:     end
361:   end