Windowsのパフォーマンスモニターの設定エクスポート、インポート

Windows Serverを運用しているのであれば、トラブル時の調査に備え、
パフォーマンスモニターを設定しておくことがほぼ必須手順になる。
複数台を運用している場合、どのサーバーにも共通のモニターを設定することになる。

なので、取得するカウンター設定を丸ごとコピーしたくなる。
結論から言うと簡単にできるのだが、意外とネット上に情報が無かったのでメモする。

【エクスポート】
1. パフォーマンスモニターを開く。
2. エクスポートしたいデータコレクタセットを右クリックし、[テンプレートの保存]をクリックする。
3. 任意の場所に保存する。

【インポート】
1. 【エクスポート】で保存したファイルを任意の場所に設置する。
2. パフォーマンスモニターを開き、データコレクタセットを新規作成する。
3. [テンプレートから作成する]を選択し、[次へ]をクリックする。
4. [参照]をクリックし、先程設置したファイルを選択する。
5. 以下、ダイアログに従って設定する。

まぁなんも難しいところもないんだけど、
インポート時には「新規作成」から行うのが意外と盲点になってた。


Mac Miniが欲しい。新しいのでないかなぁ。

会社のお荷物になりつつあり結構鬱気味。
運動して気を晴らそう。

SharePoint Foundation 2013の「構成データベースの設定」で信頼できないドメインからのログインと言われる場合の対処法

先日、SharePoint Foundation 2013を構成している際に今までに見たことがないトラブルが発生した。
最終的に解決できたものの、理屈が不明のため、ここにとりあえずでメモしておく。


環境

  • ドメインサーバ
  • DBサーバ(SQL Server 2014)
  • APサーバ(SharePoint Foundation 2013)

現象

  • 「構成データベースの設定」で情報を入力し、「次へ」をクリックしても「サービスが実行中かご確認ください」というエラーメッセージが表示される
  • DBサーバのイベントログには「このログインは信頼されていないドメインからのログインなので、Windows 認証では使用できません」と表示されている
  • 勿論ログインしようとしているユーザー(設定画面で指定したユーザー)はSQL Severと同ドメインの、権限も有るアカウントである
  • FWを切っても状況は改善しない

参考:「構成データベースの設定」画面


解決方法

正しいドメインのユーザーなのに信頼できないドメインと言われ途方にくれていたが、
まさかの部分を修正して解決した。

APサーバーのhostsファイルにドメインサーバ、DBサーバ、APサーバの名前解決情報が入っていた。
ドメインに所属して同じDNSを用いている以上不要なのでこのhostsファイルの上記名前解決情報を削除したところ、問題が解決した。

理屈は全くわからないのだが、名前解決情報があるために一部ドメインを経由せず認証を行うような挙動になったのかな、と推測している。
再現性を取る時間もないので、とりあえず経験した事実だけ書き記しておこう。


そろそろ転職を考えなくちゃいけないかなぁ。
日々勉強、常に時代に追いつき、追い越さなくてはならない「技術者」には僕は成れない。
自分に見切りを付けてもいい時期かもしれないな。

基本情報技術者試験体験記

去年、会社で突然、基本情報技術者試験の取得が義務付けられた。

2016年10月、先輩の「こんなの何も対策しなくていい」という言葉を完全に鵜呑みにし、
本当に全く何も対策せず受験した結果、余裕で落ちた。

2017年4月、勉強しようと参考書を買ったものの、業務が忙しくなり結局一回も過去問すら見ないまま受験し、
午前59.5点という芸術的な点数を記録して落ちた。

正直、これ、業務的にも使うのかな?別にどうでもよくね?という感覚だったのだが、上司からかなりキツく叱られ、「受からないと来年の年俸は上げない」とまで言われたので、形振り構わず受かりに走ることにした。
結果として、2017年10月、やや裏道を使いながらも合格したので、そのときのことを徒然と書いていく。
正直、本職のSEやPG、IT関係者なら受かって当然の資格で、それに苦労したなんて自分の無能を証明するようなものなのだけど、まぁ、実際無能だし、いいだろう。


5月17日 不合格発表と金の力で午前免除を決意

前月の試験でまさかの午前不合格、そして上司の叱咤を目の当たりにし、次は流石に受からねばマズイ、という危機感を覚えた。
そして1時間考えて得た結論は「午前試験免除の通信講習を受けよう」であった。
これが前述した「やや裏道」である。

「午前に課題が有るのだから免除にしよう」という理由が主だが、それ以外にもう一つ理由があった。
正直、勉強から離れて久しいこの脳みそでは、午前午後合わせて5時間という試験時間に耐えきれないのだ。
なので、試験当日は午後の150分だけに集中できるようにしてやろう、という魂胆である。
もっとも、誤解なきように予め言っておくと、「午前試験免除の通信講座」はただ受講すればいいというものではない。
最終的にはIPAが作成した、午基本情報技術者午前試験と同難易度、同形式の試験に合格しなくてはならない。
受験機会というチャンスが増えるが、別に簡単になる訳では全くないのだ。

まとめると、午前免除のメリット(デメリット)は以下の通りである。

メリット

  • 午前合格の機会が増える
  • 免除試験~本試験迄の間、午後試験の対策のみに集中できる
  • 本試験日には午後試験のみに集中できる

デメリット

  • お金がかかる(27,000円程度)

5月23日 「独習ゼミ」に申し込み

「午前試験免除の通信講座」について、ネットで調べたがどうもどこも大差がないように思えた。
結局、通信系で検索で一番最初に出てきた「独習ゼミ」に申し込むことにした。
通信系にしたのは単純な話で、長野の田舎住みだから通いなどできるわけもないこと、そもそもする気もないことからだ。
費用は27,000円弱。これを高いと見るか安いと見るかは人それぞれだろう。
僕は自分が楽をすることに関してはお金を惜しまないダメ人間なので申し込んだ。

ちなみに、試験結果の発表~午前免除講座の申込期限まではほとんど時間がない。申し込むかは別にして、選択肢に入っているならすぐに調べておくことをお勧めする。
ちなみに午前免除の試験は2回あるのだが、俺は申込みの時期が遅く1回しか受験できないコースになってしまった。


5月26日 受講開始

テキストとe-Learningのログイン情報が届き、早速勉強を開始した。
・・・というのは嘘で、正直7月頃まではテキストを流し読む程度だった。

まず、e-Learningの方式だが、これは以下のようになっていた。

・勉強時間記録
勉強開始前に「勉強開始」ボタンをクリックする
クリック後、1時間立つと自動的に1時間勉強したとカウント、記録される。
合計69時間以上勉強時間を記録すると、免除試験条件①を満たす。

・各章テスト
まず、1~11章の各章テスト(ほぼ全て過去問題)を受ける。
全て合格すると、全章含んだ修了テストを受験することができる。
これに合格することで、免除試験条件②を満たす。
なお、章テストは大体問題数15問程度で、正答率80%以上で合格、
終了テストは50問で正答率75%で合格だった。
また、それぞれの試験には受験回数制限が設けられており、
この回数以上に受験はできない。
なので、ダメ元で無駄に受験することは絶対にしてはならない。

これで過去問題に相当当たれたので、それが良かったかもしれない。
ただ、受け取ったテキストだが、かなり詳しく書いてあり、
正直「とりあえずやってみよう」派の自分にはあまり合わなかった。
結局、下記の市販問題集を眺めてたまに解くのがメインのスタイルであった。

上記免除試験条件①②を期日までにクリアすると
免除試験の案内が送られ、受験可能となる。

平成28-29年度 基本情報技術者 試験によくでる問題集【午前】 (情報処理技術者試験)


7月23日 午前免除修了試験受験
上記の受験資格をクリアすると、試験一週間前あたりに受験案内が届く。
確か神楽坂あたりの受験会場だった。
本試験と同じように9:30~12:00、本試験と同じ形式、難易度の問題を解く。
特に特筆することはない。

ちなみに試験会場は東京と大阪しか選択肢がなかった。
長野からだと朝早いので、前日の夜から東京のカプセルホテルに泊まって備えていた。
東京駅付近だとファーストキャビンホント好き。


7月24日 午前免除修了試験結果発表
さすが民間というべきか、なんと試験翌日にメールで合否通知が来た。
結果、66/80(合格点48点)、100点換算だと単純計算で82.5点と結構余裕で合格できた。
何だかんだ、e-Learningのテストで過去問に触れまくったのが大きいのかなと思う。


8月~10月 午後試験対策
さて、そんな訳で後は午後試験の対策のみに集中できるようになり、気持ち的にかなり楽になった。
そもそも前回も午後は受かっている。
・・・のだが、いざちゃんと勉強すると、自分の理解度の低さに嫌気が差し、逆に不安になっていった。
不安を克服するため、1冊をやり込む方針で勉強した。
具体的には下記の過去問題集を前から順に説いていった。
最終的に全体では1週し、間違えた問題には△、理解不能だった問題には☓をつけ、
2週目は△と☓だけを解く、という風にしていた。

平成28-29年度 基本情報技術者 試験によくでる問題集【午後】 (情報処理技術者試験)

また、プログラミング言語は前回はJavaで受けたが、今回は形振り構わない方針だったので、
SEにあるまじき表計算を選択した。
下記のテキストを買ってはみたが、正直関数の一覧をちらっと見た程度。
それでも本番は全問正解だったので、Excelで帳票とかを作ったこと有る人ならプログラミング経験者でも表計算の方が楽だと思う。

改訂3版 基本情報技術者 らくらく突破 表計算 (情報処理技術者試験)

勉強時間的には正直あんまり。
平日は平均して1問やるかどうか。
休日は図書館に行って5問程度解く、みたいな感じだった。
正直、「図書館が人いっぱいだから今日は勉強できなくても仕方ないね!」という自己弁護をしたことも数え切れない。


10月15日 基本情報技術者試験受験

試験当日、長野の会場に新幹線で受験しに行った。
午後からなので、大分余裕を持って行けるのが嬉しい。
改めて午前免除のメリットを感じた。
ちなみに時間に余裕を持って出発したはずが、なんと開始時間を13:00のはずが13:30と勘違いしており、結果ギリギリの到着となった。
ちゃんと受験票を見直そう(アホ)。

試験は正直、失敗した。
緊張か何かわからんが、なんと必須問題のアルゴリズムを解き忘れていることに試験終了15分前に気が付いた。
めっちゃあわてて読んで、出来る限り回答した。
得点源で重要部分のここを忘れるとか意味わからんが、遅刻で気が動転していたのだと思う。
気をつけよう(アホ)。

11月15日 基本情報技術者試験結果発表

だけど、完全に忘れていた(アホ)。

12月1日 合格発表に気付く

「発表って12月のいつだっけ?」と受験票を見直すとなんと2週間以上前に発表されていたことに気が付く。
確認したところ、無事75点でギリギリ合格していた。
アルゴリズムは慌てたせいでほぼ全滅だったのだが、他の部分でなんとかカバーできた模様。
やっぱり実務経験あっても勉強しないとこの試験受からないわ、と改めて認識。


会社の人はほぼ全員持っている資格なので、これでようやく隠さないでよくなった。
実務には生きないと思うけどな。
色々IT系の問い合わせを受けるけど、
受かる前から「なんで基本情報持っている人に落ちた俺がDNSの説明しなくちゃいけないんだろう」とはよく思ったし。
試験と実務を結び付けられることも、1つの能力なのかしら。

計算式(文字列)の計算結果を出す方法

ユーザーに123+456みたいな計算式を入力させ、その結果を算出したい。
やろうと思えば、「+等の演算子でSplitして、各変数を格納して・・・」という感じでできるかもしれないが、
こんな操作、どうしても既存のメソッドがある気がしてならない。

調べてみたところ、色々な方法が見つかった。
私的に一番わかりやすいのはDataTable.Computeメソッドを使うというものだ。

こんな感じ。
DataTableが完全にただの傀儡でちょっと気持ち悪いが、一番短く、分かりやすくかける方法だと思う。
なお、DataTable自体は割かし重いので、繰り返し実行する場合はメモリ使用量やパフォーマンスに注意が必要。


アフィを入れてみたけど、アドブロックでちゃんと非表示になった。
優秀やなぁ。
bitFlyer ビットコインを始めるなら安心・安全な取引所で

Office Web Apps Serverでファイルを開くとエラーになってしまうときの対処法

現在、SharePoint Foundation 2013を用いたシステムを運用している。
Excelブック等のOfficeファイルを今時風にブラウザ上で閲覧、編集したいという要望が出てきた。
確かにSharePoint Onlineでできるのだから、Foundationでもできそうである。

調査したところ、Office Web Apps Serverを別途立てればできるということが分かった。
Office Web Apps サーバーの概要

ボリュームライセンスが要るので、個人ではまず無理だと思う。
幸いこの会社ではライセンスを持っていたので、Office Web Apps Serverを立て、ブラウザ上での閲覧、編集ができることを確認した。

しかし、運用して数ヶ月、突然「ブラウザーで閲覧」をするとエラーが発生するようになった。
エラー画面は
「’/x’ アプリケーションでサーバーエラーが発生しました。」
で以下、ランタイムエラーである旨が記述されている。

イベントログを見たが、SharePoint Server側には特にエラーはなかった。
が、Office Web Apps Server側にはアクセス毎にエラーログが出力されていた。
詳細な内容は割愛するが、「ファイルが見つかりません」というもの。

Office Web Apps Server自体、かなり資料が少なく、調査に難航したが、
何とか解決できた。
なお、既に数回この現象には遭遇しており、それぞれの対処法を記述する。

・再バインドする

調査したところ「Office Web Apps Serverを再インストールすればいい」という回答があった。
Web Apps Server ASP .NET error code 3005 event ID 1309 same key already added
しかし、今回、問題のOffice Web Apps Serverと連携している別のSharePoint Serverがあり、こちらは問題なく動作していた。
よって、これはOffice Web Apps Server側ではなく、SharePoint Server側に問題があると思われ、この回答は当てにならなかった。

さらに回答を辿ると、再バインドでも解消する場合があるという記載があった。
これに従い、以下のコマンドをSharePoint管理シェルから実行して再バインドを行った。
なお、Office Web Apps Serverを「OWA-Server.company.com」とし、SSL通信を前提とする。

なんと、これだけで解消した。
どんだけ不安定なソフトウェアなんだ。。。

・FWで弾かれている

上記対応から数日後、また再発したが、今度は上記の方法では解消しなかった。
途方に暮れていると、ネットワーク管理者がFWの設定を変更したとの情報が。
確認したところ、SharePoint Serverへのアクセスを特定部署のIPのみに制限していた。
一見問題なさそうなのだが、その結果、Office Web Apps ServerからSharePoint Serverへのアクセスができなくなり、
「ファイルが見つかりません」エラーが発生していた。

Office Web Apps ServerからSharePoint Serverへの443ポートを開放してもらい、問題は無事解決した。


MS製品の情報は少ないものもあり、あまり仕事という責任が伴う場では使いたくないのが正直なところ。
責任がなければ、色々実験できて楽しいんだけど。

IEのイントラネット識別方法

Internet Explorerでは、現在アクセスしているページが
以下のように4種類に分類される。

* インターネット
* ローカルイントラネット
* 信頼済みサイト
* 制限付きサイト

「信頼済みサイト」は手動で任意のサイトを登録して初めて分類される。
例えば、ある程度権限が無いと上手く動作しないサイトでは
ユーザーに予め登録をお願いし、セキュリティを弱くすることでサイトが正常に動作するようにすることができる。
「制限付きサイト」はその逆と考えて差し支えない(業務上、今まで使たことは無いが)。

ただ、そんなセキュリティを弱くしないといけないほどのシステムなんて、大抵は社内イントラネットだ。
なので、普通ならは信頼済みサイトへの登録なんてせずとも、自動でローカルイントラネットに識別され、システムは問題なく動作する。
(デフォルトでは「ローカルイントラネット」の方が「信頼済みサイト」よりセキュリティが弱く設定されている)

・・・と思っていたが、色んな会社を回っていると、どうもそうとも限らないらしい。
社内システムの筈なのに、IE上は「インターネット」に分類されている場合がある。
そこで、この分類され方について調べてみた。

何とこれ、実際にイントラネットかは全く判定していなかった。
URLに.(ドット)が入っていない場合は「ローカルイントラネット」、入っている場合は「インターネット」を分類しているに過ぎなかった。
FQDN または IP アドレスを使用すると、イントラネット サイトがインターネット サイトとして判別される

だから、社内システムでもURLが「http://CompanySystem.com」みたいになっている場合は「インターネット」識別になっていたのだ。
極端な話、hostsファイルを弄って「http://google」で「http://google.com」にアクセスするように設定去れば、
Googleのページすら「ローカルイントラネット」判定される。

いくら何でも雑な分類すぎませんかね。。。
まぁ、もうIEも消えてゆくはずだし、いいか。

複数のWordファイルを一括でPDF化する

仕様書やマニュアルをWordで作成した後、納品用にPDF化、時刻設定を行う。
段々と1製品に対するマニュアル数が増えてきており、手作業が面倒になったので、
一括で全部の操作を行えるようにプログラムを作成した。
作成したというより、下のページのほぼ丸写しではある。
C#でWordファイルをPDFに変換する

予め、

  • Wordがインストールされていること
  • [COM]-[Microsoft Word 15.0 Object Library]の参照追加が必要。

であることに注意。
なお、Word2010なら14.0、2013なら15.0、2016なら16.0である。

いやー、びっくりするぐらい書くことがない。
怠惰な毎日を過ごした結果、技術ネタも尽きている。

Windows Server(Core)でエクスプローラを使う方法

Windows Serverは基本的にGUIがついているが、
Windows Server(Core)や、Hyper-V Server等、CUIしかないものも存在する。

これらはサイズも軽く、負荷も少ない(多分)という面で便利なのだが、
エクスプローラもないため、ちょっとしたファイルコピー、フォルダ権限付けを行いたいときもイチイチコマンドで行わなくてはならない。
共有フォルダなら外部のエクスプローラからアクセスすればよいが、そうでないとやはりコマンドでの実行になってしまう。正直、ちょっとした作業なのに一々コマンドを打つのも面倒だ。

ややハック的だが、Coreサーバーでもエクスプローラ(的)なものを使う方法がある。

1. コマンドプロンプトでnotepadと入力し、Enterを押下する
2. メモ帳が起動するので、「ファイル」の「開く」をクリックする
3. このダイアログ上でエクスプローラとほぼ同等の操作ができる

ちょっとした操作ならこの方がミスも少ないと思う。
ネットワークの共有フォルダを見たい場合は「ファイル名」の部分に「\\<アドレス>」を入力すればアクセス可能だ。
ex)\\TEST_Server

僕はcopyコマンドでコピー元とコピー先と間違える阿呆なので、この方法をよく使う。

IISRESETを行うbatが動かない・・・と思ったら(2017年初投稿)

本当に更新を定期的に実行するのは難しい。
今日は多分、今まででも1,2を争うレベルのくだらないミス。


WindowsでWebサーバーを構築する場合、
一般的にはIIS(インターネットインフォメーションサービス)を利用すると思う。
そして、キャッシュの開放や、IISで実行するコンポーネントを変更した場合には、IISを再起動するケースは多々ある。

IISの再起動は大変容易で、コマンドプロンプト(管理者権限)で
IISRESET
と入力し、Enterを押下するだけでよい。

夜間、定期的にIIS再起動行うするために、IIS再起動batを作成した。

間違えるような要素もないので、まず問題ないだろうと思っていた。
しかし、このbat、実行すると思うような動作をしてくれない。
下記のようになってしまう。

何故上手く実行されないか悩んでいたが、原因は単純だった。
ファイル名を「IISRESET.bat」にしていることが問題だった。
IISRESETにより、「IIS再起動」ではなく「IISRESET.bat」が再帰され、無限ループになっていた。

なので、「IISRESET実行.bat」とか、適当な名前に変更し、問題は解消した。


気付きそうで気付かないことろでした。これで1時間ぐらい悩んでしまった。。。

SmtpClientをSSL有効でメール送信する場合の注意点

SmtpClientクラスを用いて、メールを送信するプログラムがあるのだが、
どうもgmailをホストに指定した場合に動作しない。
設定値は以下の通り。

最初は何かしら設定が間違っているのだろうと思ったが、
下記のVBScriptでは問題なく送信ができる。
なので、設定値に間違いはなく、C#コードのコーディングミスと判断し、調査していた。

しかし、どうもミスらしき場所が見つからない。
エラーも「送信できませんでした」以上のことがでず、八方ふさがりとなった。

色々調べて、以下で解決した。

・ポートを465でなく587を用いる。

つまり、18行目あたりを以下のように修正し、問題は解消した。

どうやらこれは.NETの仕様で、
SmtpClientクラスはポート465をサポートしていないのだ。

SmtpClient.EnableSsl プロパティ
How can I send emails through SSL SMTP with the .NET Framework?

言われれば「なんだぁ」だが、VBScriptで送信できたことで、設定値を疑うことが遅れてしまった。
こういうことがあるから、MSDNはよく確認しなくては。