Information about joeware mixed with wild and crazy opinions...
Yes that was a dramatic title, but I wanted you to read this.
I love Active Directory Application Mode and everyone who reads this blog knows it. However, I was let down today. I was automating the creation of an NC in a way that I hadn’t previously done. Actually it was automation of several NCs all for a single data management/reporting function and it will in the end, hopefully be a cookie cutter thing that I can deploy and redeploy as necessary. But enough about that…
So I built the initial NC manually, a series of AdMod commands and some scripts that built out the structures via more AdMod commands. Then I exported the structures with AdFind to a CSV file. Then I tried to import that CSV file and KahBlammie… It blows up on the first line which is the NC instantiation itself…
Basically I tried to create with the following (this isn’t in CSV Mode, this manual troubleshooting mode):
admod -hh . -add -b cn=ADAMRocks objectclass:++:top;container instancetype::5 –exterr
All seems ok with that though it is a little different than if I had typed it out by hand, more on that in a bit.
The error you ask?
DN: cn=ADAMRocks…: [DellLT17] Error 0x35 (53) – Unwilling To Perform
Extended Error: 00002079: SvcErr: DSID-03330A1A, problem 5003 (WILL_NOT_PERFORM), data 0
Error 2079…
ERROR_DS_BAD_INSTANCE_TYPE winerror.h
# The specified instance type is not valid.
Huh?
As I mentioned above, the command used followed what I was doing in CSV from an export, it differs slightly in what I would do normally if I typed the command manually and that is:
admod -hh . -add -b cn=ADAMRocks objectclass::container instancetype::5 –exterr
So I tried that and voila it worked. The whole issue is simply around how objectClass is being processed for the root object for the naming context. Once that one object is in place properly, the rest of the import for all of the other objects works perfect and they ALL have objectclass specified as a multi-value attribute.
So I didn’t see anything else I could do other than to tweak the CSV file. I am certainly not going to modify AdMod to try and account for this as that is getting a bit too touchy feeling with modifying what someone types in[1].
Anyway, I thought I would document it here so the next time I forget about it and hit it I can come back here to my long term memory store and read about what I did the last time. In the meanwhile, perhaps it will be useful to someone else as well.
joe
[1] Yeah there is some sort of balance I am trying to keep in place between what the user types and what the user might possibly intend.
Just received this email which is the first of its kind that I have seen but wanted to give a global response in case anyone else has a question about it…
From: Steve [mailto:xxx@xxx]
Sent: Monday, April 04, 2011 8:11 AM
To: joe@joeware.net; support@joeware.net
Subject: What is causing the traffic?Joe,
You tools are excellent! I especially like the ‘OldCMP’ utility and your ‘staff’. I have one question/concern…. I occasionally see a lot of traffic going through our content filter from joeware.net to my computer under my login. What is causing those hits/ traffic? This is happening even when none of your programs are in use.
Thank you,
Steve
My response was that I don’t know what it is, the joeware utilities DO NOT CALL HOME. Never have, I can’t say they never will but I will tell you very clearly if they start on the download page for the tool and likely in the blog as well where I will also explain why. I wouldn’t do that without some very seriously good reasons behind it.
Happy Birthday to my very old friend Deano.
If you are in Redmond, stop by and ask him if he needs a full walker or just a walking stick.
joe
Hi Andy, I really need your advice on a serious problem:
I have suspected for some time now that my wife has been cheating on me. The usual signs: if the phone rings and I answer, the caller hangs up. She goes out with the girls a lot. I try to stay awake to look out for her when she comes home but I usually fall asleep.
Anyway, last night about midnight I hid in the shed behind the boat. When she came home she got out of someone’s car, buttoning her blouse, then she took her panties out of her purse and slipped them on.
It was at that moment, crouched behind the boat, that I noticed a hairline crack in the outboard engine mounting bracket.
Is that something I can weld or do I need to replace it?
Sincerely,
Pete
Visual Studio 2010 has been a bit annoying for me. Some basic things that Borland has done for years isn’t handled by the built in functionality.
The issue I dealt with tonight was auto incrementing the build numbers for the executables. Again, in Borland/CodeGear C++ Builder you simply go to the tab with the properties of the application (or DLL) and simply click a check box saying you want a version number, specify the version number, then click another check box saying you want auto-incrementing of build numbers.
Where is that in VS2010? Couldn’t find it. So then I look at third party VS extensions. I find a couple of them, I install each in turn, neither seems to work. I look at a KB article from MSFT which I had no intention of going through all of that work so then I just wrote a quick and dirty perl script to do it that I attach to the app build process through a Post-Build Build event in the property sheet for the app.
Here is the script with its q-n-d instructions on how to use
#
# Quick and Dirty Script to implement a basic feature that Visual Studio should have
# that Borland has had for at least 10 years… Auto Build Version Increment
#
# Note that if there are any unicode characters in the version resource script file
# they will be screwed up after this runs.
#
# To get Visual Studio to execute, add
# perl f:\dev\perl\vsBuildIncrement\vsBuildIncrement.pl $(ProjectDir) quiet
# to the Property Page for the app under All Configurations and All Platforms
#
#
$path=shift;
$quiet=shift;
@out=`dir $path\\*.rc* /b`;
chomp @out;
foreach $thisfile (@out)
{
$updated=0;
$filepath=$path."\\".$thisfile;
if (!$quiet) {print "Processing $filepath…\n"};
@file=`type $filepath`;
map
{
$thisline=$_;
# FILEVERSION
# FILEVERSION 1,0,0,0
if ($thisline=~/(.+)FILEVERSION (\d+),(\d+),(\d+),(\d+)/)
{
$newline=$1."FILEVERSION $2,$3,$4,".($5+1)."\n";
if (!$quiet)
{
print "Replace\n";
print " $thisline";
print "with\n";
print " $newline";
}
$updated=1;
$_=$newline;
}
# FileVersion
# VALUE "FileVersion", "1.0.0.0"
if ($thisline=~/(.+)VALUE \"FileVersion\", \"(\d+).(\d+).(\d+).(\d+)\"/)
{
$newline=$1."VALUE \"FileVersion\", \"$2.$3.$4.".($5+1)."\"\n";
if (!$quiet)
{
print "Replace\n";
print " $thisline";
print "with\n";
print " $newline\n";
}
$updated=1;
$_=$newline;
}
} @file;
if ($updated)
{
open OFH,">$filepath";
print OFH @file;
close OFH;
}
}
Try not to use Domain Local Groups to grant READ access to data in any partition that can replicate to domain controllers outside of the Domain Local Group’s scope. This can cause a very inconsistent experience and absolute chaos for anyone affected by that permissioning.
Like data that can go into the PAS of a Global Catalog or something that lives in the Configuration NC or App NCs that span domain controllers for multiple domains (like DNS App NCs).
ABSOLUTELY DO NOT USE Domain Local Groups to grant WRITE access to data in any partition that is writeable on domain controllers outside of the Domain Local Group’s scope.
Like data that lives in the Configuration NC or App NCs that span domain controllers for multiple domains (like DNS App NCs).
joe
I fail to see the benefit of changing from
servermanagercmd –install adlds
to
import-module servermanager
add-windowsfeature adlds
[joeware – never stop exploring… :) is proudly powered by WordPress.]