Windows 10 でデフォルトの PowerShell v5 から、シンボリックリンクを作れるようになったそうなので試してみました。 自分の PowerShell のバージョンを調べるには
PS> $PSVersionTable
とします。
準備
PowerShell からシンボリックリンクを作成するには管理者権限が必要なので、PowerShell をアイコンから起動するときに右クリックして「管理者として実行」を選びましょう。シンボリックリンクの作成
PowerShell でシンボリックリンクの作成するには「New-Item」コマンドレットを使います。 このコマンドレット自体は昔からありますが、パラメータとして「-ItemType SymbolicLink」を指定します。 例えば、カレントディレクトリにある「log.txt」というファイルに対するシンボリックリンク「log.symlink」を作りたい場合は以下のようにします:PS> New-Item -Path . -Name log.symlink -Value log.txt -ItemType SymbolicLink
- Value パラメータにディレクトリを指定すればディレクトリに対するシンボリックリンクが作られます。
シンボリックリンクの削除
シンボリックリンクを削除するには、通常のファイルと同じように Remove-Item (もしくは del, rmdir)コマンドレットを使います:PS> Remove-Item log.symlink
ファイルに対するシンボリックリンクを rmdir で削除することもできるようです(まぁ、単なるエイリアスだし)。 ディレクトリに対するシンボリックリンクを同様に削除しようとすると「子がある」とかって言って参照先を削除しようとしてそうでビビる。 なんか他の削除方法があるのかもしれません。
その他のリンクの作成
これは PowerShell v5 でなくても可能だと思いますが、シンボリックリンクの他にジャンクションとハードリンクというのも作れます。 これらの違いについては以下の記事を参照:www.atmarkit.co.jp
ジャンクションやハードリンクを作るには、シンボリックリンクの場合で ItemType を変更するだけです。 また、管理者権限は必要ありません。
ジャンクション
ジャンクションはディレクトリのみ可能。 「log」ディレクトリに対するジャンクション「tolog」を作成するには以下のようにします:PS> New-Item -Path . -Name tolog -Value log -ItemType Junction
ハードリンク
ハードリンクも作り方は同様。PS> New-Item -Path . -Name log.lnk -Value log.txt -ItemType hardlink
まぁ、難しくないですね。
PS.
secpol で管理者以外にもシンボリックリンクを作成する権限を与えても、いまいち「管理者として実行」せずにシンボリックリンクがうまく作れない。 他のプログラムから呼び出すのをどうしたらいいのかわからないっす。- 作者: 柏原基規
- 発売日: 2015/11/04
- メディア: Kindle版
- この商品を含むブログを見る
【改訂新版】 Windows PowerShell ポケットリファレンス
- 作者: 牟田口大介
- 出版社/メーカー: 技術評論社
- 発売日: 2013/02/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る