-1

この問題が解決された後に私が書いたブログの更新:

これに関する私のブログ記事を見るには、ここをクリックしてください

注: 機密情報は次のように置き換えられます: xxx

注 2: コード ブロックの周りの書式設定を正しく機能させることができなかったので、お詫び申し上げます。

私は Azure Automation を使用しています。

夜間に stop-AzureVM を使用してシャットダウンし、朝に再起動してお金を節約したいと考えています。

PowerShell ISE を使用してローカル マシンから get-AzureVM を呼び出すことができますが、Azure portal の Azure Automation で PowerShell スクリプトを実行すると、get-AzureVM は何も返さないため、VM を取得できず、停止します。 .

私のランブックのスクリプトは次のとおりです。

workflow Stop-MyVM {

# Specify Azure Subscription Name
$subName = 'My subscription Connection'

# Connect to Azure Subscription
Connect-Azure -AzureConnectionName $subName

Select-AzureSubscription -SubscriptionName $subName 

$vm = Get-AzureVM -ServiceName 'xxx-xxxx' -Name 'xxx-xxxVM' 

Write-Output "VM NAME: $vm"

# stop code to go here when I work out why get-AzureVM is not working 
}

また、2 つのアセットがあります: 接続: ここに画像の説明を入力 証明書: ここに画像の説明を入力

Azure に接続するために Web からダウンロードした別のラン ブックもあります。これはかなり標準的なものであり、問​​題の原因ではありません: ここに画像の説明を入力

機能していないがエラーではない行は次のとおりです: $vm = Get-AzureVM -ServiceName 'xxx-xxx' -Name 'xxx-xxxVM'

出力は次のとおりです。 ここに画像の説明を入力

4

4 に答える 4

2

私はあなたにいくつかのことを提案します-

a. ASSET タブに移動し、適切な Windows PowerShell 資格情報を追加します (単に、azure ポータルへのログインに使用するのと同じユーザー名とパスワードを使用できます)。

b. Runbook にコードを追加します。PowerShell 自動化資格情報名が StartVM で、サブスクリプション名が xxx であるとします。この場合、ワークフローは次のようになります。

   workflow StartVM
   {
    $Cred = Get-AutomationPSCredential -Name
    StartVM' Add-AzureAccount -Credential $Cred
    Select-AzureSubscription -SubscriptionName “xxx”
    inlineScript
      {
        Start-AzureVM -Name TestServer -ServiceName CS12345
      }
   }

c. この後、必要に応じて Runbook をスケジュールできます。

これがあなたを助けることを願っています-

http://azure.microsoft.com/blog/2014/11/25/introducing-the-azure-automation-script-converter/ http://azure.microsoft.com/en-us/documentation/articles/automation-サンプルからランブックを作成/

ありがとう。

于 2015-03-12T12:04:24.273 に答える
1

このジョブのジョブ履歴を調べた場合、エラー レコードがリストされていますか?

すべての VM を取得しようとしても機能しますか?

$VMs = Get-AzureVM
Write-Output $VMs

また、証明書認証ではなく、Azure Automation で OrgID 認証を使用することをお勧めします。詳細については、 http://azure.microsoft.com/blog/2014/08/27/azure-automation-authenticating-to-azure-using-azure-active-directory/を参照してください。

于 2014-12-09T02:33:10.227 に答える
0

Connect-Azure スクリプトの最後の行を見ると、$AzureConnectionName がサブスクリプション名として使用され、PS コンテキストが設定されています。接続名とサブスクリプション名は同じですか? そうでない場合は、Connect-Azure をサブスクリプション名で実行してテストするか、接続アセットの名前をサブスクリプション名と同じ名前に変更してください。

于 2014-12-09T03:11:05.510 に答える
0

新しい Azure AD アカウントでテストすることをお勧めします。問題なく Azure Portal にログインできるものを使用していましたがGet-AzureVM、その資格情報を含むスクリプトでは常に null でした。

資格情報と Runbook を再作成しようとしましたが、最後に、新しい Azure AD ユーザーを作成し、作成された共同管理者ロールを割り当てる必要がありました。

于 2016-01-08T16:24:50.453 に答える