社内システムの移行
に役立った
“時間節約”方法
~PowerShellとExcelを上手に使おう~
那須 悟(Nasu Satoru)
ブログ 元「なんでもエンジニ屋」のダメ日記
Twitter @nasunotw
2015/07/11 Interact × Cloud Samurai Roadshow
自己紹介
那須 悟(なす さとる)
地方中小企業の一般事務員
某セキュリティ会社においてシステムの企画・設計・構築・運用を
経験、主にネットワーク エンジニアとして従事。その後、地方へ移
住し現地企業にて事務職&何でも屋を生業とする。
小規模会社をターゲットとしたMicrosoft製品の活用方法を日々研究。
Microsoft MVP
Windows Server for Small and Medium Business
(2014/4/1 – 2015/12/31)
Server Solution - Windows Home Server
(2013/01/01 - 2014/3/31)
今日お伝えしたい事
今日お伝えしたい事は二つ
1. “今すぐ”使える”時間節約”テクニック
⇒ PowerShellとExcelの連携
2. “今すぐ” 始めるマイナンバー制度の対策
“今”求められている
社内システムの一例
半年の間に求めれる事は
小規模企業・中小企業も同じ
1.老朽化したハードウェアを刷新したい
XP, 2003時代のHWから最新のHWへ
2.変化が極力少ないように欲しい
ファイルサーバーの利用やOffice ファイル等の資産の継続利用
3.社外とのやり取りを快適にしたい
大容量ファイルはMail方式から他方式へ
小さい会社の「依頼」
4.制度施行に備えた対策
• マイナンバー制度
• ストレス チェック制度
小さい会社の「依頼」
セキュリティ対策 + 準備 + 運用
一般的な移行プロセス
• ハードウェア設置
• 各種移行
• 動作確認テスト
• 定時監視
• トラブルシューティング
• 運用改善
• インフラ設計、構築
• ネットワーク設計、構築
• アプリケーション設定
• 物理情報
• デバイス情報 / 各種設定情報
• 社内システムの使われ方
現状調査
設計/構築/テスト
移行
運用
一般的な移行プロセス
• ハードウェア設置
• 各種移行
• 動作確認テスト
• 定時監視
• トラブルシューティング
• 運用改善
• インフラ設計、構築
• ネットワーク設計、構築
• アプリケーション設定
• 物理情報
• デバイス情報 / 各種設定情報
• 社内システムの使われ方
現状調査
設計/構築/テスト
移行
運用
どうしても時間が必要!
更に、私を悩ます4つの問題!
一人ぼっち
の作業
予算が
少ない
情報が
無い
作業時間
の確保
安全・確実・効率よく
社内インフラを
移行するには…
時間短縮
しかない!!
時間節約方法 その壱 ツールはxxを補完するもの
時間節約方法 その壱
PowerShell Excel 2013
• ローカル・リモートをスクリプトを使って管理
• バックグラウンド処理に対応(JOB)
• リモート操作が可能(WinRM)
• あらゆるMS製品で利用可能
• ただし、全能神(万能)ではない
Windows PowerShell
Windows PowerShell
• FileSystem
• Registry
• WSMan
• Certificate
• Environment
• Etc
• Roll
• Feature
• Middleware
• Etc
• Azure
• Office 365
• Intune
• Etc
黄金パターン
1. Excelにパラメータを書く
2. PowerShellでExcelを読む
3. PowerShellを並列実行する
時間節約テクニック~黄金パターン
Import-Excel -FullName <Excelファイル> -Sheet <シート名> | `
Foreach-Object{
if($_.FirstName -ne '')
{
Invoke-Command –Computer <PC名> –Credential <資格情報> `
-ScriptBlock { <リモート先で実行したい処理> } -AsJob
#又は
Invoke-Command –Computer <PC名> –Credential <資格情報> `
-FilePath <ローカルの.PS1ファイル名> -AsJob
}
}
• ダウンロード&インストール
https://github.com/dfinke/ImportExcel
.Install.ps1
• ブロックを解除
Get-ChildItem -Path .PSExcel –Recurse | Unblock-File –Comfirl:$false
• Moduleをインポート
Import-Module ImportExcel
• 使い方
Import-Excel –FullName <パス> -Sheet <シート名> [-Header <ヘッダー名[]>]
COM不要!PSからExcelを読取る~
ImportExcel
• ダウンロード&ファイルを配置
https://github.com/RamblingCookieMonster/PSExcel
c:users<ユーザー名>DocumentsWindowsPowerShellModules
• ブロックを解除
Get-ChildItem -Path .PSExcel –Recurse | Unblock-File –Comfirl:$false
• Moduleをインポート
Import-Module PSExcel
• 使い方
Import-XLSX –Path <パス> -Sheet <シート名> [-Header <ヘッダー名[]>]
COM不要!PSからExcelを読取る~PSExcel
時間節約方法 その壱 規模にあったOSを使う
時間節約方法 その弐
Windows Server 2012 R2 Essentials
Windows Server 2012 R2 Essentials
を使う
Users / Groups
Anywhere
Access
Shared Folders Backup
Microsoft
Online Service
Health
Monitoring
• 中小企業が必要とする機能がすぐ使える
• 初期環境構築のみ必要
• 低価格&CALフリー
• (個人的)使い慣れている
Windows Server 2012 R2 Essentials
を使う
PowerShellを使って移行作業を行う
• Create Folder
• Copy Folders&Files
• Install Apps
• Entry/Edit Registries
• Etc
• Install Rolls
• Install Features
• Create Users / Groups
• Create Shared Folders
• Enable WSE Features
• Etc
Windows Clients
Windows Server
2012 R2 Essentials
Automation
Setting
Parallel
Setting
実際のシナリオ
にそって説明
PowerShellを中心にお話します
1. 既存システムの情報を収集
2. Windows Serverを構築
3. Windows PCを同時に設定
3つの移行作業で説明
既存システムの情報
を収集
情報収集~デジタル編
デバイス
の詳細情報
ファイル サーバー
の詳細情報
情報収集~デジタル編
デバイス
の詳細情報
ファイル サーバー
の詳細情報
• Msinfo32.exeを使う
>msinfo32.exe /report c:xxx.txt
• PowerShellを使う
蓄積してきた自作ツールを利用
デバイスの詳細情報
PowerShellで情報収集~デバイス情報
•ホスト名,ドメイン
•OS/PowerShell バージョン
•ユーザー/グループ
•ネットワーク設定
•ドライブ/ボリューム構成
•稼働サービス
•更新プログラム
•アプリケーション
PowerShellをローカルで実行①
Windows
Windows ServerUsers
Administrator
Play Movie
デモ映像
#サンプル:ネットワーク情報を取得
if($psVer -ge 4 -and $osVer -ge 6.2)
{
#Windows 8/WS2012以上、かつ、PS v4以上の場合
Get-NetIPAddress
#More Information
Get-NetIPConfiguration
Get-NetConnectionProfile
}
else
{
#Windows 7以下の場合
Get-WmiObject Win32_NetworkAdapterConfiguration
}
• ホスト名
• アカウント名+所属
• デバイスの使われ方
普段使用してるアプリケーション
更新プログラムの当たり具合
その他
準備)移行に必要な情報をまとめる
システム台帳
を作成
情報収集~デジタル編
デバイス
の詳細情報
ファイル サーバー
の詳細情報
PowerShellで情報収集~ファイルサーバー
•共有フォルダー名
•ファイル名
•ファイル パス
•ファイル サイズ
•作成日
•最終アクセス日時
•最終書き込み日時
•所有者
•アクセス権限
PowerShellをローカルで実行②
Administrator Windows Server
2003 Standard
#サンプル:ネットワーク情報を取得
Get-WmiObject -Class win32_share | `
Foreach-Object{
if($_.Name -notlike "*$")
{
Get-ChildItem $_.path -Recurse | `
ForEach-Object{
$i++
$arr = $_.Name,$_.DirectoryName,$_.Length,`
$_.CreationTime,$_.LastAccessTime,`
$_.LastWriteTime, `
(Get-Acl $_.FullName).Owner, `
"=hyperlink(`"$path$i.txt`")"
$arr -join "," | Out-File –File “C:tempshare.csv”
}
}
}
~100 KB ~500 KB ~1 MB ~5 MB ~10 MB ~50 MB ~100 MB ~500 MB
~1000
MB
1000 MB
~
ファイル数 8256 9060 1979 2790 238 224 42 39 67 7
0
2000
4000
6000
8000
10000
12000
ファイル サーバーのファイルサイズ数
ファイル総数
22,000
~1 日 ~3 日 ~7 日 ~14 日 ~30 日 ~60 日 ~90 日 ~180 日 ~360 日 360 日~
ファイル数 3 871 89 738 133 296 331 1055 2099 17088
0
2000
4000
6000
8000
10000
12000
ファイル サーバーの最終アクセス日
ファイル総数
22,000
Windows Server
2012 R2 Essentials
を高速セットアップ
PowerShellなら数分で
セットアップが終わります
Windows Server 2012 R2
Essentials(WSE)
Users / Groups
Anywhere
Access
Shared Folders Backup
Microsoft
Online Service
Health
Monitoring
1. システム台帳(Excel)のデータを再利用
⇒ Excelのシートをロードするモジュールを使用
2. WSE専用PowerShell Cmdletsで連続登録
PowerShell+Excelで高速セットアップ
• Server Backupを設定
• FSRMを追加
• 共有フォルダーを作成
• 〃の一部を移動
• ユーザーを作成
• ユーザー グループを作成
• グループに対しアクセス
権限を設定
• 状態レポートを設定
• IPアドレスを固定
Excel + PowerShellでWSEをセットアッ
プ
デモ映像
Import-Excel -FullName <Excelファイル> -Sheet <シート名> | `
Foreach-Object{
if($_.FirstName -ne '')
{
[string]$first = $_.FirstName
[string]$last = $_.LastName
[string]$userName = $_.UserName
[string]$groupName = $_.Group
$pwd = $_.Password | ConvertTo-SecureString -AsPlainText -Force
Add-WssUser -FirstName $first -LastName $last `
-Name $userName -Password $pwd `
-GroupName $groupName
}
}
問題)コンシューマ向けOSが混在していた
ProのみProとHome Premium
• ProはWSEのドメインに参加、GPOで設定
• Home PremiumはWinRM※を用いて
レジストリをリモートで設定
• 作業は並列処理(Job)
時間短縮 ⇒ 確認作業に割り当てる
ポリシーを統一する
(出典)Windows リモート管理 (WinRM) の概要
https://technet.microsoft.com/ja-jp/library/dn265971.aspx
PowerShellのリモート&パラレル操作
…
グループ ポリシー設定リファレンス日本語版
(出典)https://technet.microsoft.com/ja-jp/windowsserver/grouppolicy/bb310732.aspx
• GPOのログオンスクリプトが一般的
• アプリやショートカット等はWinRMを
用いてバックグランドから配布
• 作業は並列処理(Job)
時間短縮 ⇒ 確認作業に割り当てる
共通のアプリ/ファイルを配布する
デモ映像
“今すぐ”できる
マイナンバー制度
の対策
この制度はよく理解し
適切な運用をしないと
非常に怖い・・・(私的感想)
余談)マイナンバー制度
1. 目的
行政の効率化
国民の利便性向上
構成・公正な社会の実現
2. 使用範囲
社会保障、税、災害対策 ※今日現在
3. 収集対象者
従業員、扶養家族、パート、アルバイトなど
4. 退職後の運用
ナンバー部分を削除(物理媒体・電子媒体)
5. 罰則
非常に厳しい
事業者
平成28年1月から利用開始される社会保障・税番号制度
年金事務所
健康保険組合
ハローワーク
税務署
市町村
(地方税)
マイナンバー
マイナンバー
外注先や株主
従業員
(パート・アルバイト含)
社会保険関連手続
源泉徴収票
給与支払報告書
各種支払調書
紙書類
人事給与システム ファイルサーバー
マイナンバーの
記載が必要
報酬/配当
給与/社保徴収
給与・福利厚生
商取引
• 個人情報流出の原因の大半=ヒューマンエラー
http://www.jnsa.org/seminar/2014/0610/data/A4_incident.pdf
• 組織的・人的・物理的・技術的 対策が必要
1. 情報データへのアクセス制限が必要
⇒ WSEの機能で対応
2. アクセス ログ収集と監視が必要
マイナンバー制度
• 監査ポリシー(Windows 標準機能)
⇒ (初心者には) 分かりづらい,探しづらい
• サード パーティ製アプリケーション
⇒ 何が起きているか?が分かりやすい
アクセス ログをとる
“無料”で試せるVVAULT AUDIT
(出典)http://vvault.jp/product/vvault-audit/index.html
特定ユーザーのアクセス履歴を確認
特定フォルダーのアクセス履歴を確認
まとめ
60分、話を聞いて頂いた
皆さんに感謝!
移行作業の“時間節約”方法
PowerShellとExcelを用いる
&
Windows Server 2012 R2を用いる
まとめ
=
Excelを使う=一粒で3度美味しい
1. システム台帳に利用
2. 各種設定に再利用※PSモジュール必須
3. あらゆるデバイスから
いつでも確認が可能
まとめ
ご清聴ありがとうございました
元「なんでもエンジニ屋」のダメ日記
 http://nasunoblog.blogspot.jp/
 https://www.facebook.com/nasunoblog
Windows Server 2012 R2 Essentialsの概要
 http://nasunoblog.blogspot.jp/p/windows-server-2012-r2-essentials.html
 Windows PowerShellに関する記事(テクニック)
 http://nasunoblog.blogspot.jp/search/label/PowerShell

社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう