人気ブログランキング | 話題のタグを見る
移転。。。。
3流プログラマのメモ書きですが、新規の記事ははてなブログ(3ryupg.hatenablog.com)に掲載することにしました。
ExciteBlogもシンプルで気に入ってはいたのですが、シンタックスハイライトをするのが手間だったり、技術屋ははてながおおかったり、スマホ版で良からぬ広告出たり等々で、切り替えることに。。
過去記事もはてなブログへ移転したのですが、しばらくはエキサイトブログ側にも残しておきます。
ここ数年放置でしたが、気がつけば合計訪問者数7.6Mにもなっていました。自分の忘備録で始めたつもりですが、少しは他のエンジニアの役にも立ってのであれば幸いです。
ネタは山ほどあるんですが、継続できるかどうかは不明(笑)
# by Jehoshaphat | 2018-02-21 01:34
(.Net)フォルダ削除のDirectory.Delete(path, true)にやられた

.Netの System.IO.Directory.Delete(path, true) を使ってサブフォルダ・ファイルごと任意のディレクトリを削除しようとしたのですが、"アクセスが拒否されました" とIOException例外になります。


??ってなってたら、サブフォルダの一つが読み取り専用属性がついていました。
Directory.Deleteで削除しようとする場合、読み取り専用属性がついてると削除させてくれないようです。

対処法としては、一旦サブフォルダの読み取り専用属性を全てのけてから、Directory.Deleteメソッドを実行するしかなさそうですorz...
(VB.NET用のMy.Computer.FileSystem.DeleteDirectoryメソッドを使うと一気に消せるようですが。。)

読み取り専用ファイルがあるときでもフォルダを削除する: DOBON.NET Tips: C#, VB.NETに、一旦読み取り専用属性のけてから削除するサンプルコードがあるので、これを使わせてもらいました。

今まで.Netそこそこは触ってきたはずなのに、未だにこんな仕様で驚いている3流PGでした。。。
# by jehoshaphat | 2014-02-15 01:06 | .Net開発
(バッチ)メッセージボックスを表示したい
バッチファイル実行時に、ユーザに重要な情報を伝えたい時に、コマンドプロンプト画面内での表示ではインパクトが薄いのでメッセージボックスで表示したいと思いました。

以下のようにすれば、それが可能なようです。
echo "テストです" | msg 0

/w をつけると、OKボタンを押さないと次の処理に進まなくできるようです。
echo "OKボタンを押してください" | msg 0 /w


参考:
MSGコマンドを使ってコマンドプロンプトやバッチファイルからメッセージボックスを出す。
batファイルでメッセージを出す方法 これは一旦VBSファイルにリダイレクトする方法を使ってます
# by jehoshaphat | 2014-02-14 01:05 | VBScirpt,WSH,バッチ
(バッチ)32bitか64bitか判断する
バッチファイルで、今バッチを実行しているOSがx86(32bit)なのかx64(64bit)なのか判断したいと思いました。
で、ググると、バッチファイルで64ビットと32ビット違うコマンドを実行するにドンピシャな情報が。。

コピペですが、以下のバッチで判断できるようです。


@echo off
if "%PROCESSOR_ARCHITECTURE%" EQU "x86" (
echo "x86"
)
if "%PROCESSOR_ARCHITECTURE%" NEQ "x86" (
echo "x64"
)
pause

# by jehoshaphat | 2014-02-14 01:00 | VBScirpt,WSH,バッチ
VNXeのCIFS共有フォルダでフォルダ・ファイル操作ログを取る方法
EMCのエントリーストレージ VNXe3100 で、CIFS共有フォルダを使ってるんですが、ファイル操作ログを取る必要が出てきました。

Unishphereを見てもファイル操作ログを取るような設定がありません。
で、サポートの方に聞いてみたら、「CIFS共有フォルダでのEMC VNXeシステムの使用」ドキュメントの「Windows ツールによるVNXe CIFS共有フォルダストレージの管理」のページに説明があるとのことでした。


マニュアルは、VNXeサポートページにログインし、製品ごとのサポート→VNXe Series→ドキュメントからダウンロードできます。

マニュアルと見ると、Windowsの監査ログの機能を使って、ファイル操作ログが取れるようです。

通常のファイルアクセス監査ログを取る場合も、GPOかローカルグループポリシーエディタで監査機能を有効にする必要がありますが、VNXeも同様です。
今回は、GPOを使わずに設定することにしました。

その場合、Celerra DataMover セキュリティ設定スナップイン という拡張ソフト(拡張スナップイン)を入れる必要があるようです。

このソフトを探すのに苦労しました。
結局、ダウンロード→適当に製品選び→右側の 製品/サポート・ツール →検索窓に "cifs" で検索→ VNX File/CelerraCifsMgmt.exe をダウンロードできました。

32bit用なので、x86のWindowsにドメイン管理者権限で、インストールしてやる必要があります。


インストール後、mmc.exeを起動し、[ファイル]→[スナップインの追加と削除]→[追加]→[Data Mover Management]でスナップインを追加します。
コンソールルートに Data Mover Management が追加されているので、右クリック→[Connect to Data Mover...]で設定を行うVNXe上の共有フォルダサーバを指定します。


まずは、監査機能を有効にしてやる必要がるので、Data Mover Managementスナップインの、[Data Mover Security Setting]→[Audit Policy]を右クリックし、[Enabled auditing]にして、有効にします。(逆に無効にする場合は、[Disable auditing]にします)
後は、[Audit Policy]配下にあるどの監査を行うか設定します。
このあたりは、通常のグループポリシーで監査を行う場合と同じですね。英語なんでちょっとわかりにくいですが。。。
今回はファイルアクセス監査ログをとりたいので、[Audit object access]ポリシーで成功時、失敗時とも監査するようにしました。


後は、どのフォルダ・ファイルに対して監査するか設定します。
このあたりも通常のWindowsファイルサーバと同じで、フォルダのプロパティのセキュリティから、どのユーザで、どのアクションをした時にログに残すか設定します。
ただ、ファイル・フォルダ数が多いフォルダで、監査の設定をすると、反映するのに相当時間がかかりました。

監査ログは、コンピュータの管理スナップインを立ち上げ、VNXe上の共有フォルダサーバに接続し、セキュリティイベントログから確認できます。
イベントログのサイズ等も、通常のWindowsと同じようにセキュリティイベントログを選択し、プロパティから変更できます。

このイベントログの実体ファイル(security.evt)は、\\共有フォルダサーバ名\c$ 直下にあるようです。
実は,c$配下にはスナップショットデータもあったり,コンピュータの管理から、ログイン中のユーザや使用中のファイルがわかったりといろいろ面白い発見があります。

VNXeサービス情報を取得して中を見てると、Linuxを使っているようですが、このあたりのWindowsとの親和性が高いのも、安物のLinuxNASとは大違いですね。

参考:
ドメインコントローラでオブジェクトアクセス監査を有効にすると。。。
マイクロソフト サーバー製品の ログ監査ガイド 監査ログについてわかりやすく説明されています。
# by jehoshaphat | 2014-02-13 00:57 | サーバがらみ