プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
windows、「NET USE」コマンドを使うときの地味な注意点。
じ、自分で自分が許せない_| ̄|○
こんなくだらんことで二度とハマりたくないので
自分のための備忘録として残しておきますです。

PHPでプログラムを作っていましてね。
諸事情により他のPCの共有フォルダにアクセスする必要が出てきたので
exec()使ってDOSコマンド「NET USE」で接続を確立させようとしたのです。
こんな感じでφ(--)

  $target = "\\\\192.168.0.123\\target";
  $user = "test_user";
  $pwd = "test_pwd";

  exec("cmd /c \"NET USE " . $target . " " . $pwd . " /USER:" . $user . " /yes \"  ", $output, $status);

  print $status;
  print_r($output);


これが何故か知らんが接続できない(つд`)
$outputも空だし。

取りあえずエラーメッセージ見ないと始まらんぞ。と思って調べたら
「2>&1」をつけると標準出力にエラーメッセージが出るらしい。
取りあえずこんな感じにしてみましたφ(--)

  $target = "\\\\192.168.0.123\\target";
  $user = "test_user";
  $pwd = "test_pwd";

  exec("cmd /c \"NET USE " . $target . " " . $pwd . " /USER:" . $user . " /yes \"  
2>&1 ", $output, $status);

  print $status;
  print_r($output);


これで$outputにエラーメッセージが入りましたじぇい。
ざまーみろ。

そして判明したエラー(--)b

指定されたログオン セッションは存在しません。
そのセッションは既に終了している可能性があります。


よーするにログインに失敗したってことじゃねーの(--?
そんなん分かってんだよ、ばーか。

そんであれやこれといろいろやった結果、
こーやったら繋がるようになりましたφ(--)


  $target = "\\\\192.168.0.123\\target";
  $user = "
192.168.0.123\\test_user";
  $pwd = "test_pwd";

  exec("cmd /c \"NET USE " . $target . " " . $pwd . " /USER:" . $user . " /yes \"  2>&1 ", $output, $status);

  print $status;
  print_r($output);


ユーザ名の前にドメインつけたら解決。
確かにそーだよな(==;
敗北感でいっぱいです_| ̄|○
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:コマンド/バッチ  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事