2017-06-05 1 views
0

これは古くからの問題ですが、それでも解決策は見つけられませんでした。oci.dllファイルをC:/ windows/system32にコピーできません

私はcmdを使用してoci.dllをsystem32フォルダにコピーしています。

enter image description here

アクセスがが表示されて拒否されます。私のすべてオラクルサービスが停止し、管理者アカウントにログインしています。

期待どおり、oci.dllファイルも削除できませんでした。

答えて

0

最後に、私はこの問題を解決することができます。私はそれが将来役立つかもしれないので、ステップバイステップでソリューションを投稿しています。問題の

理由:

問題は、私はコピーまたは削除したいファイルoci.dllはすでに1 /複数のプロセスによってフェッチされていることです。

ソリューション:

1)まず、我々は/実際にoci.dllファイルを使用しているされたプロセス(複数可)を把握する必要があります。 \ DocumentsとSettingsをした後、タスクリスト/メートルのOCI.DLL(またはあなたがトラブルに直面して、DLLの名前を実行するので、短い中:Cに、これは単にCMDに行くディレクトリの変更を確認するには。

C:\Documents and Settings>tasklist /m oci.dll 

このコマンドを実行しますがOCI.DLL使用しているPIDとプロセスのリスト(複数可)を取得することができます。私の場合、それはそうexploerer.exe

をwas-、私は削除/コピーするExplorer.exeプロセスを殺さなければなりませんoci.dllファイルMicrosoftの非常に良いソフトウェアProcess Exploererも、.dllファイルに関するプロセスの検索やプロセスの終了に使用できます。

今、すべて設定されています。私たちは管理者モードでcmdを開き、oci.dllファイルをsystem32フォルダにコピーしなければなりません。oci.dllが正常にコピーされました。

enter image description here

P.S.

explorer.exeを終了すると、コピーに問題が発生することがあります。すべてのexplorer.exeプロセスを正常に終了したら、Ctrl+Alt+Deleteを押してtaskmanagerを開き、File -> New Task(Run...)に行き、エクスプローラがコピー/削除する新しいタスクを作成します。

enter image description here

+1

通常は、使用中のDLLを置き換えるためにプロセスを強制終了する必要はありません。マップされたEXE/DLLの名前を変更してから、新しいファイルを古い名前に移動またはコピーすることができます。管理者は、次回の起動時に名前を変更した古いEXE/DLLを削除することさえできます。 – eryksun

+0

いくつかのプロセスで既にフェッチされているdllファイルの名前を変更するにはどうすればよいですか? –

+1

EXE/DLLに読み込み中に名前を変更するアクセスを妨げるものは何もありません。ファイルは 'FILE_SHARE_DELETE'アクセスで開かれ、名前を変更(再リンク)することができます。実際にファイルを削除するのは、共有違反(32)ではなくアクセス拒否(5)で失敗します。これは、ページングファイルやマップデータファイルの削除を許可しないのと同じです。また、System32の多くのファイルのファイルセキュリティは管理者のRXアクセスのみを許可するので、takeown.exeを使用して所有権を取得し、セキュリティを変更してicacls.exeでフルコントロールを許可する必要があります。 – eryksun

関連する問題