PowerShell - лабораторные работы (информатика - 11 класс, инструментальные средства ИС - средние и высшие образовательные учреждения)
Оценка 4.9

PowerShell - лабораторные работы (информатика - 11 класс, инструментальные средства ИС - средние и высшие образовательные учреждения)

Оценка 4.9
Лабораторные работы +1
pdf
информатика +1
10 кл—11 кл +1
24.02.2017
PowerShell - лабораторные работы (информатика - 11 класс, инструментальные средства ИС - средние и высшие образовательные учреждения)
Лабораторная работа №3. Работа с реестром.pdf

Лабораторная работа №3. Работа с реестром.

Реестр Windows состоит из пяти так называемых корневых разделов (root keys):

HKEY_CLASSES_ROOT,    HKEY_CURRENT_USER,    HKEY_LOCAL_   MACHINE,

HKEY_USERS и HKEY_CURRENT_CONFIG.

Каждый раздел может содержать элементы данных называемые параметрами (value entries) и вложенные разделы (subkeys).

Реестр – это набор файлов хранящихся на жѐстком диске. Файлы находятся в папке %SystemRoot%\System32\Config, где %SystemRoot% — папка, куда установлена Windows.

Файл Ntuser.dat создается для каждого пользователя и хранит его настройки находится в %SystemDrive%\Documents and Settings\%Username% (Windows XP) или %SystemDrive%\Users\%Username% (для систем начиная с Vista), где %Username% —

имя пользователя.

SAM            

HKEY_LOCAL_MACHINE\SAM

SECURITY 

HKEY_LOCAL_MACHINE\SECURITY

SOFTWARE

HKEY_LOCAL_MACHINE\SOFTWARE

SYSTEM     

HKEY_LOCAL_MACHINE\SYSTEM

SYSTEM     

HKEY_CURRENT_CONFIG

DEFAULT 

HKEY_USERS\.DEFAULT

Ntuser.dat 

HKEY_CURRENT_USER

В этих файлах хранятся:

HKEY_LOCAL_MACHINE - Содержит глобальную информацию о компьютерной системе, включая такие данные об аппаратных средствах и операционной системе, в том числе: тип шины, системная память, драйверы устройств и управляющие данные, используемые при запуске системы. Информация, содержащаяся в этом разделе, действует применительно ко всем пользователям, регистрирующимся в системе.

HKEY_CLASSES_ROOT - Содержит ассоциации между приложениями и

типами файлов (по расширениям имени файла).

HKEY_CURRENT_CONFIG - Содержит конфигурационные данные для текущего аппаратного профиля. Аппаратные профили представляют собой наборы изменений, внесѐнных в стандартную конфигурацию сервисов и устройств, установленную данными разделов Software и System корневого раздела HKEY_LOCAL_MACHINE. В разделе HKEY_CURRENT_CONFIG отражаются только изменения. Кроме того, параметры этого раздела появляются также в разделе HKEY_LOCAL_MACHINESystem CurentControlSetHardwareProfitesCuiTent.

HKEY_CURRENT_USER - Содержит, профиль пользователя, на данный момент. зарегистрировавшегося в системе, включая переменные окружения, настройку рабочего стола, параметры настройки сети, принтеров и приложений. Этот раздел представляет собой ссылку на раздел HKEY USERS username, где username — имя пользователя, зарегистрировавшегося в системе на текущий момент.

HKEY_USERS - Содержит все активно загруженные пользовательские профили,

включая HKEY_CURRENT_USER, а также профиль по умолчанию. Раздел HKEY_USERS содержит вложенный раздел Default, а также другие разделы, определяемые идентификатором безопасности (Security ID) каждого пользователя.

Локальный реестр.

Доступ к локальному реестру осуществляется с помощью провайдера Registry, который в свою очередь, предоставляет стандартные диски HKCU и HKLM.

Провайдер Registry предоставляет доступ ко всему реестру, но по умолчанию даѐт доступ только двум дискам.

Для того что бы убедится в этом вводим:

Список дисков

Get-PSDrive

Только от провайдера Registry

Get-PSDrive -PSProvider Registry

Раз реестр это «диск» то можно по аналогии доступа к дискам и веткам реестра применять команды Set-Location и Get-Location. Используем Set-Location

Set-Location HKLM:\SOFTWARE

Можно и еѐ синоним команду cd

cd HKLM:\SOFTWARE

Смотрим где местонахождение

Get-Location

Переходим на уровень выше

cd ..

Создание дополнительных дисков.

При необходимости можно создать дополнительный PSDrive. Для примера можно взять HKEY_CLASSES_ROOT который не является независимым объектом, а всего лишь ссылкой на HKEY_LOCAL_MACHINE\SOFTWARE\Classes. Создание нового диска HKCR производится следующим образом.

New-PSDrive            -name            HKCR           -PSProvider           registry           -root

HKLM:\SOFTWARE\ClassesDir HKCR:

Удаление созданного диска производится командой Remove-PSDrive Remove-PSDrive HKCR

Поиск в реестре.

Поиск в реестре производится теме же методиками что и в файловой системе. Для примера можно поискать на диске HKLM: все элементы, в которых присутствует ключевое слово *PowerShell*

Get-ChildItem HKLM: -recurse -include *PowerShell*

Для демонстрации можно вывести список всех сервисов (их настройки храняться в ветке HKLM:\SYSTEM\CurrentControlSet\Services) с помощью двух команд cd HKLM:\SYSTEM\CurrentControlSet\Services dir

Или при при помощи всего одной команды выводим список установленного ПО.

Get-ItemProperty

HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* | Format-Table InstallDate, DisplayName, Publisher

Для x64 систем необходимо учитывать вторую ветку т.к. в ней хранятся данные по 32-битным программам.

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\Curren tVersion\Uninstall

Удалѐнный реестр.

Для работы с удалѐнным реестром придѐтся обратиться к .NET.

Вводим команды.

$ServerName = "."

$ServerKey                                                                                                                       =

[Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive

]::LocalMachine,  $ServerName)

Получаем объект, свойства которого можно посмотреть, использовав стандартный командлет Get-Member

$ServerKey | Get-Member

На экран выводится список свойств которые нам могут понадобится.

CreateSubKey — создать ключ

DeleteSubKey — удалить ключ

DeleteSubKeyTree — удалить дерево ключей

DeleteValue — удалить значение

Среди методов есть OpenSubkey и GetSubKeyNames, с помощью которых можно прочитать значения из реестра удалѐнной системы.

Задаѐм имя удалѐнного хоста

$ComputerName = ‘HOST_NAME’

$reg                                                                                                                                   =

[Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive

]::LocalMachine,$ComputerName)

$key                                                                                                                                  =

$reg.OpenSubkey("Software\Microsoft\Windows\CurrentVersion\Uninstall",$false)

$key.GetSubKeyNames()

Получаем значения определѐнных элементов. Например, DisplayName и DisplayVersion

$reg        =       [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(‘LocalMachine’,

‘HOST_NAME’)

$key                                                                                                                                  =

$reg.OpenSubKey(‘SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall’)

 

$key.GetSubKeyNames() | ForEach-Object {

$subkey = $key.OpenSubKey($_) $i = @{}

$i.Name = $subkey.GetValue(‘DisplayName’)

$i.Version = $subkey.GetValue(‘DisplayVersion’)

$i.Date = $subkey.GetValue(‘InstallDate’)

$i.Pubisher = $subkey.GetValue(‘Publisher’)

New-Object PSObject -Property $i

$subkey.Close()

}

$key.Close()

$reg.Close()

Правка реестра.

Все используемые методики и способы одинаково применимы как к файловой системе так и к реестру.

Создаем новый элемент

New-Item -Path HKCU:\Environment\NewKey

Или так

New-Item —type Directory HKCU:\Environment\NewKey—1

Аналогично будет работать команда md md HKCU:\Environment\NewKey—2

Переходим в папку

Set-Location HKCU:\Environment

Создаем копию созданного ранее ключа

Copy-Item -Path HKCU:\Environment\NewKey .\NewKey2

Переименовываем

Rename-Item -Path HKCU:\Environment\NewKey2 -NewName RenameKey2

Удаляем старый

Remove-Item -Path HKCU:\Environment\NewKey

Аналогично можно использовать команду del del HKCU:\Environment\NewKey

Создаем новое значение

New-ItemProperty -PropertyType String -Path HKCU:\Environment -name NewKey Value "NewParam"

 

 

Допустимые для создания элементы:

ItemType      

Description            

DataType

String           

A string                 

REG_SZ

ExpandString 

A string                 

REG_EXPAND_SZ

Binary          

Binary values         

REG_BINARY

DWord         

Numeric values      

REG_DWORD

MultiString 

Text of several lines 

REG_MULTI_SZ

Qword          

64-bit numeric values 

REG_QWORD

Меняем значение у существующего элемента

Set-ItemProperty -Path  .\ -name "NewParam" -Value "UpdatedParam"

Переименовываем параметр

Rename-ItemProperty -Path  .\ -name "NewParam" -NewName "TestParam"

Удаляем параметр

Remove-ItemProperty -Path .\ -name newkey

Лабораторная работа №3. Работа с реестром

Лабораторная работа №3. Работа с реестром

Software и System корневого раздела

Software и System корневого раздела

Get-Location Переходим на уровень выше cd

Get-Location Переходим на уровень выше cd

Вводим команды. $ServerName = "

Вводим команды. $ServerName = "

GetSubKeyNames() | ForEach-Object { $subkey = $key

GetSubKeyNames() | ForEach-Object { $subkey = $key

Аналогично можно использовать команду del del

Аналогично можно использовать команду del del
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
24.02.2017