Comment procédez-vous pour l'exécution d'une tâche de l'utilisateur à l'ouverture de session à l'aide de vbs sans les droits d'admin?
À partir de la ligne de commande, je peux créer une tâche planifiée qui s'exécute à l'ouverture de session sans avoir besoin de privilèges d'administrateur ou l'utilisateur d'entrer un mot de passe pour définir la tâche. Cependant, je dois utiliser un fichier xml pour ce faire. voici un exemple xml, où le "Domaine\Utilisateur" partie a remplacé au moment de l'exécution avec le domaine et le nom de l'utilisateur actuel:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Author>Domain\User</Author>
</RegistrationInfo>
<Triggers>
<LogonTrigger>
<Enabled>true</Enabled>
<UserId>Domain\User</UserId>
</LogonTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>Domain\User</UserId>
<LogonType>InteractiveToken</LogonType>
</Principal>
</Principals>
<Settings>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
</Settings>
<Actions Context="Author">
<Exec>
<Command>"C:\Windows\notepad.exe"</Command>
<Arguments>/logon</Arguments>
</Exec>
</Actions>
</Task>
Je peux utiliser le xml pour créer une tâche à l'aide de la commande:
schtasks /create /TN "Test Logon Task" /XML task.xml
Cela fonctionne bien, mais je vais essayer de faire la même chose en vbs sans le besoin d'écrire et ensuite de charger un fichier xml pour l'utilisateur. J'ai essayé d'adapter le exemple à partir de MSDN mais jusqu'à présent je n'ai pas pu ajouter la tâche sans droits d'administrateur ou vous demande le mot de passe utilisateur.
Personne ne sait comment faire cela?
OriginalL'auteur ChrisD | 2013-10-22
Vous devez vous connecter pour publier un commentaire.
Probablement Schtasks.exe - à Partir de la documentation de Microsoft
Et l'un des paramètres (
/sc onlogon
) permettent de définir une tâche qui sera exécutée à l'ouverture de session.Semble être la réponse, MAIS je n'ai pas essayé.
MODIFIER
Depuis schtasks s'est avéré ne pas être la réponse, j'ai pris le code d'origine de Microsoft et de s'adapter au travail (je l'espère, fonctionne pour moi)
Changé le RegisterTaskDefinition appel à ne pas transmettre des informations d'identification de la tâche, et configuré del
Principal
les propriétés de l'objet de la taskDefinitionTâche enregistrée avec le non d'utilisateur admin, sans invite de mot de passe.
Peut-être, vous pourriez créer la tâche avec le xml, utiliser le Calendrier.Objet du Service et RegisteredTask propriété( ceci et ceci pour accéder aux propriétés de tâche, et l'utilisation GetSecurityDescriptor méthode pour obtenir les informations dont vous avez besoin pour alimentate la SetSecurityDescriptor méthode lors de la création de la tâche. Désolé, pas le temps. Bonne chance.
S'il vous plaît, voir mise à jour de réponse.
Cela a marché, merci! C'était la RegisterTaskDefinition appel qui s'est avéré le problème avec mes tentatives.
Comment feriez-vous pour changer les conditions de la tâche? J'ai besoin de ma tâche à exécuter, indépendamment de savoir si il est sur secteur ou sur batterie.
OriginalL'auteur MC ND