Отчёт по производственной практике. ПМ.03 Тюнин. Министерство образования и молодежной политики Рязанской области о бластное государственное профессиональное бюджетное профессиональное образовательное учреждение
Скачать 0.66 Mb.
|
Работа с реестром системы в PowerShell похожа на работу с обычными файлами на локальном диске. Выведем список доступных дисков: get-psdrive Как вы видите, встроенный провайдер позволяет получить доступ к содержимому двух веток реестра: HKEY_CURRENT_USER (HKCU) и HKEY_LOCAL_MACHINE (HKLM). Ветви реестра адресуются, аналогично дискам (HKLM:\ и HKCU:\). К примеру, чтобы перейти в корень ветки HKLM выполните: cd HKLM:\ Перейдти к конкретной ветке реестра (к примеру, отвечающей за настройки автоматического обновления драйверов) можно с помощью команды Set-Location (короткий псевдоним sl) Set-Location -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching Выведем содержимое ветки: dir или Get-ChildItem Откроем эту же ветвь в редакторе реестра. Как вы видите, последняя команда вывела только информацию о вложенных ветвях, но не о параметрах текущей ветки. Дело в том, что с точки зрения PowerShell ветвь реестра (ключ) является аналогом файла, а параметры, хранящиеся в данном ключе реестра – свойствами этого файла. Поэтому, чтобы получить параметрам, находящимся в данной ветке, воспользуемся командлетом Get-Item: Get-Item . или Get-Item -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching Как вы видите, ключ DriverSearching имеет только один параметр – SearchOrderConfig со значением 0. Чтобы обратится к конкретному параметру ключа, используется командлет Get-ItemProperty. К примеру, присвоим содержимое ветки некой переменной и получим значение конкретного параметра: $DriverUpdate = Get-ItemProperty –Path “HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching” $DriverUpdate.SearchOrderConfig Мы получили, что значение параметра SearchOrderConfig равно 1. Как изменить значение параметра реестра Чтобы изменить значение данного параметра, воспользуемся командлетом Set-ItemProperty: Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching' -Name SearchOrderConfig -Value 0 Проверим, что значение изменилось: Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching' -Name SearchOrderConfig Как создать новый раздел (ключ) или параметр реестра Для добавления новой ветки реестра, воспользуемся командой New-Item. Создадим новую ветку с именем NewKey: $HKCU_Desktop= "HKCU:\Control Panel\Desktop" New-Item –Path $HKCU_Desktop –Name NewKey Для созданной ветки добавим новый строковый параметр с именем SuperParamString и значением file_name.txt : New-ItemProperty -Path $HKCU_Desktop\NewKey -Name "SuperParamString" -Value ”file_name.txt” -PropertyType "String" Убедитесь, что в реестре появился новый ключ и параметр. Удаление раздела или параметра реестра Удалим созданный ранее параметр SuperParamString: $HKCU_Desktop= "HKCU:\Control Panel\Desktop" Remove-ItemProperty –Path $HKCU_Desktop\NewKey –Name "SuperParamString" А затем удалим целиком ветку: Remove-Item –Path $HKCU_Desktop\NewKey –Recurse Примечание. Ключ –Recurse говорит о том, что нужно рекурсивно без подтверждения удалить все вложенные подразделы Для удаления всех элементов в ветке, но не самого раздела, команда будет такой: Remove-Item –Path $HKCU_Desktop\NewKey\* –Recurse Как переименовать ключ или параметр Для переименования параметра воспользуйтесь командой: Rename-ItemProperty –path ‘HKCU:\Control Panel\Desktop\NewKey’ –name "SuperParamString" –newname “OldParamString” Аналогично можно переименовать ветку реестра: Rename-Item -path 'HKCU:\Control Panel\Desktop\NewKey' OldKey Поиск в реестре с помощью PowerShell PowerShell позволяет также выполнять поиск по реестру. Следующий скрипт выполняет поиск по ветке HKCU:\Control Panel\Desktop параметров, в имени которых содержится ключ dpi. $Path = (Get-ItemProperty ‘HKCU:\Control Panel\Desktop’) $Path.PSObject.Properties | ForEach-Object { If($_.Name -like '*dpi*'){ Write-Host $_.Name ' = ' $_.Value } } Удаленный доступ к реестру с помощью PowerShell PowerShell позволяеь получить доступ к реестру удаленного компьютера. К удаленном компьютеру можно подключится как через WinRM (Invoke-Command или Enter-PSSession): Invoke-Command –ComputerName srv-fs1 –ScriptBlock { Get-ItemProperty -Path 'HKLM:\System\Setup' -Name WorkingDirectory} Или через подключение к удаленному реестру (служба RemoteRegistry должна быть включена) $Server = "srv-fs1" $Reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $Server) $RegKey= $Reg.OpenSubKey("System\Setup") $RegValue = $RegKey.GetValue("WorkingDirectory") Министерство образования и молодежной политики Рязанской области Областное государственное профессиональное бюджетное профессиональное образовательное учреждение «Рязанский колледж электроники»
|