0

リモート管理者用のタスクパッド (MMC) を実装しようとしています。私は彼らのワークステーションにそれらを保持したくないので、ファイル サーバーに保持し、そこで共有しています。クライアント側 (つまり、リモート管理者のワークステーション) で、私が持っているのは、ユーザーの資格情報を受け入れ、チェック/検証し、その後、ファイル サーバー (その上にある) にあるリモート MMC を開く Powershell スクリプト (exe) です。クライアントには読み取り権限しかありません)。

私の質問は、管理者ごとにスクリプトを作成したくないので、単一のスクリプトで提供された資格情報に応じて、その場でタスク パッドにアクセスできるようにする方法はありますか? たとえば、「admin_atlanta」がログインすると、「Taskpad_atlanta」などへのアクセスが提供されます。すべての管理者は、admin_atlanta が「admins_atlanta」に属しているなど、それぞれのグループに属しています。

質問が冗長で長い場合は申し訳ありませんが、私の問題に関する質問/説明を自由に撮影してください.

4

3 に答える 3

3

そのようなことを行うことができます (ユーザーの資格情報を既に確認している場合):

$user = get-adobject -ldapfilter "(samaccountname=$username)" -properties memberof

$user.memberof を使用して、すべてのグループ メンバーシップを反復処理できるようになりました。

$user.memberof | % { if ($_ -match "admin_" ) { write-host "Found Admin Group"; /* DO MORE STUFF */ } }

ユーザー入力には、これを使用します。

# Input - Read User Credentials
$credentials = Get-Credential

# Split username & password
$username = $cred.username
$password = $cred.GetNetworkCredential().password

 # Get your Domain
 $Root = "LDAP://" + ([ADSI]"").distinguishedName
 $domain = New-Object System.DirectoryServices.DirectoryEntry($Root,$UserName,$Password)

if ($domain.name -ne $null)
{
    write-host "Authenticated"
}else{
    write-host "Not authenticated"
}

それが役立つことを願っています

于 2012-11-19T17:02:09.897 に答える
1

あなたが正確に何をしたいのかわからない。すべてのユーザーが同じ形式の場合、たとえば、分割を使用して名前の一部を抽出できます。

$c は、実行できる資格情報の取得結果です。

$name=$c.Username.split("admin_")[1] # will outupt atlanta for the user admin_atlanta

次に、「mmc Taskpad_$name.msc」のように好きなことをします

于 2012-11-19T15:13:19.193 に答える
0

PowerShell Community Extensionsモジュールには、これを支援するコマンドがあります。たとえば、次のように呼ばれますTest-UserGroupMembership

C:\PS> Test-UserGroupMembership -GroupName Administrators -Identity joe
False
于 2012-11-19T17:44:19.657 に答える