Windowsプログラミング-UACをオンのままにしておく必要がありますか?


11

Windowsで開発する場合の推奨ユーザーアカウント制御(UAC)設定は何ですか?

Win7でさえ、それをオフにするのに十分迷惑です(オフにすることで生産性が向上するため)


「私のマシンで動作します!」開発者がソフトウェアの問題について語られているという古典的な反応。これは、アクセス権、ハードウェアリソース、インストールされているライブラリ(および一部)の違いが原因である可能性があります。自分のマシンと比較したユーザーのマシンの制限の可能性に注意し、リリース前にできるかどうかをテストしてください。なぜなら...「私たちはあなたの機械を出荷していない!」
マーティンマート

回答:


16

(Microsoftからでも)推奨事項は、それをONのままにして、可能な限りIDEを無制限実行することです。

まず第一に、プログラマーは実世界のユーザーと同じ「迷惑」に耐えることを余儀なくされます(もしあなたがそれを知らないなら、あなたはそれを正しくプログラムしますか?)。

次に、UACを無効にして管理者として作業することは、rootとして機能するのと同じくらいUnixの場合と同じくらい悪いです(一般的な知恵の10年は、それが悪い理由を教えてくれます)。


4
WindowsはLinuxではありません、それは本当に良い比較ではありません..
トーマスボニーニ

9
@Kop:OSに関係なく、完全な権限で実行することは良いことも悪いこともあります... WindowsとUNIX / Linuxの違いはわかりません。
Wizard79

1
@ブライアン:管理者権限を必要とするライブラリ(Azure用の開発など)はまだありますが、タスクの大部分は非管理者として実行できます。
Agent_9191

2
@Walter:昇格されていないWindowsサービスを作成できます。ただし、サービスのインストール/アンインストールには昇格した権限が必要です。とにかくIDEから何かを直接インストールしないでください。ITプロが最終的に使用するので、昇格したコマンドプロンプトの方がうまく機能します。
Agent_9191

2
@zneak:あなたは間違っています。技術的な観点から見ると、管理者(またはUACの昇格した管理者)のルートユーザーであることはまったく同じです。もちろん、システムパーティションでformatコマンドを使用することはできませんが、これはUIの選択にすぎません。システムパーティションなどを消去するフォーマットのサードパーティプログラムを使用できます。
Wizard79

4

オンまたはオフでプログラムするかどうかに関係なく、限られたユーザーアカウントでプログラムをテストする必要があります。これにより、ユーザーが制限されたアカウントでプログラムを実行したりUACを有効にしたりする際に発生する可能性のあるほとんどの問題を検出できます。


問題は、UACがオフになっている場合、テストのために専用のマシンまたは仮想マシンをオンにしておく必要があることです。
Wizard79

UACがオフの場合でも、制限されたアカウントで制限された特権をテストできます。
ゼラチン

2
非特権シナリオと特権非昇格シナリオの両方をテストする必要があります。
ベンフォークト

4

Windows 7で実行していますが、UACをオンにしたまま、アカウントが実際の管理者アカウントではありません。そのため、UACにアクセスしたとき、続行するには管理者パスワードを入力する必要があります。Vistaの下でも私はそれを続けました。多くの開発者がそれが邪魔になると言うのを聞いたことがありますが、私はまだそれを見ていません。Vistaでは、いくつかの領域が少し制限が厳しかったため、大きな問題でした。

開発者がUACが邪魔をすると言うときに私がいつも持ち出す質問は、「あなたは何をしているのですか?」システムフォルダー(Windows、Program Files、IISサイト)内のファイルを操作しようとしている場合、何か間違ったことをしていることになります。IIS Webサイトは、C:\ inetpubの外部に存在できます。SQL Serverユーザーデータベースは、プログラムファイルの外部に存在できます。唯一の時間次のことを行う必要があり、定期的に UACプロンプトは、アプリケーションのインストールやアップデートでご覧ください。頻繁に表示される場合は、システムではなくシステムに対して作業している可能性があります。


2
Visual Studioでは、昇格されて実行されていない限り、IISでホストされるWebアプリケーションプロジェクトを開くことはできません。
ハインジ

@Heinziのポイントを拡張するには、同じアプリケーションの2つのバージョン(たとえば、それぞれ異なる場所に格納されている2つのSVNブランチ)を実行する場合、 VS Studioで作業中の正しいフォルダーにIISを設定できる必要があります(つまり、これら2つのうち最後に開いたソリューション)。昇格した権限がなければ、ないあなただけが持っているか、更新を手動でIISあなたは(VSで)開発しているよりも、あなたは(ブラウザで)アプリケーションの完全に異なるバージョンを忘れるとテストのリスクを実行します
Flater

1

私見、それはあなたがやっていることに要約します。

現在の仕事では、WebアプリとWindowsサービスを開発しています。そのため、自分の生産性を向上させることができます。ユーザーがインストールするアプリで作業している場合は、ユーザーが体験するものにできるだけ近づけるように、そのままにしておきます。


UACをオフにするとどうなりますか?Webアプリの開発では、IISを最初にセットアップする場合を除き、管理者権限は必要ありません。Windowsサービスを開始および停止するには管理者権限が必要ですが、単一のコマンドウィンドウを使用しnet start/stop、単一のUACプロンプトがあります。それ以外の場合は、コマンドラインランナーとWin Serviceランナーができるようにロジックを構築する必要があります。
Agent_9191

開発には役立ちませんが、UACの煩わしさを取り除きます。低アクセスのシミュレーションに必要ない場合は、オフにします。それ以外の場合はオンのままにします

2
IISでホストされているWebアプリをデバッグするには、昇格した特権が必要だと思います。
FinnNk
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.