Category: PowerShell

書評『PowerShell実践ガイドブック クロスプラットフォーム対応の次世代シェルを徹底解説』

    PowerShellやDSCの最新情報についていつも参考にさせていただいている @guitarrapc_techさんが本を出版されたとのことで、 これは買わねばなるまいと思っていました。 そんな時、マイナビ出版さんが先行レビューの希望者を募集されていましたので、 イチかバチかで申し込んでみたところ、 ご恵贈いただきました。 マイナビ出版さん、ありがとうございましたm(__)m   わたしの周辺のPowerShell事情   ここ数年、仕事ではもはやクラウド(主にAWS)関連のコンサルやデリバリーばかりやっています。 Serverless、Container等の新しい潮流は増えてきているものの、 わたしがビジネスを行っているエンタープライズ領域のシステム開発では、 未だWindowsやLinuxを利用するIaaSの活用が主流です。 当然ながら、ビジネスのバックエンドで動くシステムでは運用を自動化します。 AWSならLambdaのcronライクな機能を使って運用タスクのスケジューリングを行うこともできますが、 エンタープライズ領域ではオンプレミスに構築された統合ジョブ実行基盤(JP1、Systemwalker、WebSAM、Senju等)や、 クラウド上に構築したジョブ実行基盤を利用して運用タスクの自動化を行うケースがほとんどです。 運用タスクを自動化するスクリプトは、Linux環境であればbashやPythonが多いのですが、 Windows環境は近年やはりPowerShellがメインになってきています。   PowerShellが出始めた頃(2006年頃)は、どうもあのコマンドレットというものの羅列に馴染めず、 WSHやコマンドプロンプト(.bat)で十分、と思っていた時期が私にもありました。 が、Infrastructure as Codeが流行りだし、CloudFormationやAnsibleの勉強をする中で、 PowerShell DSCというものに出会い、少しずつPowerShellに触れるようになってきました。 慣れてくると、WSHや.batよりも、PowerShellの方がコードがすっきりしますし、 例外処理やOSの機能を活用するような処理もやりやすいですね。 現在、AWSのEC2上で運用スクリプトを書く場合は、PowerShellでAWS CLIをラップして 作成しています。 AWSでWindowsインスタンスを起動すると、AWS Tools for Windows PowerShellがプレインストールされているのですが、 敢えてAWS CLIをインストールしています。 理由としては、AWS CLIであればWindows環境で作成した運用スクリプトのAWS CLI部分を Linux環境に移植しやすいですし、 AWS CLIであれば、S3とEC2間のファイル転送時に最大同時リクエスト数やマルチパート処理が採用されるファイルサイズの閾値(デフォルト5GB)を変更できるからです。 (AWS Tools for Windows PowerShellではまだそこまで細かい制御はできない・・はず) AWS CLI.

PowerShellでIEセキュリティ強化の構成を無効化

  コマンドレット一発ではできないのね。 function Disable-IEESC { $AdminKey = “HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}” $UserKey = “HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}” Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 0 Set-ItemProperty -Path $UserKey -Name “IsInstalled” -Value 0 Stop-Process -Name Explorer Add-Content $log -value “IE Enhanced Security Configuration (ESC) has been disabled.” } Disable-IEESC 参考:http://blog.blksthl.com/2012/11/28/how-to-disable-ie-enhanced-security-in-windows-server-2012/   EC2のuserdataに仕込んで、Windowsインスタンス起動時に自動的に無効化されるようにしたった。(商用環境ではダメよ)