Ãœðù - Xakep Online
Ãœðù - Xakep Online
Ãœðù - Xakep Online
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
ХАКЕР.PRO<br />
Активные соединения — netstat Операторы сравнения<br />
Management.Automation.msh_profile.msh;<br />
•$HOME\My Documents\msh\profile.msh;<br />
•$HOME\My Documents\msh\Microsoft.<br />
Management.Automation.msh_profile.msh.<br />
Сценарий — это обычный текстовый файл, содержащий<br />
команды PowerShell. Расширение у файла<br />
сценария должно быть msh. Синтаксис PowerShell<br />
похож на синтаксис любого другого языка высокого<br />
уровня. Рассмотрим несколько примеров:<br />
MSH> 5*5<br />
25<br />
MSH> "Конкатенация" + "строк"<br />
Конкатенация строк<br />
MSH> (Get-Date).year * 5<br />
10035<br />
Можно работать с переменными, причем поддерживаются<br />
массивы:<br />
MSH> $t = 10<br />
MSH> $t<br />
10<br />
MSH> $arr = 1,2<br />
MSH> $arr<br />
1<br />
2<br />
MSH> $arr[1] = 3<br />
MSH> $arr<br />
3<br />
2<br />
Перед именем переменной нужно обязательно<br />
указывать знак доллара — так PowerShell поймет,<br />
что перед ним переменная, а не значение.<br />
Нумерация элементов массива начинается<br />
с единицы. Для доступа к элементу массива<br />
используются квадратные скобки, для добавления<br />
нового элемента в массив — оператор «+»:<br />
MSH> $arr += 7<br />
MSH> $arr<br />
3<br />
2<br />
7<br />
Кроме простых массивов, поддерживаются<br />
ассоциативные массивы:<br />
MSH> $assoc = @{ one = 1; two = 2;<br />
three = 3}<br />
MSH> $assoc['one']<br />
1<br />
Для добавления элемента в ассоциативный<br />
массив используется вот такая конструкция:<br />
$assoc += @{ four = 4 }<br />
Тип переменной выбирается автоматически, но<br />
можно установить любой тип .NET: array, bool,<br />
byte, char, char[], decimal, double, float, int, int[],<br />
long, long[], regex, single, scriptblock, string, type,<br />
xml. Он определяется в квадратных скобках в<br />
момент присваивания:<br />
MSH> $var = [int]10;<br />
В сценариях можно использовать условные операторы<br />
if-elseif-else, switch, а также операторы<br />
циклов while, do-while, do-until, foreach.<br />
Мы рассмотрим только оператор if-elseif-else и<br />
циклы while и foreach. Конструкция if-elseif-else<br />
следующая:<br />
if (условие) {операторы<br />
} elseif (условие) {операторы<br />
...<br />
} elseif (условие) {операторы<br />
} else {операторы}<br />
Условие задается так:<br />
переменная оператор_сравнения переменная_или_значение<br />
Цикл while выглядит так:<br />
while {условие} {операторы}<br />
Пример:<br />
$i = 0; while($i -lt 10) { $i; $i++ }<br />
Этот цикл выведет числа от 0 до 9.<br />
Теперь рассмотрим синтаксис foreach:<br />
foreach (переменная in ассоциативный_массив)<br />
{операторы}<br />
Цикл foreach удобно использовать для перебора<br />
значений ассоциативного массива, например:<br />
foreach ($v in Get-Process |Sort-<br />
Object Name) { $v.Name }<br />
А сейчас поговорим о работе с реестром.<br />
Перейти в нужный раздел можно с помощью<br />
всем знакомой команды cd:<br />
MSH> cd hkcu:<br />
Мы попали в раздел HKEY_CURRENT_USER.<br />
Можно перейти в другой раздел, например<br />
HKEY_LOCAL_MACHINE, задав его имя или<br />
сокращение (hklm). Вывести содержимое<br />
раздела можно с помощью команды dir. Чтобы<br />
просмотреть его, используется команда<br />
get-property:<br />
MSH> cd hkcu:<br />
SoftwareMicrosoftNotepad<br />
MSH> get-property .<br />
В данном случае мы выводим настройки блокнота.<br />
Значение переменной в разделе устанавливается<br />
посредством set-property (следующая<br />
команда изменит шрифт блокнота):<br />
MSH> set-property . — property<br />
lfFaceName -value "Arial" z<br />
Команды для работы с файловой<br />
системой<br />
type — просмотр файла;<br />
more — постраничный вывод файла;<br />
copy — копирование одного или нескольких<br />
файлов;<br />
move — перемещение одного или нескольких<br />
файлов (или переименование каталога);<br />
del — удаление одного или нескольких<br />
файлов;<br />
ren — переименование файла;<br />
attrib — изменение атрибутов файла/каталога<br />
(скрытый, системный, только чтение,<br />
архивный);<br />
fc — сравнение файлов;<br />
find — поиск текстовой строки в одном или<br />
нескольких файлах;<br />
grep — поиск текстовой строки (можно использовать<br />
регулярные выражения) в файле<br />
или в списке файлов;<br />
cd — смена каталога;<br />
dir — вывод содержимого каталога;<br />
tree — вывод дерева каталогов;<br />
md (или mkdir) — создание каталога;<br />
rd — удаление каталога или дерева<br />
каталогов.<br />
xàêåð 05 /101/ 07<br />
/<br />
157