Рейтинг:0

Выполнение сценария PowerShell с пробелами в аргументах через планировщик заданий в Windows Server 2012

флаг br

Я пытаюсь создать запланированную задачу в Windows Server 2012, которая будет выполнять сценарий powershell, который будет создавать архив определенного каталога один раз в день.

Аргументы для выполнения скрипта должны быть следующими (через командную строку): .\CreateBackup.ps1 -BackupTarget "D:\SOFT_DIST\Production\_New_Build\Documentation\Windows Build Documentation\" -BackupDestination "D:\SOFT_DIST\Production\_New_Build\Documentation\Build Documentation Backups\Backups\" -DeleteOutdatedFiles $true - FileTTLDays 30

Сценарий работает отлично, однако проблема заключается в том, что когда я ввожу аргументы в планировщик заданий, я получаю сообщение об ошибке «D:\SOFT_DIST\Production_New_Build\Documentation\Build не распознается как имя командлета, функции, файла сценария, или работающая программа». . Имейте в виду, что на самом деле каталоги действительны.

В планировщике заданий это то, что я ввел в разделе «Действия» (извлечено из файла экспорта XML)

<Command>powershell.exe</Command>
  <Arguments>
    -ExecutionPolicy Bypass "D:\SOFT_DIST\Production\_New_Build\Documentation\Build Documentation Backups\CreateBackup.ps1" 
    -BackupTarget 'D:\SOFT_DIST\Production\_New_Build\Documentation\Windows Build Documentation\'
    -BackupDestination 'D:\SOFT_DIST\Production\_New_Build\Documentation\Build Documentation Backups\Backups\' 
    -DeleteOutdatedFiles $true
    -FileTTLDays 30
  </Arguments>

Исходя из этого, что я должен исправить, чтобы этот скрипт выполнялся через запланированное задание? Я считаю, что проблема заключается в пробелах в путях к каталогам.

флаг br
[1] Вы пытались добавить внешний набор одинарных кавычек? что-то вроде `'"d:\ThingOne\Phrase With Embedded Spaces"'`. обратите внимание, что внешние кавычки являются одинарными, так что это может быть `одинарная кавычка`, `двойная кавычка`, `строка`, `двойная кавычка`, `одинарная кавычка`. ///// [2] можно ли избавиться от [раздражающих проблем] пробелов?
Daniel avatar
флаг br
@Lee_Dailey, к сожалению, я не могу от них избавиться. Я попробовал то, что вы предложили, но безуспешно: `powershell.exe -ExecutionPolicy Bypass '"D:\SOFT_DIST\Production\_New_Build\Documentation\Build Documentation Backups\CreateBackup.ps1"' -BackupTarget '"D:\SOFT_DIST\Production\ _New_Build\Documentation\Windows Build Documentation\"' -BackupDestination '"D:\SOFT_DIST\Production\_New_Build\Documentation\Build Documentation Backups\Backups\"' -DeleteOutdatedFiles $false -FileTTLDays 30`
флаг br
аргумент! [*нахмурился*] вы пытались поместить `powershell.exe` в слот действия с именем `программа/скрипт`, а затем поместить всю строку аргументов в слот действия с именем `добавить аргументы`? люди часто помещают все это в слот «программа/скрипт» ... и это имеет проблемы.

Ответить или комментировать

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