問題タブ [cmdlet]
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変数のインライン展開?
コマンドレットを呼び出すときに、PowerShell変数の値を何らかの方法で展開して、コマンドレットのパラメーター(関連付けられた値)として機能させることはできますか?
これが私が試していることの例です:
問題は、Invoke-Sqlcmdの実行時に発生します。「-Username-Password」を受け入れる位置パラメーターが見つからないためmy username
、my password
変数を展開していますが、パラメーターのセットとして適切に送信されていないことがわかります。私がここで試していることを行う方法はありますか?
powershell - stop-service コマンドレットのタイムアウトは可能ですか?
stop-service コマンドレットを使用して、ボックスのいくつかのサービスを強制終了しています。ほとんどの場合は問題なく動作しますが、時々うまく動作しないサービスが 1 つまたは 2 つあります (そうでない人はいますか?)。
この場合、問題のサービスの 1 つが停止状態のままになり、コマンドレットはこれをコンソールに何度も出力します。
最終的には、タスク マネージャーでサービスを強制終了する必要があり、その後スクリプトが続行されます。
stop-service コマンドレットを特定の時点で停止またはタイムアウトさせる方法はありますか? 後で確認できると思いますが、サービスがまだ実行されている場合は、kill-process コマンドレットを使用して最後のチョップを提供します。
powershell - Start-Job スクリプト ブロック -- 引数を指定してコマンドレットを呼び出す方法
私はStart-Job
コマンドレットを初めて使用し、引数を取るコマンドレットを含むスクリプト ブロックを呼び出すのに問題があります。これが私がこれまでに持っているものです:
実行するreceive-job
と、-ComputerName
引数が null または空であり、-InputObj
引数が null または空であるというエラーが表示されます。いずれにしてもそうではありません。上記のスニペットは、2 つの foreach ループ内から呼び出されています。
-ArgumentList
スクリプトブロックを呼び出すときに を使用しようとしましたが、運もありません。私は何かが欠けていると確信していますか?
c# - カスタムC#PowerShellコマンドレットで、-Verboseが指定されているかどうかを識別します
カスタムC#PowerShellコマンドレット(Cmdlet基本クラスから継承)があり、コマンドレットの実行時に「-Verbose」パラメーターが指定されているかどうかを識別できるようにしたい。-Verboseパラメーターが指定されている場合はWriteVerboseが出力されることを認識していますが、-Verboseが指定されている場合は実際に他のコードを実行したいと思います(つまり、-Verboseが指定されている場合はConsole.Write値を出力しません)。
ありがとう、
ジョン
powershell - WindowsサービスとStop-Processコマンドレットに関する興味深い問題
ここには、自家製のWindowsサービスがいくつかあります。そのうちの1つは、要求されたときに常に停止するとは限らないという点で問題があります。時々「停止」状態でスタックします。
PowerShellを使用して、そのPIDを取得し、Stop-Processコマンドレットを使用して関連するプロセスを強制終了していますが、それも機能していません。
代わりに、System.ServiceProcess.ServiceController.Name
明らかに私たちのサービスではないという名前のサービスについてのメッセージを受け取りますが、それが参照するPIDはそうです。
これが私たちのサービスを停止させるために私たちがしていることです。まず、Get-Serviceコマンドレットを使用します。
次に、そのServiceNamePIDを使用して、PIDを取得し、それをStop-Processコマンドレットで使用します。
Cannot find a process with the process identifier XYZ
これは、タスクマネージャーによると、実際にはPID XYZがサービスの正しいプロセスIDである場合に、Stop-Processコマンドレットがしゃがむときです。誰かが以前にこのような問題を見たことがありますか?
c# - Best way to update cmdlet progress from a separate thread
I have a powershell cmdlet written in C# (deriving from PSCmdlet
) which will start a long-running task which should update its progress using WriteProgress()
while it is running. Since powershell will not allow a separate thread to use WriteObject
or WriteProgress
I had to create a Queue<object>
in the main thread and I add items to the queue from the task that I want to be written to the Pipeline/Progress. A while loop will dequeue objects as they come in and write to the pipline / progress bar.
This is working, but I wanted to see if there were any better practices for multi-threading with a powershell cmdlet that is written in C#/VB. For example with WPF I can always step onto the UI thread with UIComponent.Dispatcher.Invoke()
if I need to update a progress bar or UI Component. Is there anything equivalent that I can use to 'step onto' the powershell thread to update the UI or write to the pipeline?
sql-server - C#で書かれたコマンドレットからtsqlスクリプトを実行する方法
C# で記述されたカスタム コマンドレットから tsql スクリプトを実行したいと考えています。それを行うためのベストプラクティスをお勧めできますか?
いくつかの .sql スクリプトがあり、コマンドレットでそれらを特定の順序で反復処理し、各 sql スクリプトを実行する必要があります。可能であれば、すべてのスクリプトをトランザクションで実行する必要もあります。
また、スクリプトをリモートで実行する必要があります。これは、コマンドレットが実行されたマシンに SQL Server がインストールされていない可能性があることを意味します。
対象の SQL サーバーは 2008、2008R2、2012 です。
私はいくつかのアプローチを読みましたが、何が最善のアプローチなのかまだわかりません。
前もって感謝します
powershell - .net プロジェクトの Azure Power Shell コマンドレット dll
ここで、.net プロジェクトで Azure Power Shell コマンドレット dll を使用する方法について質問があります。msdn でこのスレッドを見ました: このコマンドを使用できる powershell コマンドレットを使用してください。Remove-AzureVM -ServiceName -Name これには、パスが次の Microsoft.WindowsAzure.Management.ServiceManagement.dll の下の dll が含まれます: C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\Azure リフレクターを使用してこれを開きますdll. また、RemoveAzureVMCommand クラスを取得できますが、このクラスを使用して powershell コマンドレットと同じことを達成するにはどうすればよいでしょうか? 誰かが私に光を分けてくれませんか? どうもありがとう!
c# - C#PowerShellランスペースで一重引用符をエスケープする
C#でSystem.Automationdllを使用してExchangeコマンドレットを実行しようとしています。
http://technet.microsoft.com/en-us/library/dd315325.aspxで、一重引用符をエスケープするには、基本的に別の一重引用符を追加する必要があると言われています。
例えば、
ただし、コマンドレットで同じことを実行しようとすると、
新しいメールボックスは、実際にはユーザーとしての名前で作成されます。''。cn。user。'。cnこのコマンドレットを実行するコードは次のとおりです。
それを正しく逃れるために私たちにできることはありますか?