LocalSystem ユーザだと net use が使えない?そんなことはない

Windows のバッチファイルの中などで共有フォルダを使うとき net use コマンドでアクセス先を指定したりするが、バックグラウンドで動く系の、たとえば LocalSystem ユーザで動いてるプロセスにやらせたりすると net use が動かないことがある。

net use \\fileserver.example.com\share password /user:username
copy c:\example.dat \\fileserver.example.com\share

こんな感じのコマンドを並べたバッチファイルを、手動で動かした場合は想定通りに動作するのに、バッチ管理の仕組みとかのバックグラウンドのシステムに任せると、手動と同じ結果にならない。これは LocalSystem 権限で動作しているからということが多い。

ユーザ名の指定を正式な名前で指定すると動作するようになる。

AD環境だと

net use \\fileserver.example.com\share password /user:DOMAIN\username

WORKGROUP環境だと

net use \\fileserver.example.com\share password /user:fileserver\username

こんな感じで書けばLocalSystem権限でもアクセスできるようになる。