Игрища с помощью Windows PowerShell (WPS)

Как вы все наверное знаете в операционных системах «нового поколения» Windows 7 и Windows Server 2008 присутствует, по умолчанию, Windows PowerShell, сразу оговорюсь, в SP1 по умолчанию выключен.

PowerSell – средство автоматизации от Майкрософт. Включает в себя  консоль и язык сценариев. Построен на базе Microsoft .NET Framework. В дополнение он предоставляет удобный доступ к COM, ADSI, WMI и позволяет удобнее администрировать систему.

Сегодня я попробую показать, как можно из текстовых файлов собрать, склеить, натуральный бинарный файл ( как засунуть текстовый файл через www – другая тема ). Конечно такой файл можно собрать используя debug.exe, но такой способ накладывает ограничения в 64Кб в размер для исполняемого файла. И в новых операционках симейства Windows такого инструмента как debug.exe более не присутствует.

Для примера возьмём исполняемый файл Bubbles.scr ( это заставка для виндос —  мыльные пузыри, находится в c:\windows\system32 ). Сделаем из него текстовый файл, для этого в PowerShell напишем небольшой скрипт, прямо в командной строке:

PS > [byte[]]$hex=get-content -encoding byte –path c:\Temp\Bubles.scr

Эта строка позволяет считать каждый байт  Bubbles.scr и сохранить его в массиве.

Следующая строка переводит байты в массив строк и пишет их в текстовый файл hexmy.txt

PS > [System.IO.File]::WriteAllLines(“c:\Temp\hexmy.txt”, ([string]$hex))

Теперь у нас появился текстовый файл вот такого вида:

Содержание текстового файла

Воссоздаём файл на целевом компьютере:

PS > [string]$hex=get-content –path c:\Temp\hexmy.txt

PS > [Byte[]] $temp=$hex –split ‘ ‘

Кладём его в самое хорошее место! 😉

PS > [System.IO.File]::WriteAllBytes( “c:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\Bubbles.scr”, $temp)

При следующей загрузке наслаждаемся заставкой из пузыриков.