Question Script d'ouverture de session

Plus d'informations
il y a 16 ans 4 mois #5642 par Jaggi Laurent
Bonjour,

Dans le cadre de la migration de nos serveurs TS 2003 vers du TS 2008, j'aimerais automatiser certaines tâches comme par exemple:

  • Récuération des favoris dans les anciens profils itinérant
  • Installation des imprimantes
  • Automatisation de la configuration du client Outlook pour Exchange à l'aide d'un fichier PRF

  • Mon idée était de réaliser ces tâches lors de la première connexion de l'utilisateur sur les nouveaux serveurs à l'aide d'un script d'ouverture de session. Ma question va peut-être vous paraître stupide mais est-ce que je peux écrire mon script en Powershell en sachant que mon domaine est basé sur SBS 2003 et de l'exécuter à l'aide d'une GPO?

    Mes premiers tests ne sont pas concluants. A première vue la GPO fonctionne mais pas le script.

    Connexion ou Créer un compte pour participer à la conversation.

    Plus d'informations
    il y a 16 ans 4 mois #5644 par Jaggi Laurent
    J'ai continué mes recherches et il semblerait qu'il ne soit pas possible sur un contrôleur 2003 d'exécuter directement un fichier ps1 dans un logon script. Il faut passer par un vbs qui exécute le ps1.

    [code:1]Set objShell = CreateObject(\"Wscript.Shell\"«»)
    objShell.Run(\"powershell.exe -noexit c:\scripts\test.ps1\"«»)
    [/code:1]

    Par contre, pour 2008, il aurait ajouté un onglet permettant l'exécution d'un ps1. A vérifier

    Connexion ou Créer un compte pour participer à la conversation.

    Plus d'informations
    il y a 16 ans 4 mois #5661 par Arnaud Petitjean
    Salut !

    Je confirme ! Pour utiliser des scripts de logon PowerShell avec un DC 2003 / postes Windows XP, il faut passer par un vbs ou cmd pour lancer le script PowerShell.

    Par contre, avec Windows Server 2008 R2 et non pas 2008, couplé à des postes Windows 7, il y a bien un onglet spécifique pour exécuter des scripts PowerShell au logon ou au logoff des utilisateurs et/ou des ordinateurs.

    Voir la copie d'écran ci-dessous:
    <br><br>Message édité par: Arnaud, à: 17/11/09 23:31

    MVP PowerShell et créateur de ce magnifique forum :-)
    Auteur de 6 livres PowerShell aux éditions ENI
    Fondateur de la société Start-Scripting
    Besoin d'une formation PowerShell ?
    Pièces jointes :

    Connexion ou Créer un compte pour participer à la conversation.

    Plus d'informations
    il y a 16 ans 4 mois #5662 par Jaggi Laurent
    Salut Arnaud,

    Tout d'abord merci pour ta confirmation. Maintenant je me pose la question suivante: Est-ce que cela a un sens d'écrire les logon scripts en powershell et de l'exécuter en vbs?

    Il est vrai que ma première idée était d'utiliser la puissance et la souplesse du powershell pour effectuer mes scripts. Sans oublier, le fait que j'apprenne un nouveau language qui va être très utile à l'avenir. D'ailleurs, j'attends avec impatience le facteur qui doit m'apporter votre livre...

    Par contre après quelques tests de GPO sur un DC 2003 SBS, il s'avère que j'ai des problèmes avec la provenance du script. En effet, lors de l'ouverture de sesession j'obtiens le message suivant:

    Avertissement de sécurité
    N'exécutez que des scripts que vous approuvez. Bien que les scripts en
    provenance d'Internet puissent être utiles, ce script est susceptible
    d'endommager votre ordinateur. Voulez-vous exécuter
    \\FQDN\SysVol\FQDN\Policies\{817D92EE-2821-4B0C-94F5-D36BAE89
    4F8B}\User\Scripts\Logon\testGPO.ps1 ?
    [N] Ne pas exécuter [O] Exécuter une fois Suspendre [?] Aide
    (la valeur par défaut est « N ») :


    Est-ce qu'il y a un moyen pour faire passer les scripts d'un domaine sans devoir demander une confirmation à l'utilisateur et sans définir ExecutionPolicy à Bypass?

    Connexion ou Créer un compte pour participer à la conversation.

    Plus d'informations
    il y a 16 ans 4 mois #5675 par Arnaud Petitjean
    Salut ljaggi,

    Est-ce que cela a un sens d'écrire les logon scripts en powershell et de l'exécuter en vbs?


    Effectivement on peut se poser la question... Même si j'adore PowerShell, j'aurais tendance à penser que ça a peu de sens de faire cela. En effet, cela va nous créer des contraintes car il va falloir s'assurer que PowerShell soit bien installé sur toutes les machines de son domaine et d'être sur que ces dernières aient bien la bonne stratégie d'exécution. Ceci étant, ce dernier point peut se règler facilement par GPO. De plus le lancement de PowerShell prend quelques secondes de plus que VBS; ce qui pour un script de logon peut être pénalisant.

    Si par contre si tu es un domaine Windows 2008 R2 avec des postes Windows 7, alors là le discours n'est plus du tout le même...

    Est-ce qu'il y a un moyen pour faire passer les scripts d'un domaine sans devoir demander une confirmation à l'utilisateur et sans définir ExecutionPolicy à Bypass?


    Il n'y a pas de confirmation si tu configure tes machines avec la stratégie RemoteSigned ou si tu exécutes des scripts signés et que la chaine de certificats peut être vérifiée.
    Par contre si tu es en mode RemoteSigned et que tu cherches à exécuter un script téléchargé d'internet tu auras un avertissement de sécurité jusqu'à ce que tu débloques le script (voir chapitre 5 de notre livre, si tu es équipé... ;) ).

    Arnaud

    MVP PowerShell et créateur de ce magnifique forum :-)
    Auteur de 6 livres PowerShell aux éditions ENI
    Fondateur de la société Start-Scripting
    Besoin d'une formation PowerShell ?

    Connexion ou Créer un compte pour participer à la conversation.

    Plus d'informations
    il y a 16 ans 4 mois #5680 par Jaggi Laurent
    Arnaud,

    Si par contre si tu es un domaine Windows 2008 R2 avec des postes Windows 7, alors là le discours n'est plus du tout le même...


    Mon domaine est basé sur du SBS 2003 R2 mais je vais quand même utiliser le powershell pour travailler sur la migration des mes serveurs TS 2008 R2 car il est déjà installé en natif.

    Il n'y a pas de confirmation si tu configure tes machines avec la stratégie RemoteSigned


    Lors de l'exécution du script de logon et bien que la stratégie d'exécution soit définit à RemoteSigned, Powershell demendait une confirmation à l'utilisateur. Il dectectait la provenance de mon script comme étant Internet alors qu'il se trouvait sur le partage SYSVOL de mon contrôleur de domaine.

    Afin de contourner ce problème, il faut ajouter le chemin UNC de son domaine (Exemple: \\mondomaine.local) dans la zone Intranet d'Internet Explorer. Qui a dit qu'Internet Explorer pouvait être désinstallé de Windows :woohoo:

    Vous trouverez plus d'informations sur cette KB

    J'espère que cela pourra être utile ...

    Laurent<br><br>Message édité par: ljaggi, à: 19/11/09 13:36

    Connexion ou Créer un compte pour participer à la conversation.

    Temps de génération de la page : 0.065 secondes
    Propulsé par Kunena