質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

4200閲覧

コマンドプロンプトのコマンドをC#で実行したい(プリンタポートの作成)

gintaro

総合スコア8

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2020/04/14 05:55

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
C#でモバイルプリンタのドライバーインストーラーを作っています。
プリンタのポートを作成するコマンド

Cscript %WINDIR%\System32\Printing_Admin_Scripts\ja-jp\prnport.vbs -a -r (IPアドレス) -h (IPアドレス) -o raw -n 9100
というコマンドをC#のコード上から実行しドライバーのインストールを行っても

操作を完了できませんでした(エラー0x00000704 )不明のポートです
が出てしまいうまくインストールができません。

###実行部分のコード(C# )
Process CreatePort = new Process();
ProcessStartInfo processstartinfo = new ProcessStartInfo("cmd.exe", 上記と同じコマンド);
processstartinfo.CreateNoWindow = true;
processstartinfo.UseShellExecute = false;
processstartinfo.RedirectStandardInput = true;
processstartinfo.RedirectStandardError = true;
CreatePort = Process.Start(processstartinfo);

試したこと

・StartInfo.Verb = "RunAs";をつけて管理者権限にしてみる
・コマンドプロンプトから同じコマンドを入力して実行(できた)
などは試してみました。

詳しい方ご教授いただければ幸いです。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2020/04/14 06:09

「上記と同じコマンド」ではなく、試したものをコピペしてそのまま貼り付けましょう。(文字列のエスケープの問題かもしれないので)
y_waiwai

2020/04/14 06:15

コードは、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
Zuishin

2020/04/14 06:19

UseShellExecute を true にして次を試してください。 new ProcessStartInfo("cscript", "%WINDIR%\\System32\\Printing_Admin_Scripts\\ja-jp\\prnport.vbs -a -r (IPアドレス) -h (IPアドレス) -o raw -n 9100");
guest

回答2

0

自己解決

ポートの作成がうまくできておらず、このようなエラーが起きていました。
ポートの作成後、この動作を試したら、うまくいきました。

投稿2020/06/24 04:17

gintaro

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

cmd のヘルプを見ると、"/c" または "/k" というスイッチを付けることで
以降の文字列をコマンドとして認識するようです。
なので、コード上では次のようにして見てはどうでしょうか。

c#

1var processstartinfo = new ProcessStartInfo("cmd.exe", "/c Cscript %WINDIR%\・・・");

すみません、コマンド自体は実行できているようですね。
投稿してから気が付きました。
申し訳ない…。

投稿2020/05/12 10:16

編集2020/05/12 10:18
twyujiro15

総合スコア217

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問