none
Logon Script ne fonctionne pas RRS feed

  • Question

  • Bonjour, j'ai crée un script PowerShell qui efface des clefs de registre au démarrage de session, quand je clic le script a partir de la session d'un utilisateur ca fonctionne, je n'ai pas de demande d'élévation ni de confirmation ca fonctionne en un clic. Quand j'ajoute ce même script en GPO avec un script de démarrage de session ou même avec l'option script d'ouverture de session ca ne fonctionne pas mes clefs ne s'efface pas. Quelqu'un pourrais m'aider ?

    J'ai essayer de crée un exécutable au format MSI et je l'ai ajouté en installation au démarrage, même chose mes clefs ne s'efface pas. 

    J'ai aussi testé avec un GPO registre qui supprime les clefs mais la aussi ca ne fonctionne pas car les clef on un RESTRICTED, le script que j'utilise supprime les permissions avant d'effacer la clef.

    Je vous inclus le script que j'utilise, si quelqu'un a une idée !

    #$type = '.docx'
    #supression des acces deny
    #Var identité:User
    
    
    Start-Transcript -path \\dfs01\tempdel\output.txt -append
    
    $principal = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
    $principal
    #Var CLef de registre
    $key = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.doc\UserChoice",[Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree,[System.Security.AccessControl.RegistryRights]::ChangePermissions)
    $key
    # Get prendre controle des autorisation
    $acl = $key.GetAccessControl()
    #Var commande 
    $right = "SetValue"
    #Comande creation de la regle de securite
    $denyrule = New-Object System.Security.AccessControl.RegistryAccessRule($principal,$right,"DENY")
    #Commande inversion de la regle pour faire la suppresion du Deny
    $ret = $acl.RemoveAccessRule($denyrule)
    #Set supprimer la regle
    $ret = $key.SetAccessControl($acl)
    
    #Supression du Hash
    Remove-ItemProperty -path registry::hkcu\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.doc\userChoice -name Hash
    #supression de clef de registre
    remove-item -path registry::hkcu\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.doc -Recurse
    get-itemproperty -path registry::hkcu\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.doc\userChoice -name Hash
    Stop-Transcript
    http://www.hostingpics.net/viewer.php?id=669735reg.png


    • Modifié Nicecube samedi 22 octobre 2016 18:00
    samedi 22 octobre 2016 17:56

Réponses

  • Voici ma proposition, 

    je pense que c'est un problème de la stratégie d'exécution, pour le résoudre utiliser la méthode suivante:

    crée un script bat qui va te permettre de changer la stratégie d'exécution de ton script de logon powershell

    @echo off
    ::PSLogon.bat
    powershell -nologo -file \\DC\SYSVOL\pslogon.ps1 -windowstyle hidden -noprofile -executionpolicy bypass

    Voici le script powershell qui portera le nom pslogon.ps1

    $registry="HKCU:\Software\Classes"
    Remove-Item "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.doc" 
    Remove-Item "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.docx"
    Remove-Item "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xls" 
    Remove-Item "xlsMicrosoft\Windows\CurrentVersion\Explorer\FileExts\.xlsx"
    New-Item -Path $registry -Name .xls
    New-Item -Path $registry -Name .xlsx
    New-Item -Path $registry -Name .doc
    New-Item -Path $registry -Name .docx
    
    

    et sans oublié ajouté le deux script dans le GPO de logon. 

    merci, a+


    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. Héritier KANDOLO. http://www.rootandadmin.com/

    lundi 24 octobre 2016 14:12
  • Je pense qui'il y a une solution + simple à l'aide d'un script exécuté en tant que système: HKEY_CURRENT_USER est en réalité un map depuis HKEY_USERS\<SID> Donc faire script dans la GPO machine référençant ce chemin et faire d'une pierre deux coups en effectuant la maj pour tous les users (ayant ouvert une session sur la machine) avec une boucle parcourant tous les HKEY_USERS\<SID>(exclure les SIDs non utilisateurs)


    De cette manière vous devriez pouvoir contourner la restriction ( clé de registre RESTRICTED) car le script dans la GPO machine s'exécutera en tant que système
    jeudi 27 octobre 2016 23:33

Toutes les réponses

  • Bonjour Nicecube,

    avez-vous suivi cette étape pour la création du script de logon? 

    ETAPE

    Merci, a+


    S'il vous plaît n'oubliez pas de &quot;Marquer comme réponse&quot; les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. Héritier KANDOLO. http://www.rootandadmin.com/

    dimanche 23 octobre 2016 03:18
  • Oui c'est des cette facon que je procède pour ajouter des scripts de démarrage. J'ai aussi testé Propriétés de: Utilisateur

    - Profil
    - Script d'ouverture de session

    Je crois que le problème est lié au HKCU, le script est lancé en admin je crois qu'il ne valide pas la bonne cible.

    dimanche 23 octobre 2016 04:25
  • Si je comprend bien ton script, vous voulez supprimer tout le fichier .docx, d'un emplacement? 



    S'il vous plaît n'oubliez pas de &quot;Marquer comme réponse&quot; les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. Héritier KANDOLO. http://www.rootandadmin.com/

    dimanche 23 octobre 2016 04:33
  • Non en fait je veux supprimer tous les clefs de registre de la suite office dans la ruche suivante pour chaque utilisateurs.

    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.doc
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.docx
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xls
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xlsx

    En supprimant ces clefs et en ajoutant de nouvelles clefs au emplacement suivant, je configure LibreOffice par Default pour un certain groupe d'utilisateur.

    HKEY_CURRENT_USER\Software\Classes\.doc
    REG_SZ = LibreOffice.Doc
    HKEY_CURRENT_USER\Software\Classes\.docx
    REG_SZ = LibreOffice.Docx
    HKEY_CURRENT_USER\Software\Classes\.xls
    REG_SZ = LibreOffice.Xls
    HKEY_CURRENT_USER\Software\Classes\.xlsx
    REG_SZ = LibreOffice.Xlsx

    Le problème est que la seul façon de configurer Office par default est d'utiliser le fichier de configuration XML qui est une GPO Computer. Je l'applique donc a tous mes serveurs RDS et pour les utilisateurs qui ont la GPO LibreOffice_Default je veux supprimer les clefs de registre. Je n'y arrive pas avec un script de Logon. Les clefs de registre qui ont été modifié par ma premiere GPO on une permission RESTRICTED.

    J'arrive à les supprimé avec mon script mais en l'executant dans la session de chaque utilisateur je n'arrive pas à l'automatiser avec une GPO







    • Modifié Nicecube dimanche 23 octobre 2016 14:29
    dimanche 23 octobre 2016 14:04
  • Voici ma proposition, 

    je pense que c'est un problème de la stratégie d'exécution, pour le résoudre utiliser la méthode suivante:

    crée un script bat qui va te permettre de changer la stratégie d'exécution de ton script de logon powershell

    @echo off
    ::PSLogon.bat
    powershell -nologo -file \\DC\SYSVOL\pslogon.ps1 -windowstyle hidden -noprofile -executionpolicy bypass

    Voici le script powershell qui portera le nom pslogon.ps1

    $registry="HKCU:\Software\Classes"
    Remove-Item "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.doc" 
    Remove-Item "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.docx"
    Remove-Item "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xls" 
    Remove-Item "xlsMicrosoft\Windows\CurrentVersion\Explorer\FileExts\.xlsx"
    New-Item -Path $registry -Name .xls
    New-Item -Path $registry -Name .xlsx
    New-Item -Path $registry -Name .doc
    New-Item -Path $registry -Name .docx
    
    

    et sans oublié ajouté le deux script dans le GPO de logon. 

    merci, a+


    S'il vous plaît n'oubliez pas de &quot;Marquer comme réponse&quot; les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. Héritier KANDOLO. http://www.rootandadmin.com/

    lundi 24 octobre 2016 14:12
  • Bonjour

    Ce ressemble effectivement a un problème de qui exécute le login script. Le mieux est que le fichier bat soit lancer dans le contexte utilisateur. Je crois que dans les GPO on peux le faire, mais j'avoue manquer de temps pour le rechercher

    mardi 25 octobre 2016 17:43
  • Je pense qui'il y a une solution + simple à l'aide d'un script exécuté en tant que système: HKEY_CURRENT_USER est en réalité un map depuis HKEY_USERS\<SID> Donc faire script dans la GPO machine référençant ce chemin et faire d'une pierre deux coups en effectuant la maj pour tous les users (ayant ouvert une session sur la machine) avec une boucle parcourant tous les HKEY_USERS\<SID>(exclure les SIDs non utilisateurs)


    De cette manière vous devriez pouvoir contourner la restriction ( clé de registre RESTRICTED) car le script dans la GPO machine s'exécutera en tant que système
    jeudi 27 octobre 2016 23:33