Deployment web service – Version 7.1 released

I’m happy to announce the release of Version 7.1 of the Deployment web service.

The biggest and probably most useful change in this release is the implementation of NLog as logging provider. As already described in a previous post Add logging to your applications – NLog for beginners it’s now possible to influence the logging at runtime. With this version the Active Directory and the SCCM/SMS parts of the Deployment web service have been updated with this new logging capabilities already. The MDT part will be updated next.

The configuration of the logging itself is stored in the NLog.config file, located in the root of the web service. A configuration for informational logging is enabled by default. Additional debug-level logging has been prepared but commented out. To enable those logging levels just remove the “<!–“ and “–>”:


Please see my previous post or the NLog documentation about the Configuration file for more information about how to tweak the logging to your own necessities.


For the SCCM/SMS part all internal functions that query for objects have been extended with capabilities to filter the result by include and/or exclude filters. To be backwards compatible with all the scripts that are using the Deployment web service already, all existing functions will keep their default behavior and the following functions have been added (e.g. excluding objects that have “Hidden” in their description/comment). So to really get a non-filtered list, you would need to use the new functions and simply not supply any include or exclude filter string:

  • GetOSDAdvertisementsFiltered (SiteCode, IncludeFilter, ExcludeFilter) – Returns a list of all OSD Advertisements. Optionally limited by the Include/Exclude filters
  • GetTaskSequencesFiltered (SiteCode, IncludeFilter, ExcludeFilter) – Returns a list of all Task Sequences. Optionally limited by the Include/Exclude filters
  • GetOSDTaskSequencesFiltered (SiteCode, IncludeFilter, ExcludeFilter) – Returns a list of all OSD Task Sequences. Optionally limited by the Include/Exclude filters
  • GetOSDCollectionsFiltered (SiteCode, IncludeFilter, ExcludeFilter) – Returns a list of SCCM collections with an advertised OSD Task Sequence. Optionally limited by the Include/Exclude filters
  • GetCollectionsFiltered (SiteCode, IncludeFilter, ExcludeFilter) – Returns a list of all collections. Optionally limited by the Include/Exclude filters
  • ApproveClients (CollectionID, SiteCode) – Approves all Clients in the specified Collection
  • ApproveClient (ResourceID, SiteCode) – Approves the specified client
  • RefreshCollection (CollectionID, RefreshSubcollections, SiteCode) – Triggers a re-evaluation cycle for the specified collection
  • GetCollectionMembers (CollectionID, SiteCode) – Returns a list of collection members

On the Active Directory side, it contains a couple bug-fixes. Mainly security related as some methods still used the credentials of the application pool account, even if an explicit account had been configured. This should be fixed now so all calls should use either the application pool or the configured account. A couple methods have been re-written to improve the performance. Especially querying for a local Site/Domain controller will now happen in fractions of seconds(!!!), instead of several seconds or even minutes. It’s now no longer using a Brute-Force approach as described in a former post about Getting Active Directory Site for IP Address.

Also a new function has been added:

  • CopyComputer (SourceComputerName, TargetComputerName, TargetPath, PropertiesToCopy) – Creates a copy of an existing computer account with all specified properties. TargetPath and PropertiesToCopy are optional. On default it will copy the description, the group memberships and the “userAccountControl” that holds certain information about account type etc. If you supply your own properties make sure to include at least the userAccountControl as well. Otherwise you will experience some “interesting” behaviour.

For existing installations, the upgrade process is, as with the versions before, pretty painless. Just copy & paste all the files from the download except the web.config. There hasn’t been any changes to the web.config so the existing one will do its job. For all new Users, just follow the Installation Guide.


Thanks again to the beta testers and all other users that help me on improving this solution and turning it into a even more valuable tool for Deployments.


If you would like to support this project by testing new versions, updating and extending the documentation, publishing/describing sample scripts that use or extend certain features or simply have the “next great idea” on how to make this even better for some situations please get in contact to me. I appreciate your feedback so if you found a bug/problem or would like to discuss certain features, open a discussion on CodePlex or contact me directly. Especially the documentation on the Wiki really requires some help to make all the functions easier accessible.


It seems the contact form on myITforum is a bit unreliable during the last time, at least if it shall forward emails to my account ;-).  So if you tried to contact me but never got a reply, please forgive me but I most probably never saw your email. It might sometimes take a moment before I have the time to answer to each email, but I take this serious so all emails are answered (at some point in time 😉 ). You can also contact me directly using Maik DOTT Koster ATTT gmx DOTT de. Just replace accordingly 🙂


This is provided AS IS without any explicit or implicit warranty of any kind. Use it at your own risk and be sure to test each function you want to use in a test-environment before putting into production. Find the download on CodePlex.

Das könnte Dich auch interessieren...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.