c:\Users
の下にある対応するフォルダーとともに、Windows アカウントをプログラムで削除しようとしていますwindows 2008R2
。
プログラムでコマンドを呼び出しますnet user [user name] /delete
が、 の下にある「ユーザー名」フォルダが削除されませんc:\users
。DelectFile
機能が動作しません: エラー コードはです5
。
それを解決する方法はありますか?
エラー コード 5 は、「アクセスが拒否されました」を意味します。これを修正するには、ローカル システム アカウントにそのフォルダーを削除する権限があることを確認してください。「cacls」を使用してコマンドラインから実行できます。LocalSystem は、デフォルトで Administrators グループのメンバーとしてアクセスできるはずですが、削除されている可能性があります。見つからない場合は、最初にフォルダーの所有権を取得します。
もう 1 つの問題として、フォルダが「使用中」である、つまり共有用に削除拒否が設定された状態でハンドルが開かれていることが考えられます。これは解決するのが難しいです。最初にユーザーをログオフするか、しばらく待ってから再試行する必要がある場合があります。
ディレクトリを単に DeleteFile することはできません。ディレクトリの内容を明示的に繰り返し、各ファイルを削除し、各サブディレクトリを削除する必要があります。
また、ユーザー プロファイル フォルダーの名前は、必ずしもユーザー名と同じではないことに注意してください。マッピングはレジストリのどこかに保存されます。