私のWindows 7デスクトップには、管理者権限が必要なscript.ps1があります(サービスを開始します)。このスクリプトをクリックして、管理者権限で実行します。
これを達成するための最も簡単な方法は何ですか?
これを実行する1つの方法は、デスクトップ上の追加のアイコンを使用することです。デスクトップにアイコンを1つだけ表示したい場合は、スクリプトを他の人に移動させることができます。
デスクトップ上の新しいショートカットをダブルクリックするだけでスクリプトを昇格させることができます。
UAC対応システムで、スクリプトが完全な管理者権限で実行されていることを確認するには、スクリプトの先頭に次のコードを追加します。
param([switch]$Elevated)
function Test-Admin {
$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
$currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
if ((Test-Admin) -eq $false) {
if ($elevated)
{
# tried to elevate, did not work, aborting
}
else {
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
}
exit
}
'running with full privileges'
スクリプトを-elevatedスイッチを付けて実行すると、実行前に特権の昇格を試みます。
同じPowerShellを使用している場合は、次のようにします。
Start-Process powershell -verb runas -ArgumentList "-file fullpathofthescript"
デスクトップにあるので、これを実現するための最も簡単な方法は、 標高ガジェット にドラッグすることです。
そうでなければ、あなたのps1スクリプトで elevate
コマンド を使って別のスクリプトを作ることができます。
あるいは、サービス開始ビットだけにelevate
を適用することもできます。
PowerShell ISEは%windir%\ system32\WindowsPowerShell\v1.0\PowerShell_ISE.exeにあります。それを右クリックして「管理者として実行」を選択し、そこからスクリプトを実行できます。
Windowsロゴ>すべてのプログラム>アクセサリ> Windows PowerShellの下にそれを見つけることができ、それらのショートカットで同じことをすることができます。
Explorerのコンテキストメニューから直接、管理者としてPowershellスクリプトを起動するオプションが必要な場合は、こちらの回答のセクション2を参照してください: https://stackoverflow.com/a/57033941/2441655