@@ -5,7 +5,7 @@ package Win32::NetAdmin;
5
5
6
6
#
7
7
8
- $VERSION = ' 0.03 ' ;
8
+ $VERSION = ' 0.05 ' ;
9
9
10
10
require Exporter;
11
11
require DynaLoader;
@@ -17,6 +17,20 @@ die "The Win32::NetAdmin module works only on Windows NT" if(!Win32::IsWinNT() )
17
17
# names by default without a very good reason. Use EXPORT_OK instead.
18
18
# Do not simply export all your public functions/methods/constants.
19
19
@EXPORT = qw(
20
+ DOMAIN_ALIAS_RID_ACCOUNT_OPS
21
+ DOMAIN_ALIAS_RID_ADMINS
22
+ DOMAIN_ALIAS_RID_BACKUP_OPS
23
+ DOMAIN_ALIAS_RID_GUESTS
24
+ DOMAIN_ALIAS_RID_POWER_USERS
25
+ DOMAIN_ALIAS_RID_PRINT_OPS
26
+ DOMAIN_ALIAS_RID_REPLICATOR
27
+ DOMAIN_ALIAS_RID_SYSTEM_OPS
28
+ DOMAIN_ALIAS_RID_USERS
29
+ DOMAIN_GROUP_RID_ADMINS
30
+ DOMAIN_GROUP_RID_GUESTS
31
+ DOMAIN_GROUP_RID_USERS
32
+ DOMAIN_USER_RID_ADMIN
33
+ DOMAIN_USER_RID_GUEST
20
34
FILTER_TEMP_DUPLICATE_ACCOUNT
21
35
FILTER_NORMAL_ACCOUNT
22
36
FILTER_INTERDOMAIN_TRUST_ACCOUNT
@@ -32,7 +46,9 @@ die "The Win32::NetAdmin module works only on Windows NT" if(!Win32::IsWinNT() )
32
46
SV_TYPE_NOVELL
33
47
SV_TYPE_DOMAIN_MEMBER
34
48
SV_TYPE_PRINT
49
+ SV_TYPE_PRINTQ_SERVER
35
50
SV_TYPE_DIALIN
51
+ SV_TYPE_DIALIN_SERVER
36
52
SV_TYPE_XENIX_SERVER
37
53
SV_TYPE_NT
38
54
SV_TYPE_WFW
@@ -41,6 +57,15 @@ die "The Win32::NetAdmin module works only on Windows NT" if(!Win32::IsWinNT() )
41
57
SV_TYPE_MASTER_BROWSER
42
58
SV_TYPE_DOMAIN_MASTER
43
59
SV_TYPE_DOMAIN_ENUM
60
+ SV_TYPE_SERVER_UNIX
61
+ SV_TYPE_SERVER_MFPN
62
+ SV_TYPE_SERVER_NT
63
+ SV_TYPE_SERVER_OSF
64
+ SV_TYPE_SERVER_VMS
65
+ SV_TYPE_WINDOWS
66
+ SV_TYPE_DFS
67
+ SV_TYPE_ALTERNATE_XPORT
68
+ SV_TYPE_LOCAL_LIST_ONLY
44
69
SV_TYPE_ALL
45
70
UF_TEMP_DUPLICATE_ACCOUNT
46
71
UF_NORMAL_ACCOUNT
@@ -66,6 +91,43 @@ die "The Win32::NetAdmin module works only on Windows NT" if(!Win32::IsWinNT() )
66
91
USER_PRIV_ADMIN
67
92
) ;
68
93
94
+ @EXPORT_OK = qw(
95
+ GetError
96
+ GetDomainController
97
+ GetAnyDomainController
98
+ UserCreate
99
+ UserDelete
100
+ UserGetAttributes
101
+ UserSetAttributes
102
+ UserChangePassword
103
+ UsersExist
104
+ GetUsers
105
+ GroupCreate
106
+ GroupDelete
107
+ GroupGetAttributes
108
+ GroupSetAttributes
109
+ GroupAddUsers
110
+ GroupDeleteUsers
111
+ GroupIsMember
112
+ GroupGetMembers
113
+ LocalGroupCreate
114
+ LocalGroupDelete
115
+ LocalGroupGetAttributes
116
+ LocalGroupSetAttributes
117
+ LocalGroupIsMember
118
+ LocalGroupGetMembers
119
+ LocalGroupGetMembersWithDomain
120
+ LocalGroupAddUsers
121
+ LocalGroupDeleteUsers
122
+ GetServers
123
+ GetTransports
124
+ LoggedOnUsers
125
+ GetAliasFromRID
126
+ GetUserGroupFromRID
127
+ GetServerDisks
128
+ ) ;
129
+ $EXPORT_TAGS {ALL }= \@EXPORT_OK ;
130
+
69
131
=head1 NAME
70
132
71
133
Win32::NetAdmin - manage network groups and users in perl
@@ -186,6 +248,23 @@ Returns TRUE if user is a member of groupName.
186
248
187
249
Fills userArrayRef with the members of groupName.
188
250
251
+ =item LocalGroupGetMembersWithDomain(server, groupName, userRef)
252
+
253
+ This function is similar LocalGroupGetMembers but accepts an array or
254
+ a hash reference. Unlike LocalGroupGetMembers it returns each user name
255
+ as C<DOMAIN\USERNAME > . If a hash reference is given, the function
256
+ returns to each user or group name the type (group, user, alias etc.).
257
+ The possible types are as follows:
258
+
259
+ $SidTypeUser = 1;
260
+ $SidTypeGroup = 2;
261
+ $SidTypeDomain = 3;
262
+ $SidTypeAlias = 4;
263
+ $SidTypeWellKnownGroup = 5;
264
+ $SidTypeDeletedAccount = 6;
265
+ $SidTypeInvalid = 7;
266
+ $SidTypeUnknown = 8;
267
+
189
268
=item LocalGroupAddUsers(server, groupName, users)
190
269
191
270
Adds a user to a group.
@@ -212,6 +291,36 @@ Gets an array or hash with the users logged on at the specified computer. If
212
291
userRef is a hash reference, the value is a semikolon separated string of
213
292
username, logon domain and logon server.
214
293
294
+ =item GetAliasFromRID(server, RID, returnedName)
295
+
296
+ =item GetUserGroupFromRID(server, RID, returnedName)
297
+
298
+ Retrieves the name of an alias (i.e local group) or a user group for a RID
299
+ from the specified server. These functions can be used for example to get the
300
+ account name for the administrator account if it is renamed or localized.
301
+
302
+ Possible values for C<RID > :
303
+
304
+ DOMAIN_ALIAS_RID_ACCOUNT_OPS
305
+ DOMAIN_ALIAS_RID_ADMINS
306
+ DOMAIN_ALIAS_RID_BACKUP_OPS
307
+ DOMAIN_ALIAS_RID_GUESTS
308
+ DOMAIN_ALIAS_RID_POWER_USERS
309
+ DOMAIN_ALIAS_RID_PRINT_OPS
310
+ DOMAIN_ALIAS_RID_REPLICATOR
311
+ DOMAIN_ALIAS_RID_SYSTEM_OPS
312
+ DOMAIN_ALIAS_RID_USERS
313
+ DOMAIN_GROUP_RID_ADMINS
314
+ DOMAIN_GROUP_RID_GUESTS
315
+ DOMAIN_GROUP_RID_USERS
316
+ DOMAIN_USER_RID_ADMIN
317
+ DOMAIN_USER_RID_GUEST
318
+
319
+ =item GetServerDisks(server, arrayRef)
320
+
321
+ Returns an array with the disk drives of the specified server. The array
322
+ contains two-character strings (drive letter followed by a colon).
323
+
215
324
=back
216
325
217
326
=cut
@@ -236,6 +345,15 @@ sub AUTOLOAD {
236
345
goto &$AUTOLOAD ;
237
346
}
238
347
348
+ $SidTypeUser = 1;
349
+ $SidTypeGroup = 2;
350
+ $SidTypeDomain = 3;
351
+ $SidTypeAlias = 4;
352
+ $SidTypeWellKnownGroup = 5;
353
+ $SidTypeDeletedAccount = 6;
354
+ $SidTypeInvalid = 7;
355
+ $SidTypeUnknown = 8;
356
+
239
357
bootstrap Win32::NetAdmin;
240
358
241
359
1;
0 commit comments