Archives par étiquette : Utilisateurs

Lister les utilisateurs absents de groupes

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

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,

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.

$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 }

Afficher à distance les administrateurs locaux.

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

$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.

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 
		}
	}

Exporter les statistiques ActiveSync.

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

$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.

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.