- Powershell概要
- レジストリとは何か
- レジストリをハックすればなんでもできるのか?
- どうやっていじるのか
- レジストリキーを表示する
- レジストリの値を設定する。
- 新しいレジストリキーを登録する。
- レジストリ応用1 サイトをInternet explorerセキュリティゾーンに追加する
- レジストリ応用2 Internet explorerのプロキシを変更する。
Powershell概要
レジストリとは何か
wikipediaからの引用
OSに関する基本情報やアプリケーションの設定、拡張情報などのほか、拡張子の関連付け、ユーザパスワードなども保存されている。
要約するとこうだ
レジストリを制するものはwindowsアプリケーションを制する
例えば
・ユーザーパスワードを覗けてしまったり
・嫌いな上司の重要な書類をメモ帳と関連付けて困らせたり
・アプリの画面サイズのコントロールなど
やりたい放題である。
レジストリをハックすればなんでもできるのか?
何らかの原因によりレジストリに不正な設定が書き込まれたり、レジストリデータベースが破壊された際、
システムが自動的にバックアップしたデータベースから復旧できる場合がある。
やりたい放題だが復旧される時もある
とはいえ
システム設定情報を直接修正するため、レジストリエディタによる編集はオペレーティングシステムの動作に異常をきたす、
システムが起動しなくなるなど高いリスクを伴う。
なので操作できることはwindowsの生殺与奪の権を握ることを意味する
どうやっていじるのか
Windowsには、レジストリを編集するアプリケーション、レジストリエディタが付属する。
つまり、それ専用のツールもある。
レジストリキーを表示する
Get-ItemPropertyでレジストリキーを取得できる。
Set-Location HKCU:
Set-Location \Software\Microsoft\Windows\CurrentVersion\Run
Get-ItemProperty .
実行結果
PSPath: Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_U
SER\Software\Microsoft\Windows\CurrentVersion\Run
PSParentPath: Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_U
SER\Software\Microsoft\Windows\CurrentVersion
PSChildName: Run
PSDrive: HKCU
PSProvider: Microsoft.PowerShell.Core\Registry
FolderShare: "C:\Program Files\FolderShare\FolderShare.exe" /background
TaskSwitchXP: d:\lee\tools\TaskSwitchXP.exe
ctfmon.exe: C:\WINDOWS\system32\ctfmon.exe
Ditto: C:\Program Files\Ditto\Ditto.exe
QuickTime Task: "C:\Program Files\QuickTime Alternative\qttask.exe
" -atboottime
H/PC Connection Agent : "C:\Program Files\Microsoft ActiveSync\wcescomm.exe"
レジストリキーはファルダーやファイルと同じ扱いであると考えてよい
また、プロパティの値にアクセスするためには「.」繋ぎでキーを入力して値にアクセスできる。
PS >$runKey = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
PS >(Get-ItemProperty $runKey).TaskSwitchXp
d:\lee\tools\TaskSwitchXP.exe
レジストリの値を設定する。
#変更前のファイルパスの値
PS >(Get-ItemProperty .).MyProgram
c:\temp\MyProgram.exe
#レジストリの変更
PS >Set-ItemProperty . MyProgram d:\Lee\tools\MyProgram.exe
#変更したレジストリを再度確認する。
PS >(Get-ItemProperty .).MyProgram
d:\Lee\tools\MyProgram.exe
新しいレジストリキーを登録する。
New-ItemPropertyを使う
New-ItemProperty . -Name MyProgram -Value c:\temp\MyProgram.exe
ここでは「MyProgram」というキーを作成し、「c:\temp\MyProgram.exe」という値を格納している
レジストリ応用1 サイトをInternet explorerセキュリティゾーンに追加する
サンプルコード
Set-Location "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Set-Location ZoneMap\Domains
New-Item example.com
Set-Location example.com
New-Item www
Set-Location www
New-ItemProperty . -Name http -Value 2 -Type DWORD
インターネットエクスプローラーのSettingに移動した後、ZoneMap\Domainsに移動
インターネットエクスプローラーのセキュリティはサイトごとにファイルが形成されている仕組みのため、追加したいサイトのドメイン名でファイルを作る。
レジストリ応用2 Internet explorerのプロキシを変更する。
Set-Location "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Set-ItemProperty . -Name ProxyServer -Value http://proxy.example.com
Set-ItemProperty . -Name ProxyEnable -Value 1
ここではプロキシサーバーをhttp://proxy.example.com に設定しています。
また、セキュリティのレベルを1(イントラネット、Local intarnet)に設定
ちなみに番号の識別子は以下の通り
0. My Computer
1. Local intranet
2. Trusted sites
3. Internet
4. Restricted sites
title:レジストリキー操作【powershell】 description:Get-ItemPropertyでレジストリキーを取得できる。レジストリの値を設定する。新しいレジストリキーを登録する。 category_script:page_name.startswith("17") img:https://johobase.com/jb/wp-content/uploads/2021/03/taskbar-powershell-icon-contextmenu.png
page:https://minegishirei.hatenablog.com/entry/2024/05/22/120354