布団が俺を呼んでいる

丘山大一のぶろぐ

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

何故にこのようなことをしているのかと言えば、
「ただ単に私がIISを使ったことが無いから」
です、ハイ。
このブログではサーバー周りを取り上げることが多いですが、ワタクシ本職はWinForms畑ですので。

まずはIISのインストールから。
いきなり手を広げたりせず、まずは基本+管理ツールだけ入れてみることにします。
まあ無くても、WordPressインストール時にある程度入るんですけど。
Install-WindowsFeature Web-Server -IncludeManagementTools

実行結果は、おそらくGUIで「サーバーの役割」-「Webサーバー(IIS)」にチェックを入れ、後は既定でインストールした時の結果と同一であると思われます。(管理ツールインストール含めて、既定と書いています)

それが完了したら、続いてWordPressのインストール・・・・・・前に、ちゃんとWeb Serverが起動しているかどうかチェックしてみます。
ブラウザのアドレス欄に
http://XXX.XXX.XXX.XXX
と入力。ポチっとな、でデフォルトページが表示されます。
適当に作った検証用環境なのですが、これだけでもちょっと感動。

さて、なんとなく満足できたところで、続いてWordPressのインストール。
Web Platform Installer からインストールしてみます。
でもコレGUIからしか動かしたことねーぞ、どうやるんだろう・・・・・・と思ったら、やはり先達がいらっしゃいました。
記事ではv4ですが、折角なのでv5を・・・・・・と入れてみようと思ったら、x86用でした。
ので、素直にv4を入れてみたいと思います。
というわけで、上記で紹介されているコマンドをそのまま入力します。
$client = New-Object System.Net.WebClient
$client.DownloadFile("http://download.microsoft.com/download/C/F/F/CFF3A0B8-99D4-41A2-AE1A-496C08BEB904/WebPlatformInstaller_amd64_en-US.msi","E:WebPI.msi")
容量は2M位はより小さいので、ダウンロード自体はすぐに終わります。
※ダウンロードしたmsiの使い方は、-?でヘルプを呼び出せます。

インストールは下記コマンドで行いました。保存先は適当。
E:\WebPI.msi /passive /promptrestart
こちらもすぐに終わります。

インストール終了後、作業を楽にするために場所を移動しておきます。
Set-Location 'C:\Program Files\Microsoft\Web Platform Installer'

インストールできる製品は次のコマンドで確認可能。
.\WebpiCmd.exe /list /listoption:All

さて、ここからWordPressのインストールです。
インストールには次のコマンドを実行。
.\WebpiCmd.exe /install /Application:"WordPress"

ここからは対話式に進んでいきます。
・コマンドを実行すると、MySQLのパスワードを聞かれるので、任意のパスワードを入力します。
・さらに、ライセンス条項に同意するかどうか聞かれるので、「Y」を入力。
しばらく、インストールが続きます。
それが終わると怒涛の設定ラッシュです。
・インストールが終了すると、アプリケーションパス、データベースサーバーを入力するように促されます。
・検証用なので、ひとまずデフォルトで突っ込みます。エンターキー2回で突破。
・続いてデータベース名、データベースユーザー名を入力するように促されますが、ここもエンターキー(デフォルト:wordpress、wordpressuser)で突破。
・次のデータベースパスワードはデフォルト値突破できないので、ここは適当に入力しておきます。
・そしてデータベース管理者を要求されます。デフォルト値rootはエンターキーで突破。
・データベース管理者パスワードは、データベースパスワードと同じくデフォルト値突破できないので、入力しておきます。
・続いて4種類のユニークキーの入力を求められます。面倒なのでデフォルト突破。
・それが完了すると、上記で入力した4種類のユニークキーの再入力を求められます。間違えていないことを確認しながら入力。
これが完了すると、ようやく
「製品のインストール:成功」
となります。

動作確認するためには、ブラウザで
http://XXX.XXX.XXX.XXX/wordpress
にアクセスすればOK。

コマンドで確認する場合は下記。
Get-WebApplication

結果はこんな感じ。
Name             Application pool   Protocols    Physical Path
----             ----------------   ---------    -------------
wordpress        DefaultAppPool     http         %SystemDrive%\inetpub\wwwroot\wordpress

ちゃんとwordpressと出ています。

とりあえずここまでの感想。
シャルが可愛い。

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

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

IS <インフィニット・ストラトス> 全6巻セット [マーケットプレイス Blu-rayセット]

新品価格
¥15,800から
(2015/10/21 00:23時点)

おしえて! ギャル子ちゃん  アニメ化

マジっすか。

気になるのは、ギャルンギャルンという擬音の演出。
どうやって表現するんだろう?


おしえて! ギャル子ちゃん 1 (MFコミックス)

新品価格
¥950から
(2015/11/9 20:41時点)

PowerShell ファイル数を数えての分岐

ファイル数を数えて、その数が一定数以下の場合、条件を満たしていないとして処理を中断させたかった。

if((Get-ChildItem $Path | Measure-Object | %{ $_.Count}) -le 2)
{
    Write-Warning "処理を中断します!"
    Exit-PSSession
}

なんかスマートさに欠けるような。もっと楽にとれないかな?
ちなみに、
Get-ChildItem $Path | Measure-Object | Select Count
でもファイル数自体はとれるんだけど、intで返らずオブジェクトで返ってくるので、単純な数比較がしづらい。

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

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

PowerShell Invoke-Sqlcmdが動かない場合の一時対応

地味にはまった。
SQL Server2008R2 の入ったクライアントPCで、Invoke-Sqlcmdが通らず。
他人のPCなので、あまり設定をゴチャゴチャ弄りたくない。
そんな時は、下記コマンドを突っ込むと、そのセッション中はInvoke-Sqlcmdが使えるようです。

Add-PSSnapin SqlServerCmdletSnapin100 
Add-PSSnapin SqlServerProviderSnapin100 

SQL2012、2014といった場合は110,120になるのかな?
※管理ツールがインストールされていないとダメかも?
 未確認です。

動くサンプルで学べる Windows PowerShell コマンド&スクリプティングガイド PowerShell 4.0対応

新品価格
¥3,218から
(2015/10/31 18:28時点)

PowerShell Invoke-Sqlcmd で SQLServerの名前付インスタンスにアクセス

地味~に苦戦。
こことか見ながら。
上記サイト通りの「read-host 」を実行すると、パスワード入力が求められるようになります。
今回は入力を求められないようにしました。

$Sql = ("select name from sys.databases;")
$DBLst = Invoke-Sqlcmd -Query $Sql -ServerInstance "localhost\名前付インスタンス" –Username "sa" –Password "パスワード"

取得した結果は$DBLstに入っています。
アクセスする時はこんな感じで。
foreach($db in $DBLst){
    Write-Output $db['name']
}

初めのうちは、PowerShell がオブジェクトで値をとってくる、ということのメリットがよく分かりませんでしたが、段々と便利、と思えるようになってきました。


動くサンプルで学べる Windows PowerShell コマンド&スクリプティングガイド PowerShell 4.0対応

新品価格
¥3,218から
(2015/10/31 18:28時点)

PowerShell 64ビット判定

PowerShell バージョンによって違う? かもしれません。
動作を確認したのはWindows7からアップグレードした直後のWindows10。なのでバージョン5.0。
とりあえず64bitか否かで、ProgramFilesの場所を決めてみた。

$OS = Get-WmiObject -Class Win32_OperatingSystem
if ($OS.OSarchitecture -match "64")
{
    $Path = "Program Files (x86)"
} else
{
    $Path = "Program Files"
}


Windows PowerShell超入門 [4.0対応]

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

Windows PowerShell超入門 [ 新丈径 ]

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

PowerShell 物理ドライブのドライブレター取得

やり方あるんですね。
取得自体は簡単でした。
Get-WmiObject Win32_LogicalDisk

使う時はこんな感じ?
foreach($Drive in Get-WmiObject Win32_LogicalDisk){
    if(Test-Path ($Drive.DeviceID + "\HogeHogeFolder")){        
        #処理
    }
}

Windows PowerShell超入門 [4.0対応]

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

Windows PowerShell超入門 [ 新丈径 ]

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

PowerShell ローカルアカウント一覧の取得

どうやるのが正解なのか今一つ分からなかった。
Get-CimInstance -ClassName Win32_UserAccount -Filter "LocalAccount='true'"

下記でも取得できるが、フィルターのかかるタイミングの差か、AD環境下で沢山のユーザがひっかかってしまう場合だと遅いみたい。
あと汎用性に欠ける。
Get-CimInstance -ClassName Win32_UserAccount | Where-Object {$_.Domain -like "コンピューター名"}

GUIで 1:ユーザ追加 2:ユーザ名変更 とした場合、GUI上表示されるユーザ名とユーザプロファイル名がズレる(ユーザプロファイル名は変更前のまま)なのですが、上記のやり方だと変更後のユーザ名が取得できません。
どうやれば取得できるんだろう。

Windows PowerShell超入門 [4.0対応]

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

Windows PowerShell超入門 [ 新丈径 ]

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

PowerShell Hostsファイルの更新 と 確認

ホストファイルの末尾に追記します。
Add-Content "C:\Windows\System32\drivers\etc\hosts"  "XXX.XXX.XXX.XXX`thogehoge.hoge"
IPの直後にある「`t」はタブ文字です。
入力する場合は「Shift+@」+「t」で。

追記後、確認したいなら次の一文。
start notepad "C:\Windows\System32\drivers\etc\hosts"

関係者に、「IP記述して~」という代わりに、このスクリプト実行して~の方が、楽・・・・・・
かと思ったけど、手間はあまり変わらないか。
Hostsファイルの開き方よりも、PSスクリプトの実行の仕方の方が知られてないもんなあ・・・・・・。


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

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

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

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

PowerShell Windows Server 終了時の理由入力を止める

正攻法は
「ローカルグループポリシーエディター」-「コンピューターの構成」-「管理用テンプレート」-「システム」-「シャットダウン イベントの追跡ツールを表示する」から。

でもあえてPowerShell によるレジストリ書き換えで。

ちなみに、このレジストリ、WIndows Server 2012 R2 で確認した限りでは、初期値ではキーが存在しません。
正確にいえば、初期値の「未構成」ではエントリが存在しないようです。
ですので、まずはエントリを作成。
New-Item "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Reliability"
それでから、キーを作成します。
New-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Reliability" ShutdownReasonOn  -Value "1"
これでOK。

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

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

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

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

布団が俺を呼んでいる | Surface Pro3 が起動しなくなった(復旧済)

布団が俺を呼んでいる

丘山大一のぶろぐ

Surface Pro3 が起動しなくなった(復旧済)

結構焦った。

経緯
出先で使っていたところ、タイプカバーが反応しなくなった。正直コレはちょくちょくあるのであまり気にしなかった。
ただ、同時に画面の自動回転が機能しなくなっていたことが気になった。
ただ最近手入れをしていなかったな、と思い、家に帰ってから電源接続、Windows Updateをかける。

症状

まずWindows Update に失敗した。
スリープ復帰直後からの実行だったし、よくなかったのかな?
と思い一度シャットダウン。
そのあと電源をつけると、「Surface」ロゴが表示されたままWindowsが起動しない。
あれー?

焦って色々試す

まず充電ケーブルをつけなおす。 失敗。
タイプカバーを外す。 失敗。
下記を読む。
接続部を拭くとか正直面倒だったので(オイ)、電源30秒長押し。 失敗。

最終的にどうしたか

ツーボタンシャットダウンで無事起動するようになりました。
やり方はコチラ。
音量UPボタンと電源ボタンを同時に押し、そのまま 15 秒以上押し続ける。
リンク先では書いてなかったけど、BIOSというかUEFIが表示されたので、そのままExit。
(ここでもタッチ操作がきいたのは感動したw)
再起動成功。

その後

Windows Update を再度かけなおし、さらにもう一度再起動したところ、画面回転もタイプカバー認識もできるようになりました。

良かった良かった。
Surface Bookを買わなきゃアカンかと思った。

根本原因
最近NuAnsNeo ばかりかまっていたからスネたんですかね?


マイクロソフト Surface Pro 3 [サーフェス プロ](Core i5/128GB) 単体モデル [Windowsタブレット] MQ2-00017 (シルバー)

新品価格
¥111,300から
(2016/2/14 15:12時点)

コメントを書く