問題タブ [powershell-workflow]
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 - PowerShell スクリプトを PSWorkflow Runbook 内の InlineScript から Azure Automation Runbook として実行する方法は?
PowerShell ワークフロー アクティビティでは、InlineScript を使用してネイティブ PowerShell スクリプトを呼び出すことができます。
しかし、Azure Automation では、ドット パス (少なくとも私のテストでは) が返さc:\windows\system32
れ、Azure Automation の script-as-runbook はそこに存在しませんでした (または、スクリプトが見つからなかったため、実行に失敗しました)。
- このように AAuto に保存されているネイティブ PS ランブックを実行することは可能ですか?
- その場合、ファイルへのパスを指定するにはどうすればよいですか?
- これは、Azure Automation のワークフロー Runbook と InlineScript アクティビティの解析/コンパイル プロセスのバグ/見落としであり、依存する Runbook がワーカーにコピーされませんか?
少し調べてみたところ、ネイティブの PS Runbook が実行されると、次のことがわかりました。
- 最初に、他の Runbook 参照がないか検査されます。
- 実行のためのワーカーへのデプロイの一環として、ランダムな名前のフォルダーが下に作成されます。
C:\Temp\
- 参照された Runbook は、最終的にこのフォルダーにコピーされます。
- Runbook が参照されていない場合、それらは一時ディレクトリにコピーされません。
- ルート Runbook がフォルダーにコピーされていないようです。
- ワークフロー runbook の実行時に、動的に名前が付けられたフォルダーは (c:\Temp の下に) 作成されません。
- 標準のワークフロー コンパイルの一部として、InlineScript アクティビティの内容が自動生成された xaml にコピーされます。ランタイムの問題と思われる動作に基づいていますが、リンクされたファイルについてはわかりません。私の推測では、ワークフローが実行されるたびにコンパイルが行われ (したがって、開始が遅れます)、ワーカーで行われ、ローカルと同じように標準の PS ワークフロー コンパイルが使用されます。
このスクリプトを (簡単に) ワークフローに変換することはできず、他のワークフロー アクティビティ内から使用されます。現在、この「機能」を実現できる唯一の方法は、スクリプトをコピーして、それを必要とするワークフロー内の最初の InlineScript に貼り付けることです。これは、メンテナンスの観点から明らかに退屈で面倒です。
おそらく、回避策として、Hybrid Worker を使用できますが、それには、子 Runbook がそこに公開されていることを確認し、それらを個別に維持する必要がある、または AAuto が Automation アカウントからカスタム モジュールを自動的にプッシュしないなど、他の多くの問題が伴います。労働者(これは計画されていますが)など。
powershell - ロギングを使用してスケジュールされた並行サーバー再起動のワークフローを作成する
現在、次のコードを使用してサーバーの再起動をスケジュールしています。これは少数のサーバーではうまく機能しますが、サーバーが多数 (80 以上) ある場合Register-ScheduledJob
は、サーバーごとに時間がかかるため問題になります。
workflow
私の調査では、との使用が指摘されましたforeach -parallel
。
私が遭遇する問題は、正確なロギングです。ログ ファイルは作成されましたが、列の順序が正しくありません。
powershell - Azure Automation グラフィカル Runbook - Automation アカウントの他の Runbook を個別のキャンバス アクティビティとして実行できませんか?
グラフィカル エディター UI ではワークフロー Runbook を追加できるように見えますが (ネイティブ PS は表示されません)、これにより GraphRunbook の定義/実行が中断されます。
Runbook をテストまたは発行しようとすると、画像にエラーが表示されます。(これも奇妙なことに、このエラー メッセージは前半がスペイン語、後半が英語の組み合わせで表示されています。)
Automation アカウントの他の Runbook は技術的にサポートされていません..まだですか?
テストコード:
powershell - PowerShell ワークフロー内で AzureStorageContext を使用する
ストレージ アカウント内のすべてのコンテナーを別のストレージ アカウントの単一のコンテナーにコピーしようとしています。自分のマシンで問題なく動作するようになりましたが、Azure Automation を使用して自動化したいと考えています。
標準の PowerShell スクリプトを実行すると、すべての非同期呼び出しが同期的に発生します。これを解決するために、「Powershell Workflow」ランブックを追加してみました。これに関する問題は、AzureStorageContext
. 問題は、コンテキストが文字列にシリアル化されるため、コンテキストを何にもバインドできないことです。
次のコードがあります。
これに対する標準的な回避策InlineScript
は、コンテキスト オブジェクトを必要とするすべての処理にブロックを使用することです。ただし、それを行うと、BLOB を並行してコピーする機能が失われます。
すべての BLOB のコピー コマンドを並行して開始しながら、Azure Automation でこれを行う方法はありますか?
powershell - Powershell ワークフロー関数の問題
SMA ランブックでコードを再利用しようとしていますが、関数内に配置しようとしているすべてが期待どおりに機能していないようです。たとえば、これを行うと機能し、資格情報のユーザー名を返します。
出力:
しかし、私がこれに変わると、もう機能しません(nullを返します):
私はさまざまなことを試しましたが、成功しませんでした。デバッグ/詳細画面では何も返されません。それも機能しません:
私の目標は、いくつかの関数を別のモジュールに入れ、再利用のためにランブックにインポートすることですが、これは実際にはうまくいかないようです。これは、Service Management Automation (SMA) で作成されたランブック (powershell ワークフロー) です。
純粋な Powershell と比較して、Powershell ワークフローにはいくつかの制限があることを読みましたが、それらのいずれかに該当するかどうかはわかりません: https://blogs.technet.microsoft.com/heyscriptingguy/2013/01/02/powershell -ワークフロー-制限/
ありがとう
powershell - Powershell ワークフローで -parameters を使用して VM を作成できない
Windows Azure Pack 管理サイトで作成している Powershell ワークフローに問題があります。Powershell ISE では、以下が機能しますが、サービス管理ポータルの管理サイト Runbook オーサリングでは機能しません。行き詰まっているのは、渡された引数を検証できないと言っているということです -Name. -Name を削除すると、-FullName が機能しなくなりました。コマンドのすべてのスイッチ パラメーターが機能していないようです。誰でも私を助けることができますか?
azure-automation - Suspend-Workflow 後のコンテキストの喪失
Azure Automation の以下のワークフローが機能していません。Hybrid Runbook Worker で実行すると、次のようになります。
- Azure コンテキストが正しく設定され、表示されている
- VM オブジェクト情報が正しく表示される
- ワークフローは中断されています
- 一時停止の直後に、ポータルを使用してワークフローが再開されます
- Azure コンテキストが失われ、エラーが発生しました
Login-AzureRmAccount を実行してログインします。
Azure ワーカーで同じことを実行すると、上記と同じように表示されますが、ジョブはエラーで失敗します
永続データを完全に保存できなかったか、保存された永続データが破損しているため、ワークフロー ジョブを再開できません。ワークフローを再開する必要があります。(指定された状態でのキーの使用は無効です。)
powershell - ジョブまたはワークフローとしての Powershell チェックポイント
午後、私は 600 ~ 1000 個のフォルダー内のファイルを置き換える PowerShell スクリプトを作成中です。プロセスを停止し、少数のフォルダーでテストしました。
多数のフォルダーを更新するため、スケジュールされたタスクとして夜間に実行される可能性があります。スクリプトが停止したときにチェックポイントを作成し、スクリプトが再度実行されたときにそのチェックポイントから開始することは可能ですか?
たとえば -
- スクリプトは 4 時間実行されます
- チェックポイントを作成します
- ストップ
翌日
- 前のチェックポイントからの続き....
フォルダーが変更されたときに更新されるファイルを作成してから、これを「除外」フォルダーとして使用しようとしました。しかし、より良い解決策があるかどうか疑問に思いました。
function - PowerShell で別の関数から関数を呼び出す
PowerShell 5 で初めて、別の関数からファイルにメッセージを書き込む関数を呼び出すのに問題があります。以下は、私がやっていることの簡略化されたバージョンです。
生成されるエラーは次のとおりです。
ファイル内で logMessage 関数を移動しようとしましたが、グローバル スコープも試しました。
他の言語では、他の関数から logMessage を呼び出すことができます。それが関数の目的だからです。
コードのブロックを再利用する「ワークフローの方法」は何ですか?
ワークフローに読み込まれるロギング モジュールを作成する必要がありますか?