LoginSignup
7
4

More than 5 years have passed since last update.

PowerShellでスタートアップフォルダにアクセスする

Posted at

Windowsのバージョンごとに異なるスタートアップフォルダの位置。いずれも結構深いところにあってなかなか覚えづらいもの。

explorer.exeなら簡単

yubaさんのWindowsのあのフォルダはUNIX/Linuxで言えばあそこだによると、エクスプローラーのアドレスバーにshell:startupと入力することでスタートアップフォルダに移動できるようです。

Kobito.FIdnyb.png

これを応用してPowerShell上でexplorer.exe shell:startupと入力するとスタートアップフォルダに移動した状態のエクスプローラーが立ち上がります。

というかexplorer.exeは外部コマンドなのでcmd.exe上でも同じようにエクスプローラーを立ち上げることができます。

あるいはコマンドレットStart-Process shell:startupでもエクスプローラーが立ち上がります。

…が、いずれにしてもエクスプローラーはGUIプログラムなので、その結果を利用しづらい。

レジストリを読む

エクスプローラーがCUIモードで動かせないか調べてみたんですが見つけられませんでしたので、アプローチを変えてみます。

エクスプローラーのshell:startupコマンドはレジストリの内容からディレクトリ情報を得ているようです。レジストリであればGet-ItemPropertyコマンドレットで扱えますね。

対象ユーザーによってレジストリが異なります。

対象ユーザー レジストリエントリ キー
個別ユーザー HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders Startup
個別ユーザー(バックアップ) HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders Startup
全ユーザー HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders Common Startup
全ユーザー(バックアップ) HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders Common Startup

※それぞれバックアップはバックアップでないレジストリキーに値がない場合にバックアップとして参照されるエントリ

レジストリエントリには情報がいっぱい

今回はスタートアップフォルダだけわかればいいんですが、上記レジストリエントリには他にもいろいろな情報が詰まっています。(他のスタートメニュー関連やドキュメントフォルダ、デスクトップ等)

なので、$profileで次のようにレジストリエントリのプロパティをコピーしておき、適宜キー名を指定してアクセスするとフォルダ名を参照することができます。

$UserProperty = $(Get-ItemProperty 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders')
$SystemProperty = $(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders')

そのうえで例えばスタートアップフォルダを得たいのであれば、次のようにしましょう。

(*'-') >> $UserProperty.Startup
C:\Users\Home\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
(*'-') >> $SystemProperty.'Common Startup'
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

これで解決!

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4