2012-06-14 3 views
2

Я пытаюсь зашифровать файлы с помощью запланированной задачи вызывающей gpg2.exe в Powershell 2.0выход GPG отсутствует при работе без присмотра

Сценарий/задание работает нормально, когда я вошел в систему, либо через ISE или запуск задачи в планировщике задач Windows. Я использую Windows Server 2008, а используемая учетная запись службы не является администратором, но имеет доступ ко всем папкам источника и назначения.

Когда задача запускается без присмотра, вывод из gpg не отображается в целевом каталоге и ошибок нет. Я добавил пользователя в политику безопасности, чтобы он мог войти в систему как пакет. Он может записывать файлы, которые в настоящее время существуют (источник) в целевую папку, а не на выходе из GPG.

Нечеткое дело в том, что поведение несовместимо, если я вхожу в систему и выхожу из нее как системная учетная запись, иногда задание будет выполняться без присмотра, пока не истечет срок действия графика, а затем начнется ошибка при следующем расписании.

Я довольно уверен, что это настройка вокруг сеанса, так как она работает все время, когда я вошел в систему и только в определенных сценариях, когда нет. любая помощь будет оценена по достоинству.

см следующий пример того, как я вызова GPG в PowerShell (да, я нуб :))

$ GPG_Prog = 'C: \ Program Files \ GNU \ GnuPG \ gpg2.exe'

$ GPG_Encrypt = '- е'

$ GPG_Encrypt_to = '- г' Xxxxxxxx

& "$ GPG_Prog" -o C: \ место \ $ file.gpg --batch --quiet - yes "$ GPG_Encrypt" "$ GPG_Encrypt_to" \ source location \ $ Файл

Move-Item \ $ file.gpg \ выход сетевого расположения

благодаря

ответ

1

Итак, в то время как я ждал ответа, я все время корпеть на эту проблему. Основываясь на некоторых выводах из других выпущенных выпусков и анализируя полностью неосуществимый код ошибки, возвращаемый GPG, я думал, что это может быть DEP внутри Windows, что вызывает проблему.

Чтобы проверить это, я добавил исполняемый файл gpg в список исключений для DEP (не рекомендуемое решение MS), а затем запланировал запуск всех задач шифрования без присмотра. Они приступили к запуску и безупречно работали в течение более чем часа испытательного периода.

Основываясь на том, что я прочитал и испытал, кажется, что, поскольку GPG работает как без присмотра, он не получает выделенной памяти, если бы он выполнялся как фактический профиль пользователя. Когда он запускает шифрование любой файл разумного размера и пытается получить доступ к памяти за пределами установленного предела, помеченного как доступный для выполнения Windows, DEP немедленно выдает экземпляр GPG, приводя к сообщению об ошибке в журнале приложений, который не был действительно полезным.

В любом случае, надеюсь, что это поможет кому-то!

веселит

3

У нас была аналогичная проблема с расшифровкой и выяснили, что реальная проблема была, что ключ по умолчанию хранится в перемещаемом профиле Пользователя. Так что в нашей ситуации это не имело никакого отношения к DEP, и это не имело ничего общего с недостаточными правами, поскольку Пользователь уже обладал правами «Партия исполнения».

Таким образом, нам пришлось переместить файлы ключей из перемещаемого профиля в локальный каталог.

Основном эти шаги необходимы: 1) Узнайте, где ваш ключ каталог на самом деле (--list команда) 2) Копировать/Вставить файлы из каталога Роуминг в путь (ц с: \ winutil \ библиотека) 3) удалить «старый» ключ 4) создать новый ключ с опцией --homedir

Пожалуйста найти инструкцию на GPG сайтах или здесь: http://www.glump.net/howto/cryptography/practical-introduction-to-gnu-privacy-guard-in-windows#6.1_Preparing_a_Minimal_Copy_of_GPG

Запустите скрипт Powershell без присмотра и проверить :-). HTH, Robert

Смежные вопросы