Quantcast
Channel: "Diary"インターネットさんへの恩返し
Viewing all 105 articles
Browse latest View live

Windows 2012(R2)でのユーザアカウント制御関連設定まとめ

$
0
0

Windows2012環境で様々なアプリケーションをインストールすると思いますが、導入フェーズでインストレーションの障害となる、Windows2012ならでのローカルセキュリティポリシーのセキュリティオプションについてそれぞれざっと、事前に方針を決めておいたほうがいい内容を記載します。もちろん運用テストで見なおししましょう。

UIAccess アプリケーションで、セキュリティで保護されたデスクトップを使用せずに昇格のプロンプトを表示できるようにする

  • デフォルト
    • 無効
  • 意味
    • Windowsリモート アシスタンスなどの UIA プログラムにより、セキュリティで保護されたデスクトップでの昇格時のプロンプト表示が自動的に無効にされます。[ユーザー アカウント制御: 昇格のプロンプト時にセキュリティで保護されたデスクトップに切り替える] ポリシー設定を無効にしていない場合、セキュリティで保護されたデスクトップではなく、対話ユーザーのデスクトップにプロンプトが表示されます。

アプリケーションのインストールを検出し、昇格をプロンプトする

  • デフォルト
    • 有効
  • 意味
    • インストールするために特権の昇格を必要とするアプリケーションのインストール パッケージを検出した場合、管理ユーザーの名前とパスワードの入力を求めるプロンプトを表示します。有効な資格情報が入力された場合は、その管理ユーザーに適用される特権で操作を実行します。

ビルトイン Administrator アカウントのための管理者承認モード

  • デフォルト
    • 無効
  • 意味
    • ビルトイン Administrator アカウントは管理者承認モードを使用します。既定では、特権の昇格を必要とする操作が試みられた場合はすべて、ユーザーに操作の承認を求めるメッセージを表示します。

管理者承認モードを有効にする

  • デフォルト
    • 有効
  • 意味
    • ユーザー アカウント制御 (UAC) ポリシー設定の動作を決定します。このポリシー設定を変更した場合は、コンピューターを再起動する必要があります。管理者承認モードが有効になっています。ビルトイン Administrator アカウントと、Administrators グループに属するその他のすべてのユーザーを管理者承認モードで実行できるようにするには、このポリシーが有効になっていること、関連する UACポリシー設定が適切に設定されていることが必要です。

管理者承認モードでの管理者に対する昇格時のプロンプトの動作

  • デフォルト
    • 確認を要求しないで昇格する
  • 意味
    • 管理者承認モードでの管理者に対する昇格時のプロンプトの動作を決定します。特権のあるアカウントに対して、特権の昇格を必要とする操作を、同意または資格情報を要求せずに実行することを許可します。

署名され検証された実行ファイルのみを昇格する

  • デフォルト
    • 無効
  • 意味
    • 特権の昇格を必要とする対話型アプリケーションに対して、公開キー基盤 (PKI) 署名チェックを強制します。管理者は、ローカル コンピューター上の信頼された発行元証明書ストアに証明書を追加することによって、どのアプリケーションを許可するかを管理できます。

昇格のプロンプト時にセキュリティで保護されたデスクトップに切り替える

  • デフォルト
    • 有効
  • 意味
    • 昇格要求のプロンプトが、対話ユーザーのデスクトップで表示されるか、セキュリティで保護されたデスクトップで表示されるかを決定します。管理者および標準ユーザー用のプロンプトの動作ポリシー設定にかかわらず、すべての昇格要求は、セキュリティで保護されたデスクトップで行われます。

標準ユーザーに対する昇格時のプロンプトの動作

  • デフォルト
    • 資格情報を要求する
  • 意味
    • 標準ユーザーに対する昇格時のプロンプトの動作を決定します。特権の昇格を必要とする操作が試みられた場合、管理ユーザーの名前とパスワードの入力を求めるプロンプトを表示します。

やってみたいネタ。あったらいいな。どれかから手を付けてみよう。できないこともあるけど。(2)

$
0
0

やってみたいネタ。あったらいいな。どれかから手を付けてみよう。できないこともあるけど。(1) - "Diary" インターネットさんへの恩返し

を書いたけどまだ何もできてない 笑。妄想だけどが膨らむが、もしだれか実現してくれたら嬉しい。

表情認識センサーでギター演奏

眞鍋だいとの逆版。ギターチョーキングのとかおもしろそう。常に変顔みたいな。

老人ホームの口コミ比較サイト

こういう時代だしすでにあるかな。でも、必須ですな。ターゲットは介護者の40代、50代でしょうか。ソーシャルワーカーが使うのもいいね。

GPS補聴器音声認識

補聴器って使ったことないからわかんないけど、補聴器自体で、外界の音声を認識して、人口知能で、翻訳する感じ。普通に同時通訳の代わりにもできんかね。

ビルに携帯をかざすとどんな会社が入っているかわかる

よくわからんのです、どこに何が入ってるか。ここ東京は。新大久保あたりの怪しいビル群をスキャンしたらおもしろそう。

肩こりに効く電子サロンシップ(充電式)

これでてもおかしくないやろ!って言う感じ。日本の肩こり、腰痛会のイノベーション

電話コールのAPIサービス

twiloとかみたいなイメージ。ほぼそれか。競合いまだと少ないのでastariskつかって類似サービスつくれんかなと。

セキュリティログ自動解析サービス

機械学習をつかって、ほんとにやばいときにアラートしてくれという。

オンデマンドPCレンタルサービス

パソコンは消耗品ですからレンタルでいいです。

釣りキチなび

人の多さ、水温、濁り具合、流れの強さ、時間、日照、気温とかでで今どんな感じか提案してくれるアプリ。

ヘルシーミールリコメンダー

触れたり、声の大きさで、触れるだけで(静電気とかで)、どんな飯を食べたらいいか提案してくれるアプリ。

メルカリで、ヤフオクでどんな文章、価格スタート、交渉術をしたら、統計的に一番売れるか、提案してくれるアプリ

人間分析アプリ

そのひとの写真を取るだけで趣向や年齢とかいろいろ教えてくれるアプリ(心理学とか使って)

その気アルーノ?

メールの文章やレス時間を解析して、その子が自分に気があるか判断してくれるアプリ。

暇つぶしアプリ

潰したい時間と、目的地、出発地、個人属性を入力するとルート提案してくれる

事前に知る知る

家にマイクを設置しておくだけで、嫁の機嫌がいいか、悪いかを事前に把握できるアプリ

素人バイザー

スーパーで食品の画像を取るだけで、鮮度とか美味しさを判断してくれるアプリ。

イントネーションで出身を見破るアプリ

予算を定時するば、レストランで最適な組み合わせを教えてくれるアプリ

化粧をどう塗れば、もっと良くなるか教えてくれるアプリ

いちいちうんちくを語ってくる家電

にらめっこ、笑顔認識アプリ

目的変顔を、集めて世界を笑顔にする。

面接システム

表情、アクション、声とかでどんな人かを見抜くシステム

書籍検索ネットワークサービス

本屋、図書館に入りwifiをオンにすると自動的に検索画面に入る。過去の購買履歴、レンタル履歴からリコメンドをする。アプリインストールせずともpush通知はできないかな

次世代電車

広告を見て即購入。乗客別にカスタマイズされた広告をモバイルで表示。

次世代サイネージ

画像認識で、属性を洗い出し、ベストなコンテンツを提示する。子連れ、サラリーマン、キャリーバッグ、服装とか。

信号むし、人が渡る注意判別、老人がきたら信号を赤にする

僕らはロボットなんじゃないかという話

$
0
0

www6.nhk.or.jp

先日、録画してたこれみた。Softbankの新型Pepperくんがやばすぎた。

自律的に動くロボットで、外界の音、人の表情&声などをインプットとして、それにおうじて自律的に表情を変えたり、動いたり、話したりする。

面白いのが、人間の感情が変化するときのいくつかの物質の動きをモデルとして真似て、それらの量やバランスの組み合わせで、様々な感情を表現する。

これを見てると、「このPepperくん、もう用済みだからスクラップにして捨てといて」と、自分が言われた場合、多少躊躇するのではないかと思ったり。

実際そうしようとするとこのPepperくんは「僕をスクラップにするの?」「捨てないで」とか言ってきそう。


もし、そうなった時に果たして僕は彼をスクラップにできるだろうか?


これ見てると、もう生物とロボットって何が本質的に違うかよくわからんくなってきた。

生殖能力?

恋愛?

政治?

血?

いずれも、人間って物質と電気でできているので、極論ロボットと同じ。

物質と電気で構成されているものの組み合わせでしかなくて、生物の場合は遺伝アルゴリズムみたいなやつの最強版で、ロボットはそれの簡易版っていう感じ。

魂も、感情もスピリチュアルな産物のように捉えているけど、このPepperくんのように単なる感情をコントロールする要素の組み合わせの産物なのだとしたら、神様がプログラミングした単なる機能の一つにしか過ぎないと。

なんとも、僕らは単なるロボットなんじゃないかと思えてきたのです。あ〜おそろし。自分がロボットであることに気づいたロボットって感じです。

SAPベーシス 移送管理で使える Tips

$
0
0

SAPは変更管理の機能として「移送」という、開発機→検証機→本番機とオブジェクトをデプロイしていく仕組み自体が組み込まれています。その移送管理で使えるTipsをご紹介。

[目次]

移送キューへの一括移送登録コマンド

開発機でOSユーザadmでログインして以下を実行。

tp addtobuffer <SID>KXXXXX <Target SID> client=<Target client No> pf=/usr/sap/trans/bin/tp_domain_<Dev SID>.PFL


いちいちサーバにログインするのがめんどくさい場合は、Excelのマクロ(vba)でリモートアクセスしキュー登録できる。

Sub execute()

strComputer = "<hostname>"
strCommand = "<drive>:\usr\sap\<SID>\SYS\exe\uc\NTAMD64\tp.exe addtobuffer <移送番号> <SID> client=<クライアント番号> pf=<drive>:\usr\sap\trans\bin\TP_DOMAIN_<SID>.PFL"

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, "root\cimv2", "<OS username>", "<password>")
objSWbemServices.Security_.ImpersonationLevel = 3
Set objProcess = objSWbemServices.Get("Win32_Process")

errReturn = objProcess.Create(strCommand, Null, Null, intProcessID)

If errReturn = 0 Then
MsgBox ("成功 プロセスIDは" & intProcessID)
Else
MsgBox ("失敗 エラーコード:" & errReturn)
End If

End Sub

エラーが出たらこちらのエラーコード参照
http://msdn.microsoft.com/en-us/library/aa389388%28v=vs.85%29.aspxCreate method of the Win32_Process class (Windows)

移動ディレクトリ変更

transフォルダが入っているドライブが満杯になってしまった場合のtransフォルダの移動方法。

  1. robocopy:\usr\sap\SYS\trans コピー先 /COPYALL /E /SECFIX
  2. プロファイルパラメータの DIR_TRANS、DIR_EPS_ROOT をコピー先ディレクトリにして再起動
  3. t-code:STMS >一覧 >システム のシステムどれか選んで 「移送ツール」タブ のTRANSDIRを2.と同じにして保存。
  4. 共有の設定などしなおしてくだされ。

ローカル環境での移送フォルダの設定(windows)

ドメイン環境ではなくローカル環境(WORKGROUP)で共通移送ディレクトリを環境に持つ方法。

  • 117395 - Windows NT ファイル入出力の権限問題

一括移送コマンド

これは上記で紹介した、キューに登録したあとのSAPへの取り込みをコマンドから行うもの。

tp import <SID>KXXXXX <Target SID> client=<client No> pf=/usr/sap/trans/bin/tp_domain_<Dev SID>.PFL

例:tp import P28KT00687 D28 client300 pf=TP_DOMAIN_D28.PFL U128
”u”の後の128がオプション値。

0: Called a overtaker; change request can be imported from buffer without deleting it and then uncoditional mode 1 is used to allow another import in the correct location.
1: If U1 is used with the export then it ignores the correct status of the command file; and if it is used with import then it lets the user import the same change request again.
2: When used with tp export, it dictates the program to not to expand the selection with TRDIR brackets. If used in tp import phase, it overwrites the originals.
3: When used with tp import, it overwrites the system-dependant objects.
5: During the import to the consolidation system it permits the source systems other than the integration system.
6: When used in import phase, it helps to overwrite objects in unconfirmed repairs.
8: During import phase it ignores the limitations caused by the table classification.
9: During import it ignores that the system is locked for this kind of transport. 

参照インポート時のオプション指定

自動移送

  1. インポート先システムにログイン
  2. t-code:STMS、全移送のトラックマークをクリック
  3. スケジュール設定
  4. t-code:SM37で *import* と買って検索したら出ててくるので必要に応じて微調整。

SAPベーシス ユーザ&ロール管理で使えるTips

$
0
0

SAPのユーザ管理で定期的に全ユーザをリスト化したりとよく使う、ユーザ管理ネタをご紹介。

[目次]

ユーザパスワード期限切れ前アラート連絡(できません)

いきなりできないことを紹介していますが、こちらをみて作りこめばできます(http://scn.sap.com/thread/228829
ただこちらのwishlistへの返答を見ると将来的には対応するかも?
http://wiki.scn.sap.com/wiki/display/Security/Warning+that+password+will+expire

パスワード制限関係

ここにまとまっております。3文字以上とか。
パスワードルール - ID 管理 - SAP Library

有効期限切れ間近のユーザ一覧をスプールに出すバックグラウンドジョブを作る方法

http://home4sap.com/Blog/2010/10/sap-administration-tip-e-mail-notification-for-user-expiration/

パスワード規則とかに関するノート

2467 - Password rules and preventing incorrect logons
862989 - New password rules as of SAP NetWeaver 2004s (NW ABAP 7.0)
Profile Parameters for Logon and Password (Login Parameters) - AS ABAP Authentication Infrastructure - SAP Library

ユーザ情報一括出力レポート

Security reports | SCN

パスワード変更履歴の確認(日付など)

t-code:SUIM >変更文書 >ユーザ用 >ユーザ属性の「パスワード」にチェック

ユーザ一括登録

ecattを使ったユーザ一括登録(su01)
http://www.sapsecurityexpert.com/2011/07/create-mass-users-using-ecatt-scripts/

一括ロール登録

上記同様、ecattでt-code:PFCGを記録。ユーザー指定する箇所では必ず行追加してから割り当てること。オリジナルのユーザーエントリが上書きされて消えるため。

ロール運用

  • ロールの削除

一回ロールの移送をとってからロールの削除を行う。
How to delete the role and transport from one s... | SCN
SAP Security Training How to delete role with SAP Transport - YouTube

権限オブジェクト一覧

  • テーブル AGR_1251 権限オブジェクトレベルで一覧になっている

ロールとユーザの組み合わせ一覧

以下を組み合わせれば、出力できます。

  • テーブルAGR_USERSでロールIDとユーザIDの組み合わせ
  • テーブルAGR_DEFINEでロールIDとディスクリプションの組み合わせ
  • t-code:SUIMでユーザIDとユーザの属性情報の組み合わせ

1つのOSに複数のSAPを乗っける方法(MCOD/マルチインスタンス)

$
0
0

HANAの登場でこの記事で書く内容も、すぐに古き良きNetweaver時代の技術ネタとなることを理解しつつ記す。

SAPアプリケーションでは、基本的に1OS上に、DB/APをのせるセントラル構成が基本。

それを1OS上に複数のSAPを乗っけちゃおうという話。

今では開発環境やデモ環境ですら、仮想化の恩恵を受けて、デモ用にOSから環境を用意することが多いと思います。

とは言え、PC上にvirtualboxとかで仮想OSを入れて、1つのWindows Serverに複数のSAPを作っることもしばしば。

そのやり方として主に2つあるのでご紹介。

まずSAPとDBとの関係について抑える

SAPは他の一般的なDB/AP構成のシステムのアーキテクチャと同じで、OracleSQL Server等のDBソフトを使って、DBインスタンス(サービス:メモリ領域+プロセス)を作り、その上にユーザデータベースとなるスキーマを乗っけます。

そしてSAPアプリケーションサーバがそれらの上にのり、1つのシステムを構成します。


f:id:azumami:20151207231957p:plain

2つの構築方法

上に書いたアーキテクチャを前提に、1つのOS上に複数のSAPシステムを作る手段として2つあります。

MCOD

1つ目は、MCOD(Multiple Components in One Database)という形で1つのDBインスタンスの上に2つ以上のスキーマを作ります。そしてそれぞれのスキーマに対応するSAPアプリケーションサーバを構成します。


f:id:azumami:20151207231931p:plain

この構成のメリットとして、DBインスタンスが1つとなるため、必要なメモリ領域が1つ分のDBインスタンス用のみで済み、メモリリソースが次で紹介するマルチインスタンス構成に比べ少なくて済みます。

デメリットとして、MCOD方式の場合、1つのDBインスタンスを共有するためDBプロセスの取り合いが発生し、パフォーマンスに難ありとなります。

同時にヘビーな使い方をしないのであればコレで十分でしょう。

ただ、このMCOD構成は厄介ですので、デモ用途以外の利用はオススメできません。厄介な例でいうと、

  • 標準DBツールスキーマの操作が出来ない
  • DBファイルが1つになるため、DBファイルレベルでコピーなどができない
  • スキーマ毎にバックアップができない
  • UnicodeとNonUnicodeが共存できない
  • システムコピーとかDB移行がめんどくさい


参考

388866 - Multiple Components on One Database - Installation

DBマルチインスタンス

2つ目は、DBインスタンスを各システム毎に用意するマルチインスタンス構成です。


f:id:azumami:20151207231947p:plain

こちらの場合、システム毎に、SAPアプリケーションサーバ+DBスキーマ+DBインスタンスが独立します。

そのため、相互に影響を及ぼしにくいというメリットがありますが、DBインスタンスのメモリが2つ分必要になるので、必要な物理メモリはその分増えます。

SQL Serverを例に取ると、通常1つ目のDBインスタンスはdefault Instanceとして実装されます。そのため2つ目のインスタンスをNamed Instanceとして実装することになります。

MCODも、マルチも同じですが、移送ディレクトリが共通になってしまうのでご注意下さい。

特に、

もし、新しく追加するシステム側でDummy Syatemで移送ルートを組んだりすると、DOMAIN.CFGが上書きされ、移送ルートが消えてしまいます。


参考

SAP Notes
SAP Note 21960 - Several instances/systems on one UNIX computer
1794178 Network issues suspected on SQL Server systems
1593183 SQL ServerTCP/IPネットワークパラメータ
551915 DB リストアまたは DB コピー後に R/3 が起動しない
492966 APO 3.0 liveCache 管理/監視 (LC10)
455238 MSSQL_* environment variables, profile parameters
208632 MSSQLTCP/IPネットワークプロトコル
28667 MicrosoftSQL Server固有プロファイルパラメータ
1914385 SQL Server Alias use results in a connection, but w/errors
Note 28392 - Two R/3 Systems on one Windows NT Server

SAPさん早く、まずはソルマンからでいいから最新のパッチを当てたイメージ配布してください

$
0
0

最近、久々にsolution managerとか、ERPとかインストールしてますが、昔にくらべインストールに関する品質が全く良くなっておらず、、、

dockerとか、vagrantとかイメージ配布されてるこの時代に、いちいちOSセットアップしてDB入れてと、バグだらけのSUMでパッチ当てて、結局アプリに引き渡すだけで半月かかかり、おかげでベーシスが飯を食えるという、自分の仕事がなくなってもいいので、アホくさいことさせるのもう勘弁して欲しい。

もうcentosベースでいいから。

そして、webをフロントにしようと頑張ってらっしゃいますが、SUMにしてもservice market placeの新しいやつにしても、不安定でバグだらけ、さらに遅すぎという、高い、マズイ、遅いという。

それなのに、エンタープライズ!なブランド発信で表向きは魅力満載。

そんなSAPさんに飯を食わせていただいておりますので、感謝しておりますが、もう少しなんとかまともにインストールできるもの作ってくださいと、数年前から願っております。

しらべたらソルマンのクラウド版をNTTデータが出してた!ちょっと高いけど、、、


SAP Solution Manager クラウドサービス | NTTデータ グローバルソリューションズ

発射間際に電車に飛び込んだでみたら、、、

$
0
0

仕事で客先に向けて早朝遅刻すれすれだったので、もうダッシュして飛び込んだら


なんか、



異空間


見たことのない景色


匂いも


違う


さすがの鈍感な僕でもすぐにピンときた、


これは、男児禁制車両だ。




悪気はないので勘弁してください


もうしません


許してください


だれも僕に声をかけないで


わかってるんだから


知ってるよ、知ってるよ、知ってるよ!


と心で叫びながら



逃げるように、次の駅で降りました。




先頭車両を男子禁制にするのは、、、


やめてほしいです。日比谷線


いや僕が悪いんです。すいませんでした。


Windowsでファイアーウォールを操作するいろいろ(Powershell/netsh(DOS)/VBScript)

$
0
0

ローカル環境の複数のWindowsサーバのファイアーウォールを設定する要件があり、いろいろとリモート実行できないかと調べたのですがどうもできないようで。

妥協案ですがファイルサーバにバッチを置いて、ジョブサーバから該当サーバのエージェント経由でファイルサーバ上のファイアーウォール設定・追加を一括実行するということにしました。

その時、各言語でファイアーウォールを操作する基本コマンドを調べたので記す。

各実装方法のサンプル

それぞれのスクリプトサンプルを記載してます。

Powershell

設定追加

表示名 test で新規設定(xxxx.ps1)

$newDefinition = "test"
$Name=$newDefinition 
$DisplayName=$newDefinition
$Description="Windows PowerShell Remoting required to open for public connection. not for private network." 
$Group="Windows Remote Management" 
$Enabled="True"
$Profile="Any" 
$Direction="Outbound"
$Action="Block"
$Program="Any" 
$LocalAddress="Any"
$RemoteAddress="192.168.5.1-192.168.5.10"
$Protocol="TCP"
$LocalPort="Any"
$RemotePort="1000-2000"
$LocalUser="Any" 
$RemoteUser="Any" 

if(-not(Get-NetFirewallRule | where Name -eq $newDefinition)){

New-NetFirewallRule `
		-Name $newDefinition `
		-DisplayName $newDefinition `
		-Description $newDefinition `
		-Group $Group `
		-Enabled $Enabled `
		-Profile $Profile `
		-Direction $Direction `
		-Action $Action `
		-EdgeTraversalPolicy Block `
		-LooseSourceMapping $False `
		-LocalOnlyMapping $False `
		-OverrideBlockRules $False `
		-Program $Program `
		-LocalAddress $LocalAddress `
		-RemoteAddress $RemoteAddress `
		-Protocol $Protocol `
		-LocalPort $LocalPort `
		-RemotePort $RemotePort `
		-LocalUser $LocalUser `
		-RemoteUser $RemoteUser 

}else{
		Write-Host "///////////////////////////////////////////////////////////////"
		Write-Host $newDefinition " is arleady exist. the definition is bellow"
		Write-Host "///////////////////////////////////////////////////////////////"
		Show-NetFirewallRule | where DisplayName -eq $newDefinition
}
無効化

表示名 test を無効化

PS >Disable-NetFirewallRule  -DisplayName "test"
有効化

表示名 test を有効化

PS >Enable-NetFirewallRule  -DisplayName "test"
一覧表示

現在の設定詳細一覧表示

PS > Show-NetFirewallRule


Name                       : {BD9C612E-69AA-434C-91CD-A33D28C115C4}
DisplayName                : test
Description                : dddddddesctiprinn
DisplayGroup               :
Group                      :
Enabled                    : True
Profile                    : Any
Platform                   :
Direction                  : Outbound
Action                     : Block
EdgeTraversalPolicy        : Block
LooseSourceMapping         : False
LocalOnlyMapping           : False
Owner                      :
PrimaryStatus              : OK
Status                     : The rule was parsed successfully from the store. (65536)
EnforcementStatus          : NotApplicable
PolicyStoreSource          : PersistentStore
PolicyStoreSourceType      : Local

$_ | Get-NetFirewallAddressFilter
     LocalAddress          : Any
     RemoteAddress         : 192.168.5.1-192.168.5.10

$_ | Get-NetFirewallServiceFilter
     Service               : Any

$_ | Get-NetFirewallApplicationFilter
     Program               : Any
     Package               :

$_ | Get-NetFirewallInterfaceFilter
     InterfaceAlias        : Any

$_ | Get-NetFirewallInterfaceTypeFilter
     InterfaceType         : Any

$_ | Get-NetFirewallPortFilter
     Protocol              : TCP
     LocalPort             : Any
     RemotePort            : 1000 2000
     IcmpType              : Any
     DynamicTarget         : Any

$_ | Get-NetFirewallSecurityFilter
     Authentication        : NotRequired
     Encryption            : NotRequired
     OverrideBlockRules    : False
     LocalUser             : Any
     RemoteUser            : Any
     RemoteMachine         : Any

これをリモートコンピュータに設定するには事前に「Enable-PSRemoting」をやっておかないといけない。

PowerShellでリモートPCの操作を行うに為にEnable-PSRemotingをするための準備 - tech.guitarrapc.cóm

Netsh

設定追加

「block80」というルール名前でTCPの80番ポート送信をブロックする。

netsh advfirewall firewall add rule name="block80" protocol=TCP dir=out remoteport=80 action=block remoteip=any
無効化
netsh advfirewall firewall set rule name="block80" new enable=no
有効化
netsh advfirewall firewall set rule name="block80" new enable=yes
表示
C:\Users\miyashita-a>netsh advfirewall firewall show rule name="allow80" verbose

規則名:                               block80
----------------------------------------------------------------------
有効:                                 いいえ
方向:                                 出力
プロファイル:                         ドメイン,プライベート,パブリック
グループ:
ローカル IP:                          任意
リモート IP:                          任意
プロトコル:                           TCP
ローカル ポート:                      任意
リモート ポート:                      80
エッジ トラバーサル:                  いいえ
操作:                                 ブロック
OK
削除
netsh advfirewall firewall delete rule name="block80"

Excelグラフで日時ベースのガントチャートを作る。条件書式設定は不要です

$
0
0

f:id:azumami:20160720153257p:plain
完成イメージ。


通常、ガントチャートExcelの条件付き書式とかでやると思いますが、パワポ、ワードに貼るなどの用途では向かないので、グラフでガントチャートを作る方法を記す。デザインとか影とか色々いじれるので、プレゼンや報告資料では見栄えしますね。


1)まず、上のようなデータを作ります。使用するのはA,B,C列です。
f:id:azumami:20160720152958p:plain


2)こんな感じで範囲選択し、画像にあるグラフタイプを選びます。
f:id:azumami:20160720153004p:plain


3)水色の部分は不要なので、透明にします。
f:id:azumami:20160720153010p:plain


4)系列部分も入らないので削除します。
f:id:azumami:20160720153015p:plain


5)軸が見苦しいので、「軸の書式設定」を選び変更をします。
f:id:azumami:20160720153022p:plain


6)文字の方向を縦向きにします。
f:id:azumami:20160720153029p:plain


7)メモリ間隔を0.25(6時間)にします。
f:id:azumami:20160720153035p:plain


8)完成。
f:id:azumami:20160720153257p:plain

ITアウトソーシングプロジェクトで使えるノウハウ資料集

$
0
0

今、ITソーシングプロジェクトでWBSを使っていたりしていますが、そのネタとして使える資料集です。私がやっているのは、そんな大きな会社では無いけどそれなりのレベル感で落とす必要があり、そういった観点で役に立ったやや現場よりの資料が多いです。

[目次]

ITサービスマネージャ資格勉強本(★★★)

情報処理教科書 ITサービスマネージャ 2015~2016年版

情報処理教科書 ITサービスマネージャ 2015~2016年版

アウトソーシングをサービス提供者側でするにあたってあるべき論を学習する上で体系的にまとまっている教科書。アウトソーシング特有用語やサービス提供者として使用する用語などもそのまま使えるので、この本に書いてある用語を使えばあまり頭を使わず、それなりの、、、プロっぽい雰囲気の資料が作れます。

ITサービスマネジメントハンドブック(★★★)

http://www.ipa.go.jp/files/000010291.pdf
一個前に上げた資料の簡易版。無料ダウンロード化なのでざっくり見たい場合はこちらで十分。

ITガバナンスのフレームワーク集(☆☆★)

www.itgi.jp
COBIT等のITガバナンス系の資料が落とせるリンク集。ガバナンスは正直顧客が責任をもって考えるべきですが多少「一般的には、、、こうですよ」アドバイスできるレベルになるためちょっと目を通しておいたほうがよいレベル。

本稼働する予定のシステムをアウトソーシングするためのステップの例(★★★)

http://www.unisys.co.jp/tec_info/tr96/9606.pdf
UNISYSの事例で、本稼働を予定している顧客のシステムをどんな取り決めをして、どのようにアウトソーシング化するかが書かれている資料。そのまま使えます。こういうノウハウをオープンにしてくれるのはUNISYSの懐の広さを感じる。

アウトソーシングに関する情報セキュリティ対策ガイダンス(★★★)

http://www.meti.go.jp/policy/netsecurity/downloadfiles/outsourcing_guidelines.pdf
アウトソーシングするにあたって、ユーザ側がどのようなセキュリティ対策・方針を検討すべきかが記載されているガイドライン。顧客へのアドバイスとしてここに書かれていることをベースにコンサルできます。

ユーザ側がベンダーとITサービスの契約をするためのノウハウ集(☆☆★)

http://www.meti.go.jp/policy/it_policy/keiyaku/model_keiyakusyo.pdf
完全にユーザ向けの資料ですが、ベンダー側もあらゆるITサービスを提供する際の契約書に関してどのようなことをユーザは意識しているかを知るには良い資料。

ソリューションビジネスとしてのITアウトソーシングに関する研究(★★★)

http://www.kochi-tech.ac.jp/library/ron/2009/g19/M/1135109.pdf
ITアウトソーシングサービス全体の業界動向、提供企業の特性、事例などが書かれている。サービス提供側としてこれを読んだら業界のイメージが分かる。

運用品質を開発工程で作り込む(☆☆★)

https://www.intec.co.jp/company/itj/itj5/contents/9.pdf
インテックの運用を見越した開発をどのように行うかが書かれてる資料。

運用設計チェックシート(☆★★)

いわゆる業務系システムの運用設計におけるチェックリスト。そのまま使えます。
http://www.sysadmingroup.jp/kh/technic/051207.pdf

運用設計に関する非常よいことが沢山書いてあるサイト(★★★+α)

www.sysadmingroup.jp
このサイトのシリーズは非常によいです。WBSを作る上で必要な情報が網羅されています。

NTTデータアウトソーシング提案書(★★★)

http://nttdata-conf.jp/itproexpo/2013/dl/pdf/N213_kato.pdf
言い方悪いですが、アウトソーシングを提案する上で訴求ポイントがまとまっています。こんなの公開していいのでしょうか。。。簡単に真似できないですがね。

NRIのシステムコンサルのメソッド集(☆☆★)

https://www.nri.com/jp/products/consulting/s_consulting/pdf/sc7m.pdf
顧客のIT戦略をコンサルするためのメソッド集。あるべき論がわかります。上流すぎるので実務には向かない。

参考になるITアウトソーシング会社(☆★★)

www.unirita.co.jp

ITアウトソーシングプロジェクトやってみてわかったプロジェクト遂行上の注意点

$
0
0

今絶賛デスマーチ中ですが、これやっときゃよかったという、反省点。アウトソーシングプロジェクトに限らず、どんなプロジェクトでも同じだと思いますが、特に期間が長いプロジェクト特有の事例かと思います。

以下アウトソーシングを提供する立場で記載してます。

[目次]

契約の単位を考える

わかりやすいパターンだと以下があり下に行くほど、コントロールがしやすい。

  1. 全業務丸ごと一括契約
  2. 業務機能毎に個別一括契約
  3. 業務機能毎に準委任契約

これら、考えつつサービス仕様書の構成を考える。

  • 共通仕様書
  • 業務機能A仕様書
  • 業務機能B仕様書

これらを決めることで、プロジェクトを進める上での目標が明確になり、顧客、ベンダーの意識があいやすい。あと、業務をバラバラにすることで、トランジションしやすい。

意思決定の仕組みを作る

ここの課題進めるにあたって意思決定を一定期間内で必ず行う仕組みを作る。

例)ワーキンググルーピングで議論しまとめる作業を週一回、意思決定者にレビューしてもらう会議を週1回設け、決定事項と未決定実行を管理する。

顧客xアウトソーサーそれぞれ専任者を最低一人ずつアサインする

顧客も、我々も片手間でやっている期間が長かったため、スピード感、決定事項が曖昧になってしまいました。ゆっくり実施もありですがその時は、移管業務をある程度、契約に分割して少しずつ切り出しで移管をしていくやり方が必要。あんまりズルズルやると既存業務が引き継ぎ中に変更が入ったり、新規に業務が追加されたりと、なにがどこまでただしいのかわけがわからんくなる。

プロジェクト計画書のちゃんとした合意

システム構築プロジェクトも一緒かと思いますが、途中でむちゃくちゃな要件変更が起きた場合の対策として、計画書の印刷物に捺印を押してもらうなど印象付けを必ずする。

初回計画書提示後、指摘をもらったものは必ず反映して、必ず承認してもらう。

そして、要件変更があった場合、前段までやってきたことは無効とするぐらいの念押しを記載しておく。

顧客側の体制の構築依頼

責任者、体制と役務とタスクを早い段階からバイネームで文書化する。これをやらなかったので、ヒアリングにおいて「自分は関係ない、あの人に聞いて」とボールの投げ合いが起きて、話が進まなくなった。またジャッジするひとも明確ではなかったので、アイディアはでるがジャッジができないという宙ぶらりんの検討事項が残りやすくなる。

関係者全員を集めた説明会を各フェーズで実施

各フェーズ毎に関係者を集めた説明会を実施して全員のベクトルを合わせる。これを怠ったため、顧客側の担当者でゴールイメージがバラバラになり、客側のやる気がある人は先の先まで見越しいろんなこと問題提起してくるが、全体のバランスがとれなくなるので、議論に偏りが出て、結果全体のまとまりがなくなり、協同作業がうまく進まない。

客側の準備プロジェクト中の担当者の変更は原則なしとする

せめて、体制がかわるとしてもアウトソーシングを意識した体制は維持してもらう。個々の担当者と合意を今までとってきたものもすべてがパーにならないようにこの点は担当者が、かわったとしても決まったことは活きる前提の合意をとる。これをやらないと、顧客側の前任者が合意をとった内容にケチをつけてきて、再検討ということになり、前フェーズのタスクのやり直しになる。

準備期間の契約はフェーズ毎にする

要件定義(基本計画策定)、現状分析、トランジションとフェーズ毎に契約単位を分割させる。途中で中断するリスクを抑えたり、そのフェーズごとのアウトプットを明確化することで、一歩一歩着実に前に進むように契約でコントロールする。
特にアウトソーシングは引き継ぎがほとんどなので、遅れるトリガーもすべて人が原因で、ITトラブルが原因とかにはならない。
ほぼほぼうまく行かないので、遅延した場合の原因が顧客のスピードにある場合の顧客側のペナルティや、免責事項を書いたほうがよい。

それなりの覚悟と行動力が必要であることを顧客に植えつける

受注取り逃しになる可能性もありますが、顧客側にもかなりの労力が伴います。

例えば、アウトソーシング反対勢力への説明や、個々人への説明や説得。

アウトソーシングスタートのタイミングで業務改善はしない(極力)

したほうが受け入れ時に楽になるが、そんなコントロール力を持ってる顧客は稀かと思われる。安定化した業務を引き受けると移管がスムーズ。
まずは、改善を取り込まず、業務を移管しその後安定化したら、改善を検討すべき。

SAPカーネルファイルのそれぞれの意味

$
0
0

SAPアプリケーションで使用されているカーネルファイルのそれぞれ意味を記載します。

dipgntab

nametabsを調整したり、比較したり、有効にしたりできる。

disp+work

SAPの主要プロセス。ユーザからのダイアログ処理等をプロセスにディスパッチしたり、ダイアログ処理自体を行ったりする。

enserver

プロセスの処理をキュー管理、ロックテーブル管理するためのプロセス。AS-JAVA/AS-ABAPの両方で使われる。今ではSCS/ASCCというインスタンスの一部。

enrepserver

冗長化のためenserverのコピーデータを持つ。

msg_server

メッセージサーバプロセス。ユーザからのダイアログ処理のメッセージングを担当。

sapcpe

SAP起動時にカーネルファイルを複数APサーバ間で同期をとるプロセス。

gwrd

gateway reader.SAPと外部のシステムまたは、他のSAPとのゲートウェイとなるプロセス。RFCでも使用する。

icman

Internet Communication Manager。HTTP/HTTPS/SMTPのインターフェースとなる。Webサーバにもwebクライアントにもなる。

niping

SAPRouterとの疎通ツール。

lib_dbsl

SAPで使用するデータベースのライブラリ。

librfc

RFCという接続プロトコルのサーバやクライアント機能を司るライブラリ。

ntscmgr.exe

WindowsのサービスとしてSAPRouterを登録するときに使うツール。

r3check

クラスタテーブルのエラーチェック

r3ldctl

OS/DB-Migrationのときに、テーブル構成を出力するためのツール。

r3load

OS/DB-Migrationのときに、テーブル内のデータをエクスポート/インポートするするためのツール。

r3setup

SAPのインストーラ

r3szchk

OS/DB-Migrationのときに、ターゲットシステム上のDBサイズを予想するためのツール。

r3trans

移送関連ツール。TPと一緒に動く。

r3up

SAPのアップグレードツール。

sapcar

SAPが提供している圧縮/解凍ツール。インストールメディアなどこの形式で配布されている場合があるので拡張子が.car/.sarの
場合これを利用して解答する。

例) sapcar.exe -xvf <ファイル名>

sapevt

SAP内でイベントを発行するためのツール。

sapftp

SAPとFTP通信するためのクライアントツール。

saphttp

SAPとHTTP通信するためのクライアントツール。

sapinst

SAPのインストーラ

saplicense

HWキーと呼ばれるSAPライセンス登録時に必要となる、環境固有のIDを出力するためのツール。

saposcol

OSのパフォーマンス情報をSAP上から見れるようにするためのツール。

sappad

SAP社のOS上使用するエディタ。

sappfpar

SAPプロファイルパラメータをOS上から確認するためのツール。

saprouter

SAP社と通信するためのツール。

sapxpg

SAPからOSコマンドを発行するためのツール。

sapwebdisp

SAPのソフトウェアロードバランシングツール。

tp

SAPの移送ツール。

SAPマイグレーション実行時間分析ツール「Time Analyzer」の使い方

$
0
0

Time Analyzerとは

SAPのマイグレーションやシステムコピーで使用する実行時間分析用のツール。R3loadのExport/Importのパッケージ毎のロード/アンロード時間をログから分析ができます。

ダウンロード方法

http://service.sap.com/swdc
-> Support Packages and Patches
   -> My Company's Application Components" 
-> Complimentary Software" 
-> SYSTEM COPY TOOLS GEN" SYSTEM COPY TOOLS GEN 1.0
       ファイル名:MIGTIME_-.SAR
(SAPCARで要解凍)

準備

必要なもの

  • 前述のダウンロードファイルと、それを解凍

f:id:azumami:20161101105721p:plain

  • sapinstで生成されたログ(例:C:\Program Files\sapinst_instdir\BS2005\ERP60SR3\LM\COPY\MSS\EXP\CENTRAL\AS-ABAP\EXP の中身一式)
  • Time Analyerを実行したいPC or サーバ上でJAVA_HOMEの定義(javaでパスが通っていれば基本OK)

実行

  • installDirの後に、sapinstのログファイルのパスを指定します。
>import_time.bat -html -installDir C:\sapinst_instdir\ERP\LM\COPY\MSS\SYSTEM\CENTRAL\AS-ABAP –h 1

Warning: JAVA_HOME environment variable is not set.

>"java.exe" -cp ".\.;.\migtime.jar" com.sap.inst.migtime.TimeAnalyzer -import -html -instal
lDir  C:\sapinst_instdir\ERP\LM\COPY\MSS\SYSTEM\CENTRAL\AS-ABAP –h 1

作業用ディレクトリに、import_time.htmlが出力されます。

  • html オプションをつけなければテキストファイルで出力されます。

結果サンプル

f:id:azumami:20161101105813p:plain

CentOSにSAPをインストールする方法

$
0
0

https://forums.sdn.sap.com/thread.jspa?threadID=1056734&tstart=644

注)UK_のカーネルはおそらくダウンロードまたは解凍失敗している
 →新しいカーネルパッチのファイル名をSAPEXE.SAR SAPEXEDB.SARとして
  入れ替えが必要

\FTP conection\

1.#cat /etc/redhat-release
CentOS release 5.6 (Final)
#cp -r /etc/redhat-release /etc/redhat-release.org
#vi /etc/redhat-release
#cat /etc/redhat-release
redhat-4

cat /etc/redhat-release
redhat-4
1.ftp 192.168.1.10
2.azuma/binloony
3.get j2sdkfb-1_4_2_31-linux-i586.bin /media/sap_common/j2sdkfb-1_4_2_31-linux-i586.bin

mount -t cifs //192.168.1.7/disk /mnt/landisk

1.j2sdk install
# chmod 777 *
# cd
#./j2sdkfb-1_4_2_31-linux-i586.bin

IBMJava2-AMD64-142-SDK-1.4.2-13.9.x86_64.rpm

2.path setting
adding following lines in #view .bash_profile
JAVA_HOME=/media/sap_common/j2sdk1.4.2_31
PATH=$JAVA_HOME/bin:$PATH
EXPORT PATH

3.TEMP setting
#cd /root
#mkdir TEMP
#TEMP=/root/TEMP
#export TEMP
#DISPLAY=WIN2K3R2EE:0.0
#export DISPLAY


4.install by package manager
- compat-libstdc++-33-3.2.3-61.i386
- compat-libstdc++-33-3.2.3-61.x86_64
- libstdc++-4.1.2-50.el5.i386
- libstdc++-4.1.2-50.el5.x86_64
- compat-db-4.2.52.-5.1P_i386
- compat-db-4.2.52.-5.1_x86_64
- sysstat-7...
- libaio-devel xxxx_i836 and x64
- libXp xx all
- gcc ..all


5.create oracle folder
cd /
mkdir -p /oracle/stage/102_64

6.create groups and users
groupadd oper
groupadd dba
groupadd sapinst
groupadd sapsys

useradd -G oper -g sapsys abcadm
useradd -G sapinst -g dba oraabc

view /etc/group
oper:x:501:abcadm,oraabc
dba:x:502:abcadm,oraabc
sapinst:x:503:abcadm,oraabc
sapsys:x:504:

6.extract oracle install package
/media/SAPCAR -xvf /mnt/usb/DB/ORA10/ORx10264.SAR
- OR110264.SAR database
- OR210264.SAR client
- OR310264.SAR clusterware
- OR410264.SAR companion inc jdk
- OR510264.SAR

7.replace new oracle script refering note 819830

extract files to database/SAP and database/Disk1 <- cant found
mv /oracle/stage/102_64/database/SAP /oracle/stage/102_64/database/SAP_ORG
cp -r /media/SAP /oracle/stage/102_64/database/

8.oracle install

system[menu] > Administration > Login Screen > Security > uncheck "Deny TCP Connection to Xserver"

restart
# su
# vi /etc/sysctl.conf
kernel.msgmax = 65536
kernel.shmmax=23136829430
kernel.shmall=5242880
kernel.shmmni=4096
kernel.sem=1250 256000 100 1024
kernel.msgmni=1024
vm.max_map_count=1000000
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000
net.core.rmem_default=1048576
net.core.rmem_max=1048576
net.core.wmem_default=262144
net.core.wmem_max=262144

refer sap note 1048303
#/sbin/sysctl -p


if its JAVA-STACK
/etc/security/limits.conf
@sapsys hard nofile 32800
@sapsys soft nofile 32800
@dba hard nofile 32800
@dba soft nofile 32800


# chown -R oraabc /oracle
# xhost +
# su -orapyd
DISPLAY=WIN2K3R2EE:0.0;export DISPLAY
TMP=/tmp; export TMP
ORACLE_HOME=/oracle/abc/102_32; export ORACLE_HOME
ORACLE_SID=abc; export ORACLE_SID
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH

# cd /oracle/stage/102_32/database/SAP
# ./RUNINSTALLER

/oracle/oraInventory and the installation group as「dba」.

start 19:58 - 20:24


/oracle/oraInventory/orainstRoot.sh
/oracle/abc/102_64/root.sh

reboot


iSQL*Plus URL:
http://LINUXTEST.localdomain:5560/isqlplus

iSQL*Plus DBA URL:
http://LINUXTEST.localdomain:5560/isqlplus/dba



10.oracle patch inst
# xhost +
# su -oraabc
# DISPLAY=WIN2K3R2EE:0.0
# export DISPLAY

# cd /oracle/stage/102_64/Disk1
/runInstaller -ignoreSysPrereqs

/oracle/abc/102_64/root.sh

start 20:51 -

11.sapinst
# hostname
-> display short hostname
# hostname -s
-> display short hostname
# hostname -f
-> display short hostname
# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 WIN2K3R2EE.localdomain localhost
192.168.1.11 WIN2K3R2EE

1 localhost6.localdomain6 localhost6

# su
# SAPINST_JRE_HOME=/opt/IBMJava2-amd64-142
# export SAPINST_JRE_HOME
# DISPLAY=WIN2K3R2EE:0.0
# export DISPLAY
# TEMP=/TEMP
# export TEMP
# ./sapinst


create databaseフェーズでcatproc.sqlフェーズでエラーになる
1.sapinstを停止
2.keydb.xmlで"ERROR"を検索 / OKに変更
3.sapinst continue with old



# SAPSYSTEMNAME=abc; export SAPSYSTEMNAME
# ORACLE_HOME=/oracle/abc/102_64; export ORACLE_HOME
# ORACLE_SID=abc; export ORACLE_SID
# PATH=$ORACLE_HOME/bin:/usr/sap/abc/SYS/exe/run/:$PATH; export PATH
# LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
# su - oraabc
# lsnrctl start
# sqlplus / as sysdba
# startup
# /usr/sap/abc/SYS/exe/run/startsap DVEBMGS00

SAPSYSTEMNAME=abc; export SAPSYSTEMNAME
ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle/abc/102_64; export ORACLE_HOME
ORACLE_SID=abc; export ORACLE_SID
PATH=$ORACLE_HOME/bin:/usr/sap/abc/SYS/exe/run/:$PATH; export PATH
TNS_ADMIN=/usr/sap/abc/SYS/profile/oracle
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib; export LD_LIBRARY_PATH

[hostname change]export SAPSYSTEMNAME
view /etc/sysconfig/network
view /etc/hosts

[check RAM size]
free

[OS version Check]
cat /etc/*-release

[kernel version check]
uname -r

[kernel parameter check]
/sbin/sysctl -a

[Activated HW dirviers]
lsmod

[check Shared memory file]import -frame capture006.jpg

df -k /dev/shm

[if NFS is running]
service nfs status
service portmap status


[routing info]
netstat -r

fdisk -l /dev/sdb
sdb: sdb1
mount -t ntfs-3g /dev/sdb1 /mnt/usb -o force

[screen shot]
import -frame capture006.jpg
r
printenv

[rpm]
install
rpm -ihv xxxxxxx
uninstall
rpm -e xxxxx
find
rpm -qa | grep xxx

ps -ef | grep ora

CPU usage
#vmstat 1[interval sec] 10[times]


OCN OneのSim再発行の仕方 & Nexus5X SIMが合わず買い直し

$
0
0

f:id:azumami:20161208084124j:plain

(なくしたことに気づかずビーチで遊んでる絵。30分後紛失に気づき雰囲気が最悪になっていきます)

嫁がグアム海外旅行中にSIMフリースマホを紛失してしまいましてSIM再発行になりました。

せっかくの楽しい旅行が台無しに、、、


そんなこんなでOCN SIMの再発行をしたので記録。


やりかたは、至って簡単でOCNテクニカルサポート0120-047-246に電話して、現在のsim停止と、同じ電話番号での再発行をお願いするのみ。

3000円ぐらいの手数料がかかりますが、5〜から10日で届くと言われました。(実際は5日で到着しました)

なくした端末がNexus5だったので、Nexus5Xを購入。


なるべく安く手に入れるために、yahooオークションで28000円くらいで、落札したのですが、YモバイルのNexsusかつSIMロック解除がされていない端末だったために、OCNのSIMを入れるとPINを求められ結果的に使い物にならず。

再度、販売してくれた業者に買った時より安い値段になりましたが買い取ってもらいました。


ちゃんと調べるべきでしたが、YモバイルのNexusは最初に買った人しかSIMロック解除できず、Yモバイル以外のSIMでは使えないとのことでした。

次は、そこも考慮してAmazonから海外版SIMフリーNexusを購入する形となりました。


そして、更に、再発行したSIMがMicro SIMだったために、Nexus 5X に合わず、再度OCNに電話してNano SIMにしてもらった。こちらでも追加で3000円位。



あー高ついた、旅行でったぜ。

wordpress を vagrantでセットアップしたときのエラー(Error establishing a database connection / データベース接続確立エラー)

$
0
0

windowsのPCにvagrantでunbutuをセットアップして、xampp環境でwordpressの初期セットアップ時に出たエラー。

f:id:azumami:20170223000432p:plain

この後。

f:id:azumami:20170223000435p:plain

エラーメッセージの詳細を確認するために、「wp-config-sample.php」を「wp-config.php」でコピーしてDB部分だけ記載。

あと冒頭に、「define('WP_DEBUG', true);」を追記。
f:id:azumami:20170223001429p:plain

すると「Warning: mysqli_real_connect(): (HY000/2002): No such file or directory in /vagrant/wp-includes/wp-db.php on line 1538」が出た。
f:id:azumami:20170223001438p:plain

php.iniの「mysql.default_socket」の設定が不適切でDBにアクセスができないとの事例があり、試しに phpinfo.phpとして以下のコードを記載して
webでアクセス。

<?php

phpinfo();

mysql.default_socket」を探すも以下の「/opt/lampp/var/mysql/mysql.sock」と出てて、そのファイルがない。
f:id:azumami:20170223001330p:plain

f:id:azumami:20170223001322p:plain


ubuntu上にあるmysql.sockを見つけ出すために以下のコマンドを実行。今夏感じでmysqld.sockのパスがわかる。

mysqladmin | grep d.sock
socket                            /var/run/mysqld/mysqld.sock

「/opt/lampp/var/mysql/mysql.sock」へのシンボリックリンクを張る。

sudo ln -s /var/run/mysqld/mysqld.sock /opt/lampp/var/mysql/mysql.sock

これで動きました。

フォルダ内にある複数のエクセルファイルを1つのファイルにシート別にマージする

$
0
0

とある仕事で大量のファイルを1つのブックにまとめる作業があったたのでマクロをつくりました。

できることとしてはこんな感じ。

マージしたいファイル群

  • 一つのフォルダに複数のエクセルファイルがある
  • そのファイルは「シート1」「シート2」「シート3」、、、といった形で共通のフォーマット
  • 中には、歯抜けで「シート1」「シート3」となっている場合もある
  • シートの中に図形など入っている(マクロ内で消す)

集約されたファイル

  • エクセルファイルのシートは上と同じで「シート1」「シート2」「シート3」、、、といった形にする
  • マージしたいファイルがシート毎に追記で書かれていく

マクロ

Sub marge()

    Dim sFile As String
    Dim sWB As Workbook, dWB As Workbook
    Dim dSheetCount As Long
    Const SOURCE_DIR As String = "マージ対象のファイルが入っているフォルダ"
    Const DEST_FILE As String = "出力先ファイルのフルパス"
    
    'シートの数だけ定義
    Dim arrSheet(3) As String
    arrSheet(1) = "シート名1"
    arrSheet(2) = "シート名2"
    arrSheet(3) = "シート名3"
    
    'シートのコピーしたい最初の行番号
    Dim arrStartLine(3) As Integer
    arrStartLine(1) = 8
    arrStartLine(2) = 13
    arrStartLine(3) = 11
    
  'ダイアログを表示させない
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
                        
  '集約ファイルのオープン
    Set sumWB = Workbooks.Open(Filename:=DEST_FILE)
    
    Dim i As Integer
       
  'エラーカウント用
    errCnt = 0    
    
  'シート数分ループ
    For i = 1 To 3 Step 1
    
        SHEET_NAME = arrSheet(i)

    'エラー記録ファイルのフルパス
        ERROR_FILE = "C:\Data\" & SHEET_NAME & "_error.txt"
        
        
        On Error Resume Next

    '集約ファイルのコピー先シート名
        Set sumWS = sumWB.Worksheets(SHEET_NAME)
         
        '指定したフォルダ内にあるブックのファイル名を取得
        sFile = Dir(SOURCE_DIR & "*.xlsx")
        
        Do
            'コピー元のブックを開く
            Set newWB = Workbooks.Open(Filename:=SOURCE_DIR & sFile)
            'コピー元のブックのシートを指定
            Set newWS = newWB.Worksheets(SHEET_NAME)
            

            'コピー元ブックのシートの歯抜けエラーチェック
            If Err.Number <> 0 Then
                Open ERROR_FILE For Append As #1
                    Print #1, sFile & "エラー:" & Err.Number & " 説明:" & Err.Description
                Close #1
                errCnt = errCnt + 1
            Else
                
              'コピー元の現在処理中のファイル名を集約ファイルの該当シート内に記載
                tMaxRow = sumWS.Range("A65536").End(xlUp).Row + 1                
                With sumWS
                     .Cells(tMaxRow, 1) = sFile
                End With
                

              'コピー元の現在処理中のシートの最後の行番号を取得
                nMaxRow = newWS.Range("A65536").End(xlUp).Row

              'コピー元の現在処理中のファイルの最後の列番号(めんどくさいから取り合ず大きい数字を指定)
                nMaxCol = 20
                

              'コピー元の現在処理中のシート内に図形が入ってるのでコピーの時に図形は対象外になるよう図形を削除
                Dim shp As Shape

                For Each shp In newWS.Shapes
                    shp.Delete
                Next shp
  
              'コピー元の現在処理中のシート内の対象データをコピー
                With newWS
                    .Range(.Cells(arrStartLine(i), 1), .Cells(nMaxRow, nMaxCol)).Copy
                End With
                
              '集約ファイルの該当シートの最後の行+1で貼り付け先の行を指定
                tMaxRow = tMaxRow + 1
                
        '貼り付け
                With sumWS
                    .Paste Destination:=Range(.Cells(tMaxRow, 1), .Cells(tMaxRow, 1))
                End With
                        
            End If
            
            'コピー元ファイルを閉じる
            newWB.Close
        
            '次のブックのファイル名を取得
            sFile = Dir()
                
        Loop While sFile <> ""
            
    Next
    
    Application.ScreenUpdating = False
    
    If errCnt > 0 Then
        MsgBox "一部のファイルでエラーが発生しました"
    Else
        MsgBox "終了しました"
    End If
    
    
End Sub

phpのコマンドラインからslackを飛ばすスクリプト

$
0
0

さくらインターネットレンタルサーバで、バックアップが失敗したときにアラートを飛ばしたかったのですが、curlコマンドで権限エラーっぽいのがでて作り込めなかったのでphpでやることにした。

[参考にさせて頂いた記事]
qiita.com

スクリプト

<?php

$channel=$argv[1];
$message=$argv[2];
$username="monitor";
$webhook="ここにwebhookのURLを書きます。";

$post = array(
        'url'  => $webhook,
        'body' => array(
            'payload' => json_encode(array(
            'channel'    => $channel,
            'username'   => $username,
            'icon_emoji' => $monitor,
            'text'       => $message
            )),
         ),
       );


$options = array(
         CURLOPT_URL            => $webhook,
         CURLOPT_POST           => true,
         CURLOPT_POSTFIELDS     => $post["body"],
         CURLOPT_RETURNTRANSFER => true,
         CURLOPT_HEADER         => true,
);

$ch = curl_init();
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($result, 0, $header_size);
$result = substr($result, $header_size);
curl_close($ch);

実行方法

$ php slack.php "infra-backup" "hello"

とある地方選挙でWebマーケティング担当をやった話

$
0
0

今回友だちが選挙に立候補することになったので、多少Webに明るい自分がWeb関係を担当させていだだきました。

やったこと、やっておけばよかったこと、そして、地方選挙におけるWebってそもそも意味あんの?というポイントについて記す。大したことはしてませんがだれかのお役に立てればと。

ホームページ作成

選挙の4ヶ月前くらいにオープン。そして、投票月の月初にリニューアル。

ページ構成

構成はシングルページ系で、プロフィール、政策、SNSアカウントの紹介っていう感じで、よくある感じ。

プロフィール詳細は別ページで設け、子供の頃の写真を掲載したり、細かく説明し、有権者に親近感、生い立ち、政治家を目指すまでの経緯をわかりやすく説明することを狙いました。

後援会申し込みフォーム

後援会の申し込みページを用意。「後援会」というものを聞いたことあったけど、意味はそれまで知らなかったのですが、いわゆる支援者の顧客名簿のようなものです。

普通パンフレットに同封してるハガキで、受付ますが、配達料とか印刷代かかってくるので、webでも設けました。

実際は若い人中心に使ってもらいました。

最初のうちはGoogle formでやってたのですが、家族全員申し込むとき、一人ひとりの分を毎回申し込み第一画面から申し込むの面倒とのことで、結局フォームちゃんと作りました。

メールでお知らせが届くんだけど、htmlメールにして、候補者がメールの電話番号をクリックしたらすぐにお礼の電話できるようにした。

あと同時にDBにそのまま、名簿として保存されるので、モバイルで管理ページに行くと、名簿検索ができたり、google mapと連動させて住所などがわかるようにした。


ここのところ、salesforceを支援者DBにしてweb to lead でやればよかったとあとから後悔。

次回はそれでしたいかと。

リニューアル

狙いは、他の候補者が第一弾のこちらのホームページを見て自身のをそれぞれの制作しオープンしていく。

他の候補者が出揃った時点で、さらにそれらを超える要素を盛り込むことを狙った。

つまり第一弾は、餌巻き、アンカリングという感じ。

前提として他の候補氏が、リニューアル予算なんぞもってないはず想定。実際だれも追従してこず。


あと、googleは更新されるHPのほうが評価が高いということも考え方あえて、注目される選挙月にリューアルを実施。

ランクが下がるリスクもあったけど。

【参考にしたサイト】
一応見ておいたサイト

なんかワクワクしたサイト

読んだ本、テレビ

情報参謀 (講談社現代新書)

情報参謀 (講談社現代新書)

この本、面白すぎました。自民党に政権を取り戻させた、ネット戦略の立案背景、運用とか苦労話を含め記載あり。こんな仕事がしたいです。

あなたも今日から選挙の達人 ネット選挙対応マニュアル

あなたも今日から選挙の達人 ネット選挙対応マニュアル

ネット選挙の法律ができる前に、金沢市長選でtwitterを投票日にも投稿しまくって警察から再三注意を受けたが無視して投稿しまくって、そのまま当選した事例が書いてあった。そこだけ読んだ。

あまり参考にならず。

プロフェッショナル広報戦略

プロフェッショナル広報戦略

難しくて最後まで読めなかった。
  • クロ現

検証“ネット選挙” - NHK クローズアップ現代+
インターネット選挙関連の特集がいろいろ見れたので事例を調べた。東京プリンとか、三宅洋平とか。三宅洋平は一番今までうまくネットを活用した事例として挙がっていた。

インターネット選挙の注意

これに関しては、有権者も運営員もちゃんと知っておかないと、知らない間に選挙違反になって、候補者、家族、自分に被害が発生するかわからないので、知っておいたほうがいいこと。

  • 選挙活動期間
    • 個人名を明かさずに、そして連絡方法明記せずに、応援活動、アンチ活動をしてはいけない
    • 憶測系の内容の投稿はしない
    • 18才以下が使っているであろうSNSは使わない
  • 投票日
    • いいね、シェアはだめ
    • ブログ/HP更新もだめ

https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&uact=8&ved=0ahUKEwjJ4O7hoarXAhUKObwKHcxBAFYQFgg5MAI&url=http%3A%2F%2Fwww.soumu.go.jp%2Fmain_content%2F000225177.pdf&usg=AOvVaw0rjsTMpHqwoSz2XsQXcM87

SNS活動

FacebookTwitterYouTube、Lineを使った。
それぞれの位置づけと狙い。

一番、地方選では効果があるのではないかと感じたSNS。特にinsightを使えば、ファンページの地位別ファン数とか見れるので非常によい。あと、うまいことエッジランクを上げていく行くように、タイミング、内容を最適化していけば、一番うまく使えるのではないかという感触があった。ただ広がりには限界があり、ライバル候補者とファンがバッティングすることも多数。Webでのアプローチ方法やメッセージ性や表現力でライバルとはっきりと差がつきやすい。

facebookTwitter連動をしてたのでおまけの位置付け。でも三宅洋平Twitterをメインでやっていたようなのでコアな支持者をつかむにはTwitterがいいんだろうなぁと。あと特に20代前半とか若い世代はFacebookよりTwitterという感じ。

あってもなくてもいい。動画の保管場所として使うレベル。

  • Line

Line@にするかグループにするかで最初悩みました。グループにすると参加者全員のアカウントが見えてしまうので、プライバシー的によろしくなく、とはいえline@は金がかかる。結局グループにしましたが、やはりやり取りが全部、グループ内のメンバーに見えてしまうので、あまりいい雰囲気にはならず、できるのことならline@のほうがいいでしょう。

ブログ作成&SEO対策

facebook連動で、facebookで投稿したらブログも1記事として自動投稿される形とした。

目的は完全にSEO対策で、とりあえず人を集めることに注力。内容は薄っぺらくてもいいから、ページ量、キーワードのバラばきに注力した。

facebookから連動されたあと、記事を検索対策を考慮して文書、タイトルなどを書き直し、最適化させた。

キーワードはGoogle sugestなどつかって一通りなめて、表示揺れなども想定しあえて誤字などもいれた。



結果役所のホームページが、1位で抜かせず結局2位に。

キーワードのバラまきはスパム扱いされるといろいろ書かれていたのでビビリながらやった。結果悪影響はでなかった。


投票日間近になると、まとめサイトや、掲示板サイトに追い抜かされた。あいつらつえー。

ただ、この施策でこっちの候補者の名前をしらずとも、選挙関連のキーワードでなんとかランディングさせることができて、一番今回のネット活用で成功した感があったのは、SNSでもなく、SEOだった。

その他

  • インターネットで嫌がらせをがいくつかあったが、基本ガン無視すること。地方選挙ネタなんぞ誰も見てない。
  • ライバル候補者の名前をサイト内に書く。ライバル候補者の名前で検索に引っかかるようにするため。
  • 動画は長いものはとらないこと(だれも長い動画なんぞ見ない)。せいぜい3分程度。
  • 動画はとり貯めしておくか、候補者のスケジュールを20分程度確保しておくこと。
  • 動画はなるべく字幕をつける。音無しで見る人がいるため。
  • facebookファンページのインサイト機能で、投票件をもつ人の数をウォッチすること
  • facebook投稿は時事ネタを、かならずいれて、気軽に「いいね」を押せるネタをだし、エッジランクを維持すること
  • facebook投稿は最初の4行ぐらいに、何に関する投稿か完結に書くこと。
  • ライバル候補者の投稿を、シェアすること。(シェアし返してくれない場合は、以降シェアしない)

地方選挙にインターネットは意味があるのか?

今回、うちの陣営を含め、インターネットで同じようなことをしている候補者は何人かいました。結果的に、みんな受かりました。

ただ、そこにWeb戦略的な優劣が多少あったかもしれませんが、どんぐりの背比べかと。


そして、それが票数の因果関係があるかというと、、、ないことはないけど、500票程度の上下する違いかと言い切れます。


現実はいわゆる「浮動票」である、後援会にも入ってない、ホームページを見たことない、握手はしたっていう人たちが、選挙の結果を決める重要なターゲットであることは、間違いないです。


実際若い人はインターネット、SNSをやってはいるもののの、アクティブユーザと言えるひとは感覚的に50%行かないとおもいます。



ネットで、「ネット選挙 効果」とかググってみても、因果関係を見いだせなかったという事例が多数でています。


インターネットを使った選挙活動が地方選挙ではまだまだ浸透していないなぁと、アクセス解析、ファン分析、競合サイト分析などして感じました。でも、すんごいおもしろかったのでまたWeb担当やりたいです。

Viewing all 105 articles
Browse latest View live