Снимак екрана корисничке радне површине путем ПоверСхелл-а

Особље за техничку подршку затражило је да напише ПоверСхелл скрипту за брзо добијање екрана радне површине корисника са удаљеног рачунара. У исто време, службеник ХелпДеск-а не сме бити повезан са рачунаром корисника путем графичких алата на даљинску подршку (СЦЦМ, Ремоте Ассистанце, Схадов сессион итд.).

Садржај:

  • Направите снимак екрана користећи ПоверСхелл
  • Како да добијете екран радне површине са удаљеног рачунара из ПоверСхелл-а?

Направите снимак екрана користећи ПоверСхелл

Прво ћемо смислити како да направимо снимак тренутног екрана на локалном рачунару из ПоверСхелл-а. Да бисмо добили слику на радној површини, користићемо уграђену .НЕТ класу - Систем.Виндовс.Формс. Имам такав ПоверСхелл скрипта:

$ Патх = "Ц: \ пс \ снимке заслона"
# Проверите да ли је креиран директориј за чување снимака екрана, ако није, креирајте га
Иф (! (Тест-патх $ патх))
Нев-Итем -ИтемТипе Дирецтори -Форце -Патх $ патх

Адд-Типе -АссемблиНаме Систем.Виндовс.Формс
$ сцреен = [Систем.Виндовс.Формс.Сцреен] :: ПримариСцреен.Боундс
# Добијте резолуцију екрана
$ имаге = Ново-објектни систем.Нацртавање.Битмап-а ($ сцреен.Видтх, $ сцреен.Хеигхт)
# Креирајте графички објект
$ грапхицс = [Систем.Дравинг.Грапхицс] :: ФромИмаге ($ слика)
$ поинт = Ново-објектни систем.извлачење.Поинт (0, 0)
$ грапхицс.ЦопиФромСцреен ($ поен, $ поен, $ слика. Величина);
$ цурсорБоундс = Нови објектни систем.Дравинг.Рецтангле ([Систем.Виндовс.Формс.Цурсор] :: Позиција, [Систем.Виндовс.Формс.Цурсор] :: Цуррент.Сизе)
# Направите снимак екрана
[Систем.Виндовс.Формс.Цурсорс] :: Дефаулт.Драв ($ графика, $ цурсорБоундс)
$ сцреен_филе = "$ Патх \" + $ енв: име рачунара + "_" + $ енв: корисничко име + "_" + "$ ((датум добијања) .тостринг ('ииии.ММ.дд-ХХ.мм.сс ')). пнг "
# Сачувај снимак екрана у пнг датотеку
$ имаге.Саве ($ сцреен_филе, [Систем.Дравинг.Имагинг.ИмагеФормат] :: Пнг)

Скрипта ПС-Цаптуре-Лоцал-Сцреен.пс1 доступна је у мом спремишту на ГитХуб-у.

Ова скрипта ствара директоријум за чување снимака екрана, добија тренутну резолуцију екрана, прима слике радног простора и спрема га у пнг датотеку.

Покрените наведену скрипту ПоверСхелл и провјерите да ли се у наведеном директорију (можете одредити УНЦ пут до мрежне мапе), пнг датотека појавила се са снимком екрана са ваше радне површине у вријеме покретања скрипте. Ради практичности, име пнг датотеке садржи име рачунара, корисника, тренутни датум и време.

Ако желите да користите скрипту овог ПС-а из скрипте, користите ову команду (у овом случају не морате да мењате поставке ПоверСхелл ЕкецутионПолици):

поверсхелл.еке -екецутионполици бипасс -филе ц: \ пс \ ПС-Цаптуре-Лоцал-Сцреен.пс1

За уређивање скрипти ПоверСхелл-а, радије бих користио Висуал Студио Цоде уместо Поверсхелл ИСЕ-а.

Пречица до ове скрипте ПоверСхелл може се поставити путем ГПО-а на радне површине свих корисника домена и везати вруће тастере да бисте их позвали. Када се у било којој апликацији појави проблем или грешка, корисник треба само да притисне додељену комбинацију тастера. Као резултат тога, снимак екрана корисничке радне површине појављује се у мрежној мапи ХелпДеск.

Како да добијете екран радне површине са удаљеног рачунара из ПоверСхелл-а?

Следећи задатак је да помоћу ПоверСхелл-а добијете снимак радне површине корисника на удаљеном рачунару / серверу. То може бити или засебан рачунар са Виндовс 10 или РДС сервер.

Преферирани начин графичког повезивања са радном површином корисника на РДС серверу је Схадовинг Ремоте Десктоп Схадовинг.

Ако желите да добијете екран радне површине са РДС сервера (или радног стола Виндовс, на коме је дозвољено више РДП веза), прво морате да набавите ИД сесије корисника на удаљеном рачунару. У следећој скрипти потребно је да наведете име удаљеног сервера и корисничког налога.

$ ЦомпутерНаме = "мск-рдс1"
$ РДУсерНаме = "авиванов"
$ кусер = (((упит корисника / сервера: $ ЦомпутерНаме) -реплаце '^>', ") -реплаце '\ с 2,', ',' | Претвори од Цсв)
$ усерсесс = $ кусер | где је $ _. УСЕРНАМЕ слично $ РДУсерНаме -и $ _. ДРЖАВА -ек "Ацтиве"
$ усерсессИД = $ усерсесс.ИД

Ако користите скрипту за снимање снимака екрана са удаљених рачунара са једним корисником, број сесије ће увек бити 1. Замените претходни блок анкете на РДС серверу са $ усерсессИД = 1.

Ради практичности, морате да сачувате датотеку са скрипту ПоверСхелл да бисте снимку снимили у мрежни директориј. Да бисте то учинили, уредите скрипту ПС-Цаптуре-Лоцал-Сцреен.пс1, промените путању на:

$ Патх = \\ сервер1 \ Екран \ Дневник

Снимке екрана корисника биће сачуване у овај директориј. Одобри писање приступа овом директоријуму за групу домена Аутентични корисници.

Када добијете кориснички ИД сесије, можете се даљински повезати са његовом сесијом преко ПсЕкеца и покренути скрипту:

.\ ПсЕкец.еке -с -и $ усерсессИД \\ $ ЦомпутерНаме поверсхелл.еке -екецутионполици бипасс -ВиндовСтиле Хидден -филе "\\ сервер1 \ Сцреен \ ПС-Цаптуре-Лоцал-Сцреен.пс1"

Сада, службеник ХелпДеск-а може покренути ову скрипту са свог рачунара, а снимак тренутне слике корисника удаљеног рачунара појавиће се у наведеном директоријуму.