15

たぶん、私が見つけられないStart-Processコマンドレットでそれを行う方法はありますか? thisthisthisなど、StackOverflow で見つけた他の関連する Q/A はすべて、カスタム C# コードでこれを行うためのソリューションを提供します。私の質問は具体的には、PowerShell でこれを行う簡単な方法はありますか? つまり、昇格した PS コンソールにいて、プロセスを非管理者として実行したい場合です。

4

5 に答える 5

4

リンクされたタスクで言及されているように、この問題を掘り下げると、昇格されたプロセスからUACの「非」昇格されたプロセスを実行する方法はありません。これはまさに私が必要としていたものであり、runas ソリューションが機能しなかったため、Microsoft から提供されたコードの回避策を変換して、スケジュールされたタスクを使用して「非」昇格プロセスを開始しました。

昇格した powershell プロンプトから「非」昇格プロセスとして powershell.exe を実行する例:

$apppath = "powershell.exe"
$taskname = "Launch $apppath"
$action = New-ScheduledTaskAction -Execute $apppath
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date)
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName $taskname | Out-Null
Start-ScheduledTask -TaskName $taskname
Start-Sleep -s 1
Unregister-ScheduledTask -TaskName $taskname -Confirm:$false

上記の powershell コマンドは、Windows Server 2012 / Windows 8 以降でのみ機能します。

または、代わりにSCHTASKS.EXEアプリケーションを使用して、ほとんどのバージョンの Windows をカバーできます。

$apppath = "powershell.exe"
$taskname = "Launch $apppath"
schtasks /create /SC ONCE /ST 23:59 /TN $taskname /TR $apppath
schtasks /run /tn $taskname
Start-Sleep -s 1
schtasks /delete /tn $taskname /F
于 2016-05-19T22:28:51.880 に答える
1

もう 1 つの制限付きの方法: Windows エクスプローラーで起動させる

PS C:\> explorer.exe "C:\windows\system32\cmd.exe"

フルパスと拡張子を使用するだけです。ただし、パラメーターは受け入れません。

バッチファイルを作ってみました。.BATしかし、エクスプローラーは、またはの起動を拒否し.CMDます。

于 2020-02-12T20:52:09.987 に答える