Я бы рекомендовал взглянуть на управляемый API TaskScheduler, который является оболочкой .NET для COM API TaskScheduler.Это проект с открытым исходным кодом, доступный в CodePlex.
http://taskscheduler.codeplex.com/
Автор проекта может сказать об обновлении паролей:
Если вы пытаетесьСоздайте задачу, используя учетные данные текущего пользователя, и вы хотите, чтобы она выполнялась только тогда, когда этот пользователь вошел в систему, вам нужно вызвать метод RegisterTaskDefinition, как в конце примера Complex с параметром InteractiveToken.Если вам нужно создать другого пользователя, используйте тот же метод, но укажите имя пользователя, пароль и установите для параметра TaskLogonType значение InteractiveTokenOrPassword или Пароль.Существуют некоторые триггеры, характерные для пользователя, например LogonTrigger, где вы также можете указать учетные данные пользователя.
Соответствующая перегрузка для RegisterTaskDefinition
определена в TaskFolder.cs.
http://taskscheduler.codeplex.com/SourceControl/changeset/view/75611#19440
public Task RegisterTaskDefinition(string Path, TaskDefinition definition
, TaskCreation createType, string UserId, string password = null
, TaskLogonType LogonType = TaskLogonType.S4U, string sddl = null)