2017-08-11 14 views
0

私の虚偽のアカウントに仮想マシンがあり、Microsoft Paintプログラムを開くだけの簡単なPowerShellスクリプトを渡したいと思います。Azureのカスタムスクリプトが移行状態になっていました

PowerShellスクリプトは、次のとおり

& "C:\Windows\system32\mspaint.exe" 

これはVMを取り出し、リモートVM上でこのスクリプトを適用しようとするコードです。

var testingVm = _azure.VirtualMachines.GetById(
      "..."); 
     testingVm.Update() 
      .DefineNewExtension("InstallSoftware") 
      .WithPublisher("Microsoft.Compute") 
      .WithType("CustomScriptExtension") 
      .WithVersion("1.9") 
      .WithPublicSetting("fileUris", new string[] 
      { 
       "https://.../powershellscripts/OpenPaint.ps1" 
      }) 
      .WithProtectedSetting("Url", "https://.../powershellscripts/gource-0.42-setup.exe") 
      .WithProtectedSetting("commandToExecute", "powershell -ExecutionPolicy Bypass -File OpenPaint.ps1") 
      .Attach() 
      .Apply(); 

ファイルがダウンロードさと、スクリプトが正しくCに配置されています\パッケージ\プラグイン\ Microsoft.Compute.CustomScriptExtension \ 1.9 \ダウンロード\ 0フォルダを、BUペイントが開いていない、とAzureの上ポータルでは、エクステンションの状態は永遠に「トランジション」に設定されます。 (私は、VMにそのディレクトリにペイントがあり、実行ポリシーがバイパスに設定されていることも確認しました)。

私は間違っていますか?

答えて

2

私は間違いはないと確信しています。それはシステムの文脈の下でペイントを起動します(したがってあなたはそれを画面上で見ることはできません)。だから私はそれがあなたがそれを設計したように正確に動作すると思います(しかし、デザインには欠陥があります)。

ただ、(代わりにあなたが何をしているかの)スクリプトの中で意味のある何かをやってみてください:

get-process > c:\1.txt 
+0

だけ余分なものとして、どのように私はこのC#コードからそのPowerShellスクリプトに引数を渡すことができるだろうか? – Iason

+0

は悲しいことにあなたを助けることができません。 c#sdkと一緒に働いたことはありません – 4c74356b41

関連する問題