Comment puis-je utiliser PowerShell pour déplacer un utilisateur dans l'AD?
Je suis dans le besoin d'un peu d'aide. J'ai peu ou pas de PowerShell expérience, mais je travaille avec un Guide de Poche à côté de moi et de mon GoogleFu.
Actuellement, mon plan est pour vous demander un nom d'utilisateur et de les stocker, utiliser Get-ADUser avec le nom d'utilisateur stockées à obtenir et stocker le DistinguishedName, utilisez Déplacer-ADObject pour déplacer l'utilisateur à partir de la DistinguishedName pour le chemin d'accès cible.
Le problème que je rencontre est le stockage et l'appel de ces choses. J'ai ce qui me donne l'info sur l'utilisateur. Comment puis-je isoler seulement le nom unique et de le stocker?
$name = read-host "Enter user name"
Get-ADUser $name
Après le stockage de la DN, peut se Déplacer-ADObject utiliser la valeur stockée? J'ai tenté de stocker des valeurs comme:
Move-ADobject 'CN=$name,OU=department,OU=company,DC=Domain,DC=net' -TargetPath 'OU=NonActive,OU=company,DC=Domain,DC=net'
Mais cela renvoie "Répertoire d'objet non trouvé" qu'il n'utilise pas la valeur stockée.
OriginalL'auteur elock37 | 2012-10-03
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Get-ADUser $name| Move-ADObject -TargetPath 'OU=nonactive,OU=compny,DC=domain,Dc=net'
Vous avez besoin de lire sur powershell tuyauterie: technet.microsoft.com/en-us/library/ee176927.aspx
OriginalL'auteur CB.
Juste un aparté sur ce -
Powershell ne peut pas reconnaître des variables telles que
$name
quand ils sont entourés de guillemets simples comme le shell traite des valeurs telles que des chaînes de caractères littérales. L'utilisation des guillemets pour travailler avec les variables:Par exemple.
write-host '$name'
donnerait la sortie$name
, maiswrite-host "$name"
serait de retour la valeur dans la variable.Donc
Move-ADobject "CN=$name,OU=department,OU=company,DC=Domain,DC=net" -TargetPath 'OU=NonActive,OU=company,DC=Domain,DC=net'
devrait fonctionner comme prévu. Sur l'autre main, vous apprendrez des choses plus intéressantes en utilisant le pipeline.OriginalL'auteur Finn Reilly
Seulement pour votre intérêt personnel:
CB., faire le pipeline est le passage d'un objet.
Vous, au lieu d'utiliser une chaîne de caractères, doit utiliser un objet avec la commande:
Désolé, je pensais que cela pourrait être utile pour l'utilisateur de comprendre pourquoi la commande n'a pas fonctionné. Merci pour la clarification de toute façon
OriginalL'auteur Gaetano Parrello