List users of group

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
$ErrorActionPreference = "Stop"
 
Function listUsers ($group) {
	trap {
		Write-Host "-ERROR-"
        Write-Host "Cannot connect to $domain" -BackgroundColor red -ForegroundColor Black
		Write-Host
		exit
    }  
 
	foreach ($member in $group.member)
	{
		Write-Progress -activity "List users" -status "Search ..." 
 
		$mem = [ADSI] "LDAP://$member"
 
		If ($mem.grouptype) {
			listUsers $mem
		} Else {
			[string]$username = $mem.cn
			[string]$groupname  = $group.cn
			[Boolean]$disable = $mem.psbase.invokeget("AccountDisabled")
			[string]$lastLogon = $(get-date 1/1/1601).adddays(($(&dsquery * $mem.distinguishedName -attr lastLogonTimestamp)[1].Trim())/(60*10000000)/1440)
 
			If (($xmlOutput.SelectNodes("/data/users[path='" + $mem.path + "']")).count -eq 0) {
				$root = $xmlOutput.CreateElement("users")
				$root.set_InnerXML("<username>"+$mem.cn+"</username><path>"+$mem.path+"</path><groups>"+$group.cn+"</groups><disabled>"+$disable+"</disabled><lastlogon>"+$lastLogon+"</lastlogon>")
				$xmlOutput.data.AppendChild($root) > $NULL
			}
			Else{
				$groups = $xmlOutput.SelectNodes("/data/users[path='" + $mem.path + "']/groups").item(0).get_innerText() + ", " + $group.cn
				$node = $xmlOutput.data.users | where {$_.path -eq $mem.path}
				$node.groups = $groups
			}
		}
	}
}
 
 
if ($args.count -lt 1) {
	Write-Host
	Write-Host "LIST USERS v1.0"
	Write-Host "Copyright (c) 2010 Weis Michal"
	Write-Host
	Write-Host "EXAMPLE: listGroups.ps1 ""cn=administrators,cn=builtin,dc=test,dc=local"""
	Write-Host
	exit
}
 
[string]$domain = "LDAP://" + $args[0]
$group = [ADSI] $domain
 
$xmlOutput = [xml] @"
< ?xml version="1.0" standalone="yes"?>
<data>
<users></users>
</data>
"@
Write-Host
listUsers $group
 
ForEach ($user in $xmlOutput.data.users) {
	If ($user.username) {
		Write-Host "Username: " $user.username.toUpper() -ForegroundColor Yellow
		Write-Host $user.path
		Write-Host "Groups :" $user.groups
		If ($user.disabled -eq "True") {
			Write-host "Account is disabled" -ForegroundColor Green
		} Else {
			Write-Host "Account is enabled"
		}
		Write-Host "Last logon:" $user.lastlogon
		Write-host
	}
}

Přidat komentář


Upozornění - Můžete použít tytoHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Better Tag Cloud