Windows 7 マシンでベンダーのデバッグを行おうとしています。パラメータを設定するために実行する必要がありますnetsh
。cygwin/shell ウィンドウから実行しようとしましたが、「管理者として実行」に失敗しました。
runas
グーグルで調べてみると、のように動作するコマンドがあるようですsudo
。私のユーザー アカウント ( me
) は管理者なので、 を試してみます。のパスワードrunas /user:me "netsh ..."
の入力を求めるプロンプトが表示されるme
ので、それを入力します。netsh
(おそらく新しいcmd
ウィンドウで実行されているのでしょう) が開いて閉じ、コマンドから正常終了の戻り値 (つまり、$? == 0) が返されます。
しかし、パラメータが変更されていないため、どうやらそれだけでは不十分のようです。最終的には、シェルへのショートカットで「管理者として実行」を実行することでこの問題を回避しました (その後、netsh
通常どおり実行しました)。
Windows に自分が本当に管理者であるrunas
ことを認識させるコツは何ですか?me
答え1
管理者グループに属するアカウントにログインすることと、(a) 昇格されたアカウントまたは (b) 組み込みの管理者アカウントとして実行することには違いがあります。
管理者として実行すると、定義上、常に昇格されます。したがって、run /user:administrator
ウィンドウが開いたときに昇格されると、UAC プロンプトは表示されず、netsh
コマンドが実行されるはずです。
しかし、組み込みの管理者アカウントは常に昇格して実行され、UACプロンプトを生成しないためrunas
、特にパスワードがない場合にはセキュリティ上のリスクがあります。そのため、Microsoftはデフォルトで管理者アカウントを無効にしていますまずこれを有効にする必要があります:
Windows® 7 では、組み込みの管理者アカウントは既定で無効になっています。以前のバージョンの Windows では、OOBE (Out-of-Box-Experience) 中に空のパスワードで管理者アカウントが自動的に作成されていました。
パスワードが空白の管理者アカウントはセキュリティ上のリスクとなります。システムをより適切に保護するために、Windows 7 のすべてのクリーン インストールおよびアップグレードでは、組み込みの管理者アカウントは既定で無効になっています。
有効にする方法は次のとおりです。(スタート メニューの [ファイル名を指定して実行] ボックスに「mmc」と入力すると、MMC を開くことができます。)
ローカル ユーザーとグループの Microsoft 管理コンソール (MMC) を使用して、管理者アカウントのプロパティを変更します。
- MMC コンソールを開き、ローカル ユーザーとグループを選択します。
- 管理者アカウントを右クリックし、[プロパティ] を選択します。
- 管理者プロパティ ウィンドウが表示されます。
- [全般] タブで、[アカウントが無効です] チェック ボックスをオフにします。
- MMC コンソールを閉じます。
また、runas
実行するプログラムに引数を渡すことはできないことに注意してください。
RUNAS USAGE:
RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ]
/user:<UserName> program
RUNAS [ [/noprofile | /profile] [/env] [/savecred] ]
/smartcard [/user:<UserName>] program
RUNAS /trustlevel:<TrustLevel> program
自分のユーザーIDでコマンドを実行したい場合や引数を渡したい場合は、本物のsudo
またはsu
(これです、私自身の一部ハミルトンCシェル:) 間奏付きアプリケーションマニフェストにマークされている昇格を必要とするものとして扱われます。そのようにすると、UAC プロンプトが表示されます。