グループポリシー:特定のコンピューター上の特定のユーザーの管理者権限


11

私は、小さな会社のActive Directoryセットアップを管理しようとするプログラマーです。ドメインコントローラーはWindows Small Business Server 2008を実行しています。

タブレットPCを使用するフィールドワーカーのスタッフがいます。タブレットのThinkVantageブロートウェアの構成の問題により、これらのユーザーはタブレットを使用するときに管理者権限を持っている必要があります。それは大丈夫です-電話で修正プログラムを歩いているときに彼らが幅広い特権を持っていると便利なので、回避策を探していません。

グループポリシーを使用して、次のシナリオを設定します。特定のセキュリティグループ(または組織単位)のコンピューターにログインする場合、特定のセキュリティグループ(または組織単位)のユーザーは、BUILTIN / Administratorsグループに属している必要があります。コンピューターをOUに入れる必要はありますが、グループごとにユーザーを割り当てたいと思います。

もちろん、フィールドワーカーは他のワークステーションの管理者であってはならず、バニラオフィスのスタッフはタブレットの管理者であってはなりません。

現在、これは各タブレットでローカルに管理されていますが、新しい雇用を追加するにつれて、面倒になりつつあります。

ここでは制限されたグループが答えだと思いますが、ADの概念と方法に確固たる基礎がなければ、それを実現するのに苦労しています。

このタスクの適切なテクニックは何ですか?それを実装するにはどうすればよいですか?

回答:


13

ユーザー(Local-Admins-Tablets)をカプセル化するグループを作成し、このグループに追加します

現在のワークステーションOUのサブOUを作成し、ここにタブレットを配置します(Workstations \ Tablets)

GPO(Local-Admins-Tablets-Policy)を作成し、Workstations \ Tablets OUにリンクします

GPOで、次を設定します。

  • コンプ構成-ポリシー-Windows設定-セキュリティ設定-制限されたグループ
  • 右クリック、グループの追加
  • 「管理者」、OK
  • このグループのメンバー:myDomain \ Local-Admins-Tablets

PCを再起動し、完了しました。

制限されたグループを設定すると、ローカル管理者の既存のリストがマシンに上書きされることに注意してください。他のユーザー/グループが既に存在する場合は、それらもこのポリシーに追加する必要があります。他の例は、myDomain \ Domain Adminsなどです。

編集:ああ、そしてGPOのフィルタリングを変更し、ドメインコンピュータを追加します。これを行う最も簡単な方法は、グループポリシー管理MMCスナップインを使用することです(Microsoftのリモートサーバー管理ツールから取得できます)。


5
+1。ここでは、制限されたグループがソリューションです。ワークステーションでgpupdate / forceを実行すると、変更が有効になり、再起動の必要がなくなります。
joeqwerty

タブレットがフィールドにある場合、通常は「open cmd、gpupdate / force / bootと入力する」などを説明するよりもユーザーを再起動させる方が簡単です:)
Izzy

1
グループポリシーの基本設定(technet.microsoft.com/en-us/library/cc731892%28WS.10%29.aspx)を使用すると、ローカルグループを何も上書きせずに更新できます。
ゾレダチェ

1
まあ、それはトリックをしました!質問が2つあります。ローカルユーザーを含む管理者グループの現在のすべてのメンバーを完全に吹き飛ばすということです。それは厄介な驚きであることが判明する可能性があります。デフォルトの管理者アカウントはこの影響を受けないと思います。それは私をうんざりですか?
WCWedin

1
私はそれをテストしたことはありません。私は常にその制限されたグループにBuiltin \ Administratorsを追加しただけです。ベルトブレース:)
イジー

12

管理者グループがローカルマシンからの将来の変更から事実上ロックアウトされることを気にしない場合、Izzyの答えは問題ありません。これにより、ポリシー設定が適用される前に既にAdministratorsグループのメンバーであったグループも消去されます。

ただし、同じポリシー設定をわずかに異なる方法で使用して、これらの迷惑を回避できます(迷惑と見なす場合もあります)。

  • 以前と同じ方法でOU /グループ構造を作成します
  • グループポリシーオブジェクト、グループの追加の制限されたグループセクションにいるとき、Administratorsを指定する代わりに、YOURDOMAIN \ Local-Admins-Tabletsを指定します。
  • 「このグループのメンバーである」セクションには、追加して入力してクリック管理者を

これは、2つのセクションの動作方法の微妙ですが重要な違いです。 このグループのメンバーは、事実上、「グループAにはグループX、Y、およびZのみが含まれる」ようになります。このグループは、「グループAがグループX、Y、およびZのメンバーであることを確認する」ため効果的に動作するメンバーです。

このグループのメンバーでポリシーを設定すると、グループのメンバーシップを変更できる唯一のことは、このグループのメンバーまたはこのグループを使用する他のポリシーを使用するオーバーライドポリシーオブジェクトのみです。


2

本当に必要なのは、ローカル管理者グループにドメイングループを追加するグループポリシーを作成することだけです。これは、単純な起動スクリプトまたはグループポリシーの基本設定を使用して簡単に実行できます。

グループメンバーを追加する簡単な起動スクリプト。

DomainName="example"
Set oShell = WScript.CreateObject("WScript.Shell")
Set oProcsEnv = oShell.Environment("Process")
ComputerName = oProcsEnv("COMPUTERNAME")
Set oGroup = GetObject("WinNT://" & ComputerName & "/" & "Administrators")
If Not oGroup.IsMember("WinNT://"&DomainName&"/_Group_Tablet_Admins") Then _
    oGroup.Add ("WinNT://"&DomainName&"/_Group_Tablet_Admins")

彼がW2K8を使用していると仮定すると、彼の質問に基づいてそれを伝えることはできません。
joeqwerty

クライアント側の設定は、2003r2ドメインでサポートされています。便利な2003r2の記事へのリンクがありませんでした。
ゾレダチェ

質問を編集してOSを追加しました。GPPは、このシナリオに適しているようです。ユーザーが後でグループを変更する可能性が低いため、一時的な性質が重要なポイントになります。ただし、すべてのクライアントマシンに前提条件を展開することは大きな頭痛の種のようです。
WCWedin

1
これが、単純な起動スクリプトでこれを行うことも単純なオプションである理由です。好みは他の多くのことにも役立つと思います。あなたが将来達成できる他の事柄のためにそれらをインストールする価値があるかもしれません。
ゾレダチェ

1

リストされているソリューションの唯一の問題は、そのポリシーが適用されるすべてのマシンにローカル管理者権限を付与することです。通常、特定のマシンにのみ管理者権限を付与します。私が観察したのは、ユーザーがローカル管理者権限を持っていることに気づいたとき、すべての仲間にソフトウェアをインストールすることです。

これを行うにはさまざまな方法がありますが、1つだけをお勧めします。したがって、上記の手順を実行しますが、ユーザーが追加の権限を必要とする各コンピューターのグループも作成します。これらの「コンピューターグループ」はそれぞれ、myDomain \ Local-Adminsグループに追加されます。

その後、ユーザーは、アクセスする必要があるマシンに対応するグループに追加されます。

したがって、彼らは管理者ですが、そのマシンのみです。


0

新しい雇用を追加するのは面倒だと言いますが、面倒になる新しいタブレットを追加するべきではありませんか?

私はこれらの線に沿って何かをしているでしょう:

タブレットPCの管理者(つまり、TabletAdministrators)である必要があるすべてのユーザーを含むドメインセキュリティグループがあります。

各タブレットで、そのグループをAdministratorsグループに追加します。

これが適切な手法であるかどうかはわかりません。それは、実装方法について最初に思いついたアイデアです。


2
各マシンに手動で追加しないでください。これは、グループポリシーが何のためにあるのかである
イジー

1
新しいタブレットをセットアップするとき、1人のタブレットに15人のユーザーを追加する必要があります。新しい従業員を追加するときは、20人のタブレットに1人のユーザーを追加する必要があります。どちらも手間がかかりますが、機械から機械へと歩くメカニズムにより、後者のプロセスは退屈で遅くなります。ただし、特にエレガントではない場合でも、あなたのアプローチはそれを大幅に軽減します。
WCWedin

1
この投票で+1して、少し元に戻してください。これは最善の解決策ではないかもしれませんが、有効な解決策です。推奨される解決策ではないという理由だけで、有効な解決策を提案することに対して人々が反対票を投じられるべきではありません。このソリューションで唯一欠けているのは、制限されたグループを使用して、ローカル管理者グループにグループを追加するプロセスを自動化することです。努力と答えへの貢献のために+1と言います。
joeqwerty

0

ローカルワークステーションの管理者権限を持つコンピューターポリシーとして実行するスクリプトを作成しました。ワークステーション名が含まれている場合、ドメイン管理者が「Active Directoryユーザーとコンピューター」から設定できるADの最後にログオンしたユーザーの説明を確認し、ワークステーション名がローカル管理グループにない場合、スクリプトはユーザーをローカル管理グループに追加しますユーザーの説明、ローカル管理グループからユーザーを削除します。説明には、次のように複数のコンピューター名を含めることができます。

ユーザーの説明:「WKST-E445RおよびWKST-VM398のローカル管理者」

だから誰かを1台のマシンだけでローカル管理者にするには、このコンピューターの名前をADのユーザーの説明に追加し、ユーザーに再起動するように要求するだけです。コンピューター名を削除すると、ローカル管理者権限が削除されます。

それはこれまでで最も近い解決策ではありませんか?:-)

スクリプトは次のとおりです。

    @if "%debug%" neq "%username%" echo off
set ver=MakeLocalAdmin.cmd henrik@c o m m o r e.se 20150423
:: Adds last logged on domain user to local Administrators group if run by computer GPO with Administrative rights and the user's Comment contains Computername

set log=nul
:: or set log=c:\logs\MakeLocalAdmins.txt

:: Check who was last logged on user
FOR /F "tokens=3 delims= " %%G in ('reg query "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI" /v LastLoggedOnUser') DO (
set DomainAndUserName=%%G)

:: Remove the spaces
set DomainAndUserName=%DomainAndUserName: =%

:: Get only username part
set LastLoggedOnUserName=%DomainAndUserName:*\=%


:: Check OS language, so we can adapt to localized name of Admin group and Comment
FOR /F "tokens=3 delims= " %%G in ('reg query "hklm\system\controlset001\control\nls\language" /v Installlanguage') DO (
set Language=%%G)

echo %date% %Time% ; %0 ; %computername%; %LastLoggedOnUserName%; %DomainAndUserName%, %Language% >> %log%
goto %Language%

:: Add any langauage specific part below, but if an unknown install language is found,
:: an error 'label not found' should mean script terminates, but anyway make sure it terminates. 
goto end

:0409
:: English
net user /domain %LastLoggedOnUserName% | find "Comment " | find "%computername%" >> %log%
set NoLocalAdmin=%errorlevel%
if %NoLocalAdmin% equ 0 net localgroup Administrators /add "%DomainAndUserName%" >> %log%
if %NoLocalAdmin% equ 1 net localgroup Administrators /del "%DomainAndUserName%" >> %log%
goto end

:041D
:: Swedish 
:: †„” åäö (Swedish char's)
net user /domain %LastLoggedOnUserName% | find "Kommentar " | find "%computername%" >> %log%
set NoLocalAdmin=%errorlevel%
if %NoLocalAdmin% equ 0 net localgroup Administrat”rer /add "%DomainAndUserName%" >> %log%
if %NoLocalAdmin% equ 1 net localgroup Administrat”rer /del "%DomainAndUserName%" >> %log%
goto end



:end
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.