「ほっ」と。キャンペーン
カテゴリ:豆知識( 206 )
(正規表現)任意の文字が含まれる行を削除する方法
ログファイル等で、任意の文字を含まない行を抽出する必要があります。
例えば、「正常」が入っている行は削除し、それ以外の行を知りたい場合です。

その場合、正規表現を使った検索/置換ができるテキストエディタがあれば容易に抽出ができます。

検索に以下のように指定し、置換文字列をなしにすればOKです。

^.*正常.*\n


参考:
正規表現サンプル(ある文字が含まれる行を削除する)
[PR]
by jehoshaphat | 2014-02-09 00:39 | 豆知識 | Trackback | Comments(0)
OfficePersonal2003とAccess2000混在時にエラー1706がでる

OfficePersonal2003とAccess2000が混在しているPCで、初めてOfficeを使うWindowsユーザでログオンし Excel を起動すると、インストーラウィザードが立ち上がり以下のようなエラーが表示されました。

エラー 1706. CD-ROM またはネットワーク上に製品 Microsoft Access 2000 をインストールするのに必要なファイルが見つかりません。 Windows インストーラはインストールを継続できません。


とりあえずエラー番号でググッてみたら、MSサポート:[OFF2000] 機能の追加中にエラー1706が発生する現象についてという情報があったんで試したんですが、解決しませんでした。
よくよく考えたらこのユーザはAdministratorsグループに属しているので、上記のサポート情報は関係ありません。

で、試しに、Access2000を先に起動して見ました。
使用者情報を入れるダイアログがあったので、そこで情報を入れてからAccessを終了し、Excelを起動したらエラーが出なくなりました。

どうやらAccess2000側に使用者情報が入ってなかったことが原因だったようです。
[PR]
by jehoshaphat | 2014-02-07 00:36 | 豆知識 | Trackback | Comments(0)
ドメインベースDFSの共有フォルダを違うドメインユーザでアクセスしたい
ドメインベースDFSを利用しているWindows7のPCで、現在Windowsにログインしているユーザとは違うユーザで、DFS上の共有フォルダにアクセスしたいという場合の実現方法です。

Windows7のコントロールパネルにある、[資格情報マネージャー]に、違うユーザの情報を保存することでできるようでした。

設定するのは[Windows資格情報]のところで、以下の情報を保存します。
[インターネットまたはネットワークのアドレス] : ドメイン名(hoge.local)
[ユーザ名] : 共有フォルダにアクセス権のあるユーザ名
[パスワード] : 上記のユーザのパスワード

ただし、一つのドメインに対して一つの資格情報しか保存できないので、複数のアクセス権の異なるユーザでDFSの共有にログインしたいみたいなことはできません。

まぁ、あまり使い道はないとは思うのですが、業務システムの都合上特定のユーザでOSにログオンせざるを得ない状況で、共有フォルダは違うユーザでログインしたいみたいな時は役に立つかもしれません。
[PR]
by jehoshaphat | 2014-02-06 00:34 | 豆知識 | Trackback | Comments(0)
リモート先のWindowsPCのタスクスケジューラを確認する
ドメインに参加しているPCのタスクスケジューラを確認する必要がでてきました。

@IT:タスク・スケジューラをコマンド・プロンプトから制御するにコマンドから操作する方法が載っていたのでやって見ました。


ドメイン管理者権限でコマンドプロンプトを開き、以下のコマンドを打つとタスクの一覧が確認できます。

schtasks /query /s hogepc01

タスク名 次回の実行時刻 状態
==================================== ======================== ===============
pcbackup ログオン時
GoogleUpdateTaskMachineCore ログオン時
GoogleUpdateTaskMachineCore 8:39:00, 2012/01/17
GoogleUpdateTaskMachineUA 16:39:00, 2012/01/16

/s で対象のホスト名を入ればいいようです。
(これは第二引数の /query や /run , /end , /create , /delete の後に指定する必要があります)


/vを入れると以下のようにより詳細な情報が取得できます。

schtasks /query /v /s hogepc01

ホスト名 タスク名 次回の実行時刻 状態 ログオン モード 前回の実行時刻 前回の結果 作成者 スケジュール 実行するタスク 開始 コメント スケジュールされたタスクの状 スケジュールされた種類 開始時刻 開始日 終了日 日 月 ユーザーとして実行 再度スケジュールされない場合はタス タスクを停止するまでの時間 繰り返し: 間隔 繰り返し: 終了時刻 繰り返し: 期間 繰り返し: 実行中の場合は停止 アイドル時間 電源管理
======== ============================ ==================== ====== ======================= ==================== ========== ========= ================================================================================ ================================================ ===== ================================================ ============================ ====================== ========== ========== ====== ===== === ==================== =================================== ========================== =============== ==================== ============== ============================ ============ ===========================================
hogepc pcbackup ログオン時 対話型/バックグラウンド 7:00:01, 2012/01/16 0 userhoge ユーザー ログオン時 C:\backup.bat C:\ バックアップをする 有効 ログオン時 ログオン時 2011/10/01 N/A N/A N/A domainhoge\userhoge 無効 72:0 無効 無効 無効 無効 無効 バッテリで開始しない, バッテリ モードで停止
hogepc GoogleUpdateTaskMachineCore ログオン時 バックグラウンドのみ 8:39:00, 2012/01/16 0 userhoge ユーザー ログオン時 C:\Program Files\Google\Update\GoogleUpdate.exe N/A Google ソフトウェアを常に最新の状態に維持します 有効 ログオン時 ログオン時 1999/01/01 N/A N/A N/A NT AUTHORITY\SYSTEM 無効 無効 無効 無効 無効 無効 無効 バッテリで開始しない, バッテリ モードで停止
hogepc GoogleUpdateTaskMachineCore 8:39:00, 2012/01/17 バックグラウンドのみ 8:39:00, 2012/01/16 0 userhoge 設定日: 2011/10/22, 開始時刻: 8:39 間隔: 毎日, C:\Program Files\Google\Update\GoogleUpdate.exe N/A Google ソフトウェアを常に最新の状態に維持します 有効 毎日 8:39:00 2011/10/01 N/A 毎日 N/A NT AUTHORITY\SYSTEM 無効 無効 無効 無効 無効 無効 無効 バッテリで開始しない, バッテリ モードで停止
hogepc GoogleUpdateTaskMachineUA 16:39:00, 2012/01/16 バックグラウンドのみ 15:39:00, 2012/01/16 0 userhoge 設定日: 2011/10/22, 開始時刻: 8:39 から 24 時間, 間隔: 1 時間, 間隔: 毎日, C:\Program Files\Google\Update\GoogleUpdate.exe N/A Google ソフトウェアを常に最新の状態に維持します 有効 毎日 8:39:00 2011/10/01 N/A 毎日 N/A NT AUTHORITY\SYSTEM 無効 無効 1 時間 なし 24 時間: 0 分 無効 無効 バッテリで開始しない, バッテリ モードで停止



参考:
MSサポート:SchTasks.exe を使用してタスクを作成して管理する
[PR]
by jehoshaphat | 2014-02-05 00:33 | 豆知識 | Trackback | Comments(0)
Windows7のダウングレード権を使ってXPを使う
メーカーがWindowsXPプリインストール搭載のPCを出荷することがなくなり、Windows7しか手に入らない状況になってしまったわけですが、古い業務ソフトを使うときにXPじゃないとダメという事が未だに発生しています。
Windows7のXPモードではカバーしきれない場合、OSをXPに入れ直さないと行けません。

その際、Windows7のエディションが Professional or Ultimate で、OEM(プリインストール) or DSP(PCパーツ付属) or ボリュームライセンス版ならダウングレード権が付いているため、VistaもしくはXPにダウンロードできるようです。(パッケージ版のWindows7にはこのダウングレード権がついてないことになります)

ダウングレード権に関しては、Microsoft Windows 7 : Windows 7 のダウングレード権 (旧バージョンソフトウェアの使用) についてが公式の説明となるようです。

XPのメディアについては以下の3つが使えるようです。
1) PCメーカーより出荷された PCに 添付されていたバックアップメディア・ダウングレード用メディア
2) 一般に店頭等で販売されていたパッケージ版メディア
3) マイクロソフトが提供するボリューム ライセンス メディア

おそらく一般的には以前に購入した 2) のメディアを使うことになると思いますが、問題はインストール時のプロダクトキーです。
これについては、MSのページでも詳しく書いていません。

調査すると、プロダクトキーについてはすでにインストール済みでダウングレードしようとするのと同じエディションのプロダクトキーで構わないようです。
つまり、プロダクトキーの使い回しですね。

Windows7のダウンロードはすでに持っているXPのプロダクトキーで、ダウングレード対象(2台目)PCで使えるようにする事のようです。

ただし、アクティベーションはオンラインではできないため、オペレータにつなぎ、Windows7からダウングレードである旨を伝える必要があるようです。

参考:
ITmedia:そういえばあまり理解していなかったかも:改めて知る、「Windowsのダウングレード権」とは
きまぐれ ぷろぐらま語録: Windows7を結局買った
ひ・み・つ☆の散歩路 Windows7 → xp ダウングレード権についてのメモ
徒然なるままに  Windows 7からWindows XPへのダウングレード権の「期限付き」
[PR]
by jehoshaphat | 2014-02-04 00:11 | 豆知識 | Trackback | Comments(0)
(WindowsServer) WindowsServer2008 R2でガジェットを表示する
WindowsServer 2008 R2 ではガジェットが標準装備されてません。
ということで、Windos Server R2 でガジェットを使えるようにする方法について探したところ、まなBlog | Server 2008 R2 で デスクトップ・ガジェッにドンピシャな答えが有りました。
http://www.win2008r2workstation.com/win2008r2/sidebarから Windows Sidebar.zip をダウンロードし install.bat を実行します。

そうすると英語版のガジェトがインストールされます。
後は、Windows7 x64版の %ProgramFiles%\Windows SideBar と %ProgramFiles(x86)\Windows SideBar をサーバの同じ場所にコピーしてやると、ガジェットが利用できるようなりました。
[PR]
by jehoshaphat | 2014-02-01 00:02 | 豆知識 | Trackback | Comments(0)
WindowsServer2008R2でユーザープロファイルのコピーが出来ない
WindowsServer2008R2でリモートデスクトップサービス(RDS)を構築して、あるユーザで環境を作成し、そのプロファイルを他のユーザでもコピーしようとしたんですが、[コピー先]ボタンがグレーアウトして押下できません。

調べると、Windows7やWindowsServer2008R2移行ではユーザプロファイルをコピーさせないMSお得意の"仕様"となったようです。

サポート情報では、Windows 転送ツール が使えるように書いてましたが、WindowsServer2008R2では使えませんでした。

MS的に真っ当なやり方は、Sysprep というツールで、カスタマイズしたプロファイルを既定のユーザプロファイルとして、それからユーザを作成する方法だそうです。

試してみたかったんですが、対象のユーザは数名で時間がなかったので、手動でユーザ環境を設定しました。

とりあえず参考になりそうなリンクだけ上げておきます。

おえかきWindows: Windows7のプロファイルコピー
MSサポート:Windows Vista、Windows Server 2008、Windows XP、または Windows Server 2003 のイメージを準備する際に、デフォルトのローカル ユーザー プロファイルをカスタマイズする方法
Windows 7 における、既定のユーザー プロファイルのカスタマイズについて
ユーザープロファイルとフォルダリダイレクト・その4 - Tech Notes
Windows 7 既定のユーザープロファイルカスタマイズ方法|インフラしむらのイベントログ
MSサポート:Windows 7 および Windows Server 2008 R2 の ユーザー プロファイルの設定画面から [既定のプロファイル] 以外のユーザー プロファイルをコピーできない


規模が大きい環境だとユーザプロファイルのコピーの要件は結構あるんで、なんとかして欲しいもんですね。
[PR]
by jehoshaphat | 2014-01-31 23:59 | 豆知識 | Trackback | Comments(0)
icacls.exe を使ってACL(NTFSアクセス権)を設定する
以前に、cacls.exe を使ってACL(NTFSアクセス権)を設定すると、xcacls.vbsを使って詳細なACL(NTFSアクセス権)を変更するでACLを設定する方法を書きました。

今回は、WindowsServer2003 SP2 から使えるようになった。icacls での設定方法です。
現在では、caclsよりも、icaclsを使うことが推奨されているようです。
(XPでicaclsを動かすには、xcaclsが使えないため、icaclsをXPで動かすようにしたを参照)


使い方は、icacls コマンドを叩くと、以下のヘルプが出てくるので、これを見れば大抵わかります。


>icacls

ICACLS <名前> /save <ACL ファイル> [/T] [/C] [/L] [/Q]
名前が一致するすべてのファイルとフォルダーの DACL を <ACL ファイル> に
格納して、後で /restore で指定できるようにします。SACL、所有者、整合性
ラベルは保存されません。

ICACLS <ディレクトリ> [/substitute <旧 SID> <新 SID> [...]] /restore:<ACL ファ
イル> [/C] [/L] [/Q]
格納されている DACL を <ディレクトリ> 内のファイルに適用します。

ICACLS <名前> /setowner <ユーザー> [/T] [/C] [/L] [/Q]
すべての一致する名前の所有者を変更します。このオプションは所有権の変更を
強制しません。所有権の変更を行うには、takeown.exe ユーティリティを使用し
ます。

ICACLS <名前> /findsid <SID> [/T] [/C] [/L] [/Q]
<SID> が明示されている ACL を含むすべての一致する名前を検索します。

ICACLS <名前> /verify [/T] [/C] [/L] [/Q]
ACL が正規の形式ではないか長さが ACE 数と一致しないすべてのファイルを
検索します。

ICACLS <名前> /reset [/T] [/C] [/L] [/Q]
すべての一致するファイルについて、ACL を継承された既定の ACL と置換します。

ICACLS <名前> [/grant[:r] <SID>:perm[...]]
[/deny <SID>:perm [...]]
[/remove[:g|:d]] <SID>[...]] [/T] [/C] [/L] [/Q]
[/setintegritylevel Level:policy[...]]

/grant[:r] <SID>:perm は、指定されたユーザー アクセス権を付与します。
:r を指定すると、以前に付与されたすべての明示的なアクセス許可は新しい
アクセス許可に置き換えられます。
:r を指定しない場合、新しいアクセス許可は以前に付与された明示的な
アクセス許可に追加されます。

/deny <SID>:perm は、指定されたユーザー アクセス権を明示的に否定します。
指定されたアクセス許可の明示的な否定 ACE が追加され、明示的な許可内容
に含まれた同じアクセス許可は削除されます。

/remove[:[g|d]] <SID> は、ACL 内にあるすべての <SID> を削除します。
:g を指定すると、その SID に対して許可されたすべての権限を ACL から
削除します。
:d を指定すると、その SID に対して否定されたすべての権限を ACL から
削除します。

/setintegritylevel [(CI)(OI)] レベルは、すべての一致するファイルに整合性
ACE を追加します。このレベルは次の 1 つとして指定されます。
L[ow]
M[edium]
H[igh]
整合性 ACE の継承オプションは、レベルの前に配置でき、
ディレクトリに対してのみ適用されます。

/inheritance:e|d|r
e - 継承を有効にします。
d - 継承を無効にし、ACE をコピーします。
r - 継承された ACE をすべて削除します。


注意:
<SID> は数値形式またはフレンドリ名形式で指定できます。数値形式の場合は、
SID の始めに * を付けます。

/T は、<名前> で指定されたディレクトリ以下のすべての一致するファイルと
ディレクトリに対してこの処理が実行されることを指定します。

/C は、どのようなファイル エラーが発生してもこの処理が続行されることを
指定します。ただしエラー メッセージは表示されます。

/L は、この処理がターゲットではなくシンボリック リンク自体に対して実行
されることを指定します。

/Q は、icacls が成功のメッセージを抑制することを指定します。

ICACLS は、ACE エントリの正規の順序を維持します:
明示的な否定内容
明示的な許可内容
継承された否定内容
継承された許可内容

perm はアクセス許可マスクであり、次の 2 種類の方法で指定できます:
単純な権限を列挙:
N - アクセス権なし
F - フル アクセス権
M - 変更アクセス権
RX - 読み取りと実行のアクセス権
R - 読み取り専用アクセス権
W - 書き込み専用アクセス権
D - 削除アクセス権
特定の権限をコンマ区切りでかっこ内に列挙:
DE - 削除
RC - 読み取り制御
WDAC - DAC の書き込み
WO - 所有者の書き込み
S - 同期
AS - システム セキュリティへのアクセス
MA - 無制限
GR - 一般的な読み取り
GW - 一般的な書き込み
GE - 一般的な実行
GA - 一般的なすべての操作
RD - データ読み取り/ディレクトリの一覧表示
WD - データ書き込み/ファイルの追加
AD - データの追加/サブディレクトリの追加
REA - 拡張属性の読み取り
WEA - 拡張属性の書き込み
X - 実行/スキャン
DC - 子の削除
RA - 属性の読み取り
WA - 属性の書き込み
継承権限はどちらの形式の前にも配置でき、ディレクトリにのみ適用され
ます:
(OI) - オブジェクト継承
(CI) - コンテナー継承
(IO) - 継承のみ
(NP) - 継承を適用しない
(I) - 親コンテナーから継承した権限

例:

icacls c:\windows\* /save <ACL ファイル> /T
- c:\windows より下にあるすべてのファイルとサブディレクトリの ACL を
<ACL ファイル> に保存します。

icacls c:\windows\ /restore <ACL ファイル>
- <ACL ファイル> 内のファイルのうち c:\windows とそのサブディレクトリ
内に存在するすべてのファイルの ACL を復元します。

icacls <ファイル> /grant Administrator:(D,WDAC)
- Administrator ユーザーに、<ファイル> に対する削除および DAC 書き込み
のアクセス許可を与えます。

icacls <ファイル> /grant *S-1-1-0:(D,WDAC)
- SID S-1-1-0 によって定義されたユーザーに、<ファイル> に対する削除
および DAC 書き込みのアクセス許可を与えます。






アクセス許可
アクセス許可を与えるは、/grant オプションを使います。
例えば、\\server\test に hodomain\user1 ユーザで"変更"の権限を加えるには以下のようにします。

icacls \\server\test /grant hodomain\user1:(OI)(CI)M

(OI)(CI)は継承をするという設定です。これを付けないと指定したフォルダのみにアクセス権が付与され、そのフォルダ配下は変更されません。

アクセス拒否
アクセス拒否の場合は、/deny オプションを使います。
以下の例は、user1の削除アクセス権を拒否する設定です。

icacls \\server\test /grant hodomain\user1:(OI)(CI)D


ACL削除
設定されたアクセス権を削除する場合は、/remove オプションを使います。

icacls \\server\test /remove hodomain\user1



アクセス許可マスク
一般的というか単純な権限のアクセス許可マスクは以下のようになります。

N - アクセス権なし
F - フル アクセス権
M - 変更アクセス権
RX - 読み取りと実行のアクセス権
R - 読み取り専用アクセス権
W - 書き込み専用アクセス権
D - 削除アクセス権


次は特殊なアクセス許可の指定ですが、以下のアクセス許可マスクが利用できるようです。
カッコ内に書き、複数指定する場合は、カンマ区切りになるようです。

DE - 削除
RC - 読み取り制御
WDAC - DAC の書き込み
WO - 所有者の書き込み
S - 同期
AS - システム セキュリティへのアクセス
MA - 無制限
GR - 一般的な読み取り
GW - 一般的な書き込み
GE - 一般的な実行
GA - 一般的なすべての操作
RD - データ読み取り/ディレクトリの一覧表示
WD - データ書き込み/ファイルの追加
AD - データの追加/サブディレクトリの追加
REA - 拡張属性の読み取り
WEA - 拡張属性の書き込み
X - 実行/スキャン
DC - 子の削除
RA - 属性の読み取り
WA - 属性の書き込み


例えば、あるフォルダの "データ読み取り/ディレクトリの一覧表示" と "削除" のみを許可する権限を付け、配下のフォルダにも継承させる場合は以下のようにします。

icacls \\server\test /grant hodomain\user1:(OI)(CI)(RD,DE)



継承
普通、フォルダは親フォルダのアクセス権を継承されています。
なので、トップフォルダがEveryoneのアクセス許可があって、配下のフォルダは特定のアカウントしかアクセスさせないようにするには、ACLを変更する前に継承を無効にしないといけません。
その為の設定が、/inheritance です。(なぜかWindowsServer2003版のicaclsではヘルプに無いですが、利用は出来ます)

例えば親フォルダの継承を解除し、親から設定されたアクセス権を削除するには以下のようにします。

icacls C:\test /inheritance:r

また、親フォルダの継承を解除し、親から設定されたアクセス権をコピーするには以下のようにします。

icacls C:\test /inheritance:d

eを指定すると継承が有効になります。

また、上述したとおり、/grant や /deny でACL編集する場合、(OI)(CI) を指定しないと、継承が有効にならないため、サブフォルダに適用されません。


ACLの表示、保存、復元
ACLの一覧表示は、パスを指定するだけでOKです。


icacls \\server\test /t
\\server\test HOGEDOMAIN\alluser:(RX)
HOGEDOMAIN\administrator:(I)(OI)(CI)(F)

\\server\test1 HOGEDOMAIN\user01:(OI)(CI)(M)
HOGEDOMAIN\administrator:(OI)(CI)(F)
HOGEDOMAIN\devlop:(OI)(CI)(F)

\\server\test2 HOGEDOMAIN\administrator:(I)(OI)(CI)(F)
HOGEDOMAIN\devlop:(I)(OI)(CI)(F)

/t オプションを指定すると、サブフォルダ,ファイルも再帰的に表示してくれます。
/save オプションをつけると、ファイルに保存ができます。(ただ保存されたファイルは、SDDL形式で保存されるため編集には不向きかもしれません)
/saveで保存したACLは /restore オプションで復元ができます。

icacls \\server\test /restore e:\acl.txt



ACLのバックアップ、復元ができるのは非常に運用面から言うとありがたいですね。


参考:
ICACLSを使ってアクセス権限をコマンドラインで変更する方法 - http://pnpk.net
@IT:icaclsコマンドでファイルのアクセス制御リストACLを保存/復元する
@IT:ファイルやフォルダのアクセス権をリセットして親フォルダから継承させる
[PR]
by jehoshaphat | 2014-01-29 23:55 | 豆知識 | Trackback | Comments(0)
xcaclsが使えないため、icaclsをXPで動かすようにした

EMCのストレージサーバVNXeでCIFSの共有フォルダサーバを構築しました。
VNXeはActiveDirectory環境が構築されていれば、共有フォルダ上のファイルやフォルダのアクセス権がNTFSボリュームのよう自由自在にできるのが素晴らしいです。
(Linuxを使ってる某サプライメーカーのNASはトップレベルの共有フォルダしかアクセス権設定出来なかったもんで。。。)

で、VNXeで千個近くのフォルダのアクセス権の設定をGUIからやってると日が暮れるので、自動でやってしまおうと思いました。(クライアントの環境はXPです)
一般的なアクセス権はcacls.exe を使ってACL(NTFSアクセス権)を設定するでも書いたように、caclsコマンドが使えます。
また、caclsで設定できない特殊なアクセス権もxcacls.vbsを使って詳細なACL(NTFSアクセス権)を変更するで紹介した xcacls.vbs を使おうとしたのですが、実行すると以下のエラーになりました。

Error -2147023174: occurred in connecting to server. (Msg#3203)
Error description: RPC サーバーを利用できません。


xcacls.vbsは接続先のサーバのWMIをRPCで操作してACLを設定してるわけなので、WindowsOSではないVNXeに対して実行するとエラーになるのも当然ですね。

で、WindowsServer2003(SP2以降),WindowsVistaから付属してる icacls というコマンドなら、RPC使わずに特殊なアクセス権も設定できるということで試そうかと思いました。

しかし、共有フォルダの運用管理しているPCのOSは XP(x86) です。
試しに、Windows7 の端末から icscls.exe (system32配下にあります)を抜いて来ましたが、XP上では動きませんでした。

今度は、WindowsServer2003 SP2(x86) から icscls.exe を抜くと動きそうな感じですが、以下のように表示がうまくされません。

D:\>icacls

ICACLS <



@IT:icaclsコマンドでファイルのアクセス制御リストACLを保存/復元するによると、これはヘルプが上手く表示されないだけで機能的には正しく動作するようです。
しかし、ヘルプが見れないと不便なので、パッチを当てることにしました。
パッチはWindowsServer2003側で適用しないといけません。(再起動は必要有りませんでした)
パッチはMSサポート:>Windows Server 2003 SP2 を実行しているコンピューター上のファイルまたはフォルダーの所有権を設定する Icacls.exe ユーティリティを実行するとエラー メッセージ: アクセスが拒否されました"Windows Server 2003 SP2 を実行しているコンピューター上のファイルまたはフォルダーの所有権を設定する Icacls.exe ユーティリティを実行するとエラー メッセージ: アクセスが拒否されました"から入手可能です。

パッチ適用前と後では icacls.exe のファイル情報は以下のように変わります。

・適用前
バージョン: 5.2.3790.3959
ファイルサイズ: 35,840 バイト
  ↓
・適用後
バージョン: 5.2.3790.4243
ファイルサイズ: 36,352 バイト

これで、パッチ適用後のサーバから iecacls.exe を抜いてXPで動かすと問題なく実行できました。
[PR]
by jehoshaphat | 2014-01-28 23:49 | 豆知識 | Trackback | Comments(0)
VMware ESXiのネットワークアダプタを変えてみた(Solaris10 5/08)
VMware ESXi5.0 を使っていますが、今までネットワークアダプタは何気なく E1000 を使っていました。
テスト的に作った Solaris10 のゲスト環境でもE1000でした。

あまりアダプタで違いはないと思っていたんですが、どうやら結構違いあるようです。
詳しくは、VMware KB: 仮想マシンに使用するネットワーク アダプタの選択で解説されています。

簡単に言うと E1000 は Intel 82545EM ギガビット イーサネット NIC をエミュレーションしているようです。ほとんどのゲストOSでこのNICは利用できるようです。

VMXNET3 はパフォーマンス向上のために設計された準仮想化NICのようです。
Solarisは 10 U4 以降なら使えるようです。

今回のSolarisは以下の様なバージョンでした。

# cat /etc/release
Solaris 10 5/08 s10x_u5wos_10 X86
Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 24 March 2008


Solaris10はアップデートが 5/08 とか 8/07 とかの名称になっていますが、VMwareのサイトには Update4 以降の対応と有ります。
Solaris 10 オペレーティングシステム アップデートリリース情報でどれが何番目のアップデートかわかります。

今回は 5/08 で5番目のアップデートなんで、VMXNET3は対応できるということになります。

VMwareの設定画面でE1000のアダプタを削除し、新たにVMXNET3のアダプタを作成します。

その後起動して ifconfig を叩いてみます。

bash-3.00# ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
inet 127.0.0.1 netmask ff000000

まだ設定していないので、自身のアダプタしか出てきてませんね。

dladmで一応アダプタを確認してみます。

bash-3.00# dladm show-dev
vmxnet3s0 リンク: unknown 速度: 0 Mbps デュプレックス: unknown

ちゃんと認識はしているようですが、無効なので unknown になっています。

NICを有効にしてやります。

bash-3.00# ifconfig vmxnet3s0 plumb

bash-3.00# dladm show-dev
vmxnet3s0 リンク: down 速度: 0 Mbps デュプレックス: full

unknownではなくなりました。VMwareの設定で非接続にしているのでdownになっています。
この状態でifconfigを叩いてみました。

bash-3.00# ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
vmxnet3s0: flags=1000802 mtu 1500 index 2
inet 0.0.0.0 netmask 0
ether 0:50:56:xx:xx:xx

IPが設定されていないようです。
(Solaris)NICが2つある場合のIP設定で書いたようにインターフェイスとホスト名を、設定ファイル名で結びつける必要があります。IPは今までE1000で使っていたのを使うので、以下のようにファイルをリネームしました。

bash-3.00# mv /etc/hostname.e1000g0 hostname.vmxnet3s0

これでリブートします。

shutdwon -y -g0 -y6

再起動後ちゃんとネットワークが接続できるようになりました。
ベンチマークはとってないですが、どれくらいパフォーマンスがあがるもんなんでしょうね。
[PR]
by jehoshaphat | 2014-01-23 07:33 | 豆知識 | Trackback | Comments(0)