21

ユーザーのデフォルトのホームディレクトリを変更する方法を見つけましたが、問題が発生しています。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

これを行うと、ホームドライブがCに変更されます。

しかし、環境変数を確認すると、次のようになります。

ここに画像の説明を入力してください

それはまだH:です。システムを再起動すると、Windows設定の環境変数もH:/に戻ります。

私も次のように変更してみました:

ここに画像の説明を入力してください

これは機能しているように見えますが、新しいcmdを開くと、H:/に戻ります。

現在、OpenSSHがネットワークドライブであるH:ではなくCをホームディレクトリとして認識し、VPN経由で大学のネットワークに接続しない限りOpenSSHが機能しないようにしようとしています。

これを永続的に設定し、OpenSSHの観点から行うにはどうすればよいですか?

4

7 に答える 7

12

HOMEDRIVE 値と HOMEDIRECTORY 値の間の依存関係についてはどこにも言及されていません。何が起こっていたか (私が思うに)、ホーム ディレクトリを HOMEDRIVE にマップできなかったため、デフォルトで安全な値に戻っていました (C:)

ローカル AD を更新するスクリプトを作成し、[] 内の値を自分の値に置き換えます。コピーして .vbs ファイルに貼り付け、ダブルクリックして実行します。

Set objUser = GetObject("WinNT://[COMPUTERNAME]/[USERNAME],user")
objUser.homeDirDrive = "H:"
objUser.HomeDirectory = "[URNPATH]"
objUser.SetInfo

例えば

Set objUser = GetObject("WinNT://UQBDART-2328/BEN,user")
objUser.homeDirDrive = "H:"
objUser.HomeDirectory = "\\SERVER\SHARE"
objUser.SetInfo

これを実行し、再起動してテストします。それは私のために働いた。

于 2012-08-21T23:20:01.513 に答える
7

ドメインのADプロファイルがユーザー定義変数を上書きしているように聞こえます。スクリーンショットには、eait.org.edu.auドメインに接続していることが示されています。それがあなたの問題の根源になります。私が他の場所で見つけたいくつかの詳細をここに含めるだけで、それはあなたに役立つかもしれません:

HOMEDRIVE、HOMEPATH、およびHOMESHAREは、ActiveDirectoryを介して設定および更新されます。アカウントにホームドライブが設定されていなくても、HOMEDRIVEとHOMEPATHが設定されます。ただし、ADで設定されたユーザーアカウントのプロパティによって上書きされます。

次のKB記事も参照してください。

http://support.microsoft.com/kb/841343
http://support.microsoft.com/kb/237566
http://support.microsoft.com/kb/101507 

この問題を回避する別の方法についての補足:

-過去に、カスタムスクリプトを自動的に実行するWindowsコマンドラインシェル実行可能ファイルの新しいインスタンスを作成したことがあるため、シェルを起動するたびに、環境変数がオーバーライドされる可能性があります。

-これを行うには、環境変数を変更するために投稿したコードをバッチスクリプトに入れて、好きな場所に保存し、プロパティに移動してシェルの起動に使用するショートカットを編集し、[ターゲット]ボックスを変更します。 %SystemRoot%\ system32 \ cmd.exe / K "C:\ Documents and Settings \ Administrator \ My Documents \ customshellscript.cmd"(明らかに、/ Kの後のパスの部分はカスタムスクリプトの場所です)

このように、とにかくコンソール上でopenSSHを使用している場合、ホームドライブは常に正しく設定されます。

于 2012-08-23T14:35:30.640 に答える
2

これらの環境変数の値を変更することは「サポート」されていません。少なくとも、Windows によって元に戻されるため、期待どおりには機能しません。

このMicrosoft ナレッジ ベースの記事 (KB841343)によると、これらの設定を変更する必要がある場合は、ポリシーを使用する必要があります。この記事には、それを行う方法のリンクも含まれています (ただし、個人的には試したことはありません)。この記事はもともと Windows 2000 向けに書かれたものですが、現在の Windows バージョンでも有効であると強く疑っています。

于 2012-08-13T04:19:29.480 に答える
0

DOS の時代には、環境変数はプログラム セグメントの一部でした。これは、基本的に、そのプログラムのスコープに限定された変数のローカル スナップショップを取得することを意味していました。

Windowsはこれを変更しておらず、CMDウィンドウで使用できる環境変数には、そのウィンドウとそれが生成するその他のウィンドウのスコープしかないと思います。これは、次の小さな実験でサポートされています。

CMD ウィンドウ タイプで

set homedrive=h:\

次に、入力して更新されたことをテストします

set h

この同じウィンドウ タイプから

start cmd

そして、この新しいウィンドウタイプで

set h

これを行うと、 HOMEDRIVE=H:\ が得られます

次に、スタート メニューから新しい CMD ウィンドウを開き、同じ SET HI get HOMEDRIVE=C:\ を実行すると、

OpenSSHについては何も知りませんが、環境変数を更新するバッチを作成してOpenSSHを実行すると、START CMDが更新されたHOMEDRIVE環境変数を取得したように思われます。

于 2012-08-21T21:31:03.203 に答える
-3

Windows 8 の場合:

  1. 「Windows キー」を押します。
  2. 「システム環境変数」と入力します。
  3. 「高度なシステム設定」で変更できるようにします。
  4. 「アドバンス」タブを選択します。
  5. 「環境変数...」をクリックします。
  6. 「XXXXXXXXのユーザー変数」から「パス」をダブルクリック
  7. セミコロンで区切られた新しいパスを変数の最後に追加します。

    例 C:\Program Files\;C:\Python27\ shareeditdelete (1)flag

于 2016-12-27T17:47:48.330 に答える