記事カテゴリ

ユーザー機能


 2025年5月 4日(日) 18:40 JST

[PowerShell] Windows7でのNTFSアクセス権の設定方法

  • 記事を友だちにメール
  • 印刷用ページ
  • 投稿者:
  • 表示回数
    10,883

先日から困っていたこと、気づいたら非常に簡単だったこと。

Windows XP迄使えていたNTFSアクセス権の設定コマンド「cacls」はWindows Vista以降では使用できなくなったようです。代わりに「icacls」というコマンドが用意されているようです。

早速このコマンドを利用しようと試みると...
(下記のコマンドはc:\windows\win.ini にUsersグループがアクセスできるように権限を付与します。)

C:\Users\Jun>icacls c:\windows\win.ini /grant Users:M
c:\windows\win.ini: アクセスが拒否されました。
0 個のファイルが正常に処理されました。1 個のファイルを処理できませんでした

と返されます。管理者なのにアクセスが拒否されるのは何でなのかな?とtechnetを探していると、よく似たWindows 2003 Server sp2での事例が引っかかったので、この問題がWindows7でもまだ発生しているのか?このときにリリースされているヴァージョンよりもWindows7についているバージョンの方が新しいから適用されているのでは?と悩んでいました。

05/15 MoEのDVD買っちゃいました

  • 記事を友だちにメール
  • 印刷用ページ
Master of Epic
  • 投稿者:
  • 表示回数
    2,800

とうとう買っちゃいました...

DVDが見たかったとかそういう理由じゃないです。
単に同梱されているシリアルコードが欲しかった。もっと言えばゲーム内アイテムが欲しかったそれだけで...
マスター オブ エピック ~The AnimationAge~ I (限定版) [DVD]
マスター オブ エピック~The AnimationAge~ II〈限定版〉 [DVD]
買っちゃいました...

あーあ、何かROSSO INDEXの商法にはまってるね。
でも、3年以上遊ばせてもらってるからそろそろ追加でゲーム代を払っても良いかな?って時期でもあったけど。
3年で6万ちょっとかな~。
錬金やガチャが散財する原因でしょうね。10/08/27試行のスパイス(SP)に対する有効期限の設定によってなるべく早く使い切ってしまわないとと言う心理的負担が、散財を加速化させるんだよね。

参考
資金決済法施行により電子マネーは一定の制限を受けることになった。ただし、有効期限が6ヶ月未満のものについてはその限りではなく、このためほとんどのオンラインゲーム運営会社はこの方法を選択したわけである。
利用者にとっては今まで有効期限がなかった電子マネーに有効期限が出来るわけで、不都合きわまりない。
また、最後に残った少額の電子マネーなど使わずに消えていく羽目になっている。 

参考記事

 

Delphiのコンパイラバージョン情報

  • 記事を友だちにメール
  • 印刷用ページ
  • 投稿者:
  • 表示回数
    3,225

DELPHIにはコンパイラバージョンが#DEFINEで定義されています。
各VersionのDelphi/C++Builderに対するコンパイラバージョン定義は下記の通り

Delphiバージョン 定義
Delphi1 VER80
Delphi2 VER90
Delphi3 VER100
Delphi4 VER120
Delphi5 VER130
Delphi6 VER140
Kylix VER140
Delphi7 VER150
Delphi8 VER160
Delphi2005 VER170
BDS2006 VER180
TurboDelphi VER180
Delphi2007 VER185(VER180)
Delphi2009 VER200
Delphi2010 VER210
Delphi XE VER220
C++Builderバージョン 定義
C++Builder1 VER93
C++Builder3 VER110
C++Builder4 VER125
C++Builder5 VER130
C++Builder6 VER140
BDS2006 VER180
TurboC++ VER180
C++Builder2007 VER185(VER180)
C++Builder2009 VER200
C++Builder2010 VER210
C++BuilderXE VER220

だから、例えばソース中に

{$IFDEF VER170}
  ShowMessage('Delphi2005です');
{$ENDIF}

と書くことによって、Delphi2005のみメッセージが表示されるようにソースが書けます。
Delphi2007だけは、2006とコンパイラの言語仕様に変更がないためVER180もVER185も定義されています。
Delphiのコンパイラバージョンを調べるプログラムを書いておきます。

program DelphiCompilerVerChk;

uses
  SysUtils, Windows;

{$R *.res}

{-------------------------------
//      文字列を追加する関数
機能:       StringAdd(S, 'メッセージ')
            とすると、改行で区切られてSにメッセージが追加される
            StringAdd(S, 'メッセージ' '/')
            とすると、『/』で区切られてメッセージが追加される
備考:       
履歴:       2009/08/28(金)
              作成
//--▼----------------------▽--}
procedure StringAdd(var OriginalText: String; 
  Const AddText: String; Const Separator: String = #13#10);
var
  i: Integer;
  LenOriginal, LenSeparator, LenAdd: Integer;
begin
  if OriginalText = '' then
  begin
    OriginalText := AddText;
  end else
  begin
    LenOriginal := Length(OriginalText);
    LenSeparator:= Length(Separator);
    LenAdd      := Length(AddText);
    SetLength(OriginalText, LenOriginal + LenSeparator + LenAdd);
    for i := 1 to LenSeparator do
    begin
      OriginalText[LenOriginal + i] := Separator[i];
    end;
    for i := 1 to LenAdd do
    begin
      OriginalText[LenOriginal + LenSeparator + i] := AddText[i];
    end;
  end;
end;
//--△----------------------▲--

var
  MsgStr: String;
begin
  MsgStr := 'Version不明';

{$IFDEF VER80}  MsgStr := 'Delphi1';                    {$ENDIF}

{$IFDEF VER90}  MsgStr := 'Delphi2';                    {$ENDIF}

{$IFDEF VER93}  MsgStr := 'C++Builder1';                {$ENDIF}

{$IFDEF VER100} MsgStr := 'Delphi3';                    {$ENDIF}

{$IFDEF VER110} MsgStr := 'C++Builder3';                {$ENDIF}

{$IFDEF VER120} MsgStr := 'Delphi4';                    {$ENDIF}

{$IFDEF VER125} MsgStr := 'C++Builder4';                {$ENDIF}

{$IFDEF VER130} MsgStr := 'Delphi5';                    {$ENDIF}
{$IFDEF VER130} StringAdd(MsgStr, 'C++Builder5');       {$ENDIF}

{$IFDEF VER140} MsgStr := 'Delphi6';                    {$ENDIF}
{$IFDEF VER140} StringAdd(MsgStr, 'C++Builder6');       {$ENDIF}
{$IFDEF VER140} StringAdd(MsgStr, 'Kylix/2/3');         {$ENDIF}

{$IFDEF VER150} MsgStr := 'Delphi7';                    {$ENDIF}

{$IFDEF VER160} MsgStr := 'Delphi8';                    {$ENDIF}

{$IFDEF VER170} MsgStr := 'Delphi2005';                 {$ENDIF}

{$IFDEF VER180} MsgStr := 'BDS 2006(Delphi/C++)';       {$ENDIF}
{$IFDEF VER180} StringAdd(MsgStr, 'Turbo Delphi/C++');  {$ENDIF}

{$IFDEF VER185} MsgStr := 'Delphi2007';                 {$ENDIF}
{$IFDEF VER185} StringAdd(MsgStr, 'C++Builder2007');    {$ENDIF}

{$IFDEF VER200} MsgStr := 'Delphi2009';                 {$ENDIF}
{$IFDEF VER200} StringAdd(MsgStr, 'C++Builder2009');    {$ENDIF}

{$IFDEF VER210} MsgStr := 'Delphi2010';                 {$ENDIF}
{$IFDEF VER210} StringAdd(MsgStr, 'C++Builder2010');    {$ENDIF}

{$IFDEF VER220} MsgStr := 'Delphi XE';                  {$ENDIF}
{$IFDEF VER220} StringAdd(MsgStr, 'C++Builder XE');     {$ENDIF}

  Windows.MessageBox(0,
    PChar(MsgStr),
    PChar(ExtractFileName(ParamStr(0))), MB_OK);

end.

Windows Vista/7のファイルとレジストリの仮想化をOFFにする方法

  • 記事を友だちにメール
  • 印刷用ページ
  • 投稿者:
  • 表示回数
    17,909

Windows Vista から、ファイルとレジストリの仮想化という機能が実装されている。
アプリケーションの仮想化の際にユーザーごとの設定を意識せずに持てるなどの利点があるようだが、今までの環境に慣れ親しんだ企業ユーザーなどにとっては管理コストの増大になっている。またユーザーに意識させず行われることと既存のプログラムが対応していない事などの要因で、この機能は様々な場面で問題を起こしていることがある。まさに「小さな親切大きなお世話」的機能になっている。

機能の内容
権限を有しないものが該当するフォルダやレジストリに対して書き込みを行うと、自動的にリダイレクトされ別の場所に書き込む機能である。管理者権限を有していてもユーザーアカウント制御(UAC)がONになっていて、さらに昇格していないとこの機能が働く。(アプリケーションマニフェストで指定されている場合は除かれる模様)

書き込もうとした場所仮想化によって実際に書き込まれる場所
%programfiles%
(初期値:C:\Program Files)
%LOCALAPPDATA%\VirtualStore\Program Files
%systemroot%
(初期値:C:\Windows)
%LOCALAPPDATA%\VirtualStore\Windows
%programdata%
(初期値:C:\ProgramData)
%LOCALAPPDATA%\VirtualStore\ProgramData
HKEY_LOCAL_MACHINE\SOFTWARE HKCU\Software\Classes\VirtualStore\Machine\Software

※参考URLによると%systemroot%も仮想化の対象と取れるが、実験したところ仮想化されていない模様。

無効化の方法(下記の2通りの方法のいずれかで)

  1. コントロールパネルからの無効化
    コントロール パネル\システムとセキュリティ\管理ツール\ローカルセキュリティーポリシー
    上記をクリックするとMicrosoft Managiment Console(MMC)が起動する。
    下記の場所の設定を変更する。
    コンピュータの構成/Windowsの設定/セキュリティの設定/ローカルポリシー/セキュリティーオプション
     「ユーザーアカウント制御:各ユーザーの場所へのファイルまたはレジストリの書き込みエラーを仮想化する」
    を有効から無効に変更
    ※ローカルセキュリティーポリシーのコマンドはgpedit.msc
  2. レジストリからの無効化
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    EnableVirtualization の値を1から0に書き換える

■参考

  1. Windows Vista または Windows 7 のファイルおよびレジストリの仮想化に関する一般的な問題
    http://support.microsoft.com/kb/927387/ja
  2. ユーザー アカウント制御
    http://technet.microsoft.com/ja-jp/library/cc772207(WS.10).aspx

04/26 IS04はセーフモードでもトラブル発生中

  • 記事を友だちにメール
  • 印刷用ページ
  • 投稿者:
  • 表示回数
    4,279

先日教えていただいたIS04の「セーフモード」ですが、早くもトラブルが発生しました。
お昼休みにケータイをチェックしたら「0件のEメールを受信しました」と表示されている。
よく考えたら昨晩FXで約定しているので、その通知メールが来ているはずなのであるが...
数時間たっても「0件のEメールを受信しました」と表示されており、解消されていないことがわかる。
ちなみに新着メールのチェックを行うと、「IS04のEメールで受信できませんでしたネットワークに接続されているか確認してください」などと表示されメールが受信出来ない状況。
圏外なら話はわかるが、一応3Gのアンテナが3本立っている状況であることは確認している。
機種交換は避けられない模様...


サイトカレンダー

サイトカレンダーをスキップ

2025年 06月
«
»
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

新着情報

記事 新着(24時間)

-

コメント 新着(2日)

トラックバック 新着(2日)

-

リンク 新着(2週)

新しいリンクはありません

ファイル (14日)