2017-05-08 7 views
0

ここでは、それは甘くてシンプルです。私はグループのリストが新しいビルドのローカル管理グループに追加されたことを確認する必要があります。(私はサーバーを促進することができます)...ローカル管理グループのセキュリティグループメンバシップを確認する - または偽/失敗またはパスを確認する

これまでのところ、そのブール値をリモートサーバー上のファイルに出力し、その内容を取得します(私はそれを配管する必要があると考えていますが、どのようにしたらよいか分かりません)。私がしたいのは、グループ名とローカル管理グループに存在するかどうかの変数セットを返すことです。それは何が起こるか...

初歩的なifElse句のため申し訳ありません

ないが、私の謙虚なスキルがslickestはありませんが... ...ここで私は

!:事前に-Thanksで作業されているコードがあります
$MemberNames = @() 
$Servers = $HostName 
foreach ($Server in $Servers) { 
     $Group= [ADSI]"WinNT://$Server/$LocalGroup,group" 
     $Members = @($Group.psbase.Invoke("Members")) 
     $Members | ForEach-Object { 
       $MemberNames += $_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null) 
     } 
     $ChildGroups | ForEach-Object { 
       $output = "" | Select-Object Group, InLocalAdmin 
       $output.Group = $_ 
       $output.InLocalAdmin = $MemberNames -contains $_ 
       Write-Output $output | Export-Csv -Path "c:\VerifyGroups.csv" -Append 
       #$output.Group "is in the Local Admin Group" $output.InLocalAdmin #| Export-Csv -Path "c:\VerifyGroups.csv" -Append 
     # } 
} 

#Validate local admin group membership 

Get-Content -Path "c:\VerifyGroups.csv" 
ForEach ($_){ 
if ($string -match "Domain Admins" -and "True") {$ResDomainAdminGrp = "Validation Passed: Domain Admin Group is a member of the Local Admin Group" } 
elseif ($string -match "Domain Admins" -and "False") {$ResDomainAdminGrp = "Validation Failed: Domain Admin Group is not a member of the Local Admin Group" } 
elseif ($string -match "Enterprise Backup Admins" -and "True") {$ResEntBaKAdmGrp = "Validation Passed: Enterprise Backup Admins is a member of the Local Admin Group" } 
elseif ($string -match "Enterprise Backup Admins" -and "False") {$ResEntBaKAdmGrp = "Validation Failed: Enterprise Backup Admins is not a member of the Local Admin Group" } 
elseif ($string -match "Enterprise Server Admins" -and "True") {$ResEntSvrAdmGrp = "Validation Passed: Enterprise Server Admins is a member of the Local Admin Group" } 
elseif ($string -match "Enterprise Server Admins" -and "False") {$ResEntSvrAdmGrp = "Validation Failed: Enterprise Server Admins is not a member of the Local Admin Group" } 
elseif ($string -match "Enterprise SQLDB Admins" -and "True") {$ResEntSQLAdmGrp = "Validation Passed: Enterprise SQLDB Admins is a member of the Local Admin Group" } 
elseif ($string -match "Enterprise SQLDB Admins" -and "False") {$ResEntSQLAdmGrp = "Validation Failed: Enterprise SQLDB Admins is not a member of the Local Admin Group" } 
elseif ($string -match "Enterprise SVC Admins" -and "True") {$ResEntSVCAdmGrp = "Validation Passed: Enterprise SVC Admins is a member of the Local Admin Group" } 
elseif ($string -match "Enterprise SVC Admins" -and "False") {$ResEntSVCAdmGrp = "Validation Failed: Enterprise SVC Admins is not a member of the Local Admin Group" } 
else {} 

} 
+0

誰でもいいですか?誰ですか?ブエラー? –

答えて

0

大丈夫ですが、私はこの簡単なアプローチに賛成して上記のコードを放棄しました。ちょっと頑丈だけどシンプルで仕事は終わってしまいます。確かに検証するグループが増えたら、if文に対応する変数を追加してください。

は、楽しみなさい:

$group =[ADSI]"WinNT://./Administrators,group" 
$members = @($group.psbase.Invoke("Members")) 
$VerAdminGrp01 = ($members | foreach {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)}) -contains "Domain Admins" 
if($VerAdminGrp01){$ResDomAdmin = "Validation Passed: Domain Admins is a member of the local admin group."} 
Else {$ResDomAdmin = "VALIDATION FAILED: Domain Admins is not a member of the local admin group."} 
$VerAdminGrp02 = ($members | foreach {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)}) -contains "Enterprise Backup Admins" 
if($VerAdminGrp02){$ResEntBakAdmin = "Validation Passed: Enterprise Backup Admins is a member of the local admin group."} 
Else {$ResEntBakAdmin = "VALIDATION FAILED: Enterprise Backup Admins is not a member of the local admin group."} 
0

をあなたはその配列の上にチェックして、ループしたい項目の配列を作ることによって、少しクリーンアップができます。

$group =[ADSI]"WinNT://./Administrators,group" 
$members = @($group.psbase.Invoke("Members")) | foreach {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)} 
$List = "Domain Admins","Enterprise Backup Admins" 
foreach ($item in $list) { 
    if ($members -contains $item) { 
     "Validation Passed: $item is a member of the local admin group." 
    } else { 
     "VALIDATION FAILED: $item is not a member of the local admin group." 
    } 
} 
関連する問題