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

実現したいこと

ユーザーでログインしている状態で、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

試したこと・調べたこと

上記の詳細・結果
$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

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

補足

特になし

コメントを投稿

0 コメント