0
votes

Script PowerShell pour vérifier l'état de l'utilisateur en annonce

Script PowerShell Pour vérifier l'état des comptes d'utilisateurs est activé ou désactivé à l'aide d'un fichier texte qui a des noms (prénom et nom)

J'essaie de déterminer si un compte d'utilisateur est activé ou désactivé en annonce Liste des utilisateurs qui est un fichier texte à l'aide de PowerShell. P>

J'ai essayé d'obtenir le code pour récupérer les noms d'une liste d'utilisateurs dans un fichier texte et vérifiez si leurs comptes sont activés ou désactivés en publicité. Mais le code ci-dessous donne un message d'erreur. P>

Get-Content -Path users.txt |
ForEach-Object {
Get-ADUser -LDAPFilter "(samaccountname=$_)" |
Select-Object -Property samaccountname,enabled
}


1 commentaires

Est-ce que users.txt contient une liste de SamAccountName? Quel est exactement le message d'erreur?


3 Réponses :



0
votes

Si les noms du fichier texte se comparent à la propriété displayName de vos utilisateurs de publicité, vous pouvez le faire: xxx

Si vous n'êtes pas sûr des noms correspondant à la propriété displayName, peut-être Divirant les valeurs en premier et une autre idée peut être une autre idée: xxx


0 commentaires

0
votes

à condition que les utilisateurs.txt ne contiennent qu'une liste des prénoms et des noms de famille un seul espace séparé, vous pouvez procéder comme suit:

switch -Regex -File users.txt {
    '^(\S+)\s(.*)$' { 
        Get-ADUser -Filter "GivenName -eq '$($Matches[1])' -and Surname -eq '$($Matches[2])'" |
            Select-Object SamAccountName,Enabled
    }
}


2 commentaires

La regex que vous utilisez n'est-ce toutefois pas ne correspond pas à la nomination de deux mots avec deux mots ou plus comme Pepe ay y Olé par exemple ..


Les prénoms pourraient également avoir le même problème. Un meilleur délimiteur devrait être utilisé pour faire face à ce problème. Si nous ne nous soucions que des espaces de nom de famille, le deuxième groupe de capture pourrait simplement devenir . * .