](.Net)ターミナルサーバでユーザのプロセスのメモリ使用量を取りたい。IOException例外になります。??ってなってたら、サブフォルダの一つが読み取り専用属性がついていました。Directory.Deleteで削除しようとする場合、読み取り専用属性がついてると削除させてくれないようです。対処法としては、一旦サブフォルダの読み取り専用属性を全てのけてから、Directory.Deleteメソッドを実行するしかなさそうですorz...(VB.NET用のMy.Computer.FileSystem.DeleteDirectoryメソッドを使うと一気に消せるようですが。VB.NETに、一旦読み取り専用属性のけてから削除するサンプルコードがあるので、これを使わせてもらいました。今まで.Netそこそこは触ってきたはずなのに、未だにこんな仕様で驚いている3流PGでした。.Net開発(バッチ)メッセージボックスを表示したいバッチファイル実行時に、ユーザに重要な情報を伝えたい時に、コマンドプロンプト画面内での表示ではインパクトが薄いのでメッセージボックスで表示したいと思いました。以下のようにすれば、それが可能なようです。つけると、OKボタンを押さないと次の処理に進まなくできるようです。/w参考:MSGコマンドを使ってコマンドプロンプトやバッチファイルからメッセージボックスを出す。VBScirpt,WSH,バッチ(バッチ)32bitか64bitか判断するバッチファイルで、今バッチを実行しているOSがx86(32bit)なのかx64(64bit)なのか判断したいと思いました。ググると、バッチファイルで64ビットと32ビット違うコマンドを実行するにドンピシャな情報が。コピペですが、以下のバッチで判断できるようです。CIFS共有フォルダを使ってるんですが、ファイル操作ログを取る必要が出てきました。Unishphereを見てもファイル操作ログを取るような設定がありません。CIFS共有フォルダストレージの管理」のページに説明があるとのことでした。Series→ドキュメントからダウンロードできます。マニュアルと見ると、Windowsの監査ログの機能を使って、ファイル操作ログが取れるようです。通常のファイルアクセス監査ログを取る場合も、GPOかローカルグループポリシーエディタで監査機能を有効にする必要がありますが、VNXeも同様です。今回は、GPOを使わずに設定することにしました。いう拡張ソフト(拡張スナップイン)を入れる必要があるようです。このソフトを探すのに苦労しました。ダウンロードできました。32bit用なので、x86のWindowsにドメイン管理者権限で、インストールしてやる必要があります。Management]でスナップインを追加します。Mover...]で設定を行うVNXe上の共有フォルダサーバを指定します。auditing]にして、有効にします。Policy]配下にあるどの監査を行うか設定します。このあたりは、通常のグループポリシーで監査を行う場合と同じですね。英語なんでちょっとわかりにくいですが。access]ポリシーで成功時、失敗時とも監査するようにしました。後は、どのフォルダ・ファイルに対して監査するか設定します。このあたりも通常のWindowsファイルサーバと同じで、フォルダのプロパティのセキュリティから、どのユーザで、どのアクションをした時にログに残すか設定します。ファイル・フォルダ数が多いフォルダで、監査の設定をすると、反映するのに相当時間がかかりました。監査ログは、コンピュータの管理スナップインを立ち上げ、VNXe上の共有フォルダサーバに接続し、セキュリティイベントログから確認できます。イベントログのサイズ等も、通常のWindowsと同じようにセキュリティイベントログを選択し、プロパティから変更できます。実は,c$配下にはスナップショットデータもあったり,コンピュータの管理から、ログイン中のユーザや使用中のファイルがわかったりといろいろ面白い発見があります。VNXeサービス情報を取得して中を見てると、Linuxを使っているようですが、このあたりのWindowsとの親和性が高いのも、安物のLinuxNASとは大違いですね。参考:ドメインコントローラでオブジェクトアクセス監査を有効にすると。監査ログについてわかりやすく説明されています。サーバがらみ(.Net)任意のプロセスのCPU使用率を出すコード任意のプロセスのCPU使用率を求めたいと思ってググっていたらVisualStudioフォーラム:複数のプロセス毎のCPU使用率同時取得にドンピシャな答えがありました。CPU使用率を求めたい時はこうなります。mSystemProcessNameで、プロセスイメージ名(拡張子は無し)を指定します。このPGでは指定したプロセスのCPU使用率しか求めれないため、全プロセスのCPU使用率を知りたい時は、一旦全プロセスイメージ名を取得して、それぞれ別スレッドでこのコードを動かすみたいな作りになろうかと思います。C++の場合はこの方法でプロセスのCPU使用率も取れるようです。.Net開発(.Net)ターミナルサーバでユーザのプロセスのメモリ使用量を取りたい。WindowsServer2003上でターミナルサーバを運用してますが、どうやらメモリを使いすぎているユーザがいるようです。それで、数日間どのユーザがどのプロセスでメモリを使いすぎているのか経過調査を行うことにしました。当初はパフォーマンスログで取ろうかなと思っていたんですが、パフォーマンスログではそのプロセスを使っているのがどのユーザなのかがわかりません。現在のプロセス情報を取得し、ユーザと紐付けてCSVに落とすアプリケーションを作ることにしました。それをOSのタスクスケジューラーに仕込んで、一定間隔で動かす運用です。CSVには全プロセスの情報と、ユーザ単位でメモリ使用量を集計した情報を別々に出力します。取れるんですが、そのプロセスがどのユーザがオーナーとなっているかがわかりません。使った方法を取ることにしました。コードしては以下のような感じです。文字数制限のためハイライトはOFFです。//ユーザとプロセスIDを取得。//CPU使用率(未実装。//重複除去を第二引数に指定。第三引数で一意とすべき列を指定。以下のような構成にしてます。:System.Decimal実際に動かすと、WMIを使ってプロセスとユーザ情報を取得する部分が非常に時間がかかります。60ユーザくらいで800-900くらいのプロセスが動いている状態で、数分はかかります。この部分、CPUも結構食うようで1コア専有しちゃうんですよね。WMI以外にユーザとプロセスの情報を取る方法が知りたいと思う今日この頃です。Calc使ってるんですが、あるCalcファイルでセルの中の文字列に対しコンテキストメニューを表示してコピー等の操作を使用とすると、以下のようにOpenOfficeが落ちてしまいます。(他のファイルはなりません)エラーの内容を見ると、以下のようになっていました。4:0ac86277dbf5578e8739d3cec49def4eどうやら、スペルチェックのDLLがクラッシュしているようです。確かに、セルの中は日本語文字列なんですが、ほとんどの単語でスペルミスを表す赤線が表示されています。ここは普通、空白になっていてはいけない項目です。ファイルが壊れて、空白になっていたようです。ここを日本語に設定することでスペルミスはなくなり、エラーは発生しなくなりました。OpenOffice(正規表現)任意の文字が含まれる行を削除する方法ログファイル等で、任意の文字を含まない行を抽出する必要があります。「正常」が入っている行は削除し、それ以外の行を知りたい場合です。その場合、正規表現を使った検索/置換ができるテキストエディタがあれば容易に抽出ができます。検索に以下のように指定し、置換文字列をなしにすればOKです。再起動後ログオンする時などに相当不便です。スクリーンキーボード等も試して見ましたがダメでした。調査した結果、グループポリシーの設定変更で対応できることがわかりました。設定するのは、以下のグループポリシーです。Sequenceを無効または有効にする」を開き「有効」を選択。Sequenceの生成が許可されるソフトウェアの設定」で一覧より「サービス」を選択。Vista以降セキュリティ強化の一環で、ログオン処理が見直されたようです。Sequence)を、ソフトウェアから行うことができるようになる仕掛けのようですね。Windowsのログオン処理ちょっと調べたら結構興味深いです。Authentication)という機能があって、ここでもいろいろできてたようです。詳しくは参考リンク参照。起動すると、インストーラウィザードが立ち上がり以下のようなエラーが表示されました。インストールするのに必要なファイルが見つかりません。インストーラはインストールを継続できません。機能の追加中にエラー1706が発生する現象についてという情報があったんで試したんですが、解決しませんでした。考えたらこのユーザはAdministratorsグループに属しているので、上記のサポート情報は関係ありません。試しに、Access2000を先に起動して見ました。使用者情報を入れるダイアログがあったので、そこで情報を入れてからAccessを終了し、Excelを起動したらエラーが出なくなりました。Access2000側に使用者情報が入ってなかったことが原因だったようです。情シスで何でも屋の三流プログラマのコーディング、サーバ管理、PC生活関係のメモ書き。このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。28検索カテゴリ全体Linuxサーバがらみ.Net開発PHP開発C/C++開発JavaSQLツール思ったこととかニュースとか。メッセージを入力してください。