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

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

新規登録して質問してみよう
ただいま回答率
85.50%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

Q&A

解決済

1回答

889閲覧

powershellでのキーストローク

hi04

総合スコア22

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

0グッド

0クリップ

投稿2022/01/19 06:16

編集2022/01/19 22:44

Window Server 2019でサーバの設定を自動化するスクリプトを作成しています。

例えばサーバーマネージャーの場合、手動操作だと左下の「スタート」から「サーバーマネージャー」を押すと以下のウィンドウが表示されます。

・上段にアクティブウィンドウ状態の「Windows Admin Centerでのサーバー管理を試してみる」
・下段に普段見慣れているダッシュボードのやつ

やりたいこと
powershellコマンドレットでサーバーマネージャーのプロパティをアクティブウィンドウにしたいのですが、うまくいきません。

試しているコード

#サーバーマネージャーを起動する
C:\Windows\System32\ServerManager.exe
#サーバーマネージャーが起動するまで待機
Start-Sleep 5
#アクティブウィンドウ状態の「Windows Admin Centerでのサーバー管理を試してみる」を閉じる [System.Windows.Forms.Sendkeys]::SendWait("%{F4}")
#サーバーマネージャーのプロパティを表示させる
[System.Windows.Forms.Sendkeys]::SendWait("m{DOWN 5}~")


間違いの指摘やアドバイスいただけると幸いです。
よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

■アクティブウィンドウにするプログラムです。

PowerShell

1# ■ 2# ■最初にC#のプログラムを書きます。 3# ■ 4Add-Type -TypeDefinition @' 5using System; 6using System.Runtime.InteropServices; 7using System.Diagnostics; 8namespace Microsoft { 9 public class Windows { 10 [DllImport("user32.dll")] 11 public static extern bool SetForegroundWindow(IntPtr hWnd); 12 public static void Active(){ 13 System.Threading.Thread.Sleep(500); 14 foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses()){ 15 if (0 <= p.MainWindowTitle.IndexOf("マネージャーのプロパティ")){ 16 // ↑ 17 // ↓ 18 //┌────────────────────────────┐ 19 //│サーバー マネージャーのプロパティ _ □ ×│ 20 //├────────────────────────────┤ 21 //│ │ 22 //│□ │ 23 //│ │ 24 //│ │ 25 //│□ │ 26 //│ │ 27 //│ OK キャンセル│ 28 //└────────────────────────────┘ 29 SetForegroundWindow(p.MainWindowHandle); 30 break; 31 } 32 } 33 } 34 } 35} 36'@ 37# ■ 38# ■次にC#を呼び出して、C#に作業をしてもらいます。 39# ■ 40[Microsoft.Windows]::Active() # ←←←←← アクティブにします。 41 42# ■ 43# ■注意事項 44# ■ 45# 本プログラムを実行しても「アクティブにならない」パソコンがあります。 46# ご利用の際は、ご注意ください。 47# 48# 詳しくは、こちらをご覧ください 49# 外部アプリケーションのウィンドウをアクティブにする 50# Win32 APIのSetForegroundWindowを使用する方法 C# 51# https://dobon.net/vb/dotnet/process/appactivate.html 52# 53# サーバーマネージャーを使用していないので、 54# 動作するかどうか確認できません。ご了承ください。 55#

お疲れ様です。

約1ヶ月前にお返事致しましたccc-です。

今回も、こちらの回答でよろしければ「ベストアンサー」のボタンクリックを宜しくお願いします。

厳しい寒さが続いておりますが、体調を崩されぬようお気をつけください。

いつもありがとうございます。

投稿2022/01/19 13:44

ccc-

総合スコア328

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問