• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PowershellのStart-jobが動かない)

PowershellのStart-jobでメモ帳が開かれない

ktedsの回答

  • kteds
  • ベストアンサー率42% (1873/4421)
回答No.2

invoke-item C:\Windows\System32\notepad.exe を、例えば C:\example.ps1 として保存して Start-Job -FilePath C:\example.ps1 のように実行してみてください。

tokaidaikon
質問者

お礼

ご回答、ありがとうございます。 さっそく試してみたいと思いますが、現在研修中のためPCを操作できる環境にないため、今晩になりますがやってみたいと思います。

tokaidaikon
質問者

補足

試してみたのですが、残念ながらメモ帳は起動しませんでした。 iseではやはり正常に起動しますので、原因は何なのでしょうか...

関連するQ&A

  • PowerShell実行時のバッチジョブのエラー

    PowerShell実行時のバッチジョブのエラーについて教えてください。 PowerSehllにて4つのbatファイルを順番に実行させたいのですが、batファイルを処理したとき、エラーが発生したら次のbat処理を行わないようにしたのですが、どのように記述したらよろしいでしょうか? bat処理の間に-waitを入れていますが、bat処理がエラーになっても次の処理に進んでしまいます。 (PowerShellは勉強し始めたばかりでほとんどわかっておりません) Start-Process -FilePath C:\sikulix\Okumarukun\Okumarukun_BatchFile\JDE_Processing.bat -Wait Start-Process -FilePath C:\sikulix\Okumarukun\Okumarukun_BatchFile\Okumaru_Access.bat -Wait Start-Process -FilePath C:\sikulix\Okumarukun\Okumarukun_BatchFile\File_Convesion.bat -Wait Start-Process -FilePath C:\sikulix\Okumarukun\Okumarukun_BatchFile\Upload_Okumarukun.bat

  • powershellをバックグラウンド実行

    いつもお世話になっております。 とあるpowershellをバックグラウンド実行したいのですが、うまくいきません。 【実施したいこと】 background.ps1をバックグラウンド実行したい。 【前提条件】 background.ps1はbackground.batファイルより実行する想定で考えている。 background.batの中身(イメージ) (中略) powershel l-command "background.ps1" (中略) get-executionpolicyではremotesignedで~ps1ファイルは実行許可を与えている。 【確認していること】 1.start-jobコマンドを使用すればバックグラウンド実行ができることを確認済み 2.batの実行を以下にするも実行がうまくいかない。 powershell -executionpolicy remotesigned -command "start-job background.ps1" 3.間にpowershellをバックグラウンドするbackground_middle.ps1をかませてもうまくいかない。 batのコマンド実行をbackground_middle.ps1にし、background_middle.ps1を start-job backgroundと記載しており実行してもうまくいかない。 4.powershell上でstart-job background.ps1を手動で実施するとうまく実行される。 申し訳ございませんが、大変困っており、すぐ回答を頂きたいです

  • PowershellでCLIとISEの結果が違う

    ISEでスクリプト作成しています。 ISEは正常に動作していて正しい結果が得られるのですが、 同じスクリプトを実際にコンソールの方で実行すると違う結果になります。 例えば以下の様な簡単なスクリプトだと、 ISEでは100、コンソールでは1が表示されます。 ------------------------------------- $a = 1 function test{   $global:a = 100 } test Write-Host $a Start-Sleep -s 10 ------------------------------------- 原因と解決策はありますでしょうか? $PSVersionTableで調べたところバージョンは4.0です。

  • PowerShellのスクリプト実行方法

    PowerShellを勉強しようと思い、PowerShell ISEを起動して、色々なコマンドを実行していました。 今度はテキストエディタでコマンドを書いて、「myPSCommand.ps1」というファイルをCドライブ直下に配置しました。 下記のサイトを参考に環境変数にPATHを通しました。 http://www.oborodukiyo.info/PowerShell/v20/PS-EnviromentPath.aspx そして、ファイルをダブルクリックしたら、メモ帳が起動してきました・・・ 調べたら、下記のサイトが見つかりました。 http://www.atmarkit.co.jp/ait/articles/0709/20/news125.html セキュリティの為に、PowerShellからスクリプトを呼び出す必要があると書いてありました。 やりたい事は、あるファイルをバックアップしたいと思います。 スクリプトにコマンドを書き込んで、タスクスケジューラーで特定の時間がくると、ファイルをバックアップするような事をしたいと思います。 ただ、今の状態だとタスクスケジューラーに「myPSCommand.ps1」を指定すると、その時間がくるとメモ帳が開いてしまいます。 スクリプトのみが実行されるには、どのようにすればよろしいでしょうか?

  • バックグランド実行+ログアウトでジョブが残るのは?

    以下のようなシェルをバックグランド実行した後、ログアウトしてもジョブ(プロセス)が残っているのはなぜなのでしょうか? バックグランド実行しても、ログアウトするとバックグランドプロセスはkillされてしまう。だからnohupを使いましょう、、とネットではよく書かれています。自分でこれを検証試みた結果、想定の 動きとならなかったので質問させてもらいました。 以下シェルを 「 ./test01.sh & 」と実行させるのですが、別コンソールでプロセスを監視している限り、最後まで動作し続けるのです。 どなたかおわかりになる方教えてください。 ◇検証用シェル #!/bin/sh echo "start" > ./test01.log for ((i=0 ; i<3 ; i++)); do sleep 60 echo $i >> ./test01.log date >> ./test01.log done

  • powershellの変数の扱い方

    cmdshell(bat)からpowershell(ps1)に移行しようと勉強しているものです。 ごく初歩的なことだと思うのですが、わからないので質問します。 環境はWindows8.1、PowerShell ISEを使用しています。 下記のように引数を実行ファイルに渡すと、渡したファイルが操作されます。 ------------------------------- D:\...\abc.exe $Args ------------------------------- これであれば正常に機能するのですが、 ------------------------------- $abc = "D:\...\abc.exe" $abc $Args ------------------------------- とするとエラーになってしまいます。 これは一体なぜなのでしょうか。 解決方法をご教授願いたいと思います。よろしくお願いします。

  • C# Process.Start で標準入力

    はじめまして。 現在、C#で以下のような仕様のEXEをProcess.Startで起動し、ReadToEndで 結果を受け取りたいのですが、できません。 EXEの仕様: DOSプロンプトから以下のように起動します。 ■ xxx.exe < yyy.txt (yyy.txtを解析してDOSプロンプトに結果が出力されるプログラムです) 単に、xxx.exe yyy.txtと実行したのではエラーになるプログラムです。 期待する動き: ■ readToEndに出力ないようが表示される たとえばnotepad.exeのようなプログラムの際には、 Process.Start("notepad.exe", "open.txt"); とすればopen.txtがメモ帳で開かれますが、 今回質問させていただいた関数のように リダイレクト"<"が必要なプログラムで どう実装すれば、Process.Startで正常に動作してくれますでしょうか? よろしくお願いします。

  • PowerShellのルールについて

    PowerShellのルールについて PwoerShellのコマンドレットから以下の構文を実行すると、 エラーなしで実行できますが、ISEの方から実行するとエラー となってしまいます。 この違いはなんなのでしょうか? コマンドレットから実行 >funcion test { return $input } >1..4 | test 1 2 3 4 またコマンドレットからget-chikdItem Function:を 実行すると、定義済みの関数としてtestがでてきます。 ISEから実行すると > function test {retrun $input } > 1..4 | test 用語 'retrun' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認 してから、再試行してください。 発生場所 行:1 文字:22 + function test {retrun <<<< $input } + CategoryInfo : ObjectNotFound: (retrun:String) []、CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException となります。また、ISEからget-childitem Function:で確認すると、 testという関数は出てきません。 コマンドレットとISEは一体どういう関係なのでしょうか??

  • PowerShellからBATに制御を戻す方法

    【環境】 OS:Windows Server 2008 R2 SP1 【状況】 BATファイルにてメニューを作成しており、表示されたメニューの中からPowerShellで作成したテストイベントを送信するスクリプトを実行するための番号を入力後、Enterキーを押すとテストイベントが送信されるようになっております。 PowerShellが実行された後、呼び出し元のBATファイルに戻りメニューを表示させたいと考えておりますが、PowerShellが実行完了後、BATファイルに戻りません。 ※ JP1の動作定義ファイル(ntevent.conf)を修正しており、修正したフィルタが正常に動作することおよび既存のフィルタが影響がないかを確認するためにBATファイルからPowerShellでテストイベントを発行するためにBATおよびPowerShellでプログラムを作成しております。 【ご教示頂きたい点】 PowerShellが実行後、BATファイルに戻り、メニューを表示させるようにしたいと考えており、どのようにしたらBATに制御を戻すことができるかご教示頂けますでしょうか。

  • Powershell プロセス二重起動

    PowerShell初心者です。 自身で起動中のスクリプトと同じコマンドで実行しているプロセスを検知し、他方のプロセスをkillしようと考えております。要は二重起動のチェックをしたいです。 現在コマンドラインで確認しているのですがどうもうまくいきません。 やろうとしている操作は以下です。 (1)ファイルにプロセス情報を出力。 PS C:\> $tempfile = "C:\pswork\servicemon\temp.log" PS C:\> Get-WmiObject win32_process ` | select Name, ProcessId, CommandLine ` | sort Name ` | Format-Table -AutoSize ` | Out-File -FilePath $tempfile -width 1000 (2)自分のPID以外のプロセス情報を取得 PS C:\> $mypid = $PID PS C:\> $killpidtmp = Get-Content $tempfile | Select-String -Pattern ".*powershell.exe.*svmon131_loop.*" |Select-String -NotMatch -Pattern "\s$mypid\s" PS C:\> echo $killpidtmp powershell.exe 2024 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command C:\pswork\servicemon\svmon131_loop.ps1 (3)splitでプロセス番号のみを取得。 PS C:\> $killpid = echo $killpidtmp |% {$($_-split(" "))[1]} PS C:\> echo $killpid ★ここがうまく取得できません。空白しか取得できていません。 (4)最終的には取得したPIDでプロセスを終了。 PS C:\pswork\servicemon> Stop-Process -ID $killpid Bシェルで同様のスクリプトがあったので、それを参考にPowerShellで書こうとしているので、 そもそも無理があるのかもしれないかと考えています。 上記の方法でなくてもよいので、二重起動のチェックと該当プロセスの停止で参考となる情報があれば教えて頂きたいです。