実現したいこと
ユーザーでログインしている状態で、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
上記部分を何度も修正しました。
補足
特になし
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。