Category Archives: 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 S3 Configuration — AWS CLI 1.15.28 Command Reference   そんなわけで、Windows環境の運用スクリプトはPowerShellで統一しているわけですが、 クラウドチームの若者たちは、かつてのわたしがそうだったように、 どうも始めはPowerShellに抵抗があるようです。   そんな時におすすめの一冊が、本書『PowerShell実践ガイドブック ~クロスプラットフォーム対応の次世代シェルを徹底解説~』だと思います。 PowerShell実践ガイドブック ~クロスプラットフォーム対応の次世代シェルを徹底解説~ posted with amazlet at 18.05.27 吉崎 生 マイナビ出版 (2018-05-30)売り上げランキング: 14,584 Amazon.co.jpで詳細を見る   なぜ若者におすすめか   先ず、本書は1章で「ファイルのリネーム」であったり、「Webサイトのヘルスチェック」のような PowerShellを使った便利機能の紹介から始まります。 サンプルを写経することで、とりあえず動かして「おお!」という感動を得られる点がよいです。 通常の言語本では、基本的なシンタックスや変数の定義等の文法の説明から入りますが、 そういうのは2章以降、豊富なサンプルと一緒に解説されますので、 読み始めでいきなり挫折、という悲劇を回避できます。   また、PowerShellの機能が網羅的に説明されている一方、 5章では「実世界のPowerShell」として、 PowerShellでハマりやすいポイントについて事例が紹介されており参考になりますし、 AWS、Azure、GCPといったクラウド対応や、DSCについての記述もあり、 PowerShellの運用スクリプト以外の使い方についても学べるところが良いですね。 リファレンスとして身近に置いておきたい一冊です。 クラウドの中でも、AzureについてはGUIがイケてないPowerShellの方が操作がしやすい、というのもあります。 AzureのPowerShellツールは現状クラシックなASMと最新のARMが混在している状況でちょっとわかりづらいところもありますが、 Azureの認定試験でも頻出問題でもありますし、また実際の運用でも多用しますので、 AWSとAzureのマルチクラウドエンジニアを目指すのであれば、PowerShellは必須スキルと言えます。   というわけで   PowerShellをこれから学びたいという方に、 雰囲気で使っているのできちんと学びなおしたい方にも、 本書は大いにおすすめできます。 恥ずかしながら、PowerShell6.0と、現行のWindows […]

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インスタンス起動時に自動的に無効化されるようにしたった。(商用環境ではダメよ)