ユーザが管理者権限を有しているかバッチで判定する方法@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。00:56プログラムのインストールをバッチファイルで実行しようと考えています。バッチファイルで管理者権限ユーザで実行しようとしているか判定する事は可能でしょうか。このプログラムは%ERRORLEVEL%に結果を返しません。このため、1.架空のローカルユーザをバッチで登録しその結果で判定する<登録できた場合に削除処理が発生する>2.インストールで作られるファイルが存在しない場合に権限がなっかたと判定する<上書きインストール時は既に存在するため判定できない>等を考えています。何か良い判定方法はないものでしょうか。対象クライアントはNT、2000、XP、2003のOSがあり、NTドメイン、ワークグループ、ActiveDirectoryのネットワークのクライアントを対象としています。各ネットワークで運用しているユーザについてはルールはありません。11:02バッチファイルで判定するならfind(findstr)すればよいのではないでしょうか。01:35dellgateさん有難うございます。このプログラムは「サイレントインストール」形式で実行することができるのですが、エラーが発生しても(正常終了しても)標準出力やメッセージボックスでの表示一切ありません。受けてfindするための文字列が存在しません。管理者用のアカウント及びそのパスワードも統一されていません。このソフトはCDで配布し、各クライアント側で管理者権限ユーザでログイン後、実行をしてもらう予定にしています。必要とする処理が4本あり、RUNASコマンドの組み込みはユーザが煩雑となる、統一した管理者権限ユーザがない、パスワード未設定のアカウントの場合はこのコマンドが利用できない(かったと思う)ためこのコマンドは使用しないつもりです。(勉強不足でヒントのsuがわかりませんが・・・)MSDOSコマンドの範囲(管理者権限があるOSで共通に使える範囲)で実行時のユーザが管理者権限をもっているかを実行時にチェックできればと考えています。ローカルユーザの登録コマンドで判断できそうですが、最終そのアカウントを削除するとしても、そのクライアントに不要な処理を行うことになるので、極力避けたい思っていますが、この方法以外に思いつきません。何か良い方法があればご教授お願いします。(中間ファイルもできれば避けたいものです。09:50管理者権限のユーザでログオンして実行するという前提でれば、バッチを実行した時点で、そのユーザが本当に管理者権限を有しているかを判定すれば、よいのではないでしょうか。プログラムが結果を返さないから・・・というのは、実行した結果が把握できないということでり、ユーザを判定するとは直接関係がないと思われます。(特に、先にその処理を行っていれば)バッチのなかに、そのプログラムを実行する処理(コマンド)を記述していると思いますが、その前の処理でユーザ判定してください。OKだったら処理継続、NGであれば処理終了。引用:MSDOSコマンドの範囲(管理者権限があるOSで共通に使える範囲)で実行時のユーザが管理者権限をもっているかを実行時にチェックできればと考えています。whoami)で、ユーザ情報取得。そのユーザが管理者権限を有しているか判定(エラーレベルによる)で、インストールプログラム実行前にユーザ判定することはできると思います。バッチで行うとすればこんな感じでしょうか。VBSつかえばもっとシンプルになるかもしれませんがそっちは疎いので識者のかた、アドバイスお願いします。00:01dellgateさん有難うございます。ご指摘のとおりログオンユーザが「管理者権限」を有しているかを判定できればOKです。メッセージ)となり、ユーザアカウントの情報を得ることができませんでした。ドメインユーザの指定方法をご存知の方ご教授お願いします。:dellgateさん有難うございます。ご指摘のとおりログオンユーザが「管理者権限」を有しているかを判定できればOKです。メッセージ)となり、ユーザアカウントの情報を得ることができませんでした。ドメインユーザの指定方法をご存知の方ご教授お願いします。/domainも試しましたがだめでした)うーん、こちらでは表示できるのですけどね。(2003/XP/200で確認しました。)%USERNAME%を変数にセットしてやってもだめでしょうか。何が表示されるのでしょう。00:27まるちねす様、dellgate様ありがとございます。@で全て試しましたが「ユーザ名が見つかりません」でした。sp2)はADのドメインユーザでログオンしています。/domain」は「ユーザ名が見つかりません」となります。上記コマンドで「所属しているローカルグループ」か「所属しているグローバルグループ」にパワーユーザ権限のグループが表示されるのではと期待しましたが、エラーとなりました。(テストは行っていませんが、当部門の環境ではドメインユーザに管理者権限を付与した場合も同様のエラーとなると推測しています<ユーザ管理を行っている担当が多忙らしく管理者権限を付与してくれないため推測です>)今回、皆様のお知恵を拝借したかったのプログラムのインストールをするために管理者権限が必要である。このインストールプログラムはサイレントモードで実行すると管理者権限がない場合はインストールされないが、その旨のメッセージを何も出さないこのために、インストール開始前に権限があるかチェックしインストールしたいが趣旨です。このため、ご教授頂いたコマンドで、ローカルユーザならチェックできることがわかりましたので、インストール用のCDの配布時に「管理者権限を有するローカルユーザでログイン後、実行下さい」とマニュアルに明記し、バッチファイルのチェックを行うことにしました。他部門で「dellgate様」と同様のユーザ管理を行っている場合は、管理者権限を有するローカルユーザでログインしなくてもインストールができるので目的が達成できますしまるちねす様のご助言については、明日にでも職場で試してみます。今後とも、諸先輩方のお知恵をお借りしなければ解決できないことがあるかもわかりません。その時にはまたお知恵をお貸し下さい。Reserved.著作権はアイティメディア株式会社またはその記事の筆者に属します。当サイトに掲載されている記事や画像などの無断転載を禁止します。