私はプログラマーであり、中小企業のActive Directoryセットアップを管理しようとしています。ドメインコントローラーはWindows Small Business Server 2008を実行しています。
タブレットPCを使用するフィールドワーカーのスタッフがいます。タブレットのThinkVantageブロートウェアの構成の問題により、これらのユーザーはタブレットを使用するときに管理者権限を持っている必要があります。それは大丈夫です。電話でフィックスを案内しているときに、彼らが幅広い特権を持っていると便利なので、そこで回避策を探しているわけではありません。
グループポリシーを使用して次のシナリオを設定したいと思います。特定のセキュリティグループ(または組織単位)のユーザーは、特定のセキュリティグループ(または組織単位)のコンピューターにログインするときに、BUILTIN/Administratorsグループに属している必要があります。コンピューターがOU内にある必要があってもかまいませんが、グループごとにユーザーを割り当てることをお勧めします。
もちろん、フィールドワーカーは他のワークステーションの管理者であってはならず、バニラのオフィススタッフはタブレットの管理者であってはなりません。
現在、これは各タブレットでローカルに管理されていますが、新規採用者を追加するにつれ、面倒になっています。
制限されたグループがここでの答えのように感じますが、ADの概念と方法の根拠がないため、それを実現するのに苦労しています。
このタスクに適切なテクニックは何ですか?どのように実装しますか?
ユーザー(Local-Admins-Tablets)をカプセル化するグループを作成し、このグループに追加します
現在のワークステーションOUのサブOUを作成し、タブレットをここに配置します(Workstations\Tablets)
GPO(Local-Admins-Tablets-Policy)を作成し、Workstations\Tablets OUにリンクします
GPOで、次を設定します。
PCを再起動して完了です。
制限されたグループを設定すると、ローカル管理者のマシンの既存のリストが上書きされることに注意してください。他のユーザー/グループがすでにそこにある場合は、それらもこのポリシーに追加する必要があります。その他の例はmyDomain\Domain Adminsなどです。
編集:ああ、GPO=のフィルタリングを変更し、Domain Computersを追加します。)これを行う最も簡単な方法は、グループポリシー管理を使用するにはMMC snapin(これは リモートサーバー管理ツール Microsoftから入手できます)
Izzyの答えは、Administratorsグループがローカルマシンからの将来の変更から事実上ロックアウトされることを気にしない場合は問題ありません。これにより、ポリシー設定が適用される前に既にAdministratorsグループのメンバーであったグループもすべて消去されます。
ただし、同じポリシー設定をわずかに異なる方法で使用して、それらの煩わしさを回避することができます(煩わしさを考慮している場合でも)。
2つのセクションが機能する方法は、微妙ですが重要な違いです。 このグループのメンバーは、「グループAには、グループX、Y、およびZのみが含まれることになります」と効果的に機能します。 このグループはのメンバーですが、「グループAがグループX、Y、およびZのメンバーであることを確認してください」と効果的に機能します。
Members of this groupでポリシーを設定すると、グループのメンバーシップを変更できるのは、Members ofこのグループまたはを使用するその他のポリシーこのグループはのメンバーです。
ローカルグループの管理者グループにドメイングループを追加するグループポリシーを作成するだけでよいようです。これは、単純な起動スクリプトまたは Group Policy Preferences を使用して簡単に実行できます。
グループメンバーを追加するための簡単な起動スクリプト。
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")
リストされたソリューションの唯一の問題は、そのポリシーが適用されるすべてのマシンにローカル管理者権限を付与することです。通常、特定のマシンのみに管理者権限を付与します。私が観察したのは、ユーザーがローカル管理者権限を持っていることに気付いたときに、すべての仲間のためにソフトウェアをインストールすることです。
これを行うにはいくつかの方法がありますが、私はその1つを提案するだけかもしれません。したがって、上記の手順を実行しますが、ユーザーが追加の権限を必要とする各コンピューターのグループも作成します。これらの各"コンピューターグループ"がmyDomain\Local-Adminsグループに追加されます。
次に、ユーザーは、アクセスする必要があるマシンに対応するグループに追加されます。
したがって、彼らは管理者ですが、そのマシンのみです。
新しい採用を追加するのは面倒なことですが、新しいタブレットを追加するのが面倒ではないでしょうか。
私はこれらの線に沿って何かをしているでしょう:
タブレットPCの管理者(TabletAdministrators)となるすべてのユーザーを含むドメインセキュリティグループを用意します。
各タブレットで、そのグループをAdministratorsグループに追加します。
これが適切なテクニックであるかどうかはわかりません。これは、実装方法について最初に思いついたアイデアです。
ローカルワークステーションで管理者権限を持つコンピュータポリシーとして実行されるスクリプトを作成しました。ワークステーション名が含まれている場合、ドメイン管理者が「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