Planificateur de taches windows 10

Bonjour,

Je souhaite exécuter un batch à chaque connexion au compte utilisateur d'un PC et un 2ème batch à chaque connexion au compte admin.

J'utilise pour cela le planificateur de taches en appelant le fichier .bat correspondant avec les autorisations maximales.

Cela fonctionne quand je me loggue à une session après démarrage ou reboot du PC mais cela ne fonctionne pas si je me déconnecte d'un compte pour me connecter à l'autre.

Quelqu'un aurait une idée pourquoi cela ne fonctionne pas dans ce cas ?

En déclencheur j'ai essayé "à l'ouverture de session" ou "au moment de la connexion à une session utilisateur"

Comment faire pour que ca fonctionne dans tous les cas: démarrage, reboot ou déconnexion d'un compte/reconnexion à l'autre compte ?

Merci par avance pour votre aide

Raph

3 réponses

  1. Bonjour

    Et simplement le mettre dans le dossier démarrage ?
    0
    1. Bonjour,

      Après avoir rappelé que le démarrage des programmes est commun à tous les utilisateurs à C:\ProgramData\Microsoft\Windows\Start Menu\Programs et que le lancement d'un programme par utilisateur se trouve à C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Start Menu\, il n'est pas certain que mettre un raccourci vers un batch dans ce dernier fonctionne faute que l'utilisateur dispose de droits appropriés.

      On peut sous Windows 10 Pro contourner ce comportement via l'éditeur de stratégie locale gpedit.msc (ou forcer son installation dans Windows 10 Home) en activant dans Système-Ouverture de session "exécuter ces programmes à l'ouverture de session utilisateur".

      Il faut toutefois y spécifier le programme souhaité et dont je ne suis pas certain qu'il soit individualisable par utilisateur: dans la négative et si le nombre d'utilisateurs est limité, il faudrait alors que le batch comporte une conditionnelle selon le nom de l'utilisateur.
      0
    2. @brucinepetite précision je cherche à le faire sur un windows 10 familial ce qui limite les possibilités.
      0
    3. @brucinej'ai déjà essayé et l'article est faux (beaucoup le sont car sont des simples copier coller sans tests) cela ne fonctionne pas sur Windows 10 familial. On peut effectivement activer gpedit mais cela ne fonctionne pas ensuite pour ce que je veux faire.
      0
    4. @Raph_83_92Tu es sûr?

      Tu veux bien me communiquer la modification que tu envisages (avec un bat bidon, peu importe) que je teste et que je vois comment éventuellement la faire fonctionner?
      0
  2. Bonjour,

    Bloquer l'accès à un disque local peut se faire via un script .bat à l'aide la commande ICACLS.

    0
    1. Bonjour,

      Je l'ai fait plus simplement via bouton droit sur le disque puis Propriétés>Sécurité ... et cela marche

      en fait ma question portait sur comprendre pourquoi un .bat s'exécute après un reboot ou un redémarrage du PC mais pas lors d'une déconnexion/reconnexion de session alors que je déclenche le lancement du batch à l'ouverture de la session
      0
    2. @Raph_83_92Est-ce que tu es sur un domaine ou bien un groupe de travail ?

      Je viens d'essayer sur un pc win10 en groupe de travail, aucun problème ça fonctionne avec le déclencheur "à l'ouverture de session", pas besoin de redémarrer.

      Si tu souhaites l'essayer chez toi, voilà la tâche au format XML :

      <?xml version="1.0" encoding="UTF-16"?>
      <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
        <RegistrationInfo>
          <Date>2022-01-31T15:41:53.8708271</Date>
          <Author>PC-PF2QE8Y4\Utilisateur</Author>
          <URI>\test</URI>
        </RegistrationInfo>
        <Triggers>
          <LogonTrigger>
            <Enabled>true</Enabled>
          </LogonTrigger>
        </Triggers>
        <Principals>
          <Principal id="Author">
            <UserId>S-1-5-21-912858782-1830787992-197374990-1001</UserId>
            <LogonType>InteractiveToken</LogonType>
            <RunLevel>LeastPrivilege</RunLevel>
          </Principal>
        </Principals>
        <Settings>
          <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
          <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
          <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
          <AllowHardTerminate>true</AllowHardTerminate>
          <StartWhenAvailable>false</StartWhenAvailable>
          <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
          <IdleSettings>
            <StopOnIdleEnd>true</StopOnIdleEnd>
            <RestartOnIdle>false</RestartOnIdle>
          </IdleSettings>
          <AllowStartOnDemand>true</AllowStartOnDemand>
          <Enabled>true</Enabled>
          <Hidden>false</Hidden>
          <RunOnlyIfIdle>false</RunOnlyIfIdle>
          <WakeToRun>false</WakeToRun>
          <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
          <Priority>7</Priority>
        </Settings>
        <Actions Context="Author">
          <Exec>
            <Command>C:\Users\Utilisateur\Desktop\test.bat</Command>
          </Exec>
        </Actions>
      </Task>


      Avant d'importer le fichier, il faudra simplement modifier la balise Author, la balise UserId et la balise Command
      0
  3. Merci pour les infos. C'est un PC perso local donc je ne sais pas comment le catégoriser.
    Je n'y ai accès que le week end mais vais tester çà sur mon propre PC ca sera plus simple.

    Concernant le UserID je le retrouve comment ? tu as bien utilisé le planificateur de taches pour cela ?
    0
    1. Dans le planificateur de tâches, j'ai fait clic-droit sur la tâche puis j'ai fait "exporter"

      Pour trouver tes UserId, tape cette commande dans une invite de commandes :
      wmic useraccount get name,sid


      Pour la balise Author, tu peux trouver en tapant cette commande :
      echo %COMPUTERNAME%\%USERNAME%
      0