私が作成した Excel アドインの git リポジトリがあるので、パスは "C:\Program Files\Microsoft Office 15\root\office15\Library\BTRTools" です (その「ライブラリ」パスは、Excel アドインの必須インストール親です。それらが適切に機能するための設定であるため、変更することはできません)。Win7 と Win8.1 の両方で UAC をオンにしています。Win7 ではすべて正常に動作しますが、Win8.1 では基本的に「すべてが変更されました」というステータスが表示されます (ただし、最初に「削除済み」として言及され、その後「追跡されていない」と同じステータスで再び言及された奇妙なファイルもあります。リポジトリは本当に「クリーン」、gitステータスの表示にもかかわらず、プルしたり、リセットしたりできません-ハードなど。
「管理者として実行」オプションを使用して「Console2」(git bash コマンドを発行するアプリ) を実行すると、すべて正常に動作し、ステータスはクリーンです (変更はリストされていません)。そして、プルやその他のコマンドを正しく実行できます。
Win7 と Win8.1 の両方で、ユーザーに BTRTools フォルダーへのフル アクセス権を手動で付与し (両方の管理者グループに既に属していますが)、Console2 が実際に Win8.1 でローカル ユーザーとして実行されていることを確認しました。 .
以前にこの問題を経験した人はいますか?「管理者として実行」モードで Console2 を常に実行する (プロンプトを表示する) ことなく、Win8.1 で Console2/git を適切に動作させる方法についてのアイデアはありますか?
前もって感謝します。
アップデート
特定の条件下でWin7で同じ動作をすることを発見しました。ac# Process/ProcessStartInfoを作成して実行することで、いくつかの git コマンドをバッチ処理するスクリプトを作成しましたが、Win8.1 Console2 と同じ動作を示していました。Win7 コンソールと Win7 スクリプト (つまり git status) でまったく同じコマンドを直接呼び出すと、2 つの異なる結果が表示されました。
スクリプト (LINQPad で作成) は現在のユーザーとして実行されていましたが、Process/ProcessInfoを作成して起動したときに、別のユーザーで実行されていたと思います。資格情報を提供することで、スクリプトでこの問題を修正できました
p.UserName = Environment.UserName;
p.Password = new System.Security.SecureString();
foreach( var c in password.ToCharArray() )
{
p.Password.AppendChar( c );
}
注: Win7 と Win8.1 の両方で「my」ユーザーのセキュリティ グループ/設定が同じであるように見えることを確認しました (管理者グループの一部)。
更新: Get-ACL 出力
Get-ACL | を実行しました。両方のマシンの /BTRTools ディレクトリにある format-list。唯一の違いは、Win8 には基本的にすべてのフォルダに対して「アプリケーション パッケージ権限」があり、Win7 にはなかったということです。それが何かを示唆しているかどうかはわかりません。
更新:解決済み
私を正しい方向に向けてくれた@ian-boydに感謝します。Console2/Git が正常に動作する Win7 マシンで、次のファイルがあることを発見しました。
C:\Users\terry.aney\AppData\Local\VirtualStore\Program Files\Microsoft Office 15\root\office15\Library\BTRTools.git\index
いつ作成されたものかはわかりません。それを削除すると、Win7 の Console2/Git が、Win8 が示していた動作と同じように「失敗」し始めました。Win7 で復元し、Win8 にコピーしたところ、Console2/Win8 も正しく動作するようになりました。もっと大きな戦いがあるので、先に進みます。これはよくわかりませんが、補足として、私が試したいくつかの手順を次に示します
- このページごとにユーザー グループの \Git インストール ディレクトリへの完全なファイル/ディレクトリ アクセスを設定する
- #1 の同じページごとに、Virtualize のファイルとレジストリの書き込みエラーをユーザーごとの場所にオフにします。
- ユーザー グループの \Library ディレクトリへのフル ファイル/ディレクトリ アクセスを設定します。
これを処理する「正しい」方法について誰かが意見を持っている場合、私はすべて耳にします。