RUNASエラーのOSごとの違い 【やってみた】


RUNAS

RUNASとは、Microsoftのページから引用させてもらうと

runas を使うと、ユーザーの現在のログオンで提供されるアクセス許可とは異なるアクセス許可で、特定のツールやプログラムを実行できます。

というコマンドである。Windows 2000やXPでは、実行ユーザーが存在するためプロセスの権限が変わり、できることできないことがあったりする。

スポンサーリンク

このrunasであるが結構便利で、ファイル名を指定して実行から「runas /user:Administrator cmd」とすると「su -」のような感じでコマンドラインプロンプトを立ち上げることができる。

成功 or 失敗

さて、このコマンドを使うと指定したユーザーのパスワードを入れることになる。ここで、パスワードによる認証が成功したか失敗したかは取得できるのだが、困ったことにXPと2000だとエラーの値が違うのである。

実験

以下のようなバッチファイルを作成しそれぞれの結果を見てみた。

@echo off

runas /user:Administrator “notepad.exe”

echo %errorlevel%

結果 Windows 2000

runastest_2000.gif

認証成功するとerrorlevelに1が設定される。失敗の場合0。

結果 Windows XP

runastest_xp.gif

認証成功するとerrorlevelに0が設定される。失敗の場合1。

ということで、2000とXPでは値が違うので、認証できるまでパスワードを入れさせるようにするバッチを作る場合、先に2000かXPか判定しそれによる場合わけをする必要がある。ちなみに、2000 Server(サーバー)は2000と同様であり、2003 ServerはXPと同様な結果になった。

スポンサーリンク
カテゴリー: やってみた   パーマリンク

コメントは受け付けていません。