2016-08-20 2 views
0

マスターマシンからスレーブマシン上で実行されるJenkinsジョブを実行する必要があります。ジョブは、ログされたスレーブマシン上でいくつかのpowershellスクリプトを実行することから成っています。 私は、マスターからスレーブにログインするためのアカウントを使用していますが、管理者権限を持っていないため、スクリプトの動作がマシンの管理者としてローカルで実行されるときとは異なります。特定のユーザーがWindowsサーバー2012マシンに管理者アカウントを持っているかどうかはどのように知ることができますか?

私に提供されたユーザーが管理者権限を持っているかどうかを確認する方法を教えてください。

答えて

1

PowerShell 4.0以降では、スクリプトの先頭に#Requires -RunAsAdministratorというコメントを付けて、現在のユーザーが昇格していない場合にスクリプトが実行されないようにすることができます。以前のPowerShellバージョンでは、現在のユーザーがコードを使用して昇格していない場合は、スクリプトを終了できます。例:

$elevated = ([Security.Principal.WindowsPrincipal] ` 
    [Security.Principal.WindowsIdentity]::GetCurrent() 
).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) 
if (-not $elevated) { 
    throw "This script must be run elevated (Run as administrator)." 
} 
+0

ありがとうございます! :)これを試してみる...とにかく、標準ユーザーとしてログインしているときに、管理者モードでPowerShellスクリプトをリモートで実行する方法を教えていただけたら、感謝します。 – Rishi

+0

同様に、現在のユーザーが昇格していないと判断し、管理者モードでスクリプトを実行したい場合は... – Rishi

+0

管理モードでスクリプトを実行するのに役立つブログを読んでください。 @ Bill_Stewart、それはあなたが言ったことの補遺のようです。 https://blogs.msdn.microsoft.com/virtual_pc_guy/2010/09/23/a-self-elevating-powershell-script/ – Rishi

関連する問題