環境変数TEMPのアクセスエラーについて
- Windows7で動作している.NET Framework2.0のアプリが、環境変数TEMPにアクセスエラーでファイルが書き込めない問題が発生しています。
- エラーメッセージによると、TEMPディレクトリへのアクセス権がないため、XmlSerializerが動作しているIDに必要なアクセス許可が与えられていません。
- 問題の原因として考えられるのは、ユーザーアカウントがTEMPディレクトリへのアクセス権限を持っていないため、コンパイルができないことです。
- ベストアンサー
環境変数TEMPを使用するアプリがアクセスエラー
下記のエラーメッセージが表示されてアプリケーションが動作しないのですが、 Windowsって、環境変数TEMPにアクセスエラーでファイルが書き込めない場合ってあるものなのでしょうか? また、何が原因でこのような状態になるのでしょうか? エラー: TEMP ディレクトリへのアクセスが拒否されました。XmlSerializer を実行している ID '{0}' に、TEMP ディレクトリへのアクセスに必要なアクセス許可がありません。CodeDom では、プロセスが使用しているユーザー アカウントを使用してコンパイルしようとするため、ユーザーが TEMP ディレクトリへのアクセス権を持っていない場合、コンパイルはできません。TEMP ディレクトリの場所を見つけるには、Path.GetTempPath() API を使用してください。 とのエラーが発生します。 環境 .NET Framework2.0(C#/WinForm) Windows7 補足 TEMPの内容 Path.GetTempPath()で取得すると「C:\Users\hogehoge\AppData\Local\Temp\」 となっており、問題は無さそうです。 テストプログラムのエラー(添付にファイル作成) System.UnauthorizedAccessException: パス 'C:\Users\hogehoge\AppData\Local\Temp\null.txt' へのアクセスが拒否されました。 以上
- kiyo7447
- お礼率29% (23/79)
- Windows系OS
- 回答数3
- ありがとう数1
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エラーメッセージを見る限り、 > 環境変数TEMPにアクセスエラーでファイルが書き込めない ではなくて、TEMPフォルダに書き込みできないってエラーでは? > Path.GetTempPath()で取得すると「C:\Users\hogehoge\AppData\Local\Temp\」 のTEMPフォルダを右クリック-[プロパティ]の「セキュリティ」タブで、ID'{0}'というユーザー(?)からの書き込みを許可しているかどうか確認してみては? 見た感じ、ユーザー名:hogehogeのフォルダですから、同じレベルのユーザーにはアクセス許可無い場合はあるかも。
その他の回答 (2)
- chie65535
- ベストアンサー率43% (8522/19371)
>パス 'C:\Users\hogehoge\AppData\Local\Temp\null.txt' へのアクセスが拒否されました。 C:\Users\hogehoge\AppData\Local\Temp\null.txtを作成したりオープンしたり出来るのは「ユーザー名hogehogeのユーザーのみ」です。 テストプログラムが「hogehoge」以外のユーザーで実行されている場合は、一切、アクセス出来ません。 XmlSerializerも同様で、XmlSerializerを実行しているユーザーがhogehogeじゃない(ID '{0}'のユーザー)場合は、コンパイルできません。 「環境変数TEMPにアクセスできない」のではなくて「環境変数TEMPで示されるフォルダにアクセスできない」のです。 ぶっちゃけ「C:\TEMP\ってフォルダを作って、そのフォルダを、誰でも読み書き可能にして、環境変数TEMPの値をC\TEMP\にしておく」のが、一番楽です。 大昔の古いアプリの中には、環境変数TEMPで示すフォルダの「パス名の長さ」が「32文字以内」である事を想定しているアプリもあるんで「C:\Users\hogehoge\AppData\Local\Temp\」などと言う長いパス名が設定してあったら、色々と問題が起きます。
- fenglu
- ベストアンサー率43% (317/735)
Vistaが出回りだした頃、ユーザーアカウント制御を無効にするとTEMPにアクセスできなくなるという例がいくつかありましたが……。 Win7で同じかどうかは分かりません。
関連するQ&A
- TEMPユーザー環境変数の削除について
RAMディスクの有効活用の説明などで、「システム環境変数TEMP、TMPをRAMディスク上のパスに変更しましょう」といった部分がありますが、その部分の説明で「ユーザー環境変数のTEMP、TMPは削除してください」といったことが書かれているのもよく目にします。 システム環境変数のパスを書き換えるのは理解できるのですが、なぜユーザー環境変数の方は削除するのでしょうか? その場合、プログラムがユーザー環境変数のTEMP、TMPを利用する時は問題ないのでしょうか? ユーザー環境変数の方のTEMP、TMPパスもRAMディスク上のパスに変更するのが普通なのではないのでしょうか?
- ベストアンサー
- その他(Windows)
- Windows 7 tempに アクセス出来ない
Windows 7 temp アクセス許可設定変更方法 スタート→コンピューター→ローカルディスク(C)→Windows→Temp を選択で (1) Temp ダイヤログボックス表示 このフォルダーにアクセスする許可がありません。 [続行]をクリックすると、このフォルダーへの永続的なアクセスを取得します。 続行 を選択→ (2) Temp ダイヤログボックス表示 このフォルダーへアクセスするアクセス許可が拒否されています。 このフォルダーへのアクセスを取得するにはセキュリティタブを使用する必要があります。 セキュリティタブ を選択→ (3)Tempのプロパティ ダイヤログボックス表示 続行(C) を選択→ (4)Tempのアクセス許可 ダイヤログボックス表示 セキュリティ グループ名またはユーザー名(G) で CREATOR OWNER(G) を選択→CREATOR OWNERのアクセス許可(P) で フルコントロールを選択後 適用(A)→を選択→ (5)Windows セキュリティ ダイヤログボックス表示 システムフォルダーのアクセス許可設定を変更しようとしています。 これにより、アクセスの予期しない問題が発生し、セキュリティが弱くなることがあります。 続行しますか? はい(Y) を選択→ (6)セキュリティの適用エラー ダイヤログボックス表示 セキュリティ情報を適用中にエラーが発生しました C\Windows\Temp アクセスが拒否されました。 続行(C) を選択→ (7)Windows セキュリティ ダイヤログボックス表示 Tempの新しい所有者を設定できません。 アクセスが拒否されました。・・・・Tempのアクセス許可に戻り許可出来ない。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ (4)Tempのアクセス許可 ダイヤログボックス表示・・・から ○ Administrators(××××ーPC\Administrators) を選択→OK→OK(Tempのプロパティ)で (許可・フルコントロールで選択済み) Temp ダイヤログボックス表示・・・(2)の状態に戻り許可出来ない。 ○ Users(××××ーPC\Users) を選択→Usersのアクセス許可(P) で フルコントロールを選択後 適用(A)→を選択→結果は・・・上記の(5)(6)(7)となり許可出来ない。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ (3)Tempのプロパティ ダイヤログボックス表示・・・から 詳細設定(V) を選択→ (8)Tempのセキュリティの詳細設定 ダイヤログボックス表示 アクセス許可 タブで 続行(C) を選択→ (9)Tempのセキュリティの詳細設定 ダイヤログボックス表示 アクセス許可 タブ アクセス許可エントリ(T)で Users(××××ーPC\Users) を選択→編集(E) (10)Tempのアクセス許可エントリ オブジェクト タブ アクセス許可(P) の許可を フルコントロール を選択 (チェックボックス チェック)これらのアクセス許可を、このコンテナーの中にあるオブジェクトやコンテナーにのみ 適用する(T) を選択→OK→適用→結果は・・・上記の(5)(6)(7)となり許可出来ない。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ (8)Tempのセキュリティの詳細設定 ダイヤログボックス表示・・・から 所有者タブ→編集(E)→ (11)所有者 現在の所有者(C) Administrators(××××ーPC\Administrators) 所有者の変更(O) 名前 ××××(××××ーPC\××××)を選択 (チェックボックス チェック)サブコンテナーとオブジェクトの所有者を置き換える(R)を選択→適用→ (12)セキュリティの適用エラー ダイヤログボックス セキュリティ情報を適用中にエラーが発生しました C\Windows\Temp\_avast_ アクセスが拒否されました。 続行(C)を選択→ (13)セキュリティ情報を適用中にエラーが発生しました C\Windows\Temp アクセスが拒否されました。 続行(C)を選択→ (14)Windows セキュリティ Tempの新しい所有者を設定できません。 アクセスが拒否されました。・・・・の表示で許可出来ない。 以上の内容で試みました。御教授をお願いします。 ※今は、ユーザーアカウント制御の設定(UACレベル)を [通知しない] で対処していますが、 セキュリティーが不安で、既定の設定で使いたいです。
- ベストアンサー
- Windows 7
- 環境変数TEMPについて、設定内容と echo %TEMP% の出力とが異なる原因として考えられるのは?
みなさんこんばんは。 Windows 2003 x64 Editionにて、環境変数TEMPをシステム環境変数にて以下のように設定しています。 TEMP=C:\TEMP この状態で、コマンドプロンプトを起動し、echo %TEMP% と実行すると、 C:\TEMP\1 と表示されます。 実際に、(どのタイミングでかは定かではありませんが)C:\TEMP\1も作成されていました。 こちらの環境では、ユーザー環境変数では指定していません。 また、システム環境変数の設定は、マイコンピュータ>プロパティ>詳細設定>環境変数 から設定しています。 レジストリエディタ内でも、C:\TEMP として保存されていることは確認しています。 なぜ、echo %TEMP% を実行すると"\1"が追加されるのか、原因がわかる方いらっしゃいませんか。 もしくは、ここをチェックしてみたら?というアドバイスでも助かります。 ちなみに、コマンドプロンプトで set TEMP=C:\TEMP と実行しておくと、次に echo %TEMP% を実行した結果は C:\TEMP となり、\1はつきませんでした。 また、新しくユーザーを作成してそのユーザーでログオンしたところ、echo %TEMP% の結果は C:\DOCUME~1\<ユーザー名>\LOCALS~1\Temp\2 となりました。 このユーザーでは環境変数類は変更しておらず、ユーザー環境変数にてデフォルトで以下のように設定されています。 %USERPROFILE%\Local Settings\Temp OSのセットアップは当方で実施していないため、 Windows 2003の仕様なのか(x64だから??)、 当方の環境の特殊な設定なのかの判断がついていません。 特殊な設定といっても、Windowsでレジストリに登録されている環境変数をさらに上書きする設定がどこで行われているのか、さっぱり見当つかない状況です。 UNIXなら/etc/environmentとか.loginとか.cshrcとか、いろいろと確認ポイントはあると思うのですが・・・ どなたかピンときた方、よろしくお願いします。
- ベストアンサー
- Windows系OS
- 下記ファイルが壊れておりPDFに支障がでます。
下記エラーメッセージがでました。 ファイルまたはディレクトリC:\Users\*****\AppData\Local\Tempが 壊れており、読み取ることができません。CHKDSKユーティリティを 実行してください このエラーのためPDFの使用に支障がでて印刷等ができません。 CHKDSKユーティリティ以外に何か復旧できる方法はありますでしょうか? わかる方いらっしゃいましたら教えてください。 よろしくお願いいたします。
- ベストアンサー
- Windows 7
- 環境変数の再帰展開について
環境変数の中で環境変数を使用したときに、 こちらの思ったように文字列が展開されません。 例. システム環境変数 SystemDrive=C: WORK_PATH=%SYSTEMDRIVE%\temp PATH=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem ユーザー環境変数 PATH=%WORK_PATH%;%PATH% こんな感じでセットされている場合、 コマンドプロンプトでset PATHした場合の結果が異なります。 Vistaでは C:\temp;C:\WINDOWS~ と展開されますが、 Windows XP環境では %SYSTEMDRIVE%\temp;C:\WINDOWS~ と、 %SYSTEMDRIVE%の部分がそのままになってしまいます。 Windowsの環境変数には2種類の属性があり、 上記の環境変数を登録する際は"展開可能"属性にしました。 またレジストリの"Command Processor\EnableExtensions" も1になっていることを確認しています。 ちなみにset WORK_PATHとしたときは、 両方の環境で C:\temp と表示されることから、 環境変数の再帰展開がうまく機能していないと思われます。 XP環境でもVista環境と同じように環境変数の再帰展開をすることは可能でしょうか?
- ベストアンサー
- Windows系OS
- VEGAS Pro 17.0でBDへ書き込みエラー
VEGASPro17.0で BDへ書き込みをしようとするとレンダリング中に次のようなエラーとなります。「ステータス: MUXComp:Validating error. --- 名前空間 'http://tempuri.org/ProjectDefinition.xsd' のスキーマを読み込めません。パス 'C:\Users\*****\AppData\Local\VEGAS' へのアクセスが拒否されました。」WEB参照してTEMPフォルダをCドライブ直下に置いてみましたがエラーとなります。他のチェック点、有効な対処方法をご存知の方いらっしゃいましたらご教示頂けますと幸いです。
- ベストアンサー
- 画像・動画・音楽編集
- Office2007における環境変数の設定について
はじめまして。 Office2007Professional plusをOffice2003Professionalよりアップグレードして使用しています。 アップグレードしてから、OutlookとWordを起動すると、「作業ファイルが作成できません。環境変数TEMPの設定を確認してください。」というエラーが発生するようになりました。 このエラーを解決するために、システムのプロパティからユーザー環境変数、システム環境変数の設定を確認したのですが、ユーザー環境変数が「C:\TEMP」、システム環境変数が「C:\Windows\TEMP」となっており、特に問題がないようでしたので、解決法が見つからず、困っています。 このエラーのために、wordでのファイル保存が出来ないようなので、解決法をご存知の方がいらっしゃいましたら、ご教授お願いします。
- 締切済み
- オフィス系ソフト
- PCのTempフォルダにあるへんなアプリ
今日、Windows11のキャッシュファイルを削除しようとして、Windows11のTempフォルダを漁っていたら、「lowproc.exe」というへんなアプリケーションファイルがありました。 このファイルを見つけても、もしかしたらウイルスかも知れないので起動はしてないのですが、このファイルはどのようなアプリケーションなのでしょうか? 知ってる人いましたら早急にご回答お願いします。 ちなみにファイルの情報は以下のような感じです。 名前:「lowproc.exe」 説明:「RealNetworks Installer」 場所:C:\Users\ユザネ\AppData\Local\Temp
- ベストアンサー
- Windows系OS
- tempファイルのエラー5について
ファイルをインストールしようとするとTempファイルの中にis~~を作成中にエラーが発生したと出てインストールできません。 エラー5アクセスが拒否されましたと出ているのですがアカウントはひとつしかないのでよくわかりませんここからどうすればいいか教えてください。
- 締切済み
- Windows系OS
- システム環境変数と、ユーザー環境変数。
こんにちわ。 昨夜からちょっと困ってパニックになっています。 1から書いていきます。 読みにくかったら、申し訳ございません。 コンパイルしたJanken.classが、 C:\java>java Janken で作動せず、 java.lang.NoClassDefFoundErrorのエラーが出ました。 そこで、参考書を見て環境変数に問題があるということなので、 環境変数を触ったのですが、それでも上手く行かずネットで検索をかけて調べたところ、 "システム環境変数"と"ユーザー環境変数"の設定を変えました。(osは、XPです。) それ以来、 ----------------- C:java>java Janken 'java'は、内部コマンドまたは、外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 C:\java ---------------- と、なります。 コンパイルも出来ません。 「システム環境変数には、触れてはいけない」と 検索した先のページには、書かれていまして、 ユーザー環境変数と間違って、システム環境変数を変えていたことになります。 元に戻すには、PCの初期化が必要なのでしょうか? また、参考書の通りコマンドプロンプトに打つとこう表示されます。 ----------- C:\Documents and Settings\Owner>set CLASSPATH=%CLASSPATH%;c:\java\bin C:\Documents and Settings\Owner>echo %CLASSPATH% %CLASSPATH% C:\Documents and Settings\Owner> ------------- また、JAVAの入ってるフォルダは、 C:\JAVAで、ローカルディスクCの中です。 JAVAフォルダの中は、j2sdk-1_4_0-doc-jaフォルダと、J2SEフォルダ、 Janken.classがあります。 もう何が正しくて、何が誤りなのかもわかりません。 どうか、よろしくお願いいたします・・・・。
- ベストアンサー
- Java