尝试合并两个cmdlet并输出到Excel电子表格

时间:2018-10-25 02:36:10

标签: powershell

我是这个论坛的新手,如果可能有什么遗漏,我深表歉意。

我正在尝试合并两个cmdlet(Get-cdmGroupProfile和get-adgroupmember)并获取结果(Get-cdmGroupProfile(从名为Centrify的应用程序返回组)和Get-adgroupmember(从cmdlet导出到excel电子表格。

据我了解,并非所有cmdlet都可以接受管道输入,这就是需要计算属性的地方。

我之前做过几次(在发布的最底部包括脚本),在该处创建了一个计算所得的属性, 能够在Excel电子表格中获取导出的结果。

但是,当我尝试以前使用的代码时,并没有给我想要的结果。

经过更多研究后,我尝试使用以下计算出的属性,然后将其传递给选择对象。

该脚本一直运行,并且似乎没有停止。我删除了将foreach循环分配给的结果变量,并将其从管道中删除的结果删除到Excel电子表格中,并注意到结果并不是我想要的。

我希望也许能找到一种更有效的方法。

我能够将其导出到excel电子表格,但是它只是显示重复值的数组中的结果,但并没有像我想要的那样列出它们。

I would like the following script to output the following information below 

Zonename    AD Linux Group   Centrify group
PROD ZONE      Group1             Group A
PROD ZONE      Group2             Group B 
TEST ZONE      GROUP5             GROUP D

$list = Import-Csv C:\Users\User1\Desktop\Centrify\Inputpega.csv

$result = foreach($item in $list) {


$adgroupmember = Get-ADGroupMember -Identity $item.Group

$centrifygprofile = Get-CdmGroupProfile -Zone $item.DistinguishedName 

Get-CdmGroupProfile -Zone $item.DistinguishedName |%{

Get-ADGroupmember -identity  $item.Group 

$Properties = @(
@{Name='ZoneName';Expression={$centrifygprofile.Zone}}, 
@{Name=' Centrify Group';Expression={$centrifygprofile.name}}, 
@{Name='AD Linux GROUP' ;Expression={$adgroupmember.name}},
)

$result | Export-Csv C:\Users\User1\Desktop\Results\results4.csv -
 NoTypeInformation

我得到的结果-

ZoneName             : {OU=TEST ZONE ,OU=TEST Zone 
One,OU=Zones,OU=TEST,DC=TEST,DC=com,OU=PROD ZONE,OU=PROD Zone 
One,OU=Zones,OU=PROD,DC=PROD,DC=com,
OU=PROD ZONE,OU=PROD Zone 
One,OU=Zones,OU=PROD,DC=PROD,DC=com,OU=Unix,DC=PRODk,DC=com, OU=PROD 
ZONE,OU=PROD Zone One,OU=Zones,OU=PROD,DC=PROD,DC=com...}
Centrify Group      : {group1@prod.com, group2@prod.com, group3@prod.com, 
group4@prod.com...}
PROD_GROUPS,OU=Zones,OU=PROD,OU=PROD,OU=PROD,DC=PROD,DC=com
AD Linux Group       : {group6, group7, group8, group9...

ZoneName             : {OU=TEST ZONE ,OU=TEST Zone 
One,OU=Zones,OU=TEST,DC=TEST,DC=com,OU=PROD ZONE,OU=PROD Zone 
One,OU=Zones,OU=PROD,DC=PROD,DC=com,
OU=PROD ZONE,OU=PROD Zone 
One,OU=Zones,OU=PROD,DC=PROD,DC=com,OU=Unix,DC=PRODk,DC=com, OU=PROD 
ZONE,OU=PROD Zone One,OU=Zones,OU=PROD,DC=PROD,DC=com...}
Centrify Group      : {group1@prod.com, group2@prod.com, group3@prod.com, 
group4@prod.com...}
PROD_GROUPS,OU=Zones,OU=PROD,OU=PROD,OU=PROD,DC=PROD,DC=com
AD Linux Group       : {group6, group7, group8, group9...

这是我使用过的脚本,在此之前,我可以组合多个命令,并通过使用计算出的属性将所需的数据导出到excel电子表格中。

 $list = Import-Csv C:\Users\user\Desktop\dn2.csv


 $finalzpa = Foreach($item in $list){

 $zonezpa = Get-CdmZpaSetting -Zone $item.DistinguishedName

 $zoneset = Get-CdmZone -dn $item.DistinguishedName

 Get-CdmZone -Dn $item.DistinguishedName | %{

 Get-CdmZpaSetting -Zone $item.DistinguishedName |

 Select-Object @{Name='Userenabled';Expression={$zonezpa.UserEnabled}},
               @{Name='Provisioning Groups enabled';Expression=
{$zonezpa.GroupEnabled}},
               @{Name='ZoneName' ;Expression={$zoneset.Name}},
               @{Name='User Source';Expression={$zonezpa.UserSource}},
               @{Name='Group Source';Expression={$zonezpa.GroupSource}},
               @{Name='Distinguished Name';Expression=
 {$item.DistinguishedName}}





 }}



 $finalzpa | Export-Csv -Append -NoTypeInformation 
 C:\Users\Desktop\zonesautoinfo.csv

$adgroupmember | gm


TypeName: Microsoft.ActiveDirectory.Management.ADPrincipal

Name       MemberType       Definition                                                                                                                         

 ----        ----------       ----------                                                                                                                         

 Contains     Method     bool Contains(string propertyName)                                                                                                 

 Equals         Method     bool Equals(System.Object obj)                                                                                                     

GetEnumerator  Method     System.Collections.IDictionaryEnumerator                                                                            

GetHashCode    Method     int GetHashCode()                                                                                                                  

GetType        Method                type GetType()                                                                                                                     

ToString          Method                string ToString()                                                                                                                  

Item              ParameterizedProperty 
Microsoft.ActiveDirectory.Management.ADPropertyValueCollection Item(string 
propertyName) {get;}                                    
distinguishedName Property              System.String distinguishedName 
{get;set;}                                                                                         

name              Property              System.String name {get;}                                                                                                          

objectClass       Property              System.String objectClass {get;set;}                                                                                               

objectGUID        Property              System.Nullable`1[[System.Guid, 
mscorlib, Version=4.0.0.0, Culture=neutral, 
objectGUID {get;set;}
SamAccountName    Property              System.String SamAccountName 
{get;set;}                                                                                            

SID               Property              
System.Security.Principal.SecurityIdentifier SID {get;set;}       

$centrifygprofile | gm


TypeName: Centrify.DirectControl.PowerShell.Types.CdmGroupProfile

Name                 MemberType Definition                                                                

----                 ---------- ----------                                                                

Equals               Method     bool Equals(System.Object obj)                                            

GetHashCode          Method     int GetHashCode()                                                         

GetType              Method     type GetType()                                                            

ToString             Method     string ToString()                                                         

CanonicalName        Property   string CanonicalName {get;}                                               

Computer             Property   
Centrify.DirectControl.PowerShell.Types.CdmManagedComputer Computer {get;}
Domain               Property   string Domain {get;}                                                      

Gid                  Property   System.Nullable[long] Gid {get;}                                          

Group                Property   
Centrify.DirectControl.PowerShell.Types.CdmGroup Group {get;}             
IsHierarchical       Property   bool IsHierarchical {get;}                                                

IsMembershipRequired Property   System.Nullable[bool] IsMembershipRequired 
{get;}                         
IsOrphan             Property   bool IsOrphan {get;}                                                      

IsSfu                Property   bool IsSfu {get;}                                                         

Name                 Property   string Name {get;}                                                        

PreferredServer      Property   string PreferredServer {get;}                                             

Zone                 Property   
Centrify.DirectControl.PowerShell.Types.CdmZone Zone {get;}  

0 个答案:

没有答案