Module: Puppet::Util::Windows::ADSI::Shared

Included in:
Group, User
Defined in:
lib/puppet/util/windows/adsi.rb

Instance Method Summary collapse

Instance Method Details

#get_sids(adsi_child_collection) ⇒ Object



142
143
144
145
146
147
148
149
# File 'lib/puppet/util/windows/adsi.rb', line 142

def get_sids(adsi_child_collection)
  sids = []
  adsi_child_collection.each do |m|
    sids << Puppet::Util::Windows::SID.octet_string_to_sid_object(m.objectSID)
  end

  sids
end

#localized_domainsObject



110
111
112
113
114
115
116
117
118
119
# File 'lib/puppet/util/windows/adsi.rb', line 110

def localized_domains
  @localized_domains ||= [
    # localized version of BUILTIN
    # for instance VORDEFINIERT on German Windows
    Puppet::Util::Windows::SID.sid_to_name('S-1-5-32').upcase,
    # localized version of NT AUTHORITY (can't use S-1-5)
    # for instance AUTORITE NT on French Windows
    Puppet::Util::Windows::SID.name_to_sid_object('SYSTEM').domain.upcase
  ]
end

#name_sid_hash(names) ⇒ Object



151
152
153
154
155
156
157
158
159
160
161
# File 'lib/puppet/util/windows/adsi.rb', line 151

def name_sid_hash(names)
  return {} if names.nil? || names.empty?

  sids = names.map do |name|
    sid = Puppet::Util::Windows::SID.name_to_sid_object(name)
    raise Puppet::Error.new( _("Could not resolve name: %{name}") % { name: name } ) if !sid
    [sid.sid, sid]
  end

  Hash[ sids ]
end

#parse_name(name) ⇒ Object



130
131
132
133
134
135
136
137
138
139
140
# File 'lib/puppet/util/windows/adsi.rb', line 130

def parse_name(name)
  if name =~ /\//
    raise Puppet::Error.new( _("Value must be in DOMAIN\\user style syntax") )
  end

  matches = name.scan(/((.*)\\)?(.*)/)
  domain = matches[0][1] || '.'
   = matches[0][2]

  return , domain
end

#uri(name, host = '.') ⇒ Object



121
122
123
124
125
126
127
128
# File 'lib/puppet/util/windows/adsi.rb', line 121

def uri(name, host = '.')
  host = '.' if (localized_domains << Socket.gethostname.upcase).include?(host.upcase)

  # group or user
   = self.name.split('::').last.downcase

  Puppet::Util::Windows::ADSI.uri(name, , host)
end