リモートデスクトップが繋がらない。原因はCredSSP暗号化オラクルの修復!

久しぶりにあるサーバ(Windosw2016)にRDP接続しようとすると、こんなメッセージが。

 

■お急ぎの方向け

①接続先サーバで対策する場合

・[コントロールパネル]>[システム]>[リモートの設定]

・ネットワークレベル認証のみ許可(推奨)のチェックを外す

 

②接続元クライアントで対策する場合

管理者コマンドプロンプトから下記コマンド実行(一行のコマンドラインです)

REG ADD HKLM¥Software¥Microsoft¥Windows¥CurrentVersion¥Policies¥System¥CredSSP¥Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2

 

 

■原因調査

とりあえず示された詳細URLを参照してみると。

CVE-2018-0886 の CredSSP の更新プログラム

 

どうやらクライアントだけパッチが当たった(サーバは普段パッチ更新なし)ので、

通信可能な組み合わせから外れてしまったみたいです。

 

過去にはこんな情報も出てた様子。

2018 年 5 月の更新プログラム適用によるリモート デスクトップ接続への影響

 

今回はまさにこのパターンでしょうか。

 

こちらのMSサイトにはいくつか回避策が記載されていました。

取りうる手段は3つ。

A:リモートデスクトップ接続元にてグループポリシーを変更する

①gpedit.mscから「暗号化オラクルの修復」をダブルクリック

②有効、保護レベル:脆弱 に設定

 

B:リモートデスクトップ接続元にて以下レジストリを追加

前述↑の「お急ぎの方向け②」を参照下さい。

C:リモートデスクトップ接続先 で NLA (Network Level Authentication) を強制しないようにする

前述↑の「お急ぎの方向け①」を参照下さい。

 

 

ちなみに、サーバにパッチを適用する事で通信可能な組み合わせを復旧する事も出来ます。

下記サイトで対象OS(バージョン)ごとの対象KB名が公開されてます。

CVE-2018-0886 | CredSSP のリモートでコードが実行される脆弱性

 

ミラーディスク型HAクラスタ(NEC CLUSTERPRO)

WSFC+SANディスク共有で冗長化してるサーバの保守期限が迫ってきました。

JP1/AJSでバリバリに業務ジョブが動いてるので、故障したら社内業務がバツンと停止します。

先月気づいてから対応策を検討していたのですが、

色々な思惑や予算の兼ね合いもあって調整が難航。

だんだん手が無くなってきてしまい、久しぶりに師匠に泣きついてみました。

そこで紹介されたのが件のソフト。

 

■ミラーディスク型HAクラスタ

この言葉自体初めて聞いたので、ググってみました。

が、CLUSTERPROの記事ばっかりヒットします。

 

そもそも一般的な構成ではないのかな?と調べてみました。

要は

「クラスタ構成サーバ同士のローカルディスクをRAID1(ミラーリング)で構成する」

という考え方みたいでした。

ファイル共有で公開するディスク領域を使ってHAクラスタ組めないかな?

と考えてたので、これが出来るなら願ったり叶ったりです。

 

詳しくは、NECの製品オフィシャルブログを見て頂いた方が良いでしょう。

CLUSTERPRO オフィシャルブログ ~クラブロ~

HAクラスター入門 ~用語解説2~

 

 

■今回検討した事

他所様のブログ記事を紹介して終わるのも味気ないので、

備忘録として検討内容についても残しておこうと思います。

 

①Azureへ環境移行

当初は一番安定と思っていた案。安く早く環境を準備出来るだろうと。

ですが、結構な頻度で障害が起こる事、サーバ停止が社内業務停止に直結する事、

あと通信間隔が数秒程度の処理がある為遅延が許容範囲を超える可能性がある、

といった部分のデメリットが大きすぎるとの事で廃案に。

 

②リプレースプロジェクト(後述)にて機器だけ先に購入してもらう

テストサーバ兼パイロット機をレンタルする予定、と小耳に挟んだので、

それならいっそ購入して貰えないか、それを少し早めにしてもらって、

本番機として使う部分と両立出来ないか、と強請ってみました。

これはまあ通ればラッキーぐらいのつもりで出した案でしたし、一蹴されました。

 

③同モデルの別サーバ(廃却予定)を予備機とし、故障時はスポットで保守対応を依頼する

本件に気付いた瞬間に「まず全く今のままの状態だったら何が出来るのか」と考えた時の案。

結構イイ線だとは思っていたのですが、FC接続用ボードの挿し替えがハードル高そうです…

無茶ながらも②よりは実施可能な案だとは思うのですけれど。

 

④クラスタは諦めて2台の余剰サーバでJP1/AJSのマネージャ・エージェントを新規構築

最終的にこの案になりつつあります。

ですが、「死んだら終わり」の状態で胸を張って「無事移行しました!」とは言いづらく(笑)

なんとか可用性を高められないかと頭を悩ませた末、泣きついた次第です。

 

 

 

■そもそも

サーバ移行が延び延びになっていて、しかも裏ではリプレースプロジェクトが動いている。

(全社を挙げて取組中の、国内拠点全てを巻き込む本当に大規模なシステム刷新)

そんな状況を聞いて、この作業ほんとうにやる必要あるんですか?と問うてみたのです。

 

課長の「リプレースプロジェクトに任せといたらええねん」を鵜呑みにしてしまって、

よくよく確認したら保守切れからリプレースPJの本番まで1年空いてました。

半年前の自分を半年くらい問い詰めたいですね・・・

 

 

一体何の為に生きるのか

久しぶりに旅行に行きたい気分なのですが、

まだまだコロナ禍は続きそうな状況ですし、

しばらくは難しそうですね。

 

 

そんな気持ちで過去の旅行写真を眺めていたら、

料理の写真を撮ってるけどお店の名前が分からない!

というものが結構沢山ありました。

 

そんな訳で今週の記事は、

あの店お名前なんでした? ~思い出したい美味い店~

のコーナーにしてみたいと思います。

 

 

■2017年4月20日@石垣島

八重山料理ゆらてぃく

4泊5日の旅程で何度か沖縄そばを食べたんですが、初日に食べたものが一番でした。

 

 

■2016年11月11日@成田山

駿河屋

 

銚子港を目指した旅行の際、宿を成田で取りました。

せっかくなので成田山にも参ってみようと足を向けると、参道に満ちる香り!

堪らず飛び込んだのが、看板がどっしりしてて風格のあったこちらのお店。

程よい脂加減でとても美味しかったです。

 

 

 

■2016年7月18日@道後

大黒屋 道後店

愛媛の名物、鯛めしです。鯛めしには二種類あって、

「宇和島鯛めし」はご飯に鯛の刺身と生卵入りのタレ、

「松山鯛めし」は鯛と一緒に炊き込むスタイルらしいです。

勿論両方頂きましたが、私は松山スタイルの方が好みでした。

 

 

■2015年7月19日@出雲

Mr.Beef

人生が変わったお店の一つ。

(シャトーブリアンと特上フィレ100gずつ注文したので2皿映ってます)

それまで”美味しいお肉”といえば、口にした瞬間とろけて無くなるような、

甘みさえ感じるくらいの脂がたっぷりのものだと思ってました。

赤身のステーキなんて、まず固くてダメだって。

それがこちらでステーキを頂いてからは、赤身の肉ばかり好んで食べてます。

お陰で、脂がしつこくて量が食べられないなんて事もありません。

 

※公式サイトが無かった為、レビューサイトのリンクを張ってます

 

 

■2014年4月21日@男鹿

なまはげ御殿 ニュー畠兼

夕日が見たくてレンタカーぶっ飛ばして入道崎に向かいました。

お土産屋兼お食事処での一品。

十分美味かったのですが、東北まで来たらもっと上があるはず!と思い、

最終的に青森の公設市場でリベンジしました。

(具とご飯を個別に購入して自分で盛る形式なので、ビジュアルドクロはご容赦を)

 

 

 

これらの他に一軒、どうしても見つけられないお店があって、

探してる間に今日が一日終わってしまいました・・・!

穴子の刺し身を初めて食べたんですが、

身がすごいコリコリしてるんですね。

煮たり焼いたり揚げたり、加熱したものは柔らかいのに。。。驚きでした。

 

 

 

記事タイトルの話になりますが、私自身なんのためかと聞かれたら

美味しいものを食べる為に生きてます、って答えてます。

美味しいもの食べると、ほんと顔も緩むし幸せな気分になります。

 

と言っても、世界各国の美味珍味を求めて駆けずり回るというような、

そこまで熱が入ったものでもありませんが。

 

それでもやっぱり旅先では、

「その土地ならではの美味しいものが食べたい!」

という気分になります。

 

最近はインターネットで検索すれば沢山お店の情報が見つかりますが、

如何に高評価なお店であっても、自分の好みに合うとは限りません。

実際何度も失敗しました。

結局飛び込んで自分で試すしかないので、やっぱりたくさん失敗しますが(笑)

 

 

なんにせよ、仕事の頑張り甲斐が持てるのは幸せな事!

 

【備忘録】JP1/IMイベント監視の動作テストコマンド

JP1でイベント監視する場合、JP1/Baseの機能を使う事になると思います。

  1. Windowsならイベントログトラップ(ntevent.conf)
  2. JP1イベントを転送(forward)
  3. 指定ファイルのログトラップ(jeblog.conf)
 
監視環境を構築後の動作確認ですが、
狙ったイベントを実際に起こすのが難しい場合も多々ありますので、
下記コマンドでトラップ結果を確認しています。
 

 

1.Windwosイベントログ

Windowsの標準コマンド、EVENTCREATEを使います。

使用例:

EVENTCREATE /ID 999 /L system /SO sys_test /T ERROR /D “イベントログのテストです。”

設定に合わせてイベントIDやイベント種別を組み合わせます。

 

 

2.JP1イベント転送

JP1/Baseで提供されるコマンド、jevsendを使います。
 
使用例:
jevsend -i 0 -m test -e SEVERITY=Error (あるいはCriticalやEmergency)
jevsend -i 302 -m KFPS01212-I -e SEVERITY=Information -d 監視するサーバ -s 監視されるサーバ
 
 

3.ログファイルトラップ

ただのファイル書き込みなので省略

 

 

特にハード障害系のイベントは「試しに発生させてみる」訳にもいかないので、

手元でパッと確認出来る手段があるのは助かりますね。

 

 

 

 

弊社はJP1製品で監視環境を構築しています。

JP1/NNMで死活監視、JP1/PFMでリソース監視、それらをJP1/IMで集中管理。

この環境をリプレースする事になり、環境構築計画を立ててました。

 

構築後のテストフェーズの作業内容、昔やった記憶はあるのですが、

きちんとコマンドを覚えていなくて調べ直す羽目になってしまいました。

 

私自身Hさん案件に関わる事が多く、JP1は触る事の多いミドルウェアでもあり、

これから触る機会が増える状況なので、色々残せたらと思います。

 

という訳で今週は備忘録でした。

 

HDDが満杯!フォルダごとの使用量確認方法

Windowsサーバ使ってるとよく思いませんか?

「UNIX系シェル使えたらな」って。

 

WSL2がリリースされて、随分ハードルが下がったとは思いますが、

どこの会社でも「使ってオッケーOK」かと言えばNGの場合も多々あるでしょう。

・・・あれ、うちの会社だけですか?

 

 

ともあれそういう事で、表題の件をWSLを使わずに何とかする方法を調べてみました。

 

■コマンドプロンプトから

結論から言えば、私には出来ませんでした。

色々ガチャガチャやれば出来なくもないでしょうけど。。。

 

■とっとと諦めて、インストールしなくていいツールを探す

こんな事に時間掛けても仕方ないので、.exe単体で動いてくれるツールを探しました。

いくつか試した中で一番しっくりきたのがこちら。

 

DiskInfo

ディスクの使用状況を表示する(作者:らくちん さん)

https://www.vector.co.jp/soft/winnt/util/se475617.html

 

こういう感じでディレクトリ毎の容量を調べてくれます。

勿論この画面内でフォルダ階層を降りていけば、それぞれの状況が確認できます。

使用量だけでなく使用率も表示されるし、列ソートも可能。

結果のエクスポートや保存、前回結果との比較など、色々便利機能が揃ってます。

 

これなら自端末で(ややこしい手続き抜きに)使えるし、

ネットワークドライブ接続可能な機器なら、手元のPCで状態確認出来ますし。

サーバ側で実行しなくてもいいのはありがたい。心理的ハードルが随分下がります…

 

自端末に溜まったゴミファイルの掃除にも使ってみました。

ディスク増設を考えてたんですが、随分スリムになってくれたので当面不要そう。

通販あれこれ凄まじく遅い状況ですし…

 

 

ともあれ、フォルダ容量の調査で困ったら是非お試し下さい。

超絶オススメツールです!

 

 

 

 

 

 

 

ちなみにコマンドプロンプトからのチャレンジですが。

ざっくりそれっぽい事であれば、例えばこんな

> for /F “tokens=1-4” %i in (‘dir /ad /s C:\inetpub’) do echo %l %i %j

ラベルは ドライブ C
です ボリューム シリアル番号は
 C:\inetpub のディレクトリ
. 2020/05/11 23:34
.. 2020/05/11 23:34
custerr 2020/05/11 23:34
history 2020/05/11 23:50
logs 2020/05/11 23:34
temp 2020/05/11 23:34
wwwroot 2020/05/12 10:09
バイト 0 個のファイル
 C:\inetpub\custerr のディレクトリ

ゴミがいっぱいついてくるので使い物になりませんね。わかってました。

 

 

forfilesコマンドではどうかなと思いましたが、

そもそもディレクトリ容量って0ですね。計算しないとだ~。

> forfiles -s -p C:\inetpub -c “cmd /c if @isdir==TRUE echo @PATH @fsize @fdate @ftime”

“C:\inetpub\custerr” 0 2020/05/11 23:34:18
“C:\inetpub\history” 0 2020/05/11 23:50:22
“C:\inetpub\logs” 0 2020/05/11 23:34:18
“C:\inetpub\temp” 0 2020/05/11 23:34:25
“C:\inetpub\wwwroot” 0 2020/05/12 10:09:53
“C:\inetpub\custerr\ja-JP” 0 2020/05/11 23:34:18
エラー: 次へのアクセスが拒否されました: “C:\inetpub\history\”.

 

そもそもこれらみんな、du使えたら一発だったのに。。。

 

SQLserver設計メモ

DBサーバを一台新設する事になりました。

 

要件をヒアリングしたところ”基本的な設定は既存DBと同じで”との事。

フムフムそれじゃ簡単かな?と思ってドキュメントを探してみたら・・・・・・ない。

インストール時の選択内容しか残されていない。

 

「え、もしかして全部デフォで動いてるの??まさか(笑)(笑)」

と実機を確認した所、どうやらファイルサイズ以外はホントにデフォみたいで・・・

 

そういう訳で、一般的にはどういうポイントがあるのだろう?と調べて見ることにしました。

 

■メモリ

まずは既存DBで逼迫しているメモリについて。

サーバー メモリの構成オプション

min server memory の既定の設定は 0 MB で、max server memory の既定の設定は 2,147,483,647 MB (中略) 詳細については、「動的メモリ管理」を参照してください。

 

いやいや最大2ペタて。無制限に確保する感じかな…詳細についてはこっちか。

動的メモリ管理

メモリを動的に使用する場合、 SQL Server はシステムに定期的にクエリして、メモリの空き容量を確認します(中略)空きメモリが少ない場合、 SQL Server は OS に対してメモリを解放します。 

今回は、構築時にSQLServer入れる直前のメモリ使用状況を確認して、

安全率だけちょっと見込んで設定する方向で進めようと思います。

 

 

もうひとつ、これは各所で「絶対やるべき」とオススメされていました

Lock Pages in Memory (LPIM)

プロセスを使用して物理メモリにデータを保持できるアカウントを指定し、ディスク上の仮想メモリへのデータのページングを防止します。 メモリ内のページをロックすると、ディスクへのメモリのページングが発生した際に、サーバーの応答性を維持できます。

 

が、

という事みたいです。下手に設定するとマズイという事でしょうか。

 

SQLserverのプロセスが使用するメモリを物理メモリにロックするという事は、

別のプロセスが使える物理メモリは当然減少する訳で、

そしてSQLserverが使用するメモリはデフォルトで2ペタである訳で。

動的メモリ管理でちゃんと増減してくれるようですが、こういう言う風にも書いてある訳で。

Lock Pages in Memory ユーザー権利を使用するとき、上記のように max server memory の上限を設定することが推奨されます。

LPIMだけ有効にするのは危ないようですね。

 

 

■ファイル

データファイルの配置はそれぞれ環境毎の要件があるかと思うので割愛。

それ以外で、知らなかったけど有効そうなものを見つけました。

tempdb データファイル数を CPU 数に一致させる

一般的には、tempdb データファイルの数は、SQL Server が使用可能な CPU の数に一致させた方が高負荷時のパフォーマンス劣化を防ぐことができるとされています。

tempdb 負荷が高いのか低いのか分からないのであれば、やっておいた方が無難でしょう。

はい。やってみます。スケジューラ(=CPUコア数)に合わせましょう、という事らしいです。

ちなみにtempdbがどういう時に使われるのかというと。

SQL Serverインスタンスが内部で利用する一時領域「TEMPDB」とはhttps://www.atmarkit.co.jp/ait/articles/1610/06/news013.html

 

サブクエリとかインラインビュー、ORDERBYの結果とかが含まれるのでしょうか。

 

そのほか、実効性は状況次第と思われるが試してみたい手法がいくつかありました。

  1. データとインデックスのデータファイルを分ける
  2. ログファイルは分割しない
  3. ファイルの自動拡張は基本ナシ。するならサイズベースで、同時拡張。

1は、物理レコード削除が頻繁に発生するなら効果がありそうに思います。

2と3はお作法のようです。ファイルI/Oの効率向上が見込めるようです。

 

 

■MaxDOP

並列処理可能な実行プランの最大値、だそうです。これだけ読んでもよく解りませんでした。

max degree of parallelism サーバー構成オプションの構成

並列プラン実行で使用するプロセッサの数を制限できます。 SQL Server では、クエリ、インデックス データ定義言語 (DDL) の操作、並列挿入、オンライン列変更、並行統計コレクション、静的およびキーセット ドリブン カーソルの作成の場合に並列実行プランが検討されます。

 

ますますわからん…ですが、注意事項の記載内容を見ると

セットアップで実施するようになったという事は、重要なオプションという事なのでしょうね。

このオプションは詳細設定オプションであるため、熟練したデータベース管理者または認定された SQL Server プロフェッショナルだけが変更するようにしてください。

あまりほいほいと弄るものでもないようです。

とあるサイトではCPUコアの1/4が推奨とされていたのですが、弊社環境だと1になってしまいます。

並列処理しない、というのはとてもとてもマズイ事に思えるので、今回は見送り。

2019の試用版インストーラを起動してみて推奨値だけ確認してみる、というのもアリでしょうか。

 

 

これらを元に、来週(忙しかったら再来週)に環境構築予定です。

 

 

■今回拝見させて頂いたサイト様

いつも勉強させて頂いてます。ありがとうございます。

 

 

■読み飛ばしてもいい感想文

メモリ制限は、一応OSの邪魔はしないように、っていう方針ではある様子。

とはいえ、ギリギリまで確保しては「ごめんなさい!お返しします!」っていうのも、

却ってオーバーヘッドになりそうな感じがします。

世の皆様も明示を推奨されている項目でした。

 

 

ディスクに関していうと、昔は特に物理ディスクを意識したI/O性能検討

(内周と外周、アクセスヘッドの移動)がなされてました。

今でも構成によっては有効だと思います(テスト用の単体物理サーバとか)が、

昨今のエンタープライズ用DBサーバはだいたいFCでストレージと繋がっていると思います。

その場合はいきなりディスクに書くのではなく、入り口の大きなキャッシュメモリとやり取りしますし、

実際のディスク書き込みでもRAID構成、それらを束ねて論理的に見せる仮想ボリュームなど、

物理ディスクの事はほぼ気にしなくていいのが現状かと思います。

 

インストール先とかデータファイルパスをCドライブにしない、とかは当たり前と言われてますが。

今やシステムソフトウェアインストール用のドライブ分けに意味を持たせるには、

個別でリストア可能という利点を活かせる運用が前提です。

OSやミドルの設定をいじってもバックアップしないのであれば、(そしてそういう会社は多い)

最初から全部Cドライブでいいんじゃない?と思います。

前述のように昔はI/O分散の意味もあったでしょうが、SANブート環境では無意味ですし。

 

 

どれをとってみても感じるのは、内部動作を深く掘り下げないと効果的なチューニングは難しい、

という事ですね。まだまだ学びの道は続きます。

 

SQLserverでコマンドプロンプトからSQLを実行する

今週は弊課に新人がいらっしゃいました。

その為、システム利用に関するユーザー追加依頼がチラホラとありまして。

 

中でもちょっと面倒だなと思ったのが、SQLserverのユーザ追加。

管理中のシステムにおいて、DB(全部SQLserver)接続ユーザは個人別になっており、

ユーザの立場によって割り当てる権限(ロール)が決まっています。

私はそれを付与する立場です。

何が出来るか出来ないか、私の指先一つです。ふひひ。

 

 

大きく3つ(本番環境、結合環境、単体環境)に区分される環境に、

それぞれ数台ずつのDBサーバ(1サーバ1インスタンス)、

各インスタンスにはいくつかのデータベース。

ユーザの立場によって使うデータベースはバラバラ。

 

今回は急かされたのもあっていつもどおりにSSMSで接続して作業してたのですが、

コマンドラインでパパパっと出来るんじゃないのかー、と思って調べてみました。

 

 

■SQLCMD

そういう訳でSQLCMDです。

sqlcmd ユーティリティを使用すると、Transact-SQL ステートメントやシステム プロシージャ、スクリプト ファイルを使用可能なさまざまなモードで入力できます。

  • コマンド プロンプト。
  • クエリ エディターでの SQLCMD モード。
  • Windows スクリプト ファイル。
  • SQL Server エージェント ジョブのオペレーティング システム (Cmd.exe) ジョブ ステップ。

このユーティリティでは、ODBC を使用して、Transact-SQL バッチを実行します。

利用前提環境

Windows インストーラー 4.5 と Microsoft ODBC Driver for SQL Server 17 の両方が必要です。

私のPCにはSQLserverを入れてるのですが、ODBCドライバは入って無い状態でした。

インストールで躓く事は特にないと思います。

 

■使ってみる

コマンドプロンプトを起動して SQLCMD と叩くだけ。

管理者モードで起動する必要もなく、パスも通してくれてます。

 

じゃあなんか適当にSQLを実行してみようかと

あれ。

どうやったら実行出来るんだろ?まだDBに繋がっていないとかかな?DB変えてみよ。

あっ

 

なるほど。goで実行、そういえばそうでしたね。

 

うんうん。

 

 

抜けるときはgo不要です。

 

さて、別サーバに接続するには…

-H -U -P あたりでしょうか。

 

 

来週出社したら試してみたいと思います。

 

余談ですが、SQLserverでサーバとかインスタンスとか言うとややこしいですね。

発言者のバックボーンによって、何を指してるのかが違ったりして…

 

XLOOKUP関数を使ってみた

前々から興味あったXLOOKUP関数を使ってみました。

 

結論から言うと、どこかで見かけた情報から勝手に想像していたものとは違いました。

それでも、確実にVLOOKUPより汎用的になったと思います。

 

簡単なお試し結果を書いてみます。

 

 

 

■まずは適当に表を用意

インフラSEらしくサーバ一覧的な感じのものを。

 

 

 

■パターン1:VLOOKUPの弱点をちょっと克服

XLOOKUP関数の引数は以下の通りです。

 

 

このようにXLOOKUPでは「検索する列」と「戻り値の列」をバラバラに指定できます。

 

 

「検索値は検索範囲の先頭列に無ければならない」

この制約の為だけに、情報が揃ってる表を弄る必要が無くなるようです。

 

 

また、検索値がヒットしなかった場合、これまではエラーが戻されていましたが、

エラー戻り値を指定出来るようになりました。

 

 

文字列貼り付けしてからの、こういう地味な手間も不要になる訳ですね。

 

 

 

■弱点克服について確認

では実際に何か入れてみます。

入力した式と戻り値はこういう感じです。

まずはオーソドックスに「完全一致、前から検索」です。

 

 

結果はこの通り。

所謂VLOOKUPですが、検索不一致の結果が意図した文字列になっています。

 

 

式選択時の表示はこんな感じです。VLOOKUPだと範囲選択は1枠ですよね。

 

 

ブログ書いてる途中で気付いたので、一致モードの「2」も試してみました。

結果がわかりやすいよう後ろから検索で。

 

 

結果はこの通り。

一応ワイルドカード検索も普通に出来るようです。

・・・あれ?VLOOKUPでも出来たような気がしますねあせる
 

 

 

 

■複数データを戻す

続いてVLOOKUPでは出来なかった機能ですが、こっちが目玉になるでしょうか。

戻り値に複数列が指定して、検索値にヒットした行から指定列全部の値を引き出せます。

 

式の中身はこんな感じです。戻り値列にA~D列を指定しています。

 

 

そして、結果がこちら。

このように、該当列の情報を一気に拾ってこれます。

 

 

 

この画像だけ見ると「各列で個別に値を取得」しているように見えますが。

ここでVLOOKUP脳とオサラバしなくてはなりません。

 

 

といっても今回のXLOOKUPにまつわる新機能ではないのですが。

スピルという機能によって、あるセルに入力された式の戻り値が複数列(配列)の場合、

必要な分だけ自動で式の範囲が拡張されるようになっています。

実際に式を入力したのは”分類”を示す値のセルだけで、

後のセルには勝手に式を入力してくれました。(式はグレーアウト表示されます)

 

ちなみに、スピルについてはコチラのサイトで紹介されていました。

 

 

 

■試してみての感想

実は、結構ガッカリしています(笑)

IFSやCOUNTIFSの様に、条件を複数設定出来る機能だと思いこんでいたので・・・

 

複数列を戻してくれるのも一見便利ですが、要らない列まで戻されてしまうケースも多そうです。

飛び飛びの列で戻り値を指定、は試してみましたが出来ませんでした。

 

VLOOKUP相当の使い方が基本になって、列順序が非対応の場合のみ、

XLOOKUPを使う事になりそうな気がします。対応バージョンの問題もありますし。

 

 

今の所は、VLOOKUPがちょっと便利になった程度の印象です。

 

IT業種に転職したとき

検索ワードに「転職」がチラホラ見受けられるのですが、

IT業種に転職を希望している人って今多いのでしょうか。

 

やってみたいけどどんな仕事かよく分からないし、

という不安感で踏み出せないケースもあると思います。

だけど、興味を持って、自分で勉強する意欲があれば、

きっと何とかなると思います。

私自身、文系未経験資格なし、の状況で飛び込んだので。

 

 

転職を考えている人の参考になるかどうか解らないですが、

いくつかの経験談を書いてみようと思います。

 

■未経験からIT業種へ

・業務内容 : 携帯端末テスター

・就業形態 : 派遣社員

新聞の折込広告を見て電話しました。

派遣会社、就業現地での面接を経て就業。

当時の私はIT業というか正社員未経験でした。

中学生の頃にBASICでプログラミングを経験していた事、

就業の2年くらい前からHTML、JavaScriptを独習して、

小さなホームページを作った事がありました。

この仕事では、HTMLタグに理解がある部分がポイントだったそうです。

 

 

■プログラマ未経験から基幹系業務アプリ開発者へ

・業務内容 : 基幹システム移行→基幹系業務アプリ保守・開発

・就業形態 : フリーランス

前職のテスター時代にお世話になってた営業さんが独立されて、

そこからお仕事を貰う形でフリーランス状態に。

この営業さんのツテでねじ込んで貰ったお仕事でした。

 

最初はシステム移行に伴うDB(Oracle)移行ツール作成。

この時点で私はSQLが何か知りませんでした。

そしてVB6は趣味プログラム程度の経験(基本概念が分かるレベル)。

厚さ15cmくらいの社員教育用ドキュメントを渡されて、

これ一週間で覚えてきて、って言われたのをとても強く覚えてます。

この頃は帰宅後も結構勉強してました。

移行PJ終了後、保守開発メンバーとして契約継続頂きました。

一緒に入った10歳年上の方は契約終わってしまったので、

勉強した甲斐があったなと思います。

 

 

■プログラマからインフラSEへ

・業務内容 : Webサーバ移行(新環境構築+コンテンツ移行)

・就業形態 : フリーランス

プログラマでの契約完了後少し仕事が無い期間があり、

つなぎにどうか?と提案された仕事でした。

自作PCに興味があって、AMDがK6出した頃からPCを組んだり、

またLinuxに興味があったのでWinとLinのデュアルブート環境を作ったり、

Linux上でHTTP、FTP、DNS、iptables(ファイアウォール)等を構築してました。

ネットワークやインフラ的な素養はこの頃に身についたのだと思います。

プログラマ時代の環境もUNIXだったので、CUI操作にも慣れてました。

 

 

 

派遣社員からそのままフリーランス暮らしで、そろそろ20年になります。

最初は不安でいっぱいのまま飛び込んだ業界でしたが、

コンピュータを触って、それが意図通りに動く、それがとても楽しくて。

どこかでだれかに習うでもなく、調べて試して失敗して、を繰り返してきました。

 

今では天職だったとしか思えないくらい馴染んでいます。

 

 

 

 

 

余談ですが、月収は未経験の頃を1とすると、プログラマ時代で1.5、

インフラ系に携わってすぐの頃は2.5、現在は案件によって幅がありますが、

最低3.5、多い時で5、といった水準です。

 

Windows10の詳細バージョン確認

Windows10自体のバージョンが求められるケースは割と多いのですが、

パッと見て分かる所には書いていないので、よく失念して調べたりします。

備忘録の意味も兼ねて、ここに記載します。

 

1.winverコマンド

コマンドプロンプトから winver 実行。これが一番簡単便利ではないでしょうか。

 

2.設定から

[スタートメニュー]>[設定]>[システム]>[バージョン情報]

画面下部に以下の表示があります。

 

3.システム情報から

コマンドプロンプトで systeminfo 実行。

OS バージョン: の値を確認します。

ビルドバージョンしか表示されないのですが、Microsoftの公開ドキュメントに、

ビルドバージョンとWindows10バージョンの対応表が掲載されています。

Windows 10 リリース情報

対応表にはサービス終了日が掲載されているので、別の用途で参照する事もありそうですね。