OSError: symbolic link privilege not held

このエラーは何?

シンボリックリンクの作成の権限がないことによって生じるエラー。

対処法

シンボリックリンクの作成の権限を与える。

対処法のやり方(windows10)

  1. スタートメニューからgpedit(グループポリシーの編集)を開く
  2. コンピューターの構成 を展開
  3. Windowsの設定 を展開
  4. セキュリティの設定 を展開
  5. ローカルポリシー を展開
  6. ユーザー権限の割り当て を展開
  7. シンボリックリンクの作成の設定を開く
  8. ここにユーザーを追加
gpeditがない場合

ぐぐれよ。ちなみにwin10homeとかだとないらしい。なかった。

以下のバッチファイルを作成して、管理者権限で実行する。

@echo off
pushd "%~dp0"


dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"

pause

これを実行して再起動。

余談

つい先日、いろいろあって環境をまるっとぺろっと破壊しました。それ以前はシンボリックリンクを作成したつもりはなかったとはいえこのエラーを見たことがありませんでした。また、今回使っていたコードは今日初めて実行したものだったため、環境破壊前はシンボリックリンクを作れていたかどうかの確認はできていません。私は雰囲気でこんなことをやっているので。
今回のエラーの原因が環境を破壊した弊害とも思えないんですけど念のため。

参考

itojisan.xyz