問題タブ [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.

0 投票する
1 に答える
4021 参照

powershell - コマンドレットパラメーターとしてのPowerShell変数のインライン展開?

コマンドレットを呼び出すときに、PowerShell変数の値を何らかの方法で展開して、コマンドレットのパラメーター(関連付けられた値)として機能させることはできますか?

これが私が試していることの例です:

問題は、Invoke-Sqlcmdの実行時に発生します。「-Username-Password」を受け入れる位置パラメーターが見つからないためmy usernamemy password変数を展開していますが、パラメーターのセットとして適切に送信されていないことがわかります。私がここで試していることを行う方法はありますか?

0 投票する
3 に答える
14712 参照

powershell - stop-service コマンドレットのタイムアウトは可能ですか?

stop-service コマンドレットを使用して、ボックスのいくつかのサービスを強制終了しています。ほとんどの場合は問題なく動作しますが、時々うまく動作しないサービスが 1 つまたは 2 つあります (そうでない人はいますか?)。

この場合、問題のサービスの 1 つが停止状態のままになり、コマンドレットはこれをコンソールに何度も出力します。

最終的には、タスク マネージャーでサービスを強制終了する必要があり、その後スクリプトが続行されます。

stop-service コマンドレットを特定の時点で停止またはタイムアウトさせる方法はありますか? 後で確認できると思いますが、サービスがまだ実行されている場合は、kill-process コマンドレットを使用して最後のチョップを提供します。

0 投票する
1 に答える
8772 参照

powershell - Start-Job スクリプト ブロック -- 引数を指定してコマンドレットを呼び出す方法

私はStart-Jobコマンドレットを初めて使用し、引数を取るコマンドレットを含むスクリプト ブロックを呼び出すのに問題があります。これが私がこれまでに持っているものです:

実行するreceive-jobと、-ComputerName引数が null または空であり、-InputObj引数が null または空であるというエラーが表示されます。いずれにしてもそうではありません。上記のスニペットは、2 つの foreach ループ内から呼び出されています。

-ArgumentListスクリプトブロックを呼び出すときに を使用しようとしましたが、運もありません。私は何かが欠けていると確信していますか?

0 投票する
2 に答える
1648 参照

c# - カスタムC#PowerShellコマンドレットで、-Verboseが指定されているかどうかを識別します

カスタムC#PowerShellコマンドレット(Cmdlet基本クラスから継承)があり、コマンドレットの実行時に「-Verbose」パラメーターが指定されているかどうかを識別できるようにしたい。-Verboseパラメーターが指定されている場合はWriteVerboseが出力されることを認識していますが、-Verboseが指定されている場合は実際に他のコードを実行したいと思います(つまり、-Verboseが指定されている場合はConsole.Write値を出力しません)。

ありがとう、

ジョン

0 投票する
1 に答える
8379 参照

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コマンドレットがしゃがむときです。誰かが以前にこのような問題を見たことがありますか?

0 投票する
3 に答える
2566 参照

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?

0 投票する
0 に答える
103 参照

sql-server - C#で書かれたコマンドレットからtsqlスクリプトを実行する方法

C# で記述されたカスタム コマンドレットから tsql スクリプトを実行したいと考えています。それを行うためのベストプラクティスをお勧めできますか?

いくつかの .sql スクリプトがあり、コマンドレットでそれらを特定の順序で反復処理し、各 sql スクリプトを実行する必要があります。可能であれば、すべてのスクリプトをトランザクションで実行する必要もあります。

また、スクリプトをリモートで実行する必要があります。これは、コマンドレットが実行されたマシンに SQL Server がインストールされていない可能性があることを意味します。

対象の SQL サーバーは 2008、2008R2、2012 です。

私はいくつかのアプローチを読みましたが、何が最善のアプローチなのかまだわかりません。

前もって感謝します

0 投票する
1 に答える
321 参照

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 コマンドレットと同じことを達成するにはどうすればよいでしょうか? 誰かが私に光を分けてくれませんか? どうもありがとう!

0 投票する
1 に答える
280 参照

c# - C#PowerShellランスペースで一重引用符をエスケープする

C#でSystem.Automationdllを使用してExchangeコマンドレットを実行しようとしています。

http://technet.microsoft.com/en-us/library/dd315325.aspxで、一重引用符をエスケープするには、基本的に別の一重引用符を追加する必要があると言われています。

例えば、

ただし、コマンドレットで同じことを実行しようとすると、

新しいメールボックスは、実際にはユーザーとしての名前で作成されます。''。cn。user。'。cnこのコマンドレットを実行するコードは次のとおりです。

それを正しく逃れるために私たちにできることはありますか?