[Powershell] UserWorkstations

Le
Eric
Bonjour,

Pour histoire, j'ai besoin d'automatiser des opérations dans l'AD pour un
passage de Citrix à Systancia.
J'ai bien réussi à me faire un script pour basculer des personnes d'un
groupe vers un autre mais j'ai besoin d'effectuer une opération
supplémentaire.
Chaque membre d'un grp citrix doit pouvoir se log sur 3 nouveau serveurs (et
plus dans le temps).
Sachant que sur mes comptes, certains ont le droit de se loguer n'importe où
et d'autre que sur certaines machines.

J'ai donc besoin de tester le userworkstations:
- s'il est en "not set" (full accès sur toutes les machines donc je ne
modifie rien)
- si des machines ou serveurs sont déjà spécifiés (dans ce cas là j'ajoute
mes 3 serveurs)

J'ai commencé mon script mais ça vide le champ userworkstations pour y
laisser que ma nouvelle machine, et mon test ne fonctionne pas.

Couic
$root=([ADSI]"").distinguishedName

$compte = [ADSI]("LDAP://CN=Moi, OU=TEST INFORMATIQUE,"+ $root)

if ($compte.userWorkstations -eq 0)

{Write-Host "full access"} #blabla pour info seulement

else

{$compte.userWorkstations = $comte.userWorkstations + ",titi,toto,tata"

$compte.SetInfo()}

==Couic

Ps: j'aurais du faire mon IF à l'envers pour ne traiter que les comptes
accès restrints..

Un petit coup de main serait le bien venu.



Merci d'avance.



Eric
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric
Le #19477171
J'ai trouvé pour mon test, je vais utiliser:
if ([string]::isNullOrEmpty($compte.userworkstations)) { write-host "full,
pas toucher" }else {Write-Host "ajouter les nouvelles machines" }

Par contre je sèche pour l'ajout des machines sans écraser l'existant.





Eric
Le #19480091
bon, j'ai un script qui fonctionne:

====================== # ======= List Members =========
$root=([ADSI]"").distinguishedName

$appsrv = ",applidisadm,applidisapp01,applidisapp02"

$GroupCIT1 = [ADSI]("LDAP://CN=Citrix - Tests, OU=Pilote Citrix, OU=TEST
INFORMATIQUE,"+ $root)

# ======== Add in groups ===========
Foreach ($NomDN in $GroupCIT1.member)

{

$UserApplidis = $NomDN

$groupAP1 = [ADSI]("LDAP://CN=Applidis - Tests,OU=Pilote applidis,OU=TEST
INFORMATIQUE,"+ $root)

$groupAP1.Member.Add($UserApplidis)

$groupAP1.SetInfo()

# ======== Add Servers ===========
$compte = [ADSI]("LDAP://" + $UserApplidis)

if ([string]::isNullOrEmpty($Compte.userworkstations))

{}

else

{$wks = $($Compte.userWorkstations) + $appsrv

$Compte.userWorkstations =$wks

$Compte.SetInfo()

}

}

=================================================
Mais mon problème est que je dois gérer:

-si la personne est déjà dans ce ou ces groupes($groupAP1 et les futurs
$groupAP2...) pour éviter l'erreur renvoyée (existe déjà blablabla).

-les comptes qui ont déjà la possibilité de se connecter à ces serveurs pour
éviter les doublons.



Des suggestions sur la démarche à suivre svp?





Publicité
Poster une réponse
Anonyme