Azure PolicyでOpsRampエージェントをインストールする その1 - OpsRampエージェントをPowerShell DSCでインストールする

以前、AnsibleでのOpsRampエージェントインストールをやりましたが、今回はPowerShell DSCです。 将来的にOpsRampエージェントのインストールをAzure Policyを使って「管理下のVM(Azure上のVMでもオンプレのVMでもすべて)にはOpsRampエージェントをインストールし、その状態を保つ」ということを実現したく、今回はその前準備的な感じです。 DSC自体はマルチプラットフォーム対応ですが、まずはWindowsを対象に進めます。 OpsRampエージェントをhttpsでアクセスできる場所へに配置する 今回はMSI版をダウンロードして利用しようと思います。(※exe版でも同じです) 将来的にAzureからの管理を考えているので、インストーラーはAzure上のストレージアカウントに配置しておきます。 当初SASを生成して利用しようとしましたが、SASだとDSCからきちんとMSIパッケージだと認識してもらえなかったので、直接URLを指定してダウンロードできるように、匿名の読み取りアクセスを許可しました。 このとき、exeにしてしまうと、OpsRampのテナントに接続するための情報も含まれてしまうのでこのやり方をするならMSIパッケージの方が良いですね。 手元のWindowsPCにDSCを適用する ここから先はPowerShellコンソールで操作をします。Windows PowerShellではなくPowerShell Coreでやった方がいいのではと思います。(※これはよくわかっていません。将来的にAzure Policyでマルチプラットフォームを見越しているので、おそらく。でも今回はインストーラーがWindows専用ですから気にしなくていいのかもしれません。) まずモジュールをインストールします。 I # n s D t o a c l s l の - 記 M 事 o で d は u ス l コ e ー プ - 指 N 定 a は m 無 e い で P す S が D 、 s 私 c は R A e l s l o U u s r e c r e s s に 入 - れ S た c 方 o が p よ e い の A で l は l と U 思 s っ e て r い s ま す - V e r b o s e - F o r c e つぎに、PowerShellでConfigurationを定義します。Functionを定義するような感じですね。 ...

February 21, 2022 · 5 min · 胡田昌彦

PowerShellモジュールのインストールパス

PowerShellモジュールに関しては適当にinstall-moduleとやっておけば動くのでこれまであまり深く考えたことはなかったのですが、今日、DSC関連で結構苦労してしまったので書き残しておきます。 まず、Install-Moduleでモジュールをインストール。 https://docs.microsoft.com/ja-jp/powershell/module/powershellget/install-module?view=powershell-7.2 この時に、モジュールが入る場所が複数あります。 現在のユーザー用:$HOME\Documents\PowerShell\Modules- すべてのユーザー用:$env:ProgramFiles\PowerShell\Modules 1と2の切り替えはInstall-Moduleの-Scopeパラメーター。何もスコープを指定しない、あるいは-Scope CurrentUserとすれば「1.現在のユーザー用」に入ります。-Scope AllUsersとすれば「2.すべてのユーザー用」に入ります。 で、これでおしまいではなくて… PowerShell自体にWindows PowerShellとPowerShell(Core)がある。- コマンドによっては別ユーザーのコンテキストで実行されるものがある。- 複数バージョンを混在させることも可能 という要素もあり、複雑です。 モジュールを読み込む場所自体は「$Env:PSModulePath」で参照可能です。 私が今日ハマったのはStart-DscConfiguration実行時にモジュールが見つからないといわれてしまうという事象でした。どうやらWindowsPowerShellのモジュールディレクトリ(C:\Program Files\WindowsPowerShell\Modules)からしかモジュールを探してくれていなかったので、手動でモジュールをコピーして回避してしまいました。 これまで「動いているからいいや」ということであまりよく仕組みを調べずにやり過ごしてきてしまいましたが、それではうまくいかないケースに遭遇したのでこれを機にきちんとどこに存在するモジュールが使用されているのかなども意識していこうと思います。

February 19, 2022 · 1 min · 胡田昌彦

Adobe Premiere Proの「マーカー」を元にYoutubeのインデックスを作成するPowerShellスクリプトを書きました

タイトル通りです。長いYoutube動画を作成するときにはきちんとマーカーを使い、そして、PowerShellスクリプトで自動的にyoutube用のインデックスを作成するようにすると作業が捗って幸せです。 デスクトップを作業場所にするようにしています。先頭行のファイル名だけご自身の環境に合わせて変更して使ってください。PowerShellなのでWindowsならインストール作業をしなくてもどこでもすぐに使えるのが良いと思ってます。 https://gist.github.com/ebibibi/7f1aa45dfc0ff0967889f72110e27548

October 25, 2021 · 1 min · 胡田昌彦

Partner Centerでロール保持者の一覧をCSVで出力する

今回はMicrosoftさんのパートナー企業にしか関係ないニッチなネタです。エンドユーザーの皆さんはスキップしてください(笑 私はPartner Centerの管理業務にも関わっているのですが、「ユーザーのうちPartner Center上で権限を持っている人の一覧を出す」ということを実現するのが結構難しい次期が過去かなりありました。ユーザーひとりひとりのプロパティを確認すればロールの割当状況は確認できるのですが、ロールを選択するとそのロールを保持するユーザーの一覧が表示されるようなUIの提供が長いことされなかったのです。やろうと思うと自分でAPIを叩いてゴリゴリする必要がありました。 必要性は感じながらもそのうちMicrosoftさんが実装してくれるだろうと思ってずっと待っていたのですが、最近やっとそのようなUIが提供されました。自分で実装しなくてよかったと思ったのですが、それでも、まだぶらうざ 上で一覧が出せるだけで例えば一覧をエクスポートするようなことはできません。 なにか簡単にできたらいいのになぁと思っていたら、Partner CenterをPowerShellで利用可能にするオープンソースの Partner-Center-PowerShell がすごく使いやすくなっていてこれを使ったら簡単にCSV出力させることができました。 Partner Center PowerShell自体も以前は利用のためにはまずService Principalの登録が必要だったりなど結構使い出すハードル高かったのですが、コマンド一発でインストールできて、コマンド一発でブラウザで認証できるようになっていて、とても使いやすくなっていました。 待っていれば気がつくと便利になっている世界って本当に幸せです…。 というわけで、作ったスクリプトは以下。超簡単なものですが。 これで随分と楽ができるようになります…。

November 19, 2019 · 1 min · 胡田昌彦

コードによる手順の共有のすすめ / Exchange Online PowerShellへの接続

決してパスワードを生でコードに記載することはおすすめするものではないのですが、Exchange OnlineへのPowerShell接続ができなくて苦労している方をサポートする機会があったのでその際に作成したスクリプトを共有します。…といっても超簡単なものですが。 ドキュメントに書いてあるものそのままなので特に内容に関しては言及することもないのですが、今回の場合 - ドキュメントどおりに実行している - IDもパスワードも何度も確認した - 複数の端末でも実行した - ネットワークも複数切り替えた という切り分けを行っており、それでもうまく接続できない、という状況でした。 そこで、私がIDとパスワードを教えてもらってドキュメントどおりに試してみるとあっさりと接続できてしまう状況でした。 この場合 - なにかしらのドキュメントにも書かれていない超基本的な部分での前提条件の見落としがある - ドキュメントどおりに実行しているつもりができていない ID,Passwordのうち間違え - ドキュメントのスクリプトのコピーミス(ボタンもありますが…) - などなど - その他のなにか というくらいの可能性があるわけですが、1なのか、2なのか判別をつけることが重要だと考えました。なので、ドキュメントにかかれていることを全て単一のスクリプトに落とし、全く同じものを実行するだけで同じ結果が得られる状態にして1なのか2なのかの切り分けをするということに主眼をおきました。ですので、IDもパスワードも生で書き込んでそのままスクリプトを渡し、実行してもらいました。(※これでもまだPowerShellを管理者で実行しなくてはいけないとか色々ありますが、コンセプトとして。) 結果、今回の場合はスクリプトの実行では接続に成功しました。ですのでどこかはわからないですが、「2. ドキュメントどおりに実行しているつもりができていない」だったのだろうという事になりました。 これ、PowerShellスクリプトに完全に落とし込む手法じゃなかったらどれだけ丁寧に手順書が書かれていても手順書通りに実行されないリスクがあるんですよね。その点で完全にコードに落とし込んで確認できることは素敵だなと思うのです。 今回の例に限ったことではなく、可能であれば「コード」でのやり取りをインフラの管理者もするようにすると、コミュニケーションコストが低くなるケースはかなりあると思っています。もちろんInfrastructure as Codeという話もあるのですが、日常のオペレーションに関しても、です。 特にクラウドの時代になってほぼ全てのものがコードで表現できるようになりました。コードでなるべく表現することをベースにしていくことの価値や実現性は昔とは比べ物にならないです。個人的には、自分が行う作業は全てコード化するくらいの気持ちでいます。わたしの場合すぐに忘れてしまうので備忘録代わりでもあります。

January 23, 2019 · 1 min · 胡田昌彦

AADのユーザー一覧をCSVに出力

AADのユーザー一覧をCSVに出力…。 いや、もうこの手のユーザー一覧を出力するスクリプトって何回書いたかもう覚えていないほど何度も何度も書いてます。でも、また今日も書いちゃいました…。 でも、Azure Active Directoryからユーザー情報を抽出してCSVに出力するのは、PowerShellだとすごく簡単に書けますね。別に書いておく必要も感じないくらいに簡単です。VBScriptでゴリゴリ書いていた時代が懐かしいです。 - https://github.com/ebibibi/AzureManagement/blob/master/AAD/ExportAllAADUsersToCSV.ps1

September 3, 2018 · 1 min · 胡田昌彦

Azure AD B2Bでユーザーを招待し、Azureサブスクリプション上で単一RGにのみ権限を付与する

最近あるAzure Subscriptionに対して個別のユーザーに個別のRGのみ作成して権限を割り当てるということを都度都度行う必要が出てきました。 海よりも深い事情があり、普段利用している組織アカウントにはAzureサブスクリプションを紐付けられない理由があり(EA契約に紐付いているのでEA契約にコンバートされてしまう)、仕方なく別AADに紐づけて作成してあります。 でも、Azure環境は普段利用している組織アカウントを限定的な権限および範囲で使ってほしいため…以下のような作業をすることにしました。 - Azure AD B2Bで別のAADの組織ユーザーを招待する - 招待したユーザー用にリソースグループを1つ作成する - 作成したリソースグループに招待したユーザーを共同作成者としてアサインする 手作業だとちょっと時間かかりすぎるのと、繰り返し何人も都度都度対応する必要があるので、PowerShellスクリプトを書きました。 - [https://github.com/ebibibi/AzureManagement/blob/master/AAD/InviteUserWithAADB2B.ps1](https://github.com/ebibibi/AzureManagement/blob/master/AAD/InviteUserWithAADB2B.ps1) 外部テナントのユーザーを招待した直後に権限を割り当てて大丈夫なのかちょっと不安でしたが、どうやら意図したとおりにうまく動いているようです。

July 13, 2018 · 1 min · 胡田昌彦

(主にインフラ系エンジニアから見た)コーディングやスクリプティングに関しての流れ

主にインフラエンジニアからみて、過去から現在までの流れ…のようなものを私が見えている範囲で記載してみました。昨今はクラウド化の流れと相まって非常に高度な自動化やインフラのコード化まで実現可能となっており例えば「スクリプトも書いたことありません」という人に対してどの領域から飛び込んでもらうのが効率的か…をちょっと悩んでいます。 もうコーディングレスでLogic Appとかそういうところに飛び込んでもらった方がはやいのかもしれないし、仮想基盤のことやWindows, Linuxの中の事はすっ飛ばしてTerraformとかコンテナとかそこに注力するところから入って必要が出たところで仮想マシン内部の処理に入ったほうがいいのかもしれません。でも、現実的にはシェルスクリプトとかPowerShellスクリプトの基礎とかは抑えておかないとだめかもしれないし・・・。結構悩ましい所です。 - 昔はバッチファイルやシェルスクリプトで繰り返し実施する作業の効率化がありました。 - その後Windows的にはWSHの時代があり、vbscriptでスクリプトを書いたひとも多かったと思います。 - その後Microsoft的にはコマンド毎にオプションが違ったりコマンドがなかったりすることを解決し、全て統一するものとしてPowerShellを生み出しました。(私の大好きな[Jeffery Snover](https://twitter.com/jsnover)さんの仕事です。) - これでMicrosoft系はPowerShellで全てオブジェクト指向の管理となりました。(バックグラウンドにあるのは.net framework) - 一方UNIX系は当初からなんでもかんでもテキストであるという思想でした。 - MicrosoftはPowerShellを標準として様々な製品を開発しました。GUIではできないことでもPowerShellでなら操作できる。GUIで操作しても裏ではPowerShellコマンドが自動生成されてそれが実行されている…というものも多くありました。(結果、仕方がなくPowerShellを使うようになった方も多いと思います。) - Microsoftはクラウドサービスにもその流れを取り入れました。PowerShellにてクラウドサービスの管理も行うことになりました。 - Chef, Puppetなどに代表されるような冪等性を備えた仕組みが登場してきました。(Infrastructure as code, Configuration as code) 何度実行しても「記載した望むべき状態になる」ことを特徴とします。 - これ以前は「これを実行したらこうなる、やって見る前に状態を確認して、やってみて、やった結果を確認する」というような作業の流れを記述するようなイメージでした。 - MicrosoftもPowerShell DSCにて冪等性を持つフレームワークを提供しました。 - Microsoftのオープンソース指向が進む中でよりマルチプラットフォーム化を意識した取り組みがなされるようになっていきます。 - PowerShellの継続開発が打ち切られ、PowerShellCoreに舵がきられます。PowerShellCoreはWindowsだけではなく、Linux, Mac等でも動作するマルチプラットフォームなPowerShellです。(バックグラウンドにあるのは.net core) - AzureにもCloudShellの機能がつき、ポータル上でもコードで制御できるようになります。これまでのAzure PowerShellよりも先にAzure CLI(UNIX系の文化)の方が先に搭載されました。Azure管理はPowerShellよりもCLIの方が優先されるようになってきています。 - クラウドサービスも普及する中で、大規模な環境ではもう個別に1台づつターミナルで作業するなり、RDPではいってGUIで操作するなりすることが現実的に不可能な規模になりました。このような環境ではコードで全てを制御可能な環境にすることは必須条件となりました。 - WindowsもWindows Server Coreが出てGUIがなくなり、さらにNano Serverにてどんどん軽量化していきます。 - Windows Server 2016, 2019となると継続的に進化するモデルはGUIが利用できなくなりました。 - 更に軽量化を推し進める中で仮想マシンではなく、コンテナに大きくトレンドが傾きます。 - コンテナの標準であるDockerはDockerfileというコンテナをコードで定義できる機構を備えています。 - クラウドサービスも冪等性をもったテンプレートにて展開可能な構造となります。AzureであればARMテンプレート、AWSであればCloud formationなど。 - ARMテンプレート、Cloud formationによるInfrastructre as Codeと仮想マシンの内部を構成するChef, Puppet, AnsibleのようなConfiguration as Codeによって仮想マシンベースの環境構築の完全自動化が可能となりました。 - ARMテンプレート、Cloud formationによるInfrastructre as CodeとDockerによるコンテナコントロールで完全自動化が可能となりました。 - 複数のコンテナプラットフォーム自体のコントロールという観点ではKubernetesが標準化してきています。 - AWSLambda, Azure Fuctionsのようなインフラ自体を意識せずアプリケーションロジックのみを記載すればそれでおしまいとなるようなサービスも出てきました。ここではInfrastructure as CodeやConfiguration as Codeすら必要ない世界があります。(これですべてまかなえるわけでもないですが) - DevOpsという流れもありますが、NoOpsに向かう流れの方が強そうに感じています。(私の感想) ※NoOpsはインフラ管理者がいらないという意味ではなく、極力インフラの面倒を見なくていいアーキテクチャを採用する、くらいの意味で捉えています。 ...

May 16, 2018 · 1 min · 胡田昌彦

Office 365グループの一覧とメンバーを取得するPowerShellスクリプト(多要素認証対応)

Office 365グループの一覧とメンバーを取得してExcelに貼り付けるちょっとしたお仕事がありました。 WebUIを使って目で見て転記する方法だと気が遠くなるくらいの時間がかかりそうだったので、ちょっとPowerShellでスクリプトを書きました。 スクリプトを動かすためにはExchange Onlineへの接続が必要で、多要素認証が有効化されているアカウントの場合には"Exchange Online Remote PowerShell module"モジュールの事前インストールが必要でした。 多要素認証を使用して Exchange Online PowerShell に接続するなお、このモジュールのインストールをfirefoxからダウンロード、インストールしようとして全然できなくて困ってしまいましたが、Internet Explorerから実施したところ成功しました。皆さんは時間を無駄に使いませんように…。 スクリプトに、出力先のファイル名(***.csv)を指定して実行すると、情報を取得したうえでCSVファイルを生成します。 日本語環境でCSVファイルを開いてそれなりの見た目で表示されることを意図しているので、文字コードはあえてSJISにしました。なので、CSVファイルダブルクリックのみでそれなりにExcel上で表示されます。 1番(無駄に)苦労したのは文字コードと改行コード周りでした。 一度Add-Content –encoding Stringした状態のファイルに後から追記した時の文字コード、改行コード周りの挙動が意味不明過ぎてくじけたので、全行変数上で出力結果を保持した上で、一発でAdd-Contentしています…。 ソースはGithubにあげています。 https://github.com/ebibibi/AzureManagement/blob/master/AAD/ListGroupsAndMembers.ps1多分むやみに需要あると思いますので、お使いいただければと思います。

December 19, 2017 · 1 min · 胡田昌彦

2017/01/27 今週のトピックス

早いもので、1月も最後の金曜日になりました。 さて、今週のトピックスです。 - c# - Clear Recycle Bin programmatically with Powershell - Stack Overflow 1 user After a few hours, I came up with this. $TypeDefinition=@" using System; using System.ComponentModel; using System.Runtime.InteropSer… [stackoverflow.com ](http://b.hatena.ne.jp/ebibibi/?url=http%3A%2F%2Fstackoverflow.com%2F) - テクノロジー - あとで読む - [![ebibibi](https://ebiwordpress.azureedge.net/windowsadmin/profile_l.gif)](http://b.hatena.ne.jp/ebibibi/)ebibibi w, b, powershell このコードはなかなか凄い。 ![Twitterでのツイートを閲覧](http://cdn-ak.b.st-hatena.com/images/icon-twitter.png)39 clicks リンク2017/01/22 - Azureの監査ログアラートからWebhookの流れで楽をする · re-imagine 2 users 監査ログからアラートを上げられるようになります Azureの監査ログからアラートを上げる機能のプレビューが はじまりました 。これ、地味ですが便利な機能です。日々の運用に効きます。 どんな風に使えるか ルールに合致した監査ログが生成された場合、メール通知とWebho… ...

January 27, 2017 · 1 min · 胡田昌彦

2017/01/20  今週のトピックス

寒い週末になりました。さて、今週のトピックスです。 - arm and api for creation and managing OMS – Customer Feedback for Microsoft Azure 1 user We would like to add new OMS Workspaces using arm templates or powershell api. That way we could fully automate the creation of OMS f… [feedback.azure.com ](http://b.hatena.ne.jp/ebibibi/?url=http%3A%2F%2Ffeedback.azure.com%2F) - テクノロジー - あとで読む - [![ebibibi](https://ebiwordpress.azureedge.net/windowsadmin/profile_l.gif)](http://b.hatena.ne.jp/ebibibi/)ebibibi w, b, oms, arm, powershell ![Twitterでのツイートを閲覧](http://cdn-ak.b.st-hatena.com/images/icon-twitter.png)28 clicks 2017/01/20 - OMS Security malware assessment adds support for more antimalware vendors – Operations Management Suite Blog 1 user FAST FACT : OMS Security is adding support for Symantec Endpoint Protection and Trend Micro Deep Security to its Antimalware assessme… ...

January 20, 2017 · 4 min · 胡田昌彦

Orchestratorの「.NETスクリプトの実行」アクティビティ内で最新のバージョンのPowerShellを利用する

Orchestratorの「.NETスクリプトの実行」アクティビティ内でPowerShellスクリプトを実行した際には、古いバージョンのPowerShell環境が立ち上がります。このせいで、「手で動かしたら動くのに、OrchestratorのRunbookにしたら動かない!」という状況が発生します。 回避策として以下のレジストリ設定をOrchestratorサーバー上で行うことで最新バージョンのPowerShell環境にて動作させることができるようになります。 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework OnlyUseLatestCLR*** DWORD 1***

April 5, 2016 · 1 min · 胡田昌彦

Azure仮想マシンのサイズ一覧は「Get-AzureRoleSize」で取得!

欲しかったものが一発で手に入ったのでうれしくてポスト。 Get-AzureRoleSizeで、仮想マシンのサイズ一覧が手にはいります。 PS C:> Get-AzureRoleSize InstanceSize : A10RoleSizeLabel : A10 (8 cores, 57344 MB)Cores : 8MemoryInMb : 57344SupportedByWebWorkerRoles : TrueSupportedByVirtualMachines : TrueMaxDataDiskCount : 16WebWorkerResourceDiskSizeInMb : 1861268VirtualMachineResourceDiskSizeInMb : 391828OperationDescription : Get-AzureRoleSizeOperationId : 5919eb4d-96de-60d2-9149-caea24fef5caOperationStatus : Succeeded InstanceSize : A11RoleSizeLabel : A11 (16 cores, 114688 MB)Cores : 16MemoryInMb : 114688SupportedByWebWorkerRoles : TrueSupportedByVirtualMachines : TrueMaxDataDiskCount : 16WebWorkerResourceDiskSizeInMb : 1861268VirtualMachineResourceDiskSizeInMb : 391828OperationDescription : Get-AzureRoleSizeOperationId : 5919eb4d-96de-60d2-9149-caea24fef5caOperationStatus : Succeeded InstanceSize : A5RoleSizeLabel : A5 (2 cores, 14336 MB)Cores : 2MemoryInMb : 14336SupportedByWebWorkerRoles : TrueSupportedByVirtualMachines : TrueMaxDataDiskCount : 4WebWorkerResourceDiskSizeInMb : 501760VirtualMachineResourceDiskSizeInMb : 138240OperationDescription : Get-AzureRoleSizeOperationId : 5919eb4d-96de-60d2-9149-caea24fef5caOperationStatus : Succeeded ...

January 26, 2016 · 8 min · 胡田昌彦

PowerShell ISEにModule Browserが…!

気がついていませんでしたが、PowerShell ISEに「アドオン」メニューがあり、そこから各種アドオンのダウンロードページに飛べるようになっていました。 Script Browser、Script Analyzerは知ってましたが、Module Browserアドオンの存在は知りませんでした。 アドオンをインストールすると、まずは、NuGet-anycpu.exeのインストールを要求されます。 でも、普通にAcceptをクリックすると、初期化に失敗します。 どうやらこのバージョンは動かないようです(!) ISE Module Browser - A new way to manage your PowerShell modules - Windows PowerShell Blog - Site Home - MSDN Blogs 上記ページに解説があり、動作可能なバージョンとして以下が紹介されています。 PowerShell Gallery | ISEModuleBrowserAddon 1.0.1 PowerShellベースでインストールできます。 Install-Module -Name ISEModuleBrowserAddon

December 8, 2015 · 1 min · 胡田昌彦

PowerShell ISEアドオンのCIM Explorer

今回はPowerShell ISEのアドオンであるCIM Explorerを紹介します。 l TechNet PowerShell ISE Addon - CIM Explorer これはWMIにアクセスするスクリプトを記述する際の便利なツールです。 以前あったWMI CodecreatorのPowerShell版…という感じです。 例えば、BIOSのシリアルナンバーを取得したい時には… ローカルホストに接続し… ネームスペースを選択し… Win32_BIOSクラスを選択し… SerialNumberを選択し… 右クリックから「Get value of properties in PowerShell」をクリックします。 すると、PowerShellコードが生成され、実行するとシリアル番号が取得できました。 このように簡単にマウスで選択していくだけで、簡単なPowerShellスクリプトを生成することができます。いろいろと活用できると思いますので、是非チェックしてみてください。

December 7, 2015 · 1 min · 胡田昌彦

Install-Module Azureに失敗…していたけど勝手にうまくいくようになった話

先日新規にWindows10をインストールし直しまして、環境セットアップの一貫で「Install-Module Azure」を実行しました。 すると、以下のようにエラーが…。 PS C:\Windows\system32> install-module azure 警告: Could not get response from query ‘https://www.powershellgallery.com/api/v2/package/Azure/1.0.1'. 警告: MSG:SourceLocationNotValid «https://www.powershellgallery.com/api/v2/» PackageManagement\Install-Package : Package ‘Azure’ failed to install. 発生場所 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1375 文字:21 + … $null = PackageManagement\Install-Package @PSBoundParameters + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ResourceUnavailable: (C:\Users\MEbisu…ure\Azure.nupkg:String) [Install tion + FullyQualifiedErrorId : PackageFailedInstallOrDownload,Microsoft.PowerShell.PackageManagement.Cm kage 原因がわからず困っていたのですが、本日再度同じコマンドを実行するとインストールに成功しました。原因不明なのですが、何かしらwww.powershellgallery.comでおきていたのかな?とも思いますが…。

December 4, 2015 · 1 min · 胡田昌彦

AD上で表示名が同じオブジェクトを見つける

必要があってちょっとだけ簡単なPowerShellスクリプトを書きました。 AD上で表示名が同じスクリプトを見つけるスクリプト…と言いながら、以下の実装としては「displayNamePrintable」が同じオブジェクトを見つけるスクリプトです。 表示名で探すようにするのは単純にif文の中の属性を変更するのみです。 https://gist.github.com/ebibibi/16dbd44cd27ea7e0c0be

August 24, 2015 · 1 min · 胡田昌彦

Windows Management Framework 5.0 PreviewのインストールとShow-Object

DSCのお勉強をしているなかでShow-Objectの存在を知りました。使えるようにしてみます。 まず、Windows Management Framework 5.0 Previewをインストールします。現時点ではApril 2015が最新の模様です。 Download Windows Management Framework 5.0 Preview April 2015 from Official Microsoft Download Center 手元の環境は64bit版のWindows8.1だったので「WindowsBlue-KB3055381-x64」を選択します。 しかし、なぜか適用できませんでした…。 調べてみるとen-usでないと動かないという情報が…。 Unable to Install PowerShell V5 preview on Windows 8.1 X64 地域の設定と言語の設定で「en-us」に設定して再度Updateを実行してみました。 適用可能になりました! Find-Moduleが使えるようになりました! I n s t a l l - M o d u l e P o w e r S h e l l C o o k b o o k で P o w e r S h e l l C o o k b o o k を イ ン ス ト ー ル す る と s h o w - o b j e c t を 使 用 す る こ と が で き る よ う に な り ま し た 。 様 々 な 出 力 を パ イ プ で S h o w - O b j e c t コ マ ン ド レ ッ ト に 渡 す と 、 オ ブ ジ ェ ク ト を 細 か く 調 査 す る こ と が で き ま す !

July 27, 2015 · 1 min · 胡田昌彦

Azure Resource Managerを使ってAzureに全自動でWindows Serverを展開する

Azure Resource ManagerをいまからやっておけばAzure Stack対応もバッチリ!…ということでAzure Resource Mangerのお勉強を始めています。さらにはInfrastructure as Codeの実現に向けてDesire State Configurationのお勉強も。外側はARMで、VMの中はDCSで…という感じですね。 まず手始めに何から手をつけると良いかな…と探した所、以下のブログが非常にいい感じだったのでここから手をつけてみました。 - [18 Steps for End-to-End IaaS Provisioning in the Cloud with Azure Resource Manager (ARM), PowerShell and Desired State Configuration (DSC) - KeithMayer.com - Site Home - TechNet Blogs](http://blogs.technet.com/b/keithmayer/archive/2015/07/07/18-steps-for-end-to-end-iaas-provisioning-in-the-cloud-with-azure-resource-manager-arm-powershell-and-desired-state-configuration-dsc.aspx) コードで紹介されているので、基本的にそれをコピペすれば動くのですが、せっかくなので全部写経しつつコメント出力を追加したり、いちいち色んな物を選択したり、手動でクレデンシャルを入力したりするのが面倒なのでそこも自動化したり…と、改造しながら楽しんでみました。まだ、DSCでIISを構成するところまで行ってないのですが以下の動作を行わせる所までは全部理解して書いて正常動作を確認するところまでできました。 - クレデンシャル生成 - Azureアカウント追加 - ARMプロバイダ登録 - サブスクリプション選択 - リソースグループ作成 - ストレージアカウント作成 - 仮想ネットワーク作成 - VIPリソース作成 - ロードバランサ作成 - ネットワークセキュリティグループ作成 - NIC作成 - 可用性セット作成 - VM作成 https://gist.github.com/ebibibi/9a0a6830b54f0d3a7400 ...

July 18, 2015 · 1 min · 胡田昌彦

Remove User from Groupアクティビティの1501ユーザー以上が存在するグループに対しての処理に失敗する問題に対しての回避方法

以下のスクリプトでuser1~1600ユーザーを作成し、user1501をSCOの「Remove User From Group」アクティビティで削除しようとするとエラーが発生してしまいます。 > New-ADGroup -Name “scogroup” -GroupScope Universal for($i=1; $i -lt 1601; $i++) { New-ADUser -Name (“user” + $i) } for($i=1; $i -lt 1601; $i++) { $user = Get-ADUser (“user” + $i) Add-ADGroupMember -Identity “scogroup” -Members $user } エラーメッセージは以下です。 > The group member ‘CN=user1501,CN=Users,DC=ebsjsc,DC=local’ was not found. Exception: AdGroupMemberNotFoundException Target site: LdapGroup.RemoveMember Stack trace: 場所 Microsoft.Accelerators.ActiveDirectoryCore.LdapGroup.RemoveMember(DistinguishedName memberDistinguishedName) 場所 Microsoft.SystemCenter.IntegrationPack.ActiveDirectory.Execution.RemoveUserFromGroupExecutor.DoAction(Object executionItem) 場所 Microsoft.SystemCenter.IntegrationPack.ActiveDirectory.Execution.AExecutor.ExecuteNonGetAction(Object executionObject) 場所 Microsoft.SystemCenter.IntegrationPack.ActiveDirectory.Execution.AExecutor.Execute() 場所 Microsoft.SystemCenter.IntegrationPack.ActiveDirectory.Execution.ActiveDirectoryProgram.ExecuteProxy(ExecutionProxy proxy) 場所 Microsoft.SystemCenter.IntegrationPack.ActiveDirectory.AActiveDirectoryActivity.Execute(IActivityRequest request, IActivityResponse response) 明らかにアクティビティの実装ミスだと思われます。 1500以上のユーザー数を扱う場合にはPageSizeを適切に設定してオペレーションをしないといけない…というのはAD系のプログラムを書いている人なら多くの人が知っていることかなと思います。 - DirectorySearcher.PageSize Property (System.DirectoryServices) しかたがないので、とりあえず問題を回避するには以下のようにPowerShellスクリプトを書くことが出来ます。 > $group = “"$member = ““Import-Module ActiveDirectoryRemove-ADGroupMember -Identity $group -Members $member -confirm:$false これでよし…と思ったのですが、これではRemove-ADGroupMemberコマンドレットが見つからないと言われてエラーになってしまいました。 残念ながら呼び出されるPowerShellのバージョンが低いようです。 Windows Server 2012 and Orchestrator Run.NET Script Activity in PowerShell - Execution Policy? 対処として以下のレジストリを作成しました。 hklm\software\wow6432node\microsoft.netframework\OnlyUseLatestCLR 種類はDWORDで値は1です。 情報元は以下のブログです。 - hklm\software\wow6432node\microsoft.netframework\OnlyUseLatestCLR これで常に最新のバージョンのPowerShellが立ち上がるようになり、うまく動作させることができました。 ...

July 5, 2015 · 1 min · 胡田昌彦

AI・テクノロジーの情報を発信しています

YouTube

AI・テクノロジーの最新トレンドを動画で配信中

note

技術コラム・深掘り記事を公開中