Archive

Articles taggués ‘Utilisateurs’

Lister les utilisateurs absents de groupes

Si vérifier qu’un utilisateur n’est pas membre d’un groupe est rapide

?View Code POWERSHELL
Get-QADUser -Identity "louis.defunes" -NotMemberOf "Gendarmerie"

ou si lister les utilisateurs d’un OU qui ne sont pas membres d’un groupe est facile,

?View Code POWERSHELL
Get-QADUser -SearchRoot "domain.local/StTropez" -SizeLimit 0 -NotMemberOf "Gendarmerie"

faire la même chose pour tous les utilisateurs d’une OU pour plusieurs groupes est plus compliquée.
Voici donc comment lister les utilisateurs d’un OU absents de deux groupes.

?View Code POWERSHELL
$ou = Read-Host "Enter the OU name"
$fullou = "domain.local/" + $ou
$group1 = "Gendarmerie"
$group2 = "Port"
Get-Mailbox -ResultSize Unlimited -OrganizationalUnit $ou | where {Get-QADUser $_.alias -NotMemberOf $group1 } | where {Get-QADUser $_.alias -NotMemberOf $group2 }

Compter le nombre de membres dans un groupe

Pour compter rapidement le nombre de membres dans un groupe.

?View Code POWERSHELL
$gp  = Read-Host "Enter group name"
$member = $null
Get-QADGroupMember -SizeLimit 0 -Identity $gp | foreach {
$member++
}
Write-Host $member " in " $gp

Afficher à distance les administrateurs locaux.

Permet d’afficher à les membres du groupe « Administrators » local d’un serveur distant.

?View Code POWERSHELL
$strComputer = Read-Host "Please enter the computer name"
 
$computer = [ADSI]("WinNT://" + $strComputer + ",computer")
$group = $computer.psbase.children.find("administrators")
 
Write-host ""
Write-host "Computer Name : "$computer.name
Write-Host "_____________________________________"
Write-host ""
Write-host "Group Name : "$Group.name
Write-Host "_____________________________________"
 
$domain = $group.path.split("/")[2]
$string1 = "WinNT://" + $domain + "/" + $strComputer + "/"
$string2 = $strComputer + "/"
$string3 = "WinNT://"
 
$members  = ($group.psbase.invoke(”Members”) | Foreach-Object {$_.GetType().InvokeMember(”Adspath”, ‘GetProperty’, $null, $_, $null)}) -replace ($string1,$string2) -replace ($string3,"") 
 
Write-host ""
Write-host "Members : "
Write-host ""
$members

Si vos serveurs sont en français, il faut remplacer « Administrators » par « Administrateurs » dans le script.

Traiter les membres d’un groupe

Permet d’effectuer une tache d’administration sur les membres d’un groupe.

?View Code POWERSHELL
Get-Group -Identity "Group_Name" |
	ForEach-Object {
		$groupdn=("LDAP://"+$_.DistinguishedName)
		$group = ([ADSI]$groupdn)
		""
		"Nom du groupe"
		"-------------"
		$_.DistinguishedName
		""
		"Liste des membres du groupe"
		"---------------------------"
 
		ForEach ($member in $group.member){
 
			$member
#	Desactivation du quota *EXCEPTION_QUOTA*
			Set-Mailbox -Identity $member -IssueWarningQuota Unlimited -ProhibitSendQuota Unlimited -ProhibitSendReceiveQuota Unlimited -UseDatabaseQuotaDefaults $false 
		}
	}

Afficher le Lastlogon des utilisateurs d’une OU

Affiche le lastlogon des utilisateurs d’un OU.

?View Code POWERSHELL
Get-QADUser -IncludeAllProperties -SizeLimit 0 -SearchRoot "domain.local/OU_01" | ft Name,SamAccountName,LastLogon
Categories: Active Directory Tags: ,

Supprimer une list d’utilisateurs d’un groupe

Permet de supprimer rapidement une liste d’utilisateurs d’un groupe AD.

?View Code POWERSHELL
Import-Csv -Path .\remove-usersfromgroup.txt | Foreach {Remove-QADGroupMember -Identity "Le_Groupe" -Member $_.alias }

Ajouter une liste d’utilisateurs dans une DL.

Permet d’ajouter une liste d’utilisateurs dans un groupe de distribution.

?View Code POWERSHELL
Import-Csv -Path .\users_compta.csv | foreach { Add-DistributionGroupMember -Identity Groupe_Compta -Member $_.identity }

Combien y a t’il de Christophe dans la boite.

Un p’tit truc rapide pour compter ne nombre Christophe dans la boite.

?View Code POWERSHELL
$christophe = get-mailbox *christophe*
$christophe.count

Il y en a tout de même 249. Pas mal…

Exporter les statistiques ActiveSync.

Permet de faire un export des statistiques ActiveSync de tous les utilisateurs actifs.

?View Code POWERSHELL
$result_file = New-Item -ItemType file -Path ActiveSyncStats.txt -Force
Add-Content -Path $result_file -Value "Identity,DeviceType,FirstSyncTime,LastSuccessSync"
$users = Get-CASMailbox -ResultSize unlimited | Where-Object { $_.ActiveSyncEnabled -eq "true" -and  $_.HasActiveSyncDevicePartnership -eq "true" } 
Foreach ($mb in $users) {
#Write-Host $_.identity
$stats = Get-ActiveSyncDeviceStatistics -Mailbox $mb.identity
Add-Content -Path $result_file -Value "$($mb.Name),$($stats.Identity),$($stats.DeviceType),$($stats.FirstSyncTime),$($stats.LastSuccessSync)"
}

Activer l’héritage de la sécurité sur des comptes AD

Permet de cocher la case « Allow inheritable permissions… » dans les propriétés avancées de la sécurité des comptes AD.

?View Code POWERSHELL
Get-QADUser -SizeLimit 0 -SearchRoot "domain.local/FI00_PAris" | where {$_.Security.PermissionInheritanceLocked} | Set-QADObjectSecurity -UnlockInheritance

Si cette case n’est pas cochée sur les comptes utilisateurs, il peuvent avoir des problèmes d’accès à OWA et ne sont pas traités lors de la mise en place de délégations.

Categories: Active Directory Tags: ,