SE(しがないエンジニア)のブログ

IT技術ネタ(クラウド・セキュリティ周り)が中心です!他雑記(お馬さん 他いろいろ)もあり。

bat ファイルでの net use コマンドに思わぬ落とし穴が。。

最近は

これといった技術的なことを残せていないので久々の Tech Post です。笑

とあるバッチプログラムで

Windows Server 2012 R2 から Windows 10 Home に対して「net use」コマンドをかけるというバッチプログラムがあったのですが、Windows 10 Home 側のユーザの ID / PASS が合っているにも関わらずなぜかエラーコード「86」で失敗するという事象が・・・・。

ちなみに厄介だった点

このコマンド行を抜き出してコマンドプロンプトで直実行するとなぜか通ってしまう罠。こういうパターン(ある方法では上手く行くけどある方法では上手く行かない)が一番イヤなんですよね。これで昨日はかれこれ2時間程迷いました。。(´・ω・`)

解決の糸口!

これだと、バッチプログラムがタスクに仕込めない、ということで色々探していたら MS TechNet でこんな投稿を見かけました。
Net use command fails in batch file but succeeds when manually typed
要約するとパスワードに「%」使うな!って、まさしく使ってました。コレって何の制約なんだろうか。結果として下記のような形でバッチプログラムからでも通るようになりました。

net use [drive letter] \\[ip address or hostname]\[path] /user:[ip address or hostname]\[username] [alphabet or numeric password]
TechNet の投稿さまさまです。m(_ _)m