自宅システム管理者って楽しいの?

楽しいよ、誰にもネゴせずに自由に設定変更できるし、
文句も言われないし・・・。


設備投資や労働力は自腹ですけど・・・。


まぁ、楽しいといえば楽しいよな~仕事でやると時間と品質の両方を求められるけど、自宅なら時間の許す限り、品質も納得いくレベルまで頑張れるもんね。


誰も褒めてくれないし、ボーナスなんて存在しないけど~~


ってことで、脆弱性の対策を行ったMovable Type 6.0.1へのバージョンアップや、20%も高速化したらしいZenbackのスクリプトに入れ替えを行ったりと、ホスティングサーバー上のメンテナンスを行ったり、自宅パソコンのWindows8.1化やドライバーのアップデート、不具合の解消などいろいろ管理者業務をやってるわけですよ。


これが本職になると無知な人が無責任にパソコンの入れ替えを行って、新しいパソコンで業務ができることを確認せずに古いパソコンを処分して路頭に迷って連絡して来たり、サポートも切れた古い周辺機器やソフトウェアを使いたいから動くようにしてと依頼して来たりと、まぁ、自由気ままな相手の機嫌を取りつつ、二度とこのような過ちを犯さないように注意をして、要望に可能な限りこたえてと、ストレスがたまることもありますよ。これも楽しかったりするんですけどね。


みんなにも言っておくけど、最近のパソコンはWindowsが64bit版になっているので、ちゃんとドライバーを確認しておこうね!!ってこと。そこんところ確認しておかないと、印刷ができないだとか、周辺機器が動かないとか、パソコンだけを新調するつもりが、すべての周辺機器も買い替えるってことになりかねない。


まぁ、それはそれでうれしい悲鳴というか、自宅システム管理者の楽しみだったりするのですが、ボランティアで知人をサポートするほど面倒な仕事はない。対応していないから買い替えてね!!って言ったら絶対に嫌味言われるし・・・



結局ね。


自宅システム管理者は、いろいろ仕事があるけれど、楽しいってこと。
トラブル解決の達成感って素晴らしいよ!!




Webパーツよ、もっと目立て!!

久々ですね。相変わらずSharePoint2010が対象です。
SharePoint2007を使ったことがあるユーザーが2010を見ると色のメリハリがなく見難くなったとのご意見をよくいただきます。2013になったらもっと色は薄いですよ~って見せると、フォントサイズと余白のメリハリがしっかりしていて意外と好評。


ってことで、SharePoint 2010の画面を見やすくするためのチョイカスタマイズを紹介します。今回はWebパーツのタイトル部分の背景に色を付けてパーツの始まりを目立つようにしたいと思います。


結構ありふれたカスタマイズなので、一工夫して設定したテーマに合わせて色が変わるようにしてみました。方法はいろいろあると思うけど、パッと見のわかりやすさということで、jQueryを使っています。


<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
_spBodyOnLoadFunctionNames.push("getbgcolor");
function getbgcolor(){
var color = jQuery('div.s4-title').css('background-color');
jQuery('TR.ms-WPHeader').css('backgroundColor',color);
};
</script>

とりあえず、採用したい色を設定しているタグを探し、背景色を取得することから始めます。取得する方法はいくつかあると思うのですが、s4-titleクラスから取得することにしました。
次に取得した色をタイトルのセルを含むテーブルの行の背景 tr.ms-WPHeaderに設定します。


最後に適当な場所にコンテンツエディタWebパーツを設置し、このスクリプトを入力すればOK。


これで設置後にテーマを変更されても大丈夫ですね!!


Webパーツに影を付けたらかっこいいかも!!とか思ってるのですが、これについてはもうちょっと研究が必要なようです。



訂正!!データソース名変更は簡単だった!!

先日、MRTGで作成するRRDTool形式のファイルのデータソース名を変更すのは、一度XMLに変換して編集する必要があると投稿しましたが、rrdtuneの存在をすっかり忘れていました。
めったに使うことがないコマンドなので申し訳ない。


rrdtool.exe tune filename --data-source-rename old-name:new-name

これで簡単にできます。


RRDToolからCactiにトラフィックデータを変換する場合は、ds0をtraffic_in、ds1をtraffic_outに変換してすればいいから次のコマンドでOK。


rrdtool.exe tune filename --data-source-rename ds0:traffic_in -r ds1:traffic_out

 このコマンドをBATファイルにしておけば、簡単に変換できるね


これさえあれば、ファイル名を変更して上書きする作業も入れても十数秒なので、5分間隔の取得処理の間にやるにしてもかなり余裕のある作業ですね。



RRDToolからCactiへ

MRTG+RRDTool+14all.cgiからCactiへ移行する場合、何も考えずに作業すると、データを含めゼロからの再スタートとなります。


CactiはRRDToolを使うといっても、データ取得のための設定はMRTGとは異なります。
だって、Net-SNMPを使ってデータを取得してRRDToolを使って保存しますからね。


そういうわけで、設定ファイルは作り直す必要があります。
でもね、データ自体はRRDTool形式のファイルなんですよ。
だから、今までのデータをそのまま移行さすことは不可能ではない!!はず。


 


とりあえず、やってみましょう



  1. Cactiで依然と同じ情報を取得できるように設定しグラフが生成できることを確認

  2. MRTG+RRDToolのrrdファイルをCactiの設定に合わせる作業を行う。

    • rrdtool dump filename.rrd filename.xml

    • xmlファイルをテキストエディタで開き、データソース名(ds-name)をCactiに合わせて変更
      ds-nameはMRTGを使っていればDS0とDS1ですね。

    • rrdtool restore filename.xml newfilename.rrd



  3. Cactiのrrdファイルを前項で作成したrrdファイルで上書きします。


この作業をrrdファイル分すべてを実施し、5分間のポーリングの間に実施すれば、データの欠落もなく、移行することができます。


まぁ、数が多いと移行作業も大変だろうけど、この手のデータは過去と比較して異常を察知するものなので、やる価値はありますね。


 


実は、もう一つ方法があって、Cactiのデータソーステンプレートを編集してds-nameをMRTGのDS0とDS1に合わせてしまうという方法。この方法だと、ファイルの上書きだけで移行できますよ。



IIS8でRRDTool

時代はWindows Server 2012ですよ。半年もすれば2012R2でIIS8.5になるらしいですけど、まぁ、ここはIIS8でいいや。


気を付けることは、Active Perlの5.10を入手すること。
Perlは32bit版。RRDsが32bit版なので合わせる必要がある。


RRDToolはできれば最新の!!って言いたいけど、Windows版は1.2.30が最新みたい。
まぁ、ここは仕方がないよね。


色々と設定は必要だけど、ほとんどIIS7.5と一緒。
気を付ける必要があるのはアプリケーション プールの詳細設定で32ビットアプリケーションの有効化をTrueに変更すること。
これさえ忘れなければOK。


ActivePerlの5.10さえ入手できれば問題ないってことだね。


?


それにしても、Network系のお仕事をするうえで、Linuxを禁止されているとこういうツールを使うときにつらいよなぁ~優れたツールが無償で利用できるのにね!!Syslog Serverとか・・・



メールの延長

NotesからSharePointへの移行において、大変だよね~といわれるのが、ワークスペース上のアイコンとか未既読の扱い。


未既読。


ユーザー視点で一番目につく最も困るのが未読数と未既読表示だと思います。


Notesではワークスペース上のアイコンに未読数が表示され、どのアイコンを開くべきなのかが一目瞭然。掲示板を開けば未読文書は赤く表示されるので、読むべき文書も一発で分かります。


この未既読機能を中心に業務を行っているといっても過言ではないでしょう。この未既読がないSharePointに移行した時、ユーザーは口をそろえて新しい、更新された文書がどれかわからないと言います。メール通知やOutlook連携など作成や更新の情報を受け取ることができる機能はありますが、Notesのシンプルさはありません。


SharePointを推進する立場からすると、どうにかして乗り越えたい課題です。
どうすれば乗り越えられるのか?


Notesの脅威ともいえる未既読ですが、いくつかの問題を抱えていると考えています。


まず、編集によって未読になるってこと。
普通の編集は便利なんですよ。以前確認した文書が編集されたことを気が付けるので、情報の取得漏れがないんです。でもね、文書の有効期限の変更や非表示項目の変更、何も変更せずに保存したとかでも未読に切り替わるんです。これらの変更はユーザーには一切関係なく、改めて読むものじゃない。作業依頼の文書だったりしたら、その作業を再実施してしまうユーザーもいます。そして問い合わせが来る。未読表示の悪い点です。


次に、メールと掲示板の役割が明確になっていない。
本来、相手に伝えたいことはメールで確実に伝えるべきだと思うのですが、未読表示を使うことで、メールを使わなくても、相手に伝えることができるのです。(はい、便利です)
伝える相手が1人ならメール、複数なら掲示板という感じになります。
掲示板を使うと同時に通知も完了するので、掲示板を使ってすべての情報をNotesに集めようよ!!ってのが簡単に実現できます。それ自体はグループウェアの目的であり問題ないのですが、あまりにも掲示板が便利すぎて、メールで通知すべき内容が掲示板に記載されることが多いのです。
ず~っと使っているユーザーはさほど問題ないのですが、新規ユーザーは有効期限の切れた情報も未読になっており、過去の経緯なんて要らないのに読んでしまいます。そして、過去の間違った情報をもとに行動してしまう可能性もあるのです。


?


Notesを使っていくってのは、ユーザーは未読数を0にすることが仕事で、それがメールだろうが掲示板だろうが何でもよくて、未読文書を読んで仕事をして未読数が0になると仕事が終わる。そういう仕事の仕方を永遠に続けていくってことなんだよ~


今見る必要がない情報だってたくさんあるはず。未既読に依存するってことは、届いたメールはすべて、スパムメールも内容も確認していますってのに似ているんじゃないかと。


情報の伝達と蓄積を分けることができたら、うまく乗り越えられるんじゃないかと思ってます。
どうやって説明し、実現するか。まだ答えは見つかっていないですけど・・・


?


補足:未既読に依存する事が問題では?との仮説であって、Notesがダメってことではありません。



1000ユーザーの役職情報削除の補足

書き忘れたので補足。


PowerShellでActiveDirectoryを操作するとき、
ActiveDirectoryサーバー上で操作する必要はありません。


ActiveDirectoryに参加しているクライアントでOKです。
もちろん、編集など特別な権限が必要な操作は
その権限を持ったユーザーで操作する必要はありますが、
基本はリモート操作です。


あと、 ActiveDirectoryモジュールが必要なので、
リモートサーバー管理ツール(RSAT)をインストールする必要があります。
クライアントOSにあった適切なRSATをMicrosoft Downloadセンターから入手してくださいね。


RSATは参照目的でも便利なのでサーバー管理者は入れておくことをお勧めします。



1000ユーザーの役職情報を削除しなさい

ActiveDirectoryを管理していると、「1,000ユーザーの役職情報を削除しなさい」なんてオーダーが出る可能性はある。
理由は何でもいい。似たような状況に置かれたと考えてほしい。


Q.急いでいるんだけど、いつまでに完了できる?
A.ん~~1ユーザー30秒かからないとして500分程度。大体8時間
 ちょっと残業すれば今日中に終わると思います。


これ、あなたの答えですか?
先日までは私の答えもこれだったかもしれません。


でも、今の私なら、「それなら30分くらいもらえれば終わります」(余裕)
なぜなら私にはPowerShellという武器があるから。


まぁ、以前から便利なのは知ってたんですけどね、使う機会がなくてスクリプトとしては使っていなかったんですよ。やっても「Export-SPWeb」みたいな単発の命令ばっかりで~


じゃぁ、スクリプトっぽくいくよ~


Import-Module ActiveDirectory
$users = Get-ADUser -Filter *
ForEarch($user in $users)
{
Set-ADUser -Identity $user -Clear Title
}

あとはActiveDirectoryを編集できる権限で実行するだけ。
5分で書いて1分実行。
ついでに確認用のコマンドをちょっと打って


まぁ、20分は忙しそうなふりして遊びましょうか?


本当に動かすときは、編集対象に問題がないかとか、ちゃんと編集できた確認とか
やるべきことは色々あるけど、たった6行・・・
いや、最小限でいよく


Import-Module ActiveDirectory
Get-ADUser -Filter * | Set-ADUser -Clear Title

2行で終わるかも・・・
つぶしてもいい環境だったらこれでいいよね。


PowerShellの何がすごいかって、
今までの方法だと、サーバーに接続して・・・って言語すらまともに使えないのに~
って感じだったのが、それぞれのコマンドが勝手に必要な手順をこなしてくれるんですよね。
スクリプトやプログラム言語でActiveDirectoryからユーザー一覧を取得する。
これだけでも結構な行数のプログラムを書かなければならなかった?わけなんですが、
Get-ADuser -Filter *
この一行でActiveDirectoryサーバに接続して、取得して、出力するんですよ。


?


私が言いたいことは、8時間GUIで作業している管理者に
ちょっとした学習時間を確保することでその作業が30分程度に削減できるってことを知ってもらいたいだけ。



注意:このページのスクリプト、コマンドは動作確認を行っておりません。
あくまでイメージですので、動かないからと言って文句を言わないようにお願いします。



セキュリティーを考える「ユーザー認証」

クラウドサービスもいいけど、オンプレミスを公開するパターンもなかなか・・・。
クラウドサービスを使うにしても認証を社内Active Directory とパスワードを合わせたいなどと要求を出すと、どうしても、オンプレミスのサーバーを公開する必要が出てくる。


そういう時、どうやってセキュリティーを高めるのか考えてみる。


ユーザー認証の強化の方法


IDを複雑にするのは運用上問題が多いので、パスワードを強力にするしかないけど現実は難しい。


「大文字、小文字、数字、記号の4種類を使って8文字以上かつ、誕生日、住所、電話番号、家族の名前、家族の生年月日、記念日に関連する情報は使ってはならない。パスワード変更の履歴は5個、同じパスワードを連続して設定できない。パスワードの有効期限は3か月」なんてルールを強制されたら、付箋とかノートにメモするよなぁ~


ワンタイムパスワードや乱数表を使うってのはパスワードをユーザーが覚えなくてよいメリットはあるけど、カードなどの管理や持ち運ぶのが面倒。10個のサービスすべてがワンタイムパスワードを採用して、カードを10枚持ち歩くなんて嫌だよね。


スマートカード、対応機器限られてるし~盗まれたらどうするの?4桁数字のPINなんて・・・


生体認証・・・機械どうするの!!一度複製されたら使えないよね~


などと、複雑化すると問題が出てくるので運用に耐えられない。
個人的には5文字以上で有効期限は40日とかでいいんじゃないかと思う。


銀行とかで使われている数字4桁なんて、だれかの誕生日に設定しろ!!と指示しているのと一緒だよね。それがダメというなら01**~12**、**01~**31の範囲くらいは設定できないようにしとけよ~って思う。なんで5桁にしなかったんだろう?と思う。5桁ならとりあえず誕生日+一文字とかにするので簡単に推測しにくく出来るのにね~~


有効期限も1か月単位で変更しにくいように微妙にずらすとか・・・


0401(mmdd)
130401(yymmdd)
20130401(yyyymmdd)


このパターンを設定しにくいルールを決めれば、それなりの強度を保てると思うんですけどね


パスワードのヒントもやめてほしいよなぁ~「初めて就職した時の初めての上司」??誰だよそれ~



ADFSの名前は一つ!!


ADFSって何?って聞かれそうですが・・・

本来、社内ネットワークに設置される、コンピューターの認証基盤Active Directoryを社外のサーバーでも利用するための仕組みってとこですか?

Office365 とかクラウドサービスを社内のID、パスワードを全く一緒にして利用しようという仕組みです。これがなかったら、同じIDを設定していても、パスワードは別。ユーザーは同じIDを使っていながら、接続相手によって違うパスワードを入力する必要がある状態になります。(別のIDを使うなら大した問題ではありませんが・・・)

どうやってパスワードを使うかというと、認証時にADFS経由でActive Directory認証を行うんですよ。

ってことで、このADFSを使うということは、AD DSは当然ですが、ADFSサーバが停止するとOffice365が利用できないのです。

だから冗長構成を必ず取る必要があるんですね。そして、セキュリティーを高めるために、ADFS Proxyを設置して、これも冗長化。
とにかく、止めない。止まらない構成を構築する必要があるんです。なにせクラウドサービスは基本無停止だから。

でね、このADFSサーバー群なんですけど、もちろん個々のサーバーはそれぞれ別の名前があるんですけど、ADFSサービスとしては一つの名前で動作するんです。当たり前?いやいや、普通じゃないかもしれないけど、内部サーバーと外部公開サーバーは違う名前使うよね。え?一緒?
参照するDNSによって違うゾーンのサーバーを名前解決されるのって気持ち悪くない?ADFS Proxyは自分と同じ名前の内部ネットワークのADFSサーバーと通信するとき困るじゃん!!と思ってしまいましたが、全部同じ名前なんです。

社内のADFSも社外のADFS Proxyも同じ「https://adfs.contoso.com」でアクセスするんです。

もちろん社外のADFS Proxyがユーザーの代理アクセスする社内のADFSに対しても「https://adfs.contoso.com」でアクセスするんだよ。

これって面白いよね。

ちなみにADFS Proxyサーバはhostsファイルに社内のADFSのIPアドレスを記述している。

hostsファイルなんて、使わずにDNSで解決すべき!!なんて思っているのですが、「あぁ、こういう使い方もありなんだ~」と。

今日言いたいのは、「Active Directory Federation Servicesは、たくさんサーバーが必要だけど、FQDNは一つ!!」ってことです。


クラウドを使うためには・・・

最近Office365導入に向けた検証を本格的にやり、Active Directory Federation Services や Active Directory同期、Exchange Serverのハイブリッド構成の構築を行っていて感じること。


オンプレミス状態では考えられないほど、インターネット公開すること。


Proxyやエッジサーバーを用意する前提とはいえ、インターネット上からActive Directory認証が可能になるってことでアカウントのパスワード管理強化がセキュリティーの要だよなぁ~と感じる。


不要なポートは閉じ、セキュリティーホールを一生懸命閉じたとしても、ログイン画面は絶賛公開中。


アカウント名なんて、有効なメールアドレスを探すのと大差ないくらい簡単だろうし、パスワードルールが甘い企業だと、簡単に突破できるんじゃないかと思います。


パスワード変更期限の設定、複雑なパスワード、文字数制限は必須。できればスマートカードのようなユーザーすらパスワードを知らない仕組みを用意するとか、クライアント証明書などを組み合わせた認証が必要なんじゃないかと思います。


そういうことをやっても、公開するって結構きついよなぁ~


まぁ、それ以上のメリットを感じているし、求めるとクラウドって答えになるんだけど、機密情報はオンプレミスだから大丈夫!!なんて言ってられない世の中になっている。


ネットワークの内外関係なく、ちゃんと情報を管理し、保護する必要があるんだよね。



SCCM2012 SP1では日本語ブートイメージは使えない?

System Center 2012 Configuration Manager?Service Pack1 を適用すると、Windows8及びWindows Server 2012に対応する関係で、Windows AIKもWindows8ベースとなるWindows ADKに変更になっており、今後作成するブートイメージはWindows8ベースで作成することとなります。
まぁ、それ自体は問題ないのですが、唯一異なること、AIKは日本語版が存在していたこと。


要するにWindows ADKは英語版のイメージを日本語対応させ必要があるんですね。しなくても良いけど
ってことで、日本語パッケージを追加して、UIを日本語に設定する。
そりゃ、文字化けを解消するために自然にやる作業だと思います。


じゃ、どんな作業なの?というと、ADKコンソールから次のコマンドを入力します。


Copype amd64 c:\winpe_x64
Dism /Mount-Wim /WimFile:media\sources\boot.wim /index:1 /MountDir:mount
Dism /image:mount /Add-package /packagepath:"%WinPERoot%\amd64\WinPE_OCs\ja-jp\lp.cab"
Dism /image:mount /Add-package /packagepath:"%WinPERoot%\amd64\WinPE_OCs\WinPE-FontSupport-JA-JP.cab"
Dism /image:mount /Set-LayeredDriver:6
Dism /image:mount /Set-TimeZone:"Tokyo Standard Time"

ここまでは問題なし、日本語表示ができる状態ですね。
次にUIを変更します。


Dism /image:mount /set-AllIntl:ja-JP

または


Dism /image:mount /set-UILang:ja-JP

で日本語表示になります。
最後に、次のコマンドでイメージを作成


Dism /unmount-Wim /MountDir:mount /Commit

簡単な作業ですね。
日本語化されたブートイメージは?media\sources\boot.wim です。


これを適当なフォルダーにコピーしてSystem Center 2012 configuration Managerのブートイメージ追加を行うとエラーになります。
ファイルの権限が足らないと叱られる。


エラーの原因は「TsRes.dll」というファイル。


解決方法は分からないけど、回避方法は分かってます。


「日本語UIにしない」


Dism /image:mount /set-AllIntl:ja-JP
Dism /image:mount /set-UILang:ja-JP

これらの日本語表示にするコマンドを入力しなければ大丈夫。
表示は英語になりますが、日本語部分もちゃんと表示されます。


ユーザーにかかわらない部分だと、この位のトラブルはヘッチャラですが、クライアントの自動アップデートでソフトウェアセンターの表示が英語になったりと、若干問題のあるService Pack 1なのでした。



素敵なDirectAccess

個人的にはモバイル、在宅勤務用のVPNとしては最高の評価です。


導入するのに、Windows7または8のEnterpriseが必要なので若干敷居は高いかもしれませんが、Windows 2008 R2または2012の標準機能として提供されているので、SSL-VPN装置などを購入するより安価かも知れません。


そして、何より、接続するための準備がユーザー的に不要であること、接続作業が不要であることを評価しています。


まず、接続準備についてですが、


今までのVPNはダイヤルアップ接続だったり、専用クライアントのインストールなどの作業が必ず必要だったのですが、DirectAccessはグループポリシーにて配信されるため、ユーザーが気が付かない間に展開が完了することが可能です。さらに、プログラムのインストールがないので、その辺のトラブルもない。まさに、導入においてトラブルが非常に少ないのです。


次に、接続操作


DirectAccessはWindowsの起動直後から接続されているネットワークが社外なのか、社内なのかを監視しています。社外と判断すると自動的に接続を行うので、ログオン前に接続が完了した状態になります。当然、どこかのLANやインターネット接続という作業は必要ですが、まるでクラウドサービスを利用しているかのように、オンプレミスのサーバーにアクセスできるのです。


だから、クラウドとオンプレミスのハイブリッド構成との相性がとってもいいんですよ。
ハイブリッドにすると、どうしてもオンプレミスの制限にユーザーが混乱したり、不満を感じたりするのですが、事前にDirectAccessを展開しておけば、そのような混乱や不満が起こらないと思うんですよ。


?


ただね、「安全ではない社外ネットワークに接続し、社内サービスを利用する」って意識が欠落してしまうんじゃないかと心配したりしてます。ユーザーにはセキュリティー意識をもって節度のある行動をしてほしいと思うので・・・クラウドサービスも一緒なんですけどね。


結局のところ、社外ネットワークにパソコンを接続しても安全な状態を維持する仕組みやルールが必要なんですよね。DirectAccessはとっても素晴らしい機能ですが、社外にあるクライアントのセキュリティーを高く保つことができないのであれば、使うべきではない機能なんですよね。これはDirectAccessに限った話ではないですけど!!



スマートフォン生活になって変わること

人にもよりますが・・・


パソコンの位置付けが明確になる。


と思います。今までパソコンで行っていた作業の多くがスマートフォンで実現できるようになり、パソコンの使い方が変わってきたのでは?と思いますが、いかがでしょうか?


パソコンがないと困る状況以外は使わない生活に変化します。


パソコンが必要な時は・・・(私の場合)



  • 家計簿

  • 画像の編集

  • 長文の入力(メール、ブログ更新)

  • movable typeのテーマカスタマイズ

  • 年賀状(宛先の印刷)

  • DVD作成

  • 音楽及び画像の保管

  • PC向けWebサイトの閲覧

  • 仕事


今まで、毎日のように起動していたパソコンの多くの作業がスマートフォンで十分行えることが判明しています。


長文の入力もキーボードさえあれば問題ないのかもしれません。


私にとってパソコンは近い将来、ホームサーバーに変化するのかもしれませんね。



Viva ラーニングのSharePointコンテンツで既定の言語がまじめに動き出した?

相変わらず挙動が安定しないVivaラーニングさん。 既定の言語設定がまじめに仕事を始めたのかもしれません。 ちょっと確認したいことがあってラーニングを開くとコンテンツが一つだけになってしまいました。すべてのコンテンツが表示された状態から何も操作していないのに表示コンテンツ数が変わ...