簡體   English   中英

Powershell中自動生成的XML代碼

[英]Auto-generated XML code in powershell

現在,我正在使用一個按鈕為其創建的每個用戶生成唯一的XML代碼。 現在,我的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選擇的每個組一個。

我需要的是這樣的:

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

這些復選框中的每個復選框都填充有一個資源組,該資源組是我直接從Active Directory中提取的。 我以為我需要編寫某種foreach循環來設置所有內容,但是我似乎無法弄清楚。 這是我到目前為止的內容:

# 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"

這是我用活動目錄資源組填充CheckedListBox的位置:

$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) }
}

假設$SelectedGroups填充了清單中選擇的一組數組(或將其替換為可獲取的數據),則可以執行以下操作:

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

然后只需在$GeneratedXML中的適當位置使用$Groups

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM