Donc, je fais le plongeon dans PowerShell. J'ai été chargé de refaire les permissions sur chaque dossier personnel du domaine (ils ne relèvent pas tous du même sous-répertoire - ce serait trop facile). J'ai un lot script écrit qui prend deux paramètres : le nom de l'utilisateur, et le chemin du dossier personnel et les pompe à travers SetACL.
Je veux utiliser PowerShell pour obtenir les noms d'utilisateurs et les dossiers personnels de chaque utilisateur dans une OU. Jusqu'à présent, j'ai pu obtenir les noms d'utilisateur, mais je n'arrive pas à trouver comment obtenir les répertoires personnels.
Voici mon PowerShell jusqu'à présent (emprunté à diverses sources sur le web) :
$Dom = "LDAP://OU=Accounts,DC=myDomain,DC=local"
$Root = New-Object DirectoryServices.DirectoryEntry $Dom
# Create a selector and start searching from the Root of AD
$selector = New-Object DirectoryServices.DirectorySearcher
$selector.SearchRoot = $root
$Selector.pagesize = 20000
# Basically this will only grab user accounts and not computer accounts.
$adobj= $selector.findall() | where {
$_.properties.objectcategory -match "CN=Person*"
}
foreach ($person in $adobj) {
$prop=$person.properties
Write-host "$($prop.cn)"
}
Je vais éventuellement intégrer la ligne Write-host dans le fichier batch setACL, mais je me contente pour l'instant d'écrire la sortie pour m'assurer qu'elle est exacte. J'ai essayé d'ajouter $($prop.homeDirectory)
à la ligne Write-host, sans succès.
Des conseils ou des suggestions ?