問題タブ [start-process]

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 に答える
1003 参照

powershell - -List (パラメーター) を使用する Powershell スクリプトを、別の資格情報で実行します。

今日、この単純な (?) 関数を機能させるのに苦労していました。

txt ベースのファイルからコンピューター名を読み取る PowerShell スクリプトがあります。次のワンライナーで PowerShell セッションから実行すると、正常に動作します。

ご覧のとおり、ファイル名が長いため、引用符で囲みます。

ただし、スクリプトの呼び出しに使用されるテキスト ファイルの選択肢を渡すラジオ ボックスを備えた PowerShell GUI フォームを作成しています。トリックは、スクリプトを別の管理者アカウントで実行する必要があり、それを機能させる方法がわかりません。

使用していない別のスクリプトについては、次の行に沿って何かを使用できることを知っています。これは古い DOS「runas」を使用しますが、-list 関数では機能しません。

要するに、コマンド ラインからパラメーター (-List) を読み取る別の資格情報を使用してスクリプトを起動するにはどうすればよいでしょうか。また、スペースを含むフォルダーを含むディレクトリ構造を維持したいと考えています。スクリプトのタイトルは「Server health check.ps1」です。

私が最後に試したのは次のことでした

結果は次のメッセージでした。

これはinvoke-commandまたはstart-processで実行できるとほぼ確信していますが、正しいフォーマットを取得するだけの問題ですか? start-process または invoke-command を使用した試行のどこかで / または ' または "" が欠落している可能性があります。

どんな助けでも大歓迎です!

4 月 30 日の更新:

私はこれを機能させるためにもう少し試しました。私は近くにいますが、まだ十分ではありません。

-credential を追加すると、-file パラメータが無効であることを示すエラーが発生します。これを行う方法があると確信しています。

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

powershell - Powershell プロセスを開始し、タイムアウトで待機し、強制終了して終了コードを取得する

プログラムをループで繰り返し実行したい。

ときどきプログラムがクラッシュするので、次の反復を正しく開始できるようにプログラムを強制終了します。これはタイムアウトで判断します。

タイムアウトは機能していますが、プログラムの終了コードを取得できません。これも結果を判断する必要があります。

以前は、タイムアウトで待機せず、Start-Process で -wait を使用しただけでしたが、これにより、起動したプログラムがクラッシュした場合にスクリプトがハングしていました。このセットアップでは、終了コードを正しく取得できました。

ISE から実行しています。

どうやって

  1. プロセスを開始する
  2. 正常に実行されて終了するのを待ちます
  3. クラッシュした場合は強制終了します (例: タイムアウトに達した場合)。
  4. プロセスの終了コードを取得する
0 投票する
1 に答える
591 参照

vb.net - 管理者として実行しようとすると、Process.start() スロー エラーが発生する

管理者権限が必要な vb.net で開発されたアプリケーションがあります。アプリケーション マニフェストで level = "requireAdministrator" を設定しました。クライアントは、組織の制限により、このアプリケーションをローカル ユーザーが実行することを望んでいます。そこで、管理者の資格情報を暗号化された形式で実際に保存し、保存された資格情報を使用して「元の」アプリケーションを実行する別の「ランチャー」アプリケーションを作成しました。

「管理者」アカウント (ビルトイン アカウント) を使用している場合、すべて正常に動作します。しかし、手動で作成された管理者アカウントの資格情報を使用している場合、process.start () 行で「要求された操作には昇格が必要です」というエラーがスローされます。組み込みの管理者アカウントと手動で作成されたアカウントの違いを本当に識別できませんでした管理者アカウント。両方のユーザー (組み込みおよび手動で作成) が Administrators および HomeUsers のメンバーであることを確認しました。さまざまなユーザー グループとさまざまな OS (Windows 7 と Windows 10 – 32 ビット バージョンと 64 ビット バージョンの両方) を使用して、さまざまなユーザーを作成してあらゆる可能性を試しましたが、すべて上記の説明と同じ方法で動作しています。コードで変更する必要があるものはありますか?

追加情報: ここでは、この「ランチャー」アプリケーションを標準ユーザー (管理者ではない) として実行しています。

TbUser.Text = 「管理者」および TbPass.Text = 123 (管理者パスワード)。

ただし、これは特権の昇格ではありません。

TbUser.Text = “Adminuser” (同じ「Administrators」グループに属する管理者でもあります) および TbPass.Text = 321 (Adminuser のパスワード)。

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

powershell - Powershell FileSystemWatcher アクションが機能しない

以下のコードでは、action.bat - ファイル名を引数として渡して Java プロセスを呼び出し、log.txt - ファイル名がタイムスタンプで作成された行をログに記録します。

完全に機能する10個のtxtファイルをドロップしてこのスクリプトをテストしています。このテストを数回繰り返したところ、log.txtが更新され、action.batも正しく呼び出されました。

ただし、この filewatcher を 4 時間実行したままにし、10 個の新しいテキスト ファイルをドロップすると、log.txt のみが更新され、action.bat ファイルは呼び出されません。

再び、powershell を強制終了してスクリプトを再起動し、10 個の新しいファイルで再度テストすると、問題なく動作しました。

4時間待ってもStart-processが呼び出されないのはなぜですか? しかし、ログステートメントは実際に更新されます

私のコードはnet event filewatch.ps1に似ています

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

powershell - Powershell と Excel - Excel.exe が既に実行されている場合、Start-Process -Wait でエラーがスローされる

Excel.exe プロセスが既に存在する場合、Start-Process -Wait は機能しません。Excel.exe インスタンスが実行されていない場合、コマンドレットは正常に動作します。ただし、すでに実行中のインスタンスがある場合は、エラーがスローされます。私はいくつかのトラブルシューティングを行いましたが、問題は、開始されたプロセス自体が既存のプロセスに「ネスト」しているようです。新しい Excel.exe が別の PID で開始されることがわかりますが、1 ~ 2 秒後にこの PID が消え、コマンドレットを呼び出す前に実行されていた Excel.exe インスタンスの既存の PID に新しいインスタンスがカプセル化されます。

誰でもこの動作について適切な説明がありますか?
誰にもこれに対する回避策がありますか?
すべての情報を歓迎します!

ありがとう!

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

java - JAVA getRuntime().exec を使用して powershell スクリプトを実行すると、Start-Process -wait が機能しなくなりました

Java コンソール アプリから powershell スクリプトを実行しようとしていますが、以下のコマンドでこれを機能させることができました。

私のpowershellスクリプトの中に、ループで呼び出される以下のスニペットがあります。

コマンドプロンプトを開いて、exec(...)コマンドにあるものを正確にコピーすると、うまく動作しますが、Javaアプリケーションで実行すると-wait、powershellスクリプトが無視されているように見え、次の行(ログのチェックと削除) が実行された後、powershell で数秒間スリープを追加することさえしましたがStart-Process、これは機能しますが、より良い方法があることを願っています。

私が得ているエラーはpowershellスクリプトにあります(これはJavaアプリから実行した場合にのみ発生します.-waitは、コマンドプロンプトから直接実行した場合に続行する前に、開始プロセスが終了するのを待ちます..):

-waitを使用して Java アプリから実行すると、powershell スクリプトが機能しないのはなぜruntime().execですか?

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

powershell - こんにちは、10 個のメモ帳を起動し、コマンドレットを使用して 10 個のプロセスすべてを停止する方法を知る必要があります (powershell のみ)

開始プロセスのメモ帳 | 停止プロセス

私が何をすべきかをほとんどすべて知っています。

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

powershell - PowerShell の Start-Process コマンドレットを使用して可変引数を渡す

皆さん、今晩は、

次のスクリプトで引数を変数として渡すコマンド ラインを使用して、このスクリプト内から呼び出す別の ps1 で実行します。コマンドラインから引数を渡そうとするたびに、次のエラーが発生します

Start-Process : 引数を受け入れる位置パラメーターが見つかりません

誰か助けてくれませんか?
お時間をいただきありがとうございました。

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

windows - PowerShell から同じ実行可能ファイルの複数のインスタンスを実行する

PowerShell を使用して、ローカル システムで msftpsrvr.exe(CoreFtp) の 2 つのインスタンスを同時に開こうとしています。それを処理する 2 つの .bat ファイルがありますが、関数で実行すると、以前のファイルがオーバーライドされます。

-Wait を指定して Start-Process を試しましたが、手動で介入するまで次のステップに進みません。

ワークフローRunScripts(スタックオーバーフローで与えられた解決策)を試しましたが、うまくいきませんでした。

現在の出力は、XXX-in-Reg.bat 資格情報 (ポート番号とパス) を持つ Coreftp の 2 つのウィンドウを開くことです。

私はこの強力な言語をほとんど学んでおり、自分の問題を明確に説明できたことを願っています。