2014年2月14日金曜日

インフラデザインパターンを読んだので突っ込みを入れておく

インフラデザインパターン ── 安定稼動に導く127の設計方式を読了。
色々言いたいことがあるので、書評を兼ねて突っ込みを入れておきたい。
すべての突っ込みを書いているとキリがないので、強く気になったところだけ書く方針で。
この本は何か
ITインフラの設計要素(可用性とかセキュリティとか)毎に複数のデザインパターンを紹介し、それらのメリット・デメリットを比較する、というのがこの本の主旨である。
全体的な所感
本書全体を通しての感想は、大きく以下の4点。
  1. 一般的に検討しなければいけない設計要素は一通り網羅されている。
  2. パターンもよく整理されている。
  3. しかし、明らかにパターンが不足している箇所がある。
  4. 同列で比較すべきでないパターンを比較している箇所がある。
それぞれ、以下で細かく見ていきたい。

2014年2月13日木曜日

あふw ネットワークドライブ操作メニュー

業務上、社内のファイルサーバやWebDAVを使うことが多いので、あふwから簡単にネットワークドライブとして接続/切断できるようにした。
F8キーにネットワークドライブメニューを割り当てた。
Kxxxx="0119&MENU $~\NetworkDriveMenu.txt"
afx ネットワークドライブメニュー
"P webdav1" net use P: https://example.co.jp/webdav1/ password /user:username
"Q fileserver1" net use Q: \\fileserver1\share password /user:username
"0 deleteAll" powershell $~\deleteAllNetworkDrive.ps1
@(gwmi Win32_MappedLogicalDisk) | % {
 net use $_.DeviceID /delete
}

2014年2月11日火曜日

イメージファイト2周目7面後半新パターン

2014.2.15 動画を追加。

イメージファイトの2周目7面後半は難所として有名だが、この度、背景の星を目印に位置合わせをする横着パターンを開発したので、ここに発表する。
正直、イメージファイトのトッププレイヤーのプレイを見たことがないので、もしかしたらすでに誰かが同じことやってたりして。。。
もし世界初だとしたら7面後半の攻略に革命が起きるのではないか。

2014年2月10日月曜日

SubInACLのFlagとAccessMask早見表

dsp74118の補完庫: Windows のオブジェクトのアクセス権を操作するコマンド subinacl が便利だった で触れたSubInACLのFlag、AccessMaskの早見表を作った。
俺の中ではアクセス権変更ツールとしてのSubInACLはオワコンだが、現在のACLを確認するツールとしてはまだまだ便利に使えると思う。

パスをあふw(Afxw)で開く(File URI Scheme対応版)

引数で与えたパスをあふwで開くvbs。今日、少し手を加えたのでpostしておく。
元ネタは、何年も前にどこかから拾ったもの(2chのあふスレかな? ググったけど出てこなかった)。
あふwこまんど使用。
あふwこまんどは(というか、あふw自体が)ローカルパスとUNCパスは開けるけどfile URI Scheme(file:///)が開けなかったので、その考慮を付け加えたもの。
あふw 及び あふwこまんど のインストール先が"%APP%\afxw\"であることが動作条件。環境によって27~29行目を書き換えてもらえばよいかと思う。

Everythingの「規定のファイラーでパスを開く」に登録しておいたり、ブラウザやメーラーの"file:///"のコンテキストメニューに追加したりすると便利なんではないかと思う。
' Open with Afxw.vbs
' ver.1.1 dsp74118
' Description: Open path(Local path/UNC path/URI) with Afxw
' Requirement: あふこまんど(AFXWCMD.EXE) is installed in %APP%\afxw\
' args:
'  path string
Option Explicit

'Function UrlDecode
' Description: Decode UTF8-Encoded-URI
' args:
'  strSource: Encoded URI string
' return:
'  Decoded URI String
Function URLDecode(strSource)
 Dim objSC
 Set objSC = CreateObject("ScriptControl")
 objSC.Language = "Jscript"
 URLDecode = objSC.CodeObject.decodeURIComponent(strSource)
 Set objSC = Nothing
End Function

' main
On Error Resume Next
Dim wshShell
Dim app, afx, opt, quoteChar, SPC, YEN
Set wshShell = WScript.CreateObject("WScript.Shell")
app = wshShell.ExpandEnvironmentStrings("%APP%")
afx = app & "\afxw\AFXWCMD.EXE"
opt = "-p"
quoteChar = """"
Dim path, arg, runCmd
Set arg = WScript.Arguments
If arg.Count = 0 Then
 WScript.Quit
End If
path = arg(0)
' convert URI(file scheme) to UNC
If Left(path, 8) = "file:///" then
 path = Right(path, Len(path) - 8)
 path = URLDecode(path)
End If
runCmd = quoteChar & afx & quoteChar & " " & opt & quoteChar & path & quoteChar
wshShell.Run(runCmd)

2014年2月7日金曜日

PowerShellでNTFSのACLをいじる(備忘録レベル)

2014.2.13修正 ACLの適用範囲や継承は既存の設定を引き継ぐよう修正

仕事で下記スクリプトを作ったので記録として残しておく。
機能は、引数で与えたフォルダに対し、セキュリティグループ "domainname\groupprefix*" の「サブフォルダーとファイルの削除」権限を削除するというもの。
このスクリプトをベースに、色々と応用が効くはず。
$Path = $args[0]
$acl = Get-Acl $Path
$groupAccess = $acl.access | where {$_.IdentityReference -like "domainname\groupprefix*"}
if ($groupAccess){
    $Access = $groupAccess.IdentityReference

    "Modifying Permissions For $Access"
    $Permission = $groupAccess.FileSystemRights
    "Before: $Permission"
    $Permission = ($Permission -replace "DeleteSubdirectoriesAndFiles(, )*","") -replace ", $", ""
    "After: $Permission"
    $inherit = $groupAccess.InheritanceFlags
    $propagation = $groupAccess.PropagationFlags
    $AccessRule = New-Object system.security.AccessControl.FileSystemAccessRule($Access, $Permission, $inherit, $propagation, "Allow")

    $AccessModification = New-Object system.security.AccessControl.AccessControlModification
    $AccessModification.value__ = 2
    $Modification = $False
    $acl.ModifyAccessRule($AccessModification, $AccessRule, [ref]$Modification) | out-null
}
Set-Acl -aclobject $acl -Path $Path

VagrantでWindowsゲストのBoxを作成


前々からVagrantをいじりたくてうずうずしていた私。最近ようやく触る時間ができたので、Windows Server 2012 R2ゲストのBox自作に挑戦した。
最初は[Vagrant] WindowsServer2012R2のBoxを自作する #Vagrant_ja - NAVER まとめを参考にさせてもらっていたが、このまとめの作者であるk-kukitaさんから「今はvagrant-windows使ったほうがよい」とアドバイスを頂いたので、早速vagrant-windowsを試してみた。

必要な手順はvagrant-windows/README.md at master · WinRb/vagrant-windows · GitHubにほとんど書いてある。
なお、VagrantやVirtualBoxのセットアップは、この記事では省略する。