Skip to main content

Client Creator

image.png

Client Creator is designed to simplify operating system deployment.

It creates a new computer object in SCCM, assigns it to a predefined operating system collection, and allows you to define additional computer variables. This process can be automated for an entire list (which can be imported) of computer objects.

DynamicOSD

When DynamicOSD is enabled, all collections containing the value {OSD} in their comment are automatically available for selection within the plugin interface.

image.png

GUI configuration

To ensure it can meet individual requirements at any time, Client Creator features a dynamic graphical user interface (GUI) that allows, for example, any preconfigured OSD variables to be made available, which can then be selected within Client Creator. The GUI for this can thus be customized via a configuration file.

Currently, the “ComboBox” and ‘TextBox’ controls are supported. Event-based rules can be configured, thereby mapping dependencies within the controls/variables. Example: “Selection in ComboBox A” influences “Entry in ComboBox B.” Each control represents a variable. Each control can also be deactivated or even set to invisible (also possible via a rule). This opens up various possibilities. For example, rule-driven, invisible controls can be used to set multiple variables directly with a single selection—variables that the user may not be intended to see.

This interface is configured using the Dynamic GUI Editor.

Queue

Under the “Queue” tab, you can view the status information for clients that the user has created.

The creation process can be extended to include a queue. To do this, the “EnableQueue” setting must be enabled.
The queue adds a status check to the process of creating new clients.

The Client Creator Service processes the queue.

Computer Import

You can import a list of computers using the “Import” option. Example of a computer list:

ClientCreatorImport_thumb_580_0.png

You can view the imported computer data on the “Import” tab and edit it by double-clicking. 

ClientCreatorImportStatus_thumb_580_0.png

Plugin configuration
Parameter Description Default value
CollectionDetailsQuery SQL query for Install Collections that should be available for selection. The query is sent to the SCCM Manager database. Requires the following return values: Collection ID, task sequence, tag, and description
Click to view
SELECT DISTINCT
        cd.CollectionID                                   ,
        ISNULL(cd.Description, '')     AS 'Description'   ,
        ISNULL(cd.Tag, '')             AS 'Tag'           ,
        ISNULL(ss.[IsTaskSequence], 0) AS 'IsTaskSequence', (CASE WHEN (ss.[IsTaskSequence] IS NOT NULL) THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END) AS IsStandard
FROM
        [CollectionDescriptions] cd
LEFT JOIN
        [StandardSoftware] ss
ON
        cd.[CollectionID] = ss.CollectionID

UNION

SELECT DISTINCT
        ss.CollectionID                                   ,
        ISNULL(cd.Description, '')     AS 'Description'   ,
        ISNULL(cd.Tag, '')             AS 'Tag'           ,
        ISNULL(ss.[IsTaskSequence], 0) AS 'IsTaskSequence',
        CAST(1 AS BIT)                 AS IsStandard
FROM
        [StandardSoftware] ss
LEFT JOIN
        [CollectionDescriptions] cd
ON
        cd.[CollectionID] = ss.[CollectionID]
CollectionQuery SQL query for Install Collections that should be available for selection. The query is sent to the SCCM database
Click to view
SELECT
        CollectionID,
        Name
FROM
        v_Collection
        --WHERE
        -- Name LIKE '% - INSTALL (APPROVED)'
CollectionsByResourceQuery SQL query to retrieve the collections to which the client is assigned. The query is sent to the SCCM database
Click to view
SELECT
        vcrd.ResourceID              ,
        vcrd.RuleName AS ComputerName,
        vcrd.CollectionID            ,
        vcol.Name AS CollectionName
FROM
        dbo.v_Collection AS vcol
INNER JOIN
        dbo.v_CollectionRuleDirect AS vcrd
ON
        vcol.CollectionID = vcrd.CollectionID
WHERE
        (
                vcrd.ResourceType = 5)
AND     vcrd.ResourceID = {0}
DynamicOSD Enables / Disables dynamic reading of OSD collections False
DynamicOSDFirst Determines the order of the OSDs. If set to “True,” the DynamicOSD entries appear first, followed by the user-defined OSDs. False
DynamicOSDQuery SQL query for automatically retrieving OSD collections. The query is sent to the SCCM Manager database.
Click to view
SELECT
        Name ,
        [CollectionID]
FROM
        [v_Collection]
WHERE
        [COMMENT] LIKE '%{OSD}%'
EnableImport Enables/Disables Import Function True
EnablePreselection Enables/disables the transfer of client information to the input fields during client migration True
EnableQueue Enables/disables the creation of queue items. Instead of clients being created immediately, queue items are created instead False
EnableSoftwareAssignment Enables/disables the display of additional software that can be installed True
MaxComputers Maximum number of computer objects that can be imported at the same time 20
MigrationSourceDatabase Specifies the database on which the “MigrationSourceQuery” is executed. SCCM
MigrationSourceQuery SQL query to retrieve the clients that can be used for a migration.
Click to view
SELECT
        ResourceID,
        Name0 AS Name
FROM
        dbo.v_R_System
OsdVariablesXML Description file for the user interface. The OSD selection can also be customized here.
Click to view
<Controls>
  <Control Type="ComboBox" Name="OSDSelection" FriendlyName="Operating System" IsEnabled="True" IsMandatory="False" IsVisible="True" IsInternal="True">
    <Items />
    <Description></Description>
  </Control>
  <Control Type="TextBox" Name="OSDComputerName" FriendlyName="Computer Name" IsEnabled="True" IsMandatory="True" IsVisible="True" IsInternal="True" IsReadOnly="False" Mask="">
    <ValidationRegex>^[A-Za-z0-9\-_]{3,15}$</ValidationRegex>
    <Items>
      <Item Name="Text" Value="" IsDefault="True" />
    </Items>
    <Description>The computer name (max. 15 characters).</Description>
  </Control>
  <Control Type="TextBox" Name="SMBIOSGUID" FriendlyName="BIOS Guid" IsEnabled="True" IsMandatory="False" IsVisible="True" IsInternal="True" IsReadOnly="False" Mask="">
    <ValidationRegex>^[{]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?$</ValidationRegex>
    <Items>
      <Item Name="Text" Value="" IsDefault="True" />
    </Items>
    <Description>The bios guid like 936DA01F-9ABD-4D9D-80C7-02AF85C822A8</Description>
  </Control>
  <Control Type="TextBox" Name="MACAddress" FriendlyName="MAC Address" IsEnabled="True" IsMandatory="False" IsVisible="True" IsInternal="True" IsReadOnly="False" Mask="">
    <ValidationRegex>^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$</ValidationRegex>
    <Items>
      <Item Name="Text" Value="" IsDefault="True" />
    </Items>
    <Description>The mac address.</Description>
  </Control>
</Controls>
PostActionScript PowerShell scripts can be specified here with subdirectories. These PowerShell scripts are then created when a client is created.  
PostActionScriptParameter Parameters to be passed to “PostActionScript”.
QueueQuery SQL query to retrieve queue information
Click to view
SELECT
        que._id               ,
        cque.ComputerName     ,
        cque.MacAddress       ,
        cque.BiosGuid         ,
        cque.OsdCollectionID  ,
        que.Cancelled         ,
        que.StatusCode        ,
        map.Status            ,
        map.StatusMessage     ,
        que.StatusDescription ,
        que.QueuedBy          ,
        que.Queued            ,
        que.Created           ,
        cque.ResourceID       ,
        que.Type              ,
        que.LastUser          ,
        que.LastUpdate
FROM
        [Queue] que
JOIN
        [ClientCreatorQueue] cque
ON
        que._id = cque.QueueID
JOIN
        QueueStatusMapping map
ON
        map.[StatusCode] = que.[StatusCode]
WHERE
        QueuedBy = '{USERNAME}'
ORDER BY
        LastUpdate DESC
QueueStatus The status with which the queue item is created Queued
QueueStatusDescription The description of the status in the database Queued by SCCM Manager.
SoftwareAllocationConfig Instance of the Software Allocation Plugin Default

Default Plugin Integration
  •     Assembly: ClientCreatorPlugin
  •     Name: CLIENT_CREATOR (to be translated)
  •     Icon: workplace_add.png
  •     SelectedComputer: None
Supported functions:
  • Migration: Allows you to select an existing client to inherit the software assignment and client information