2017-08-09 12 views
1

今私はボタンを使用して、作成するすべてのユーザーに固有のXMLコードを生成しています。今、私のXMLは次のようになります。私が何をしようとしています何powershellで自動生成されたXMLコード

<NewUser> 
    <ActiveDirectory> 
     <User> 
      <GivenName></GivenName> 
      <Surname></Surname> 
      <Title></Title> 
      <Department></Department> 
      <Company></Company> 
      <OU></OU> 
      <Office></Office> 
      <Management></Management> 
      <Groups> 
       <Group=""/> 
      </Groups> 
      <Location></Location> 
     </User> 
    </ActiveDirectory> 
    <Exchange> 
     <Database></Database> 
    </Exchange> 
    <TMW> 
     <SysAdmin></SysAdmin> 
     <Supervisor></Supervisor> 
     <CanDeletePay></CanDeletePay> 
     <UseDateCalender></UseDateCalender> 
    </TMW> 
    <DriverRecruitment> 
     <Admin></Admin> 
     <ManageNews></ManageNews> 
     <ManageEmployers></ManageEmployers> 
     <ManageWorkflows></ManageWorkflows> 
     <ManageCustomQuestions></ManageCustomQuestions> 
    </DriverRecruitment> 
</NewUser> 

Groupsの下に複数の<Group>タグを作るです。ユーザーがCheckedListBoxから選択したグループごとに1つ。私は必要なもの

はこのようなものです:

<Groups> 
    <Group name="Group1"/> 
    <Group name="Group2"/> 
    <!-- Create the rest dynamically as they are checked --> 
</Groups> 

これらのチェックボックスのそれぞれは、私はActive Directoryから直接引っ張っリソースグループが移入されます。すべてを設定するためにforeachループを作成する必要があると仮定しますが、私はそれを理解できないようです。ここで私はこれまで持っているものです:私は、Active Directoryリソース・グループとにCheckedListBoxを移入どこ

# generates the xml 
    $XML_Path = "\\papertransport.com\files\UserDocuments\mneis\Code\XML\New User GUI XML Files\" 
    $GeneratedXML = " 
<NewUser> 
    <ActiveDirectory> 
     <User> 
      <GivenName>$firstname</GivenName> 
      <Surname>$lastname</Surname> 
      <Title>$title</Title> 
      <Department>$department</Department> 
      <Company>$company</Company> 
      <OU>$OU</OU> 
      <Office>$office</Office> 
      <Management>$management</Management> 
      <Groups> 
       <Group></Group> <!-- Here is where I need to loop --> 
      </Groups> 
      <Location>$location</Location> 
     </User> 
    </ActiveDirectory> 
    <Exchange> 
     <Database>$database</Database> 
    </Exchange> 
    <TMW> 
     <SysAdmin></SysAdmin> 
     <Supervisor></Supervisor> 
     <CanDeletePay></CanDeletePay> 
     <UseDateCalender></UseDateCalender> 
    </TMW> 
    <DriverRecruitment> 
     <Admin></Admin> 
     <ManageNews></ManageNews> 
     <ManageEmployers></ManageEmployers> 
     <ManageWorkflows></ManageWorkflows> 
     <ManageCustomQuestions></ManageCustomQuestions> 
    </DriverRecruitment> 
</NewUser>" 

    # Create file 
    $GeneratedXML | Out-File "\\papertransport.com\files\UserDocuments\mneis\Code\XML\New User GUI XML Files\NewUser-$firstname$lastname.xml" 

そして、ここでは、次のとおりです。

$formPTINewUserCreation_Load={ 
    Import-Module ActiveDirectory 

    # read in the XML files 
    [xml]$NewUserTest = Get-Content -LiteralPath \\papertransport.com\files\UserDocuments\mneis\Code\XML\NewUserTest.xml 

    # popoulate the checklist with the groups from active directory 
    $AD_ResourceGroups = Get-ADGroup -filter * -SearchBase "OU=Resource Groups,OU=Groups,OU=Paper Transport,DC=papertransport,DC=com" 
    $AD_ResourceGroups | ForEach-Object { $chklistGroups.Items.Add($_.name) } 
} 

答えて

2

$SelectedGroupsをチェックリストで選択されたグループの配列が取り込まれますと仮定すると、

$Groups = $SelectedGroups | ForEach-Object { 
    "    <Group>$_</Group>" 
} 

それからちょうど01で適切な場所に$Groupsを使用します(あるいはあなたがそのデータを取得しかし、でこれを置き換える)、あなたはこれを行うことができます。

+1

これはかなりうまくいく、ありがとう。書式設定をちょっとだけプレイする必要がありますが、それは機能します。 – Matt

関連する問題