Cmdletを試す
引き続きMicrosoft Command Shell(Monad Shell)で遊ぶ。
sh等の既存のシェルで言う所のbuiltin Commandに該当するのがCmdletだ。
verb-nounという形式に命名法が統一されているのに感心した。
もちろん、普通使いたいコマンドにはaliasが切ってあるので、cdとかlsできる。
まぁ、まずは触ってみようということで、とりあえずレジストリをいじってみた。
まずは目的の位置に移動。
MSHのプロンプトを起動した後、まずは移動して、Get-Itemで現在の内容を見る。
MSH> cd hkcu:\software\microsoft\windows\currentversion MSH> get-item run Hive: Registry::HKEY_CURRENT_USER\software\microsoft\windows\currentversion SKC VC Name Property --- -- ---- -------- 0 1 run {ctfmon.exe}
New-Propertyで新しい項目を登録する。
Windowsの起動時に電卓が立ち上がるようにしてみた。
MSH> new-property -path run -property "calc.exe" -value "C:\windows\system32\cal c.exe" MshPath : Registry::HKEY_CURRENT_USER\software\microsoft\windows\currentv ersion\run MshParentPath : Registry::HKEY_CURRENT_USER\software\microsoft\windows\currentv ersion MshChildName : run MshDrive : HKCU MshProvider : System.Management.Automation.ProviderInfo calc.exe : C:\windows\system32\calc.exe
値が変わって、calc.exeが増えているのがわかる。
MSH> get-item run Hive: Registry::HKEY_CURRENT_USER\software\microsoft\windows\currentversion SKC VC Name Property --- -- ---- -------- 0 2 run {ctfmon.exe, calc.exe}
実際に登録されているかどうか、Get-Propertyで確認する。
MSH> get-property -path run -property calc.exe MshPath : Registry::HKEY_CURRENT_USER\software\microsoft\windows\currentv ersion\run MshParentPath : Registry::HKEY_CURRENT_USER\software\microsoft\windows\currentv ersion MshChildName : run MshDrive : HKCU MshProvider : System.Management.Automation.ProviderInfo calc.exe : C:\windows\system32\calc.exe
はい、確かにcalc.exeがレジストリに登録されています。
Remove-Propertyで削除する。
本当に起動時に電卓が立ち上がってもジャマなので。
MSH> remove-property -path run -property calc.exe MSH> get-item run Hive: Registry::HKEY_CURRENT_USER\software\microsoft\windows\currentversion SKC VC Name Property --- -- ---- -------- 0 1 run {ctfmon.exe}
.NETのオブジェクトも扱えるようだが、ちょっとまだ良くやり方が分からない。
っていうか、本当にドキュメントが無い。