MoveADObject

This tool was created as a quick fix for a problem a coworker had in System Center Configuration Manager (SCCM): moving a re-imaged computer to it’s final location. I don’t really know all that much about SCCM, but his problem was to find a script that was able to move the current computer to a new OU based on a special environment variable defined in the task sequence (OSDDomainOUName).

We tried to utilize several vb scripts he found searching the web to no avail. In the end I got tired of this and created a small command line interface to one of my existing code libraries who already had the ability to move a computer.

Disclaimer

As usual, this tool is provided without any warranty whatsoever. Use at your own risk, and don’t blame me if it doesn’t work. My coworker has deployed it in production successfully, but I can not guarantee that it will work in your environment. Constructive comments are appreciated, but I can’t promise a swift reply.

Usage

The tool itself is fairly simple to use, albeit not necessarily easy to integrate into SCCM. It has two command line options, but in the typical scenario you will only use the /D: for destination. The destination is the name of the OU you want to move the current computer to in FQDN format, e.g. LDAP://cn=ou,DC=test,DC=local. This will typically be collected from the %OSDDomainOUName% environment variable mentioned above.

You can use the /S: option to move another computer than the one you are currently executing the program at.

The user executing the program need to have the necessary domain permissions to perform the operation. In short, domain admin or at least delegated admin for the OUs in question.

The self extracting exe below contains a msi setup package that can be installed (and later uninstalled) as part of the task sequence. If you wish, you can just copy the .exe and .dll files and it will usually work.

In SCCM, you have to define the OSDDomainOUName variable for each collection were you want to use this tool. Then, you have to add a step  for running the command AFTER the “Set up Windows and Configuration Manager” step. See screenshots for an example.

Screenshots

image

clip_image002

Download

TS Tools, veien mot versjon 5

Vi har nå startet arbeidet med en ny hovedversjon av TS Tools. TS Tools grunnprogrammet begynner å få en smule featureitis, så hovedfokus i versjon 5 er å fortsette å lage mer eller mindre frittstående moduler som samarbeider, istedenfor å legge stadig flere funksjoner inn i hovedprogrammet. Vi har også startet overgangen til .Net 4. Den første fullstendige V5 modulen er TS Tools AD som nå er i beta. TS Tools Roundup er ikke langt etter. Funksjonelt virker den, men integrasjonen og gui-overgangen er ikke fullført. Begge disse er nå lagt inn i den nye TS Tools Modules pakken som er en samlet installasjonspakke for tilleggsmoduler.

En del av modulene, blant annet hovedmodulen finnes i dag kun i 64 bit. Det er en målsetning å tilby en 32 bit versjon der det er mulig og hensiktsmessig. Det finnes fortsatt mange 32 bits servere som er i drift, og disse trenger også TS Tools moduler.

Hvilke moduler som får mest fokus styres som vanlig av hvilke jeg har mest bruk for i mitt daglige arbeid, noe som desverre betyr at brukerdokumentasjon og oppdatering av lite brukte moduler har lav prioritet.

Med Windows 7 ble det vanskeligere å få applikasjoner som TS Tools til å fungere på en arbeidsstasjon pålogget som en vanlig bruker. Dette skyldes at det krever mye kode å få elevert seg til de nødvendige rettighetene, og det er vanskelig å få lagret innstillinger når programmet kjører som en annen bruker enn den som er pålogget. Dersom dette viser seg å bli for mye arbeid å få til å fungere, vil vi anbefale at programmet kjøres på enten på en virtuell maskin som er pålogget som administrator, eller direkte på en adminserver via rdp. TS Tools kan også kjøres via terminalserver, men kravene til rettigheter og ressurser gjør at den ikke bør kjøres på en produksjonsserver. Ressursbruken gjør at vi fraråder å kjøre TS Tools hovedmodulen og de tunge søkemodulene fra en produksjonsserver. Det er spesielt Eventlog søk som drar ressurser ved store datagrunnlag. Enkelte av søkemodulene som Roundup og Ninja er alget spesielt med tanke på å kjøre på en produksjonsserver. Av den grunn kjører de bare en enkelt arbeidstråd, men vi anbefaler ikke å kjøre disse uten at serveren overvåkes manuelt mtp cpu og minne.

TS Tools v 3.9

Endelig har jeg funnet den godt skjulte lite dokumenterte funksjonen som gjør at programmet husker innstillingene fra forrige versjon når man oppgraderer til en ny versjon.

Ellers har programmet fått en funksjon som kontrollerer Pagefile størrelsen på alle aktive servere (Misc Macros, WMI Queries, Pagefile VS RAM). Denne sjekker størrelsen på synlig fysisk minne og totalstørrelsen på det virtuelle og sammenligner for å kalkulere “PFFactor”, som er størrelsen på pagefile målt i antall ganger synlig fysisk minne. Dvs, om man har 4GB ram og ei pagefile på 6GB er faktoren 1,5.  Pga at noe av minnet ikke er tilgjengelig for operativsystemet får vi sjelden slike fine tall, men en faktor som er litt mindre, feks 1,46.

På W2k3 server er anbefalt faktor 1.5 når man ser på fysisk minne, dvs at en faktor over 1,45 normalt betyr at  alt er ok . Om man er i tvil kan man lett sjekke anbefalt og virkelig verdi ved å gå inn på serveren det er tale om, se detaljer her.

TS Tools v1.7

  • Makro for å sjekke Suppress duplicate eventlog entries
  • Makro for å sette i Headless i System\CurrentControlSet\Services\i8042prt\Parameters til 1 for å ommgå feilmelding i eventlog ved boot.
  • Sjekker alle verdier under en nøkkel når man ikke angir value
  • Jobba en del med effektivisering og rydding i kode

TS Tools V1.4.3305

Advanced filecheck

Søker gjennom alle mapper som ligger ett nivå under mappe x etter en gitt fil, med støtte for minimumsstørrelse. Denne funksjonen er primært tenkt for å rote rundt i brukerprofiler og andre lignende mappestrukturer der man har ei mappe som inneholder et sett undermapper med lignende struktur. Man kan legge inn prefix og suffix i resultatet, og dermed bygge et skript for for eksempel å slette brukerregister over en gitt størrelse.

Lagt til makroer for å bygge skript:

Slette ntuser.dat filer (bruker advanced filecheck)
Slette cachede brukerprofiler med delprof (sendes til clipboard)