2009-05-27 11 views
11

管理者権限のないユーザがスクリプトを実行できるように、powershellスクリプトの権限を昇格することはできますか?私たちのネットワーク管理者は、今すぐリモートデスクトップを使用しなければならない特定のタスクを達成するための時間効率のよい方法を見つけようとしています... PSスクリプトでそれらを自動化すると助けになりますが、ユーザーには管理者権限がありません。Powershellスクリプトを高める

+3

サーバー障害に属しているを使用するとpsxc

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser #allows scripts to run from the interwebs, such as pcsx 

を有効にします。あなたがその質問を投稿したユーザーを見れば – Richard

+0

参照SF @ http://serverfault.com/questions/12985/elevated-powershell-script – Richard

+2

はいや、...あなたはそれが私だったことがわかります。私はあなたがここで私の質問を取得しようとしていたくそ、それを投稿した... –

答えて

8

タスクがよりsudoを...そしてありがたいことに、setuidをが可能であるよりもsetuidのようなものです:あなたは、単に(設定したスケジュールなし)スケジュールされたタスクを作成し、それがの上昇に実行するように設定することができます。次に、ユーザーにそのタスクを実行する権限を与えます。しばらく前に、in a blog postというプロセスの概要とPowerShellスクリプトを使用して、それらを実行するタスクとショートカットを作成する手助けをしました。

問題(JaredParが示唆したように)は、あなたが昇格した、または「管理者」として実行する予定のアプリが保護されていることを確認しなければならないということです。管理者がそのスクリプトを編集したり置き換えたりすることができないようにしてください。そうでない場合は、王国への重要なキーを渡してください。

+0

これは動作するかもしれないように見えますが、XPでもうまくいくかどうか分かりますか? –

+1

デッドリンク。インターネットアーカイブ* Activate!* https://web.archive.org/web/20110821152558/http://huddledmasses.org/vista-setuid-how-to-elevate-without-prompting/ –

1

Windowsで同等のsudoを探しているようですね。 Sudoは、Unixスタイルのほとんどの環境と同様、Windowsに固有のものではありません。しかし、利用可能ないくつかのツールがあります。

しかしこの種のツールを使用する際に注意が必要です。強化されていないスクリプト+ sudoはセキュリティリスクです。あなたがV2を使用している場合

6

、あなたはこれが管理者としては、「get-プロセス」を実行しますthe PowerShell Team Blog

Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList '-command "Get-Process"' 

上にある次のコマンドを使用することができます。

あなたはV2を持っていない場合は、StartInfoオブジェクトを作成し、このようにRunAsのに動詞を設定することができます。

function Start-Proc { 
    param ([string]$exe = $(Throw "An executable must be specified"),[string]$arguments)  

    # Build Startinfo and set options according to parameters 
    $startinfo = new-object System.Diagnostics.ProcessStartInfo 
    $startinfo.FileName = $exe 
    $startinfo.Arguments = $arguments 
    $startinfo.verb = "RunAs" 
    $process = [System.Diagnostics.Process]::Start($startinfo) 

} 
System.Diagnostics.ProcessStartInfoオブジェクトを使用する方法についてもう少し話し

I have a blog post

+1

ユーザーが管理者でない場合、それは役に立たない;) – Jaykul

+0

十分に公正である。私はあまりにも速すぎる質問を見渡しました –

1

最初choco install pscx(あなたのシェル環境を再起動する必要があります)

その後、Invoke-Elevated

Invoke-Elevated {Add-PathVariable $args[0] -Target Machine} -ArgumentList $MY_NEW_DIR 
関連する問題