Создание скриншотов через PowerShell

1. svonedj 30.01.23 11:36 Сейчас в теме
Здравствуйте, уважаемые программисты! Вопрос такой, пишу скрипт для фонового создания скриншотов каждые две секунды через PowerShell. Но когда запускаю скрипт через "Планировщик заданий", скрины получаются белыми и пустыми, не могу понять в чем дело...
Код:

Function ScreenSave()
{
$Path = "C:\work\231_Скрипт PS для выполнения скриншотов\Temp\"
Add-Type -AssemblyName System.Windows.Forms 
$ScreenBounds = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds
$Image = New-Object System.Drawing.Bitmap($screenBounds.Width, $ScreenBounds.Height) 
$CopyScreen = [System.Drawing.Graphics]::FromImage($Image)
$Point = New-Object System.Drawing.Point(0, 0)
$CopyScreen.CopyFromScreen($Point,[Drawing.Point]::Empty, $Image.Size)
$СursorBounds = New-Object System.Drawing.Rectangle([System.Windows.Forms.Cursor]::Position, [System.Windows.Forms.Cursor]::Current.Size)
[System.Windows.Forms.Cursors]::Default.Draw($CopyScreen, $СursorBounds) 
$CopyScreen.Dispose()
if(![System.IO.Directory]::Exists($Path)){ New-Item -ItemType Directory $Path }
$Image.Save( $path+ "$(get-date -f yyyy.MM.dd_h\h_m\m_s\s)"+".jpg" )
$Image.Dispose()
}

$timer = new-timespan -Minutes 1440
$clock = [diagnostics.stopwatch]::StartNew()
while ($clock.elapsed -lt $timer){

ScreenSave
start-sleep -seconds 2
}

Показать
По теме из базы знаний
Найденные решения
2. starik-2005 3087 30.01.23 11:50 Сейчас в теме
Видимо пользовательский контейнер планировщика заданий, запустившего скрипт, не является пользовательским контейнером пользователя и не содержит рабочего стола пользователя, а может быть и вообще рабочего стола не содержит. По всей видимости, этот скрипт надо запускать от пользователя, с рабочего стола которого должны делаться эти скрины.
Vitaly1C8; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starik-2005 3087 30.01.23 11:50 Сейчас в теме
Видимо пользовательский контейнер планировщика заданий, запустившего скрипт, не является пользовательским контейнером пользователя и не содержит рабочего стола пользователя, а может быть и вообще рабочего стола не содержит. По всей видимости, этот скрипт надо запускать от пользователя, с рабочего стола которого должны делаться эти скрины.
Vitaly1C8; +1 Ответить
3. svonedj 30.01.23 14:22 Сейчас в теме
(2) starik-2005, спасибо, получилось когда выбрал одного пользователя)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот