2

Powershellを使用してコンピューターグループのメンバーシップを確認しようとしています。特定のコンピューター名を指定して、そのコンピューターが含まれているグループをPowershellスクリプトから見つけられるようにしたい。コンピューターでスクリプトを実行し、ホスト名を取得して、そのコンピューターが含まれているADグループを印刷することを計画しています。これを行う簡単な方法はありますか?

編集:ここでの計画は、コンピュータでグループに属しているかどうかを確認し、グループに基づいてプリンタを割り当てることです。3〜4人しか使用しないプリンタが多数ありますが、その性質は分散しているためです。のユーザーは、プリンターの数を減らすことはできません。グループポリシーを検討していましたが、20の異なるGPOを作成したくありませんでした。ログオン/起動スクリプトを使用してこれを実行したかったのです。これが実行可能か実行可能かはわかりません。

編集#2:この編集はパーティーに本当に遅れましたが、誰かがこれを見つけたらそれが役立つと思いました。最終的に、[ユーザー]>[設定]>[コントロールパネル]>[プリンター]オブジェクトでアイテムレベルのターゲティングを使用することになりました。プリンターへのアクセスが必要なユーザーのグループごとに、ADでアカウントを作成しました。これは機能しましたが、コンピューターの最初のログオンに長いログオンプロセスが作成されました。また、Point-to-Print制限を有効にして、サーバーからドライバーが静かに読み込まれるようにしました。

4

7 に答える 7

10

これにより、ローカル コンピューターのグループ メンバーシップ (グループ名) が得られます (powershell 2.0 が必要です)。

([adsisearcher]"(&(objectCategory=computer)(cn=$env:COMPUTERNAME))").FindOne().Properties.memberof -replace '^CN=([^,]+).+$','$1'
于 2012-06-20T20:42:05.143 に答える
2

このパーティーに少し遅れて申し訳ありませんが、コンピューターのグループメンバーシップも見つける必要がありました。多くの試行錯誤の後、これはうまくいきました。

Get-ADComputer "mycomp" -Properties MemberOf | %{if ($_.MemberOf -like "*group name*") {Write-Host "found"} }

文字列比較が別の行にある場合、次のことを行う必要があることに気付きました

$g=Get-ADGroupMember -Identity "CN=myADgroup,OU=myOU,DC=corp,DC=com" -server corp.com
foreach($mbr in $g) {if($name.MemberOf -like "*mycomp*" -eq $true) {Write-Host "found"}}

確かではありませんが、メンバーの数によっては、グループをテストするよりもコンピューターをテストする方が速くて簡単かもしれないと思います。

于 2012-12-10T06:49:28.333 に答える
1

gpresult /V を実行してみて、「security GROUPS」で確認してください

gpresult /scope computer /vより具体的な結果については、コマンド プロンプト (管理者に昇格) で試すこともできます。

于 2017-08-03T15:17:35.657 に答える