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

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

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

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

Q&A

解決済

3回答

655閲覧

powershellで管理者権限でコマンドを実行する方法

kamabo_ko

総合スコア1

PowerShell

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

0グッド

0クリップ

投稿2024/06/13 09:15

実現したいこと

ユーザーでログインしている状態で、ps1ファイルを動かし、ps1内で管理者権限を与えてコマンドプロンプトを実行したいです。
処理内容はOfficeのアンインストールです。

発生している問題・分からないこと

権限エラーと確定ではないですが、動いたと思うと、Officeのプロセスが終了してしまいます。

エラーメッセージ

error

1エラーメッセージが出ません。

該当のソースコード

# 変数の設定 $ID = "〇〇\user" $PW = "▲▲" # パスワードをセキュアな形式に変換 $SecurePW = ConvertTo-SecureString $PW -AsPlainText -Force # PSCredential オブジェクトを作成 $Credential = New-Object System.Management.Automation.PSCredential($ID, $SecurePW) ######################################################### Write-Host "Office 2016をアンインストール中です。しばらくお待ちください..." $OfficeCom = "C:\Program Files\Common Files\Microsoft Shared\ClickToRun\OfficeClickToRun.exe" $OfficeArgs = 'scenario=install', 'scenariosubtype=ARP', 'sourcetype=None', 'productstoremove=ProPlusRetail.16_ja-jp_x-none', 'culture=ja-jp', 'version.16=16.0', 'displaylevel=False', 'forceappshutdown=True' # $OfficeArgs を文字列に変換 $ArgsString = $OfficeArgs -join ' ' # コマンドを実行 Start-Process -FilePath "cmd.exe" -ArgumentList "/c `"$OfficeCom`" $ArgsString" -Credential $Credential -LoadUserProfile -WorkingDirectory $env:SystemRoot | Out-Null # コマンドが失敗した場合のエラー処理 if ($LASTEXITCODE -ne 0) { Write-Host "エラー:処理が中断されました。" exit $LASTEXITCODE } REM プロンプトを10秒待機してから閉じる timeout /t 10 >nul

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果
$OfficeCom = "C:\Program Files\Common Files\Microsoft Shared\ClickToRun\OfficeClickToRun.exe" $OfficeArgs = 'scenario=install', 'scenariosubtype=ARP', 'sourcetype=None', 'productstoremove=ProPlusRetail.16_ja-jp_x-none', 'culture=ja-jp', 'version.16=16.0', 'displaylevel=False', 'forceappshutdown=True' # $OfficeArgs を文字列に変換 $ArgsString = $OfficeArgs -join ' ' # コマンドを実行 Start-Process -FilePath "cmd.exe" -ArgumentList "/c `"$OfficeCom`" $ArgsString" -Credential $Credential -LoadUserProfile -WorkingDirectory $env:SystemRoot | Out-Null

上記部分を何度も修正しました。

補足

特になし

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

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

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

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

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

guest

回答3

0

PowerShellを管理者権限に昇格して実行 を参考に PS1 形式のファイルの雛形(example.ps1)を作ってみました。
なお,powershell.exepwsh.exe に変更しています。

念のため最初は影響が少ない処理を記述・実行して様子をみることをお勧めします。

example.ps1:

PowerShell

1if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole("Administrators")) { 2 Start-Process pwsh.exe "-File `"$PSCommandPath`"" -Verb RunAs 3 exit 4} 5 6# 管理者権限で実行する処理を以下に記述 7 8 9 10# ここまで 11 12Write-Host "" 13Write-Host "何かキーを押すとこの画面を閉じて元に戻ります " -NoNewLine 14[Console]::ReadKey() | Out-Null

投稿2024/06/16 06:08

little_street

総合スコア394

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

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

0

■別の方法

PowerShell

1①PowerShellを起動します。 2 3②「 Get-WmiObject win32_product 」命令を入力して一覧表を表示させます。 4 5③一覧表を下へスクロールさせながら Name の場所に「 Officeの名前 」が有ると思います。 6 7④以下の命令文の *印に「 Officeの名前 」を入力して 8 9$oktaCredential = Get-WmiObject win32_product | where {$_.name -eq "**********"} 10msiexec /x $oktaCredential.IdentifyingNumber /quiet /noreboot 11 12⑤実行します。 13 14■詳細はココ■Powershellコマンドでアプリをアンインストールする 15https://qiita.com/urushibata/items/7e69f85f3e1f613814ac

投稿2024/06/14 02:22

ccc-

総合スコア356

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

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

0

ベストアンサー

■管理者権限でコマンドを実行

PowerShell

1(例)Start-Process -FilePath "cmd.exe" -Verb "RunAs" -ArgumentList .......... 2 3-Verb "RunAs" を追加します。 4

投稿2024/06/13 11:20

ccc-

総合スコア356

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

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

kamabo_ko

2024/06/13 14:05

ありがとうございます!明日試します! 素人質問で申し訳ないのですが構文的には間違えてないでしょうか…?
kamabo_ko

2024/06/14 00:34

回答ありがとうございます。試してみましたが解決できませんでした。 エラーも出ません。 この場合どの辺りに原因がありそうでしょうか?
ccc-

2024/06/14 02:22

すみません。 私の環境では実行できないので原因が分かりません。 別の方法を紹介します。 もう1つアップします。
kamabo_ko

2024/06/14 04:12

ありがとうございます。 お待ちしております。
ccc-

2024/06/14 10:35

■別の方法 をアップしております。お手数をおかけいたしますが ご確認ください。よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.40%

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

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

質問する

関連した質問