ネプラスのテックブログ。ネットワーク、クラウド、サーバなどのITインフラ情報を中心に発信中。

  1. ネプラス インフラエンジニア採用
  2. テックマガジン
  3. エンジニア
  4. PowerShellのStart-Processの使用方法とは? Start-Processを使いこなそう!

PowerShellのStart-Processの使用方法とは? Start-Processを使いこなそう!

  • エンジニア
  • テクノロジー
公開日時:   更新日時:
PowerShellのStart-Processの使用方法とは? Start-Processを使いこなそう!
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    PowerShellで新しいプロセスを立ち上げるには?


    今回は、PowerShellから他のプログラムを立ち上げる方法について説明します。

    PowerShellでプログラムを作っているなら、できればPowerShell内で完結させたいと思う方もいますが、PowerShellだけではできないこともあります。または、PowerShellで作ろうとしていた一部のプログラムが既に出来上がっていたら、あとは起動してしまえば再度作る必要もなくなります。

    また、パラメータや動詞を使用して立ち上げ時の条件を詳細に指定できます。バックグラウンドで起動したり、起動後に印刷処理をするようなシステムを立ち上げる際にも使います。

    それでは、活用例を示しながら説明していきます。

    新しいプロセスを立ち上げてみよう


    Start-Processコマンドレットを使うことで、新しいプロセスを起動することができます。つまり、PowerShell実行中に別のプログラムを指定して起動できます。

    起動できるものは、実行可能ファイルやスクリプトファイルです。プログラムを指定して開くことも可能です。例えば、既に保存済みのテキストファイルを開いたり、バックグラウンドで起動するプログラムを実行できます。

    実行ファイルを指定してプロセスを開始する

    実行ファイルを指定してプロセスを開始する場合はFilePathパラメータを使用してファイルのパスを指定します。

    Start-Process -FilePath 【実行ファイルのパス】

    で実現できます。

    では早速、メモ帳を起動してみましょう。メモ帳はパス「C:\Windows\System32\」に保存されています。ファイル名は「notepad.exe」です。

    例)Start-Process -FilePath C:\Windows\System32\notepad.exe

    これでメモ帳が起動されます。

    現在の作業フォルダが実行ファイルの場所を指定している場合はファイル名のみでOKです。

    実行ファイル以外のファイルを指定すると?

    例えば、テキストファイルとして保存したファイルを指定したい場合もコマンドレットは同様です。テキストファイルのパスを指定すれば起動します。

    この時、そのファイルに関連づけられている既定プログラムで起動します。つまり、ファイルをダブルクリックして開いた時と同じように起動します。

    そのファイルの既定のプログラムが何かを知りたい場合は、ファイル上で右クリック→プロパティで確認できます。

    Macをお使いの場合はファイル上で右クリック→情報を見る→「このアプリケーションで開く」の欄で確認してください。

    では、Cドライブのtempフォルダ内にあるhoge.txtというファイルを起動してみましょう。

    例)Start-Process -FilePath C:\temp\hoge.txt

    これでファイルを既定のプログラムで開けます。

    プロセスに対して引数を指定する

    引数を指定してプロセスを起動したい場合は
    Start-Process -FilePath 【実行ファイルのパス】 -ArgumentList 【引数を指定】

    で実現できます。

    例えば、シングルサインオン機能を作る時に便利です。Start-Processを使って外部プログラムを起動する際、引数としてパスワードやIDを設定します。すると、外部プログラム側で引数を受け入れるような改修をするだけで連携したシステムを作ることが可能です。

    他社製品と連携しているようなシステムの場合、ユーザは使うシステムを変えるたびにログインし直すことを嫌う傾向にあります。そういった際にシングルサインオンの機能が重宝されます。

    応用編!パラメータを使っていろんな方法でプロセスを立ち上げてみよう


    ここまで、Start-Processに関するいくつかのパラメータを使った説明をしましたが、使用可能なパラメータは他にもあります。

    ここからは、パラメータを複数指定してプロセスを立ち上げる応用について説明します。

    尚、Start-Processで使用可能なパラメータについてはMicrosoft公式ドキュメントで取り上げられています。PowerShellについて記述していますので、参考にしたい場合は確認してみてください。(英文のためブラウザの翻訳機能の使用をお勧めします。)

    【応用編】テキストファイルを開いて印刷するプロセスを立ち上げてみよう

    では、テキストファイルを開いて内容を印刷するようプロセスを起動してみましょう。テキストファイルは、Cドライブのtempフォルダ内にあるhoge.txtとします。

    Start-Process -FilePath “hoge.txt” -WorkingDirectory “C:\temp” -Verb Print

    新しく出てきたパラメータについて解説していきます。

    「WorkingDirectory」パラメータは、新しいプロセスの場所を開始フォルダとして指定します。このパラメータを使って作業フォルダを指定した場合、FilePathパラメータではフルパスでなくファイル名のみの指定となります。

    「Verb」パラメータはプロセスが立ち上がる時の動詞(動き)を指定します。いくつかの動詞がありますが、立ち上がるファイルの拡張子によって使えるものが限られます。ただし、Windows以外のOSでは適用されませんので注意しましょう。

    ここでは「印刷する」という意味の動詞であるPrintを指定しました。

    Verbパラメータについてもっと知りたい

    Verbパラメータで使える動詞は数多くあります。どのような動詞が使用可能かを知りたい場合は以下のコマンドレットを使うことで一覧の取得が可能です。

    Get-Verb

    また、ファイルの拡張子によって使える動詞が決まっています。基本的なファイルの種類と使える動詞は以下のとおりです。

    拡張子 動詞
    .exe Open(開く)、RunAs(管理者権限で実行)、RunAsUser(別のユーザとして実行)
    .cmd Edit(編集)、Open、Print(印刷)、RunAs、RunAsUser
    .txt Open、Print

    【応用編】最大化したウインドウでプロセスを立ち上げてみよう

    ここではメモ帳を新しいプロセスとして立ち上げてみましょう。その際、ウインドウを最大化し、プロセスが終わるまでの間ウインドウを保持してみます。

    指定するメモ帳はCドライブのtempフォルダ内にあるhoge.txtとします。

    Start-Process -FilePath C:\temp\hoge.txt -Wait -WindowStyle Maximized

    解説していきます。「Wait」パラメータはプロセスが終了するまでウインドウを保持し続けます。その間は他の入力を受け付けません。

    「WindowStyle」パラメータは、立ち上げたプロセスのウインドウの状態を指定します。Windows以外のOSでは適用されない点に注意しましょう。以下の4つをパラメータの値として定義できます。

    意味 備考
    Normal 通常 デフォルト値
    Hidden 非表示 バックグラウンドジョブ起動時に使用
    Minimized 最小化 画面を最小化した状態で起動する際に使用
    Maximized 最大化 画面を最大化した状態で起動する際に使用

    Start-Processを使って応用の効くシステムを作ってみよう!


    ここまでPowerShellのStart-Pocessコマンドレットの使用方法について説明しました。他のコマンドレットでも同じことですが、パラメータを駆使することで様々な条件でプロセスが起動できます。

    更に、PowerShellの利点の一つですが、Verbパラメータの動詞を使うことでより詳細な動作を指定できる点も押さえておきたいところです。

    これらのパラメータや動詞を使って応用の効いたシステムを作ってみましょう。

    FEnetを運営しているネプラス株式会社はサービス開始から10年以上
    『エンジニアの生涯価値の向上』をミッションに掲げ、
    多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
    ネプラス株式会社ロゴ

    ネプラス株式会社はこんな会社です

    秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • インフラ業界に特化

      インフラ業界に特化

      ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。

      業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。

    • 正社員なのにフリーランスのような働き方

      正社員なのにフリーランスのような働き方

      正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。

      プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。

    • 大手直取引の高額案件

      大手直取引の高額案件

      案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。

      Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。

    • スキルアップ支援

      スキルアップ支援

      不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。

      受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など

      ※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。

    • 現給与を保証します!

      100%現給与保証

      前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。

      ※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。

    • インセンティブ制度

      インセンティブ制度

      ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。

      取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。

    • 社会保険・福利厚生

      社会保険・福利厚生

      社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。

      さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    ネプラス株式会社に興味を持った方へ

    ネプラス株式会社では、インフラエンジニアを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    オンライン面接も随時受付中。ぜひお気軽にご応募ください。

    ネプラス株式会社へのご応募はこちら↓
    ネプラス株式会社へのご応募はこちら↓

    新着案件New Job