
У меня есть задача в планировщике заданий по запуску пакетного файла, который находится на локальном жестком диске.
Пакетный файл просто запускает XCopy для копирования файлов с подключенного диска в папку на локальном диске.
При запуске пакетного файла из командной строки он функционирует отлично.
При запуске из планировщика задач команда XCopy выводит ошибку:
Invalid drive specification
Если это имеет значение, диск представляет собой NAS и подключается к компьютеру с использованием локальных учетных данных NAS (в сети нет Active Directory).
решение1
Я уже видел такое поведение раньше, когда пытался сделать резервную копию на сопоставленном NAS. Не знаю почему, но ему нужен "толчок", чтобы вспомнить, что диск X: сопоставлен с \myserver\myfolder.
Вручную это можно решить, обратившись к целевой папке. Как только вы "коснетесь" X:, Windows "запомнит", что он там. Программно (т. е. из пакета) вы можете либо попытаться получить доступ к сопоставленной папке, либо, возможно, даже переназначить ее (используя команду net
) в пакете, перед командой XCopy.
решение2
Этот ответ приходит очень поздно, но я нашел другой способ обойти проблему. Похоже, что это вызвано другим контекстом при запуске из запланированной задачи (даже если Run with highest privileges
выбрано), а не из приглашения с повышенными правами.
Настройте
EnableLinkedConnections
значение реестра. Это значение позволяетWindows Vista and Windows 7
совместно использовать сетевые подключения между отфильтрованным маркером доступа и полным маркером доступа администратора для члена группы администраторов. После настройки этого значения реестра LSA проверяет, есть ли другой маркер доступа, связанный с текущим сеансом пользователя, если сетевой ресурс сопоставлен с маркером доступа. Если LSA определяет, что есть связанный маркер доступа, он добавляет сетевой ресурс в связанное местоположение.
- Начинатьregedit
- Найдите и щелкните правой кнопкой мыши подраздел реестра.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System.
- Наведите указатель мыши на пункт «Создать», а затем щелкните «Значение DWORD».
- ТипВключить связанные соединения, а затем нажмите ENTER.
- Щелкните правой кнопкой мышиВключить связанные соединения, а затем нажмите Изменить.
- В поле «Значение» введите 1 и нажмите кнопку «ОК».
- Выйдите из редактора реестра, а затемперезагрузите компьютер.
Ссылка естьздесь.