問題タブ [powercli]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - VMwarepowercliを使用した自動展開
Cruise control、TFS、buildforgeなどのツールを使用しなかったビルド環境があります。
私たちは純粋にMsbuildとpowershellに依存しています。展開プロセスを自動化することにしました。
仮想マシンのニーズを満たすためにVMWareESXiを使用しているため。導入プロセスを自動化するためにVMWarepowercliを使用することにしました。
ビルドが終了すると、VMware powercliはVMのスナップショットを新しい状態に戻し、Invoke-VMScriptを使用して自動展開を実行しようとしました。
ただし、展開にはUIがあるため、Powercliがセッション0でUIを呼び出そうとし、UIアプリケーションをサポートしていないため、これはほぼ不可能です。
誰かがこの問題を克服し、アプリケーションを仮想マシンに正常にインストールしましたか?
c# - vmware sdk API 呼び出しを介してディスクを永続モードに切り替える
更新: 推奨されるソリューションは、.NET 用の VmWare ツールキットを使用し、次のことを実現するものです。
ここで実行する必要があるタスクの 1 つは (可能であれば)、仮想ハード ディスクを非永続モードから永続モードに、またはその逆に切り替えることです。
正しい API 呼び出しを探してみましたが、まだ見つかりません。これが API 呼び出しを介して実行できるかどうかを知っている人はいますか?
c# - C# から VmWare PowerCLI を呼び出す
C# 内から PowerCLI コマンドレットを実行する方法はありますか? 基本的に、Windows ワークフローを使用して作成されたワークフローがあります。このワークフローの実行の特定の段階で、特定の仮想マシンとやり取りして、それらをオン/オフにしたり、ディスクの永続モードを切り替えたりする必要があります。
.NET ツールキットを使用して必要なことを達成することはできますが、PowerCLI コマンドレットを使用してこれを達成する可能性を検討することは理にかなっています。これは、必要な作業のほとんどすべてを PowerCLI コマンドレットを使用して非常に簡単に実行できるためです。
powershell - PowerCLI を使用して EMC PowerPath が ESX ホストにインストールされているかどうかを確認する方法
TL;DR PowerCLI を使用して、EMC PowerPath が ESX ホストにインストールされているかどうかを確認するにはどうすればよいですか?
LUN をあるストレージ グループから別のストレージ グループに移動するときにホスト マスキング操作を実行するスクリプトを作成しようとしています。これは、ESX 4.1 で競合状態が原因で発生する可能性がある All Paths Down エラーに対応するためです。これらの手順は、VMWare KB 1015084 および 1009449 で説明されています。これらの手順は、サービス コンソールから使用するために記述されています。SSH アクティビティのスクリプト作成を避け、Powershell/PowerCLI ですべてを実行したいと考えています。
私たちの環境では、すべてではありませんがほとんどのホストで EMC PowerPath を使用しています。この LUN マスキングは、PowerPath がインストールされているホストでのみ実行する必要があるため、各ホストをテストしてこれを判断しようとしています。
PowerCLI でこれを行う方法を決定しようとして、私は頭を悩ませてきました。ESX サービス コンソールに接続されているesxcfg-mpath --list-plugins
場合、PowerPath がインストールされているかどうかがコマンドによって表示されます。vCenter GUI では、次の方法で決定できます。
Select Host -> Configuration -> Storage Adapters -> Select Adapter -> View Devices -> Examine "Owner" column
PowerCLI で使用すると、この所有者列を除くget-scsilun
すべての情報を含むオブジェクトが返されます。
私は困惑しています。get-esxcli
オブジェクトが何らかの同等のメソッドを持っていることを期待していましたが、おそらくsatp
ornmp
でしたが、今のところ何も見つかりません。
powershell - セッションで初めてPowerShellスクリプトを実行するのに時間がかかるのはなぜですか?
スクリプトにPowercliスナップインをロードしています。セッションで初めてスクリプトを実行すると、さらに時間がかかります。同じスナップインを使用する別のスクリプトを実行すると、時間がかかりません。[Measure-Commandコマンドレットを使用してパフォーマンスを測定しました]
したがって、新しいセッションが作成されるたびに、スクリプトの実行に時間がかかると思います。
この場合、ユーザーはファイルを右クリックしてPowerShellを実行し、PowerShellで実行するため、常に新しいセッションで実行されます。だから彼らは遅さに直面するたびに。
セッションで初めてPowerShellスクリプトを実行するのに時間がかかるのはなぜですか?
この遅さを回避する方法はありますか?[Powershell2.0を使用しています]
vmware - マルチスレッド PowerCLI を使用して複数の VM を並行して複製する
VMware で大量の VM のクローンを作成するタスクを引き受けました。クローン ウィザードを何百回もクリックするのではなく、できるだけ自動化したいと考えています。
テンプレート マシンは既に構成され、「封印」されています。クローンを作成して電源を入れると、新しくクローンされたインスタンスが起動し、sysprep を実行する間、しばらくそのままになります。これには約 20 分ほどかかります。
MSFT TechNetで、必要なすべてを実行する非常に優れたスクリプトを見つけました。プロセスの各ステップで値を変更してスクリプトを再保存する必要がないように、少し変更しました。スクリプト全体の $Step カウンターの代わりに、いくつかの Start-Sleep 遅延に置き換えただけです。この時点で、正常に動作し、CSV ファイルから読み取ったすべてのマシンのクローンが正常に作成されます。各マシンは、準備が整うまでに約 35 分かかります (マシンは別の AD OU に移動されます)。
唯一の問題は、プロセス全体 (クローン作成、VLAN の変更、マシンの起動とドメイン参加の待機、最終的なマシン オブジェクトの別の AD OU への移動) が完了するのを待ってから別のクローンを開始することです。
私が本当にやりたいのは、マルチスレッド化して操作全体を高速化することです。テストで、約 5 つの個別のクローン ジョブが実行されると、vSphere 内でのクローン作成が遅くなり始めることがわかったので、このスクリプトを変更して、(ワークフロー全体を実行する) 4 つのクローンを一度に実行したいと考えています。
何か案は?必要に応じてコードを貼り付けることができます。
loops - 一度に n 個のオブジェクトのコレクションをループします
私は独学の初心者プログラマーであり、これは非常に基本的な質問であり、コンピューター サイエンスを実際に学んだことがあれば答えられるような質問だと思います :P インタートロンと StackOverflow の検索では、私は持っていません。私が探している答えを見つけることができませんでした。だから誰かが私を甘やかしてくれることを願っています。
私はオブジェクトのコレクションを持っています。一度に 5 つずつ操作してから、次の 5 つに進みたいと思います。コンテキストは、一連の VM を再起動しています。すべての VM が一度に再起動してホストが非難されないように、それらをずらして配置するように求められています。
正しい道はある意味ではfor i
ループであり、 ではないと感じforeach
ます。do-until
との組み合わせのような気がしますfor i
が、脳から答えをふるいにかけることはできません。
コレクションからオブジェクトを削除することでおそらくそれを行うことができますが、それがうまくいくとしても、これを行う「間違った」方法のように感じます。
私はこれを Powershell と PowerCLI で行っていますが、私が理解しようとしているロジックは、言語に依存するよりも基本的なものであると感じているので、Powershell に慣れていなくても興味があります。答え。
編集:以下のDavidの回答に基づいて、次のコードが私が探しているもののようです:
出力を与えます:
ありがとうデビッド!
powershell - vSphere CLI: 新しいスナップショットを取得して説明を追加するにはどうすればよいですか?
私は、6 つのスナップショットを取得し、各スナップショットの説明を作成日にすることができる VSphere CLI スクリプトに取り組んでいます。現時点で私が試しているコードは次のとおりです。
arrays - PowerCLIスナップショットアレイ
今少し困惑していて、コミュニティが私が取り組んでいるプログラムを続けるのを助けるために私にその迅速な後押しを与えることができるかどうか疑問に思っていました。
私が取り組んでいるプログラムのある時点で、配列から6つの最新の要素を取得しようとしています。配列内のすべてのスナップショットを取得するために、スナップショット変数を配列内に配置したいと思います。現時点で私を混乱させているコードの部分は次のとおりです。
配列内で$snapshot変数を取得するという目標を達成していますか?また、forループは最新の6つを除くすべてを正しく削除できますか?
編集:以前は気づかなかった小さな問題を修正しました。
powershell - PowerCLI:タスクの自動化
毎週月曜日と木曜日に自動的に実行するスクリプトがあります。PowerCLIでこれを実行できるかどうか、またはこの目標を達成するために.batを作成する必要があるかどうかに興味がありました。いくつか検索を行ったところ、このコードが行の先頭にあるスクリプトで必要であることがわかりました。
このコードを毎週月曜日と木曜日に実行するには、他に何が必要ですか?
ありがとう!
編集:これを実行できるようにするには、タスクスケジューラをどこで編集しますか?私は自分がいる場所の画像を提供しました(それと私は視覚的な人でもあります:P)