Строки ниже отлично работают в командной строке Powershell, но не выполняются с запланированной задачей.PSSessionStateBroken with start-job -credential в запланированной задаче
$pass = gc C:\secrets\shhh.txt | convertTo-secureString
$Cred = new-object -typeName System.management.automation.psCredential -argumentlist "domain\domainUser",$pass
$path = "\\server\share\folder"
$j = start-job {gci -path $args[0]} -cred $Cred -argumentList $path | wait-job | receive-job
$body = $j | out-string
$error | out-file C:\temp\err.txt
send-mailMessage -to [email protected] -from [email protected] -subject halp -smtpserver mailserver.domain.tld -body $body
В C: \ Temp \ err.txt в ОС Windows 2008R2 запланированную задачу оставляет хлебную крошку:
[localhost] The background process exited abnormally.
+ CategoryInfo : OpenError: (localhost:String) [], PSRemotingTransportException
+ FullyQualifiedErrorId : 2101,PSSessionStateBroken
... который приносит нам this Microsoft bug report. В отчете упоминается обходной путь с удаленным локальным ходом, который звучит немного грязно. Должен ли я пойти туда?
Есть ли лучшее решение? Может быть, с одним из командлетов * session или invoke-command? Заданное значение задачи Start in
установлено, но, возможно, фоновый процесс использует некоторую переменную каким-то образом, например so?
Не повезло еще с вызовом powershell.exe с –version 2
или с -command "& {bigKlugeyScriptblock}"
синтаксисом.
Редактировать: Я пытаюсь избежать создания новой учетной записи домена для выполнения задачи. Задача не может выполняться как domainUser
от $cred
, потому что у этой учетной записи не должно быть разрешений на localhost.
Спасибо. 1) см. Редактирование 2) Перспективные. Чтение на runas/savecred и cmdkey.exe и будет отчитываться. – noam
Я добавил еще одно возможное обходное использование с использованием сетевого использования –
Рабочее положение # 1 здесь достаточно. Я в порядке предоставляю «Лог в качестве пакетного задания» в $ cred в локальной политике безопасности, и этой привилегии, похоже, достаточно для запуска запланированной задачи. – noam