Windows XPを管理者権限ではないアカウントで常用する

Linuxのように、Windowsをふだん管理者権限でないアカウントで使用し、必要な場合だけ管理者権限を使用する方法を説明します。Secondary Logonサービスが開始されている必要があります。

GUIを使用している場合はアイコン右クリック→別のユーザーとして実行とすればすみますが、コマンドラインからは以下のようにすると便利です。


現在、ログインしているアカウント名はdeveloperです。このアカウントは自分で作ったアカウントです。ふだん、開発に使用しています。

いろいろなグループに属しています。しかし、Administratorsグループには属していません。管理者権限に属していないので、システム全体に影響を与えるような操作はできません。

このスクリーンショットではプロンプトを自分流にしていますが、これはPROMPT環境変数で設定できます。

\vimのアクセス権を確認すると、Administratrosグループでは書き込みができますが、それ以外のUsersグループでは読み取ることしか出来ません。

案の定、_vimrcというファイルを書き込みしようとしても、アクセスが拒否されました。

suというコマンドを用意しました。中身を確認するとrunasコマンドで別のsupervisorというアカウントでcmdを実行するという記述になっています。これを実行すると、supervisorアカウントのパスワードが求められます。

パスワードを入力すると今度はプロンプトの記号が#になりました。これはsupervisorアカウントのユーザー環境変数で設定しているためです。

そして、このアカウントで\vimの下にファイルを作成すると、こんどはアクセスが拒否されず、作成に成功しました。

アカウントはAdministratorsグループに属しています。このコマンドラインからプログラムを起動すると、それは管理者権限で実行されます。



このように、ふだんは管理者権限ではないアカウントでコマンドライン中心の作業をおこない、必要な場合だけsuコマンドで管理者権限のアカウントに切り替える、という方法をとることにより、Linuxのように安全な操作をすることができます。セキュリティの確保、誤操作の防止、システムの保護という観点で有用です。

なお、コマンドラインからさまざまなアプリケーションを起動するには、カンタンに起動できるようランチャーを自作すると良いでしょう。くわしくはまた後日、別のエントリで解説することにします。

Twitterをブラウザで操作するときはリファラを送信しないといけないようです

リファラを切っていると、友人を追加できなかったり、過去の発言を削除できなかったりします。

http://d.hatena.ne.jp/brazil/20070411/1176286624

こちらの記事を読んでリファラを送信するようにしたら正常に動作するようになりました。

svk2.xに移行しようとしたら問題が発生しました。

svk1.xで以下のようなエラーが表示されるようになってしまいました。

Can't call method "get" on unblessed reference at C:/svk/site/lib/SVK/XD.pm line
 1414.
1412 sub get_entry {
1413     my ($self, $copath) = @_;
1414     my $entry = $self->{checkout}->get($copath);
1415     return ($entry, $entry->{'.schedule'} || '');
1416 }

あとで調べることにします。

一時ファイルが残っていたのが原因でした。

svkが作成した一時ファイルが環境変数TMPで指定されたディレクトリに残っていました。

そこで、これを取り除いたら、svk1.xが正常に動作するようになりました。

svk2.xに移行するなら、svk1.xを捨てて完全に移行するしかないのでしょうか。

もう少し深く調べてみようかと思います。