システムおよびユーザーディレクトリのセキュリティに関して問題が発生した場合。 タスクは、WindowsがLinux%home%の本格的なアナログを持っていることを示すことでした。
古いWindowsユーザー 彼らは、ユーザー設定がWindows 9xの特別に設計されたディレクトリに保存され始めたことを知っています。 しかし、それは控えめに言っても「まったく」ではありませんでした。 (更新:コメントで修正済み:NT 3に登場し、すぐに適切な実装で表示されました。)
セキュリティがより重視されるNT 5(Win2k、WinXP)の出現により、すべてのユーザープロファイルが同じ「ドキュメントと設定」に保存されるようになりました。 確かに、必要に応じて、直接的な操作で、「ユーザー」などの別のディレクトリにすることもできます。
同じ頃、現在のユーザーとそのホームディレクトリを示すグローバル変数が登場しました。 Linuxの世界から着想を得たルックス。 私見、これには恥ずべきことは何もありません:)
コマンドラインでSETコマンドを実行すると、すべてのグローバル変数の値を確認できます。 完全に戦車にいる人の場合:Win + R、cmdと入力、Enterキーを押し、setと入力、Enterキーを押します。
現在のマイクロソフトのガイドラインでは、プログラムが設定を保存できる場所を見つけるためにグローバル変数を使用することを推奨しています。 残念ながら、多くの人はこれを無視し、一部の人はまだ設定ファイルをディレクトリに頑固に保持しています。 手が引き裂かれます。
ユーザーディレクトリについては少し議論しましたが、当面は忘れてしまいました。
これまでのところ、公式サイトでのFireFoxの次の更新中に、ポータブル版は見つかりませんでした。 新鮮でポータブルなバージョンが欲しかった。 その後、FireFoxはクロスプラットフォームであり、Linuxで「必要な場合」に設定を保存する可能性が高いことを思い出しました。 ほとんどの場合、Windowsに保存されます。 そして、グローバル変数を介して、「必要に応じて」保存する場所を見つけます。 Tea FireFox開発者は、それぞれの分野の専門家です。
そのため、Windows XPが手元にあり、FireFoxの最新バージョンがインストールされており、ポータブルバージョンを入手したいという要望があります。
グローバル変数は、Windowsの起動時およびユーザーのログオン時に初期化されます。 新しいプロセスは、親からグローバル変数の値を受け取ります。 ほとんどの場合、親プロセスはエクスプローラーです。 ただし、各プロセスは任意のグローバル変数をオーバーライドできますが、変数によるこの新しい値は、このプロセスとその子プロセスでのみ使用できます。 親プロセスでは、すべてが以前のままになります。
同じsetコマンドを使用して、cmdシェルのグローバル変数をオーバーライドできます。
したがって、cmdの変数をオーバーライドし、目的のプログラムを実行して、cmdを終了できます。 利益!
考えは形になりつつあり、手はすでに台本を作り始めていました。 まず、FireFoxが設定/プロファイルを保存する場所を見つけます。 判明した
c:\ Documents and Settings \ Guest \ Local Settings \ Application Data \ Mozilla \
そして
c:\ Documents and Settings \ Guest \ Application Data \ Mozilla \
FireFoxプロファイル自体はこちらです。
c:\ Documents and Settings \ Guest \ Application Data \ Mozilla \ Firefox \ Profiles \
私の名前は「6rynxm6u.default」でした。 ランダムな文字の組み合わせ。 別のものがあるかもしれません。
FireFoxディレクトリで、「toxicdream」フォルダを作成します(まあ、あなたが望むものは何でも)-これが私たちの%home%になります。 その中に、「\ Local Settings \ Application Data \」と「\ Application Data \ Mozilla \」を作成します。 上記のMozillaカタログは、対応するカタログに転送されます。
Windows変数が私たちを助けることができるものを見ます:
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\\Application Data
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\
USERNAME=
USERPROFILE=C:\Documents and Settings\
少し血を流して試してみましょう-APPDATAのみをカバーし、何が起こったかを確認します。 作成する
Firefoxディレクトリで、ファイル「firefox.cmd」とテキスト
%~d0% cd %~dp0% set APPDATA=%~dp0%toxicdream\Application Data start firefox.exe
最初の2行は、ディスクに切り替えて、ファイル "firefox.cmd"があるディレクトリに移動する必要があることを示しているため、実行中のFireFoxの作業ディレクトリはこのディレクトリになります。
始めます。 まあ、それはほとんど起こりました-ユーザープロファイルがロードされています。
「ローカル設定」を使用すると、調整する必要があります。 USERPROFILEとUSERNAMEを重複させた後、アンズタケは間違った場所にクロールします。 別のHOMEPATHと、それに応じてHOMEDRIVEをブロックする必要があります
%~d0% cd %~dp0% set APPDATA=%~dp0%toxicdream\Application Data set HOMEDRIVE=%~d0% set HOMEPATH=%~p0%toxicdream set USERNAME=toxicdream set USERPROFILE=%~dp0%toxicdream start firefox.exe
さて、別のALLUSERSPROFILEとTEMP / TMPを確実にブロックするには。 最終的なスクリプトは
%~d0% cd %~dp0% set ALLUSERSPROFILE=%~dp0%toxicdream set APPDATA=%~dp0%toxicdream\Application Data set HOMEDRIVE=%~d0% set HOMEPATH=%~p0%toxicdream set TEMP=%~dp0%toxicdream\Local Settings\Temp set TMP=%~dp0%toxicdream\Local Settings\Temp set USERNAME=toxicdream set USERPROFILE=%~dp0%toxicdream start firefox.exe
これはWindows 5.x、つまりWindows 2000、Windows XP、およびWindows 2003向けであることを思い出してください。
Win7のスクリプトテキスト:
%~d0% cd %~dp0% set ALLUSERSPROFILE=%~dp0%toxicdream set APPDATA=%~dp0%toxicdream\Application Data set HOMEDRIVE=%~d0% set HOMEPATH=%~p0%toxicdream set LOCALAPPDATA=%~dp0%toxicdream\Application Data\Local set TMP=%~dp0%toxicdream\Application Data\Local\Temp set TEMP=%~dp0%toxicdream\Application Data\Local\Temp set USERNAME=toxicdream set USERPROFILE=%~dp0%toxicdream start firefox.exe
さて、今ではすべてが時計のように機能します。 すべての設定を保存しながら更新することもできます。 そして、誰かを待ったり、ThInstallなどで苦しんだりしないでください。 確かに、別の効果がここに表示されます。FireFoxから起動されるすべての(まあ、またはほぼすべての)プログラムは、toxicdreamカタログを作業に使用します。 したがって、たとえば、Download Masterが突然、この方法またはその方法でダウンロードのリストを表示し始めても驚かないでください。
PS
VisteおよびSevenでは、Firefoxプロファイルは別の場所に保存されます。 さらに、「ローカル設定」または「ローカル」-%LOCALAPPDATA%の変数も追加しました。
システムを変更するたびに、「ローカル設定」から「アプリケーションデータ\ローカル」にファイルを移動する必要があります。
これらすべてをスクリプトに登録することもできます。 残念ながら、現在Win7は手元にないので、次の愛好家による修正のためにそれを残します。
まず、verコマンドでWindowsのバージョンを確認できます。 ここには小さな熊手があります-コマンドの出力はバージョンごとに異なり、おそらくシステムの言語とは異なります。 バージョンを一意に明らかにするコード:
echo off for /f "usebackq tokens=2 delims=[]" %%i in (`ver`) do set osver=%%i for /f "usebackq tokens=2 delims=. " %%i in (`set osver`) do set osver=%%i if %osver% == 6 ( echo Win7 or Vista ) else if %osver% == 5 ( echo W2k or XP ) pause
UPD 1
> firefoxを次のように実行することにより:firefox -profile“ E:\ myprofile”目標を達成します。 つまり、ショートカットを作成する必要があり、すべてが正常に機能します
短所:
-パスへの密結合
-ショートカットの作成/変更
-「ローカル設定」のゴミ
UPD 2
>ポータブルfirefox googleは、高速だけでなく非常に高速です-mozilla-russia.org/products/firefox/-onceおよびportableapps.com/apps/internet/firefox_portable-two。
短所:
-常に最新バージョンではない
-メモリ内の余分なプロセス
-更新時に問題が発生する場合があります。たとえば、Windows 7に切り替えるときに個人的に問題がありました。
UPD 3
>なぜFire Foxブログなのか?
Ognelisのユーザーにとっては、もっと面白いと思いました。
Windowsブログは初歩的です。
プラスをありがとう:)次の投稿は、FireFoxの内部デバイスに関するものであり、むしろ、それが何を、どのように、どこに保存するかについてです。