布団が俺を呼んでいる

丘山大一のぶろぐ

NULL の容量って?

NULL を入れてしまうと、一般にパフォーマンスが落ちると言われていますが、果たしてファイルサイズに差は出るのでしょうか。
ちょっと試してみました。
以下、SQL Server2008R2で確認
詳細に調べられるだけの力量が無いので、SSMSで自動作成されたSQLをベースにザックリSQLです。

やっていることは、
1 空のテーブルを作成
2 20個の列を作成
3 1000万レコード挿入
4 ファイルサイズを確認
基本的に以上です。
比較したのは、
1 NULL 許容 × NULL格納
2 NULL 許容 × 空文字格納
3 NOT NULL × 空文字格納
の3パターン。

ベースとなる1のSQLは下記の通りです。

CREATE DATABASE [NullTestDB] ON  PRIMARY 
( NAME = N'NullTestDB', FILENAME = N'XXXXXXXXXXXXX\NullTestDB.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'NullTestDB_log', FILENAME = N'XXXXXXXXXXXXXXXXXXXXX\NullTestDB_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO
ALTER DATABASE [NullTestDB] SET COMPATIBILITY_LEVEL = 100
GO
ALTER DATABASE [NullTestDB] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [NullTestDB] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [NullTestDB] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [NullTestDB] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [NullTestDB] SET ARITHABORT OFF 
GO
ALTER DATABASE [NullTestDB] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [NullTestDB] SET AUTO_CREATE_STATISTICS ON 
GO
ALTER DATABASE [NullTestDB] SET AUTO_SHRINK OFF 
GO
ALTER DATABASE [NullTestDB] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [NullTestDB] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [NullTestDB] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [NullTestDB] SET CONCAT_NULL_YIELDS_NULL OFF 
GO
ALTER DATABASE [NullTestDB] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [NullTestDB] SET QUOTED_IDENTIFIER OFF 
GO
ALTER DATABASE [NullTestDB] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [NullTestDB] SET  DISABLE_BROKER 
GO
ALTER DATABASE [NullTestDB] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO
ALTER DATABASE [NullTestDB] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [NullTestDB] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [NullTestDB] SET READ_COMMITTED_SNAPSHOT OFF 
GO
ALTER DATABASE [NullTestDB] SET  READ_WRITE 
GO
ALTER DATABASE [NullTestDB] SET RECOVERY FULL 
GO
ALTER DATABASE [NullTestDB] SET  MULTI_USER 
GO
ALTER DATABASE [NullTestDB] SET PAGE_VERIFY CHECKSUM  
GO
USE [NullTestDB]
GO
IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE is_default=1 AND name = N'PRIMARY') ALTER DATABASE [NullTestDB] MODIFY FILEGROUP [PRIMARY] DEFAULT
GO



BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
CREATE TABLE dbo.Table_1
(
C1 nvarchar(MAX) NULL,
C2 nvarchar(MAX) NULL,
C3 nvarchar(MAX) NULL,
C4 nvarchar(MAX) NULL,
C5 nvarchar(MAX) NULL,
C6 nvarchar(MAX) NULL,
C7 nvarchar(MAX) NULL,
C8 nvarchar(MAX) NULL,
C9 nvarchar(MAX) NULL,
C10 nvarchar(MAX) NULL,
C11 nvarchar(MAX) NULL,
C12 nvarchar(MAX) NULL,
C13 nvarchar(MAX) NULL,
C14 nvarchar(MAX) NULL,
C15 nvarchar(MAX) NULL,
C16 nvarchar(MAX) NULL,
C17 nvarchar(MAX) NULL,
C18 nvarchar(MAX) NULL,
C19 nvarchar(MAX) NULL,
C20 nvarchar(MAX) NULL
)  ON [PRIMARY]
TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE dbo.Table_1 SET (LOCK_ESCALATION = TABLE)
GO
COMMIT

Declare @p_NumberOfRows Bigint 
Select @p_NumberOfRows=10000000; 
With Base As
  (
    Select 1 as n
    Union All
    Select n+1 From Base Where n < Ceiling(SQRT(@p_NumberOfRows))
  ),
  Expand As
  (
    Select 1 as C From Base as B1, Base as B2
  ),
  Nums As
  (
    Select Row_Number() OVER(ORDER BY C) As n From Expand
  )
INSERT INTO Table_1
  Select n, null,null,null,null,null,null,null,null,null,
       null,null,null,null,null,null,null,null,null,null     
    from Nums  Where n<=@p_NumberOfRows
OPTION (MaxRecursion 0); 

EXEC sp_spaceused; 

2、3についてはそれぞれ列の生成、Insert文が異なるだけです。
なお、最初の一列目には値が格納されていますが、これはただ単にループを回した結果を確認したかっただけです。

さて、それでは結果です。
1 NULL 許容 × NULL格納:285056 KB
2 NULL 許容 × 空文字格納:285056 KB
3 NOT NULL × 空文字格納:285056 KB

全然変わりませんでした!!
あれー?
これじゃ記事として微妙(´・ω・`)

もしかしたら、テーブルや列の設定によって変わるのかもしれません。
あるいは1000万レコードでは差異が出ないとか。

気が向いたら他のRDBMSや設定でも試してみます。

ひと目でわかるMicrosoft SQL Server 2008 (マイクロソフト公式解説書)

新品価格
¥2,916から
(2015/10/7 22:05時点)

SQL Server 2008ビギナーズガイド

価格:5,184円
(2015/10/7 22:06時点)
感想(0件)

PowerShell コマンドの履歴

下記のように実行すると、hoge.txtに実行コマンドの履歴が残ります。

Start-Transcript -Path D:\hoge.txt

超便利です。早く調べておけばよかった。
まあ色々と機能・問題点があるようですが、まず簡単なことから覚えていくのが当ブログのモットー。

Windows PowerShell超入門 [4.0対応]

新品価格
¥2,160から
(2015/10/5 23:59時点)

Windows PowerShell超入門 [ 新丈径 ]

価格:2,160円
(2015/10/5 23:59時点)
感想(1件)

PowerShell Windows Server 起動時にサーバーマネージャーの自動起動を停止する

いやまあ、手動でやった方が速いですけど。
一括で基本設定したくなった時用のメモということで。
・・・・・・まあレジストリ弄っているだけなんですが。

Set-ItemProperty "HKCU:\Software\Microsoft\ServerManager" -Name "DoNotOpenServerManagerAtLogon" -Value "1"

どこかで役に立つ・・・・・・立たないか。

【改訂新版】 Windows PowerShell ポケットリファレンス

新品価格
¥3,002から
(2015/10/3 12:43時点)

Windows PowerShellポケットリファレンス改訂新版 [ 牟田口大介 ]

価格:3,002円
(2015/10/3 12:44時点)
感想(2件)

OneDirve アプリの更新に失敗したら、Ofiiceも一緒に全滅した

会社でプギャーしました。

Office365 のOneDriveにブラウザ経由でアクセスするの面倒だなー、と思ってアプリをインストールしました。
が、途中で失敗。
しかし、資料作成を依頼されていたので、ひとまずおいておき、Wordファイルを開こうとデスクトップのアイコンをダブルクリック。
「このファイルを開く方法を選んでください」
・・・・・・アレ?
さっきまで普通に関連付けされて開いていたのに。
まあインストールにコケた影響で、関連付けが外れてしまったのだろう、もう一度設定しなおせば・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・
Program Files の中に、exeが無い・・・・・・(汗)
エクセルもワードも消えており、残っているのはアイコンやDLL。
これじゃあ開けなくてあたりまえですねー。
うわーん(泣)

うかつに色々試すと傷が広がる可能性があったので、システムの復元で戻しました。
同じような現象に当たった人っているんだろうか・・・・・・。
ちなみに、AD環境+Office365 (Office2013相当)です。

(無料電話サポート付)できる Office 365 Business/Enterprise対応 2015年度版 (できるシリーズ)

新品価格
¥1,944から
(2015/10/3 12:58時点)

できるOffice 365(2015年度版) [ インサイトイメージ ]

価格:1,944円
(2015/10/3 12:58時点)
感想(3件)

PowerShell Get-ChildItem の使い方

備忘。
Get-ChildItem で再帰でファイルを探し、結果を出力する。
  • Get-ChildItem D:\ -Recurse -Include FD* >D:\List.txt
  • Get-ChildItem D:\ -Recurse -Include FD*, *.vfd >D:\List.txt
※「\」は「¥(半角)」となります。

【改訂新版】 Windows PowerShell ポケットリファレンス

新品価格
¥3,002から
(2015/10/3 12:43時点)

Windows PowerShellポケットリファレンス改訂新版 [ 牟田口大介 ]

価格:3,002円
(2015/10/3 12:44時点)
感想(2件)

System Center 2012R2 の評価ガイドの取得先

よく探し回るので備忘で置いておく。

System Center 2012 も混じって出てくるから探しづらくて……。


Windows Server 2012 R2テクノロジ入門 (TechNet ITプロシリーズ)

新品価格
¥5,076から
(2015/9/29 00:00時点)

Windows Server 2012 R2テクノロジ入門 [ 山内和朗 ]

価格:5,076円
(2015/9/29 00:01時点)
感想(0件)

Windows Server 2008 R2 割り当てメモリが少ない時の Windows Update の限界

備忘。
環境によって異なるので、あくまで目安の一つとして。

下記のの環境下で作成された2008R2だと、Windows Updateが147個目で停止(進まなくなる)した。
・ホストサーバとして、Windows Server 2012R2 GUI にHyper-V機能を追加、その仮想環境下に作成。
・インストールOSはWindows Server 2008R2 SP1 GUI
・割り当てメモリ2G

メモリを増やせばもう少しいける?
この時は、Windows Updateを少しずつ実行することで対応。
約90個はいけた。

WINDOWS SERVER 2008 R2 テクノロジ入門 (マイクロソフト公式解説書)

新品価格
¥5,076から
(2015/9/24 21:34時点)

【送料無料】 Windows Server 2008 R2 テクノロジ入門 マイクロソフト公式解説書 / 山内和朗 【単行本】

価格:5,076円
(2015/9/24 21:34時点)
感想(0件)

Windows Server 2008R2 で KB2834140 の Windows Update に失敗する(更新が終わらない)

またまたWindows Update 失敗シリーズ。
別にやりたくてやっているわけではないのですが……。

環境としては下記のような状態。
・ホストサーバとして、Windows Server 2012R2 GUI にHyper-V機能を追加、その仮想環境下に作成。
・インストールOSはWindows Server 2008R2(無印)GUI
・割り当てメモリ2G

現象は下記。
・WIndows Update でKB2834140 の更新が8時間以上放置しても終了しない。
・この状態になると、タスクマネージャ等も起動しなくなる? ようだ。(放っておいたら起動するかも)
・MSDN の Windows Server 2008R2 で、Windows Update によってSP1 に上がった後に現象発生確認。

他には、
MSDN の Windows Server 2008R2 SP1 から始めた場合には現象発生せず。
・統合サービス を上げても現象は発生する。
・割り当てメモリを4GB,仮想CPUコアを4つに増やしてみても特に変わらず。

ググっていると、WIndows7で似たような現象にはまっている人がいるみたい。
ぱっと解決しなかったのでシルバーウィーク中に自宅の検証環境で試してみたら再現してしまったので、泣く泣く調査。
ひたすら時間がかかるので調べるのが非常に面倒臭い。

最終的に、基本的な対応でいけました。
KB2834140を最初にインストールせず、ひたすら後回しにして、一番最後に単独で入れたらOKです。

まあ、今更Windows Server 2008R2 を、しかもSP無しでスタートする人はあまりいないと思いますが。

WINDOWS SERVER 2008 R2 テクノロジ入門 (マイクロソフト公式解説書)

新品価格
¥5,076から
(2015/9/24 21:34時点)

【送料無料】 Windows Server 2008 R2 テクノロジ入門 マイクロソフト公式解説書 / 山内和朗 【単行本】

価格:5,076円
(2015/9/24 21:34時点)
感想(0件)

どこでも座れるリュックPlus レビュー

衝動買いしてしまったリュックのレビューをしたいと思います。
今回はパイプ椅子がくっついているリュックです。


販売元はコレ。

どこでも座れるリュックPlus ≪サンコー≫ BAKPK2C4

価格:5,280円
(2015/9/21 17:18時点)
感想(0件)


レビューといっても1日3時間程度背負って歩き回った後の感想に過ぎないのですが、まあ誰かの参考になれば。

■良いところ
・リュック全体のつくりはしっかりしている。
・荷物が思ったより入る。外側のポケットに雑誌(日経サイエンス)、Surfaceは余裕で入る。
・椅子は地味に便利? かもしれない。試しに使ってみたら回りの人が驚いていたw

■良くないところ
・肩掛け部分の紐がすぐ緩くなる。調整しても、歩いてるとスグに緩くなってしまう。
・仕方ないのだが、背中の部分に椅子が格納されているため、どうしてもフィットしない。
 ※このため、本当に長時間(たとえば、山登り等)での使用には耐えない。
・ポンチョいらないw

総括
・街中で長時間背負う必要がある、というような状況では非常に良いリュックだと思います。
・逆に、長時間(2時間以上)歩き続ける場合は微妙です。
・1時間程度なら、全く問題無し。むしろ使い勝手がいいです。

リュックを持っていない + 街中利用を想定 + ちょっと変わったものが欲しい。
こんな方向けではないでしょうか。
リュックを持っている + 登山もする + 小型パイプ椅子なら持っている
という人には必要ないと思います。
迷ったら買いでもOKだと思いますが、気になる方は各レビューサイトを回ってからどうぞ。

果実酒作った

折角のシルバーウィークなので、趣味の果実酒作りを。
今回漬けたのは梨と林檎。


材料は、
・梨 4個
 氷砂糖少な目(適当)
 ブランデー
・林檎 4個
 氷砂糖多め目(適当)
 レモン 1個
 ブランデー

普段はホワイトリカーで漬けるのですが、今回はなんとなくブランデーでいってみました。
収穫が楽しみ。

アデリア 果実酒瓶5号 4L

価格:698円
(2015/9/21 17:35時点)
感想(3件)

サントリー 果実の酒用ブランデー 1800ml 紙パック 1480円

価格:1,598円
(2015/9/21 17:36時点)
感想(1件)

布団が俺を呼んでいる | All posts by okayama

布団が俺を呼んでいる

丘山大一のぶろぐ

プロジェクトマネージャ 第5週目 体調不良の罠

年末は飲み会が増えることは分かっていたので、それに合わせて勉強スケジュールを組んでいたのに、
頭痛 + 目の痛み
で勉強どころか日常生活対応で手いっぱいになってしまった。
うーん、体が丈夫なわけではない……というより貧弱なので、体調不良があることもスケジュールに組み込むべきであった……。
感覚的にですが、月4週よりは3週として勉強スケジュールを組んだ方がよさそうですね。

プロジェクトマネージャ 第4週目 「全然勉強できんかった……」

師走になると飲み会、付き合いが増えるよね……。
飲み会に参加しながら、予定を気にしつつ、飲み会の企画しながら、年末年始の計画調整と、年賀状刷り。
う~~~~ん。

あと今更ながらガンダムビルドファイターズ見た。
面白かった。戦闘シーンで、ちょっとパンチ多すぎな気もしたけど。
モビルスーツの格闘戦はビームサーベル→キック→ここぞというところでパンチ が好き。
深い理由はない。なんとなく。

ちなみに、アニメは完結後、概ねレンタルで旧作扱いになってから纏めて見る派。
放映中だとネットに情報が溢れすぎてて、どうしてもネタバレが目に入ってしまい、面白味が薄れる。
情報の氾濫が沈静化して、皆が違うものに気を取られ始めたころに、事前情報無しで見ると素直な気持ちで見られる。
アニメが面白いかどうかはネットや回りの評価じゃない、自分の曇りなき眼で見定め、決める」のだ。

あれ、アニメ話になってしまった……。


ガンダムビルドファイターズ Blu-ray Box 1 [スタンダード版] <期間限定生産 2015/03/25まで>

新品価格
¥38,146から
(2015/12/21 20:55時点)

PowerShell 配布したスクリプトを管理者権限で実行してもらう場合のパスの取り扱い

PowerShellスクリプト自体はbatファイル作って-ExecutionPolicyで実行させれば終わり。
ただ、batを管理者権限で実行させると、スクリプト自体がデスクトップに置かれた場合にパスを取得するのが微妙に面倒くさい。

まず起動用のbat自体について。同階層にあるスクリプトを起動する場合。
powershell -ExecutionPolicy RemoteSigned -File %~dp0%スクリプト名.ps1
%~dp0% をつけて、同階層にあるスクリプトのパスを明示して実行するようにする。

PowerShell 処理の中では、実行しているスクリプトの場所は下記でとれる。
$PSScriptRoot
ネットでは $MyInvocation.MyCommand.Path を使う方法をよく見たけど、私の環境では何故か動かなかった。
まあ原因はともかく$PSScriptRootでとる方が短く済んで簡単。



【改訂新版】 Windows PowerShell ポケットリファレンス

新品価格
¥3,002から
(2015/12/3 23:18時点)

プロジェクトマネージャ 第3週目 「学習時間確保の悩み」

本丸の午後試験対策以前に、堀である午前問題を乗り越えられないことにはしょーがない。
というわけで、知識問題用に色々よみつつ、午前問題を解きなおし。
過去問をやってみたところ、一応70点台はとれた。が、まだまだ足りない(80点台後半は欲しい)。
こちらはちょっとずつ進めることにする。

課題となっているのは、やはり学習時間。
学習が遅れていること・経験不足などを加味して、ざっくり計画で最低週16時間ほどの勉強時間が必要。
平日月~金で合計4時間程度、土日でそれぞれ6時間程度勉強する必要がある。
また、知識補充系は平日・空いた時間でやればいいとしても、問題演習なんかはまとまった時間でやりたい。
つまり土日にやるしかないのだが、土日には予定が入ることが当然ある。
そんな時は問題演習ができなくなってしまう。
定期的に問題演習をしないと成長具合や弱点が掴めなくなるので、次の一週間の学習が非効率になるおそれがある。学習時間が足りない、といっているのに効率を落とすのは致命的。

また、学習に追われると、今度は本業のプログラミングへの学習がおろそかになる。
事実、今週試そうと思っていたことが半分ほどできていない。

う~~む。やはり長期休暇や有休を駆使していかなければ対応できないのだろうか……。
早くも悩みが出てきてしまった。


情報処理教科書 プロジェクトマネージャ 2016年版

新品価格
¥3,110から
(2015/11/29 19:19時点)

PowerShell Invoke-Sqlcmd で SQLServer にアクセスした後にセッションが残っている?

セッションかどうかわかりませんが、何か掴んでいるんだろうなあ、と思いつつも未調査。
環境をパッと作れなかったので……。
ただの備忘記事ですね。
失敗したのは、下記のような作業。

①Invoke-Sqlcmd データベースにアクセス
②とってきたデータを元に処理
③バッチファイル経由でデータベースをDrop
 →タイムアウト

下記のようにしたら通るようになった。
超ムリヤリな方法。
①Invoke-Sqlcmd データベースにアクセス
②とってきたデータを元に処理
Invoke-Sqlcmd マスターデータベースにアクセス
④バッチファイル経由でデータベースをDrop

これはダメな対応ですな……。



【改訂新版】 Windows PowerShell ポケットリファレンス

新品価格
¥3,002から
(2015/10/3 12:43時点)

プロジェクトマネージャ 第2週目 「最初の一歩」

勉強の仕方がよくわからないので、とりあえず買った本を信じてやっていくことにしました。
下手に自分で考えるより、まずは先人の知恵をお借りするのです。
さて、試しに過去問やってみそ、とあったので解いてみたのですが……

午前1:6割くらい
午前2:4割くらい
午後1:見当違いのことを書く
午後2:そもそも全然書けない

わー、絶望的ー。
まずは基礎知識を身につけねばならないようです。


情報処理教科書 プロジェクトマネージャ 2016年版

新品価格
¥3,110から
(2015/11/29 19:19時点)

メモ帳のタイムスタンプ記述機能

Windows標準のメモ帳、先頭行に
.LOG
と入力すると、本文中にタイムスタンプがつくようになります。
ウィキペディアにも載っています。

全然知らんかった……

マルマン A7 メモ エムメモ ブルー マイクロミシン目入り N595-02

新品価格
¥80から
(2015/12/3 23:14時点)

プロジェクトマネージャ 参考書を買ってきました

プロジェクトマネージャ の参考書を購入してみました。
前々から興味はありましたが、別にプロマネをしているわけではありません。
今回購入に至った経緯は単純です。
職場の仲間が段々と退社しつつあり、その��由の大半が「プロジェクトの炎上」に起因しているように思えてきたからです。
今自分が関わっているプロジェクトは炎上していませんが、それはただの幸運であり、いずれ自分の身にも降りかかってくるのは必定です。
よって、火事になるまえに、消化と予防を勉強していこうと思ったのでした。

プロジェクトマネジメントそのものを体系立てて勉強したことはありませんし、そもそも難しいことで有名な試験です。
慌ててやることなく、一歩ずつ進めていこうと思います。

あと、ここに書くことで自分に発破をかけてみる、という意味もあったり。


情報処理教科書 プロジェクトマネージャ 2016年版

新品価格
¥3,110から
(2015/11/29 19:19時点)

IISのお勉強 WordPressのインストール その3

ISを見ながらIISのお勉強 その3です。

さて、前回までで、すでにWebページは外部にはつながるようになっています。
が、管理画面をいじると、WordPressの更新ができなくなっています。
正確には、WordPressの管理画面から更新をかけようとすると、FTP接続による認証等を求められます。
ここで、FTPを開けるべきか? と思いましたが、調べてみるとWP-Config.phpに一行追加するだけでOKなようです。
というわけでさくっと追加します。
Set-Location 'C:\inetpub\wwwroot\wordpress'
Add-Content .\wp-config.php "define('FD_METHOD','direct')"
これでFTP認証を求められなくなります。

さあ、更新・・・・・・と思うと、今度は
「いくつかのファイルをコピーできないため、最新版のインストールができません。これはたいていの場合、ファイルのパーミッションが適切でないことが原因です。」のエラーが。
こちらも調べてみるとパーミッション、もといファイル・フォルダ権限が問題のようです。
基本的には一つ一つのファイル、フォルダ毎に権限を設定していくべきですが、どうやら時々対象となるファイル、フォルダが変わるようです。毎回毎回調べて一つ一つ設定していくのは一苦労です。
そこで、マズイやり方ではありますが、アップデートの最中だけ、全ファイル・フォルダに書き込み権限を振ることにします。
下記のコマンドで、WordPress以下にUSERSに書き込み権限がくっつきます。

$fPath = "C:\inetpub\wwwroot\wordpress"
$acl = Get-Acl $fPath
$uName = 'USERS'
$fControl = [System.Security.AccessControl.FileSystemRights]::Write
$iFlags = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit,[System.Security.AccessControl.InheritanceFlags]::ObjectInherit
$pFlags = [System.Security.AccessControl.PropagationFlags]::InheritOnly
$type = [System.Security.AccessControl.AccessControlType]::Allow
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($uName,$fControl,$iFlags,$pFlags,$type) 
$acl.SetAccessRule($rule)
$acl | Set-Acl $fPath

これでアップデートできるようになります。

アップデート完了後は、すぐに下記コマンドで書き込み権限を外します。
上記コマンドとの違いは、$rule変数に渡す引数が空(NULL)になっていること。
(※本当は書き込み権限を削除したかったのですが、やり方わからず・・・・・・)
$fPath = "C:\inetpub\wwwroot\wordpress"
$acl = Get-Acl $fPath
$uName = 'USERS'
$fControl = [System.Security.AccessControl.FileSystemRights]::Write
$type = [System.Security.AccessControl.AccessControlType]::Allow
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($uName,$fControl,,,$type) 
$acl.SetAccessRule($rule)
$acl | Set-Acl $fPath

これでまずは安心。
プラグインやテーマの拡張についてはまだ調べていませんが、まあ概ねこれでいける気がします。
いけなかったらごめんなさい。

今回のまとめ。
うむ、シャルが可愛い。

Windows PowerShell 実践システム管理ガイド2版 (TechNet ITプロシリーズ)

新品価格
¥4,320から
(2015/10/21 00:21時点)

Infinite Stratos Complete Collection [Blu-ray] [Import]

新品価格
¥4,940から
(2015/10/21 00:25時点)

IISのお勉強 WordPressのインストール その2

前回の続き。
ISを見ながらIISの設定をしていきます。

まずはWordPressにアクセス。
ここまでデフォルトなら、
http://XXX.XXXX.XXX.XXX/wordpress
(XXX.XXX.XXX.XXX はサーバのIPアドレス)
必須項目を入力していきます。
・・・・・・WordPressについては、なんとゆーか以下略。
あんまり書けることがありませんw
とりあえず最低限だけ設定。

さて、外部公開するためには、グローバルアドレスが必要となります。
私の環境はDynamic DNS を利用しているので、ご存じDice先生の設定が必要です。
まずはダウンロード。
$client = New-Object System.Net.WebClient
$client.DownloadFile("http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=dice159_msi", "E:\Dice.msi")

さて、使い方を調べるためにとりあえずヘルプを引きます。
E:\Dice.msi -?
ふんふん。
なんとなくわかった気になったところでインストール。
E:\Dice.msi /quiet /passive /promptrestart

続いて設定します。
DIce 自体は下記に入っています。
C:\Program Files (x86)\Sarad\DiCE\dice.exe
なのですが・・・・・・さて、ここで非常に困ったことが起きます。
といのも・・・・・・Dice for Windows にはコマンドラインから設定を制御する機能が無いようです(汗)
というより、正確にいえばサービスとして起動できるのは有償版です。
無償版ではできないようです。
以前 CentOS で設定した時は逆にコマンドラインでしか設定していなかったので油断していました(汗)
設定自体は先ほどのインストールフォルダdice.datに入っているので、それを直接制御すればよいでしょうが、それでは設定の柔軟性に欠けます。
また、Diceがアップデートした場合(近年されていないようですが)に対応できなくなってしまいます。
残念ですが、ここはGUIで設定するか、他のマシンで設定したファイルをコピーすることで対応します。
「説明」に適当な名称、
「サービス」から使用しているサービスを、
「ホスト名」「ドメイン名」「ユーザー名」「パスワード」に上記サービスで登録した内容を設定。
スケジュールは任意でOKだと思いますが、あんまり頻繁にやっても仕方ないので、
「周期的」-「1時間毎」
を設定しておきます。
まあこのあたりは利用しているサービスとの兼ね合いと好き好きだと思います。
ServerCoreでやっている場合は、別サーバにDIceを登録してしまって、そちらでGUI制御してしまった方が速く分かりやすいと思います。

さて、ここまでできたら、サーバ側の基��設定はほぼ終わりです。
あとはルータ側でポートフォワーディングを設定。
ここも、ルータによって設定が異なるので以下略です。

諸々設定が完了したら、下記Webサイトで設定が正しいか検証できます。
http://www.cman.jp/network/
外部のWebサイトを使うのは、自分のローカルマシンのブラウザからだとうまく名前解決できなかったり、Hostsに書いてある設定で名前解決してしまったり等して、正しく検証できないからです。
やり方は簡単で、ページ左のHTTPチェックを開き、URLを入力して「ホームページ表示確認」を実行します。
おお、なんて便利。

今回のまとめ。
やっぱりシャルが可愛い。

Windows PowerShell 実践システム管理ガイド2版 (TechNet ITプロシリーズ)

新品価格
¥4,320から
(2015/10/21 00:21時点)

IS<インフィニット・ストラトス>2 (初回生産版) 全7巻セット [マーケットプレイス Blu-rayセット]

新品価格
¥29,989から
(2015/10/21 00:24時点)