- 締切済み
管理者権限を与えたコマンド実行
管理者権限の無いユーザーにパスワードを教えずにコマンドを実行させる方法がないか検討しています。 rusas コマンドでは可能なようですが、パスワードをプロンプト要求されることと、それを回避する方法も難しいようです。 psexecコマンドではユーザー名とパスワードをパラメタで渡すことが可能なようですが、リモートコンピュータでの実行が前提になっているのか、ローカルコンピュータ上での動作がうまくいかないようです。 やりたいことは、ネットワークで繋がっていないPCに対してのIPアドレスの変更です。 IPアドレスを変更していない状態で、PCを異動先へ持って行ってしまったため、リモートでの操作ができないためです。 netshコマンドでアドレスの変更は実現できるようですが、これをローカル管理者権限で動かすバッチさえできれば、そのバッチをcom化してパスワードが見えないようにすればなんとかなるのではないかと思っています。 psexec -u localuser -p password 動作させたいコマンド と入れると、 最後に動作させたいコマンド exited with error code 1 と出てきてエラーになります。 フルパスで入れると、エラーは出なくなります。 これで問題無いとしても、今度はフルパスで決まった場所にコマンドをコピーするのに苦労しますが、他に方法は無いでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- maesen
- ベストアンサー率81% (646/790)
>schtasks /create /tn test01 /tr c:\test.bat /ru user /rp password /sc weekly /d mon /st 10:00:00 >と入れた時点で「パラメータが間違っています」とだけ出てきて受け付けられません。ちなみにuserはローカル管理者アカウントです。 何かおかしいですね。 私のPC上で /ru と /rp を私の環境に変えて実行しましたが問題無く登録出来ています。 /ru で指定したユーザーはこちらもローカル管理者です。 OSはWindows 7です。 ちなみにschtasksを実行するユーザー(ログオンしたユーザー)には管理者権限は必要無いです。 (これが必要ならばそもそもこの方法が成り立ちませんね) >/u だとシステム名の指定が必要だと出てきますので、ローカル管理者ではなく、使い捨てのドメイン管理者アカウントを使って実行したほうがよいのかもしれませんね。 質問を見るとリモート操作ができないPCの設定であると思いますので、ドメインアカウントの選択は無いのでは?と思います。 ローカル管理者で問題無いはずです。
- maesen
- ベストアンサー率81% (646/790)
OSは何でしょうか? Windows7以降であれば標準でPowerShellが使用出来るのでこれで出来るように思います。 PowerShell,Start-Process でググって見て下さい。 パスワードの暗号化も出来るのですが暗号化するにはちょっとスクリプトを書かないとです。 VistaだとPowerShellが標準でインストールされていないのでちょっと厳しい。 schtasks コマンドでタスクスケジューラに1度だけ即時実行するタスクを登録するぐらいでしょうか。 もちろんWindows7以降でも出来ます。 com化するのならこちらのほうが良いかも。 こちらは Schtasks, RunAsでググって見て下さい。
お礼
有難うございました。 powershellのほうは難しそうなので、schtasksを管理者権限で登録、即時実行を試してみることにしました。 schtasks /create /tn test01 /tr c:\test.bat /ru user /rp password /sc weekly /d mon /st 10:00:00 と入れた時点で「パラメータが間違っています」とだけ出てきて受け付けられません。ちなみにuserはローカル管理者アカウントです。 /u だとシステム名の指定が必要だと出てきますので、ローカル管理者ではなく、使い捨てのドメイン管理者アカウントを使って実行したほうがよいのかもしれませんね。