Problème GPO Execution de scripts

Problème GPO Execution de scripts - Réseaux - Systèmes & Réseaux Pro

Marsh Posté le 25-02-2016 à 10:32:32    

Bonjour à tous,
Je rencontre quelques difficultés pour l'exécution de script via GPO sur des postes, après avoir essayé plein plein plein de choses, je sèche...  :fou:  
Voici mon problème :
J'ai créé 2 scripts Powershell afin qu'il s’exécute au démarrage du poste (ou à l'ouverture de session, peu importe) via une GPO.
Le premier script doit copier un fichier .rdp sur le bureau "public" des postes.
Le second doit créer un dossier sur le serveur de fichier en fonction du nom d'utilisateur puis connecter un lecteur réseau sur ce même dossier.
J'ai crée 2 fichiers .bat sous \\mon_serveur\sysvol\domaine.local\scripts qui appellent les scripts powershell qui se trouvent au même endroit (après plusieurs essais non-concluants, je suis passé par des .bat car j'ai vu sur plusieurs forum que les scripts powershell pouvaient pauser problème via les GPO...).
 
Voici le contenu des mes .bat :
        - Le premier : c:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -NoProfile -File "\\mon_serveur\SYSVOL\domaine.local\scripts\ScriptPowershell1.ps1"
        - Le second : c:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -NoProfile -File "\\mon_serveur\SYSVOL\domaine.local\scripts\ScriptPowershell2.ps1"
 
Ci-dessous le contenu de mes scripts Powershell :
        - ScriptPowershell1.ps1 :  
Set-ExecutionPolicy Unrestricted
Copy-Item "\\serveur_fichier\chemin\fichier.rdp" -Destination "C:\Users\Public\Desktop"
 
        - ScriptPowershell2.ps1 :
Set-ExecutionPolicy Unrestricted
$strcomputer ="."
$Var = gwmi -comp  $strcomputer -CL Win32_ComputerSystem
$User=$Var.Username
Set-Location "\\serveur_fichier\chemin"
New-Item -Name $User -ItemType directory
$Letter = "P:"
$NetworkSHare = "\\serveur_fichier\chemin\$User"
net use $Letter $NetworkSHare /Persistent:Yes
 
 
J'ai mis plusieurs postes dans une OU "TEST" sur laquelle la GPO est liée. Aucune autre GPO n'est appliquée sur cette OU.
 
Le paramétrage de la GPO est le suivant :
Configuration Ordinateur\Stratégies\Modèle d'administration\Composants Windows\Windows Powershell : Aciver l'exécution des scripts : Activé / Autoriser tous les scripts
Configuration Utilisateur\Stratégies\Modèle d'administration\Composants Windows\Windows Powershell : Aciver l'exécution des scripts : Activé / Autoriser tous les scripts
Configuration Utilisateur\Stratégies\Paramètres Windows\Scripts\Ouvrir la session\ (j'ai mis le chemin de mes 2 .bat).
 
Après plusieurs redémarrage des postes clients, des gpupdate /force rien ne se passe...
J'ai copié les .bat sur le bureau de poste clients (depuis une session administrateur local) et les ai exécuté en double-cliquant dessus -> Toujours rien. Par contre lorsque je fais un clic-droit / exécuter en tant qu'administrateur, ça fonctionne...  :ouch:  
Je ne sais pas du coup si le problème vient de la GPO ou de mes scripts et malgré tout mes tests je n'arrive à rien...  :fou:  
 
Merci pour votre aide, et en vous remerciant d'avance  :)

Reply

Marsh Posté le 25-02-2016 à 10:32:32   

Reply

Marsh Posté le 25-02-2016 à 10:47:04    

Des remarques :
- Les Set-ExecutionPolicy Unrestricted ne sert à rien vu que tu passes déjà une valeur qui semble bonne dans ton bat
- Perso je met dans la ligne qui lance powershell directement ByPass en executionpolicy
- Copie dans le dossier public ==> faut être admin donc script de démarrage
- Utilisation de ta variable user ==> l'utilisateur doit être loggué ==> script de logon
==> Tu peux pas lancer dans le même bat tes 2 scripts vu qu'ils agissent dans des contextes utilisateur différent
 
Après franchement, tes scripts ils servent à rien.
On est en 2016, pour des configurations comme ça très basiques, tu fais une GPP, c'est plié en 2 minutes ... Faut arrêter de se faire du mal avec des usines à gaz.

Reply

Marsh Posté le 25-02-2016 à 11:14:59    

Merci pour tes réponses, juste quelques précisions :  
 
- Les Set-ExecutionPolicy Unrestricted ne sert à rien vu que tu passes déjà une valeur qui semble bonne dans ton bat -> Du coup il vaut mieux les supprimer du script powershell ou du .bat ?
- Perso je met dans la ligne qui lance powershell directement ByPass en executionpolicy -> ByPass au lieu d'Unrestricted ? Qu'est ce que cela fait ? (je débute en powershell ^^)
- Copie dans le dossier public ==> faut être admin donc script de démarrage -> Le fait que le compte utilisateur est administrateur local ne suffit pas ? Comment faire pour préciser l'exécution via un utilisateur admin ?
- Utilisation de ta variable user ==> l'utilisateur doit être loggué ==> script de logon -> Dans la GPO j'utilise bien un script de logon (configuration utilisateur pour l'exécution des scripts)
==> Tu peux pas lancer dans le même bat tes 2 scripts vu qu'ils agissent dans des contextes utilisateur différent -> Ce n'est pas le même .bat mais 2 .bat différent qui appelle les 2 script Powershell
 
Après franchement, tes scripts ils servent à rien.  
On est en 2016, pour des configurations comme ça très basiques, tu fais une GPP, c'est plié en 2 minutes ... Faut arrêter de se faire du mal avec des usines à gaz. -> Je dois utiliser des scripts à l'ouverture de session car ça doit de se faire sur les postes utilisateurs ainsi qu'a l'ouverture de leur session sur un serveur RDS.. A moins que ce soit la même chose pour un serveur RDS ?

Reply

Marsh Posté le 25-02-2016 à 11:17:42    

Oui c'est pareil, tu crées une GPO avec des paramètres user que tu link sur les OU contenant les utilisateurs. Sur le RDS il faut vérifier que le loopback ne l'écrase pas.

Reply

Marsh Posté le 25-02-2016 à 11:20:03    

1. du script powershell
2. au lieu de remotesigned
3. si ça suffit mais j'espère honnêtement que tes comptes sont pas admin local et encore moins du serveur rds
4. ok exact j'ai lu trop vite, j'ai cru voir un script avec les 2 lignes de powershell.
 
Pas de différence entre un poste de travail et un serveur RDS, les GPP s'appliquent sont fait pour ça, les scripts de logon/démarrage pour ce genre d'actions c'est inutile, lent et crade.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed