| Author | Messages | |
michael1
Posts:148
 | | 04/29/2008 6:07 PM |
| <pedantic RegExType="viRegEx">
:s/Your/You're/g
</pedantic>
Regards,
Michael B. Smith
MCSE/Exchange MVP
http://TheEssentialExchange.com
From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of Brandon Shell Sent: Tuesday, April 29, 2008 5:52 PM To: ActiveDir@mail.activedir.org Subject: Re: Newbie learning was Re: [ActiveDir] [OT] BIND as Secondary DNS?
That is not a WMI thing... That is a vbscript thing.
IMO:
Pick a languages (Powershell of course )
Learn basic WMI design (how it works generically)
Learn basic .NET
Your golden. Plenty of examples and people to ask questions of <cough>me</cough>
On Tue, Apr 29, 2008 at 5:44 PM, Susan Bradley, CPA aka Ebitz - SBS Rocks [MVP] <sbradcpa@pacbell.net> wrote:
We call that a wizard in SBSland. ;-)
Okay but what if one wants to better understand that strComputer = "." means set to local computer. Which place/SDK/book/msdn site is the best place to better understand what scriptomatic is doing? (besides googling each term)?
joe wrote:
I have found Scriptomatic to be pretty helpful for finding stuff in the WMI arena. It also generates perl script for you. 
Created in seconds....
use strict; use Win32: LE('in');
use constant wbemFlagReturnImmediately => 0x10; use constant wbemFlagForwardOnly => 0x20;
my @computers = ("SFMXP32"); foreach my $computer (@computers) { print "\n"; print "==========================================\n"; print "Computer: $computer\n"; print "==========================================\n";
my $objWMIService = Win32: LE->GetObject("winmgmts:\\\\$computer\\root\\CIMV2") or die "WMI connection failed.\n"; my $colItems = $objWMIService->ExecQuery("SELECT * FROM Win32_Process", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly);
foreach my $objItem (in $colItems) { print "Caption: $objItem->{Caption}\n"; print "CommandLine: $objItem->{CommandLine}\n"; print "CreationClassName: $objItem->{CreationClassName}\n"; print "CreationDate: $objItem->{CreationDate}\n"; print "CSCreationClassName: $objItem->{CSCreationClassName}\n"; print "CSName: $objItem->{CSName}\n"; print "Description: $objItem->{Description}\n"; print "ExecutablePath: $objItem->{ExecutablePath}\n"; print "ExecutionState: $objItem->{ExecutionState}\n"; print "Handle: $objItem->{Handle}\n"; print "HandleCount: $objItem->{HandleCount}\n"; print "InstallDate: $objItem->{InstallDate}\n"; print "KernelModeTime: $objItem->{KernelModeTime}\n"; print "MaximumWorkingSetSize: $objItem->{MaximumWorkingSetSize}\n"; print "MinimumWorkingSetSize: $objItem->{MinimumWorkingSetSize}\n"; print "Name: $objItem->{Name}\n"; print "OSCreationClassName: $objItem->{OSCreationClassName}\n"; print "OSName: $objItem->{OSName}\n"; print "OtherOperationCount: $objItem->{OtherOperationCount}\n"; print "OtherTransferCount: $objItem->{OtherTransferCount}\n"; print "PageFaults: $objItem->{PageFaults}\n"; print "PageFileUsage: $objItem->{PageFileUsage}\n"; print "ParentProcessId: $objItem->{ParentProcessId}\n"; print "PeakPageFileUsage: $objItem->{PeakPageFileUsage}\n"; print "PeakVirtualSize: $objItem->{PeakVirtualSize}\n"; print "PeakWorkingSetSize: $objItem->{PeakWorkingSetSize}\n"; print "Priority: $objItem->{Priority}\n"; print "PrivatePageCount: $objItem->{PrivatePageCount}\n"; print "ProcessId: $objItem->{ProcessId}\n"; print "QuotaNonPagedPoolUsage: $objItem->{QuotaNonPagedPoolUsage}\n"; print "QuotaPagedPoolUsage: $objItem->{QuotaPagedPoolUsage}\n"; print "QuotaPeakNonPagedPoolUsage: $objItem->{QuotaPeakNonPagedPoolUsage}\n"; print "QuotaPeakPagedPoolUsage: $objItem->{QuotaPeakPagedPoolUsage}\n"; print "ReadOperationCount: $objItem->{ReadOperationCount}\n"; print "ReadTransferCount: $objItem->{ReadTransferCount}\n"; print "SessionId: $objItem->{SessionId}\n"; print "Status: $objItem->{Status}\n"; print "TerminationDate: $objItem->{TerminationDate}\n"; print "ThreadCount: $objItem->{ThreadCount}\n"; print "UserModeTime: $objItem->{UserModeTime}\n"; print "VirtualSize: $objItem->{VirtualSize}\n"; print "WindowsVersion: $objItem->{WindowsVersion}\n"; print "WorkingSetSize: $objItem->{WorkingSetSize}\n"; print "WriteOperationCount: $objItem->{WriteOperationCount}\n"; print "WriteTransferCount: $objItem->{WriteTransferCount}\n"; print "\n"; } }sub WMIDateStringToDate(strDate) { return "blah"; }
Oh you want Python instead???
import win32com.client def WMIDateStringToDate(dtmDate): strDateTime = "" if (dtmDateΒ] == 0): strDateTime = dtmDateΓ] + '/' else: strDateTime = dtmDateΒ] + dtmDateΓ] + '/' if (dtmDateΔ] == 0): strDateTime = strDateTime + dtmDateΕ] + '/' else: strDateTime = strDateTime + dtmDateΔ] + dtmDateΕ] + '/' strDateTime = strDateTime + dtmDateΎ] + dtmDateΏ] + dtmDateΐ] + dtmDateΑ] + " " + dtmDateΖ] + dtmDateΗ] + ":" + dtmDate⎖] + dtmDate⎗] +':' + dtmDate⎘] + dtmDate⎙] return strDateTime
strComputer = "." objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator") objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2") colItems = objSWbemServices.ExecQuery("SELECT * FROM Win32_Process") for objItem in colItems: if objItem.Caption != None: print "Caption:" + ` objItem.Caption` if objItem.CommandLine != None: print "CommandLine:" + ` objItem.CommandLine` if objItem.CreationClassName != None: print "CreationClassName:" + ` objItem.CreationClassName` if objItem.CreationDate != None: print "CreationDate:" + WMIDateStringToDate(objItem.CreationDate) if objItem.CSCreationClassName != None: print "CSCreationClassName:" + ` objItem.CSCreationClassName` if objItem.CSName != None: print "CSName:" + ` objItem.CSName` if objItem.Description != None: print "Description:" + ` objItem.Description` if objItem.ExecutablePath != None: print "ExecutablePath:" + ` objItem.ExecutablePath` if objItem.ExecutionState != None: print "ExecutionState:" + ` objItem.ExecutionState` if objItem.Handle != None: print "Handle:" + ` objItem.Handle` if objItem.HandleCount != None: print "HandleCount:" + ` objItem.HandleCount` if objItem.InstallDate != None: print "InstallDate:" + WMIDateStringToDate(objItem.InstallDate) if objItem.KernelModeTime != None: print "KernelModeTime:" + ` objItem.KernelModeTime` if objItem.MaximumWorkingSetSize != None: print "MaximumWorkingSetSize:" + ` objItem.MaximumWorkingSetSize` if objItem.MinimumWorkingSetSize != None: print "MinimumWorkingSetSize:" + ` objItem.MinimumWorkingSetSize` if objItem.Name != None: print "Name:" + ` objItem.Name` if objItem.OSCreationClassName != None: print "OSCreationClassName:" + ` objItem.OSCreationClassName` if objItem.OSName != None: print "OSName:" + ` objItem.OSName` if objItem.OtherOperationCount != None: print "OtherOperationCount:" + ` objItem.OtherOperationCount` if objItem.OtherTransferCount != None: print "OtherTransferCount:" + ` objItem.OtherTransferCount` if objItem.PageFaults != None: print "PageFaults:" + ` objItem.PageFaults` if objItem.PageFileUsage != None: print "PageFileUsage:" + ` objItem.PageFileUsage` if objItem.ParentProcessId != None: print "ParentProcessId:" + ` objItem.ParentProcessId` if objItem.PeakPageFileUsage != None: print "PeakPageFileUsage:" + ` objItem.PeakPageFileUsage` if objItem.PeakVirtualSize != None: print "PeakVirtualSize:" + ` objItem.PeakVirtualSize` if objItem.PeakWorkingSetSize != None: print "PeakWorkingSetSize:" + ` objItem.PeakWorkingSetSize` if objItem.Priority != None: print "Priority:" + ` objItem.Priority` if objItem.PrivatePageCount != None: print "PrivatePageCount:" + ` objItem.PrivatePageCount` if objItem.ProcessId != None: print "ProcessId:" + ` objItem.ProcessId` if objItem.QuotaNonPagedPoolUsage != None: print "QuotaNonPagedPoolUsage:" + ` objItem.QuotaNonPagedPoolUsage` if objItem.QuotaPagedPoolUsage != None: print "QuotaPagedPoolUsage:" + ` objItem.QuotaPagedPoolUsage` if objItem.QuotaPeakNonPagedPoolUsage != None: print "QuotaPeakNonPagedPoolUsage:" + ` objItem.QuotaPeakNonPagedPoolUsage` if objItem.QuotaPeakPagedPoolUsage != None: print "QuotaPeakPagedPoolUsage:" + ` objItem.QuotaPeakPagedPoolUsage` if objItem.ReadOperationCount != None: print "ReadOperationCount:" + ` objItem.ReadOperationCount` if objItem.ReadTransferCount != None: print "ReadTransferCount:" + ` objItem.ReadTransferCount` if objItem.SessionId != None: print "SessionId:" + ` objItem.SessionId` if objItem.Status != None: print "Status:" + ` objItem.Status` if objItem.TerminationDate != None: print "TerminationDate:" + WMIDateStringToDate(objItem.TerminationDate) if objItem.ThreadCount != None: print "ThreadCount:" + ` objItem.ThreadCount` if objItem.UserModeTime != None: print "UserModeTime:" + ` objItem.UserModeTime` if objItem.VirtualSize != None: print "VirtualSize:" + ` objItem.VirtualSize` if objItem.WindowsVersion != None: print "WindowsVersion:" + ` objItem.WindowsVersion` if objItem.WorkingSetSize != None: print "WorkingSetSize:" + ` objItem.WorkingSetSize` if objItem.WriteOperationCount != None: print "WriteOperationCount:" + ` objItem.WriteOperationCount` if objItem.WriteTransferCount != None: print "WriteTransferCount:" + ` objItem.WriteTransferCount`
Oh... vbscript, I see
On Error Resume Next
Const wbemFlagReturnImmediately = &h10 Const wbemFlagForwardOnly = &h20
arrComputers = Array("SFMXP32") For Each strComputer In arrComputers WScript.Echo WScript.Echo "==========================================" WScript.Echo "Computer: " & strComputer WScript.Echo "=========================================="
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process", "WQL", _ wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems WScript.Echo "Caption: " & objItem.Caption WScript.Echo "CommandLine: " & objItem.CommandLine WScript.Echo "CreationClassName: " & objItem.CreationClassName WScript.Echo "CreationDate: " & WMIDateStringToDate(objItem.CreationDate) WScript.Echo "CSCreationClassName: " & objItem.CSCreationClassName WScript.Echo "CSName: " & objItem.CSName WScript.Echo "Description: " & objItem.Description WScript.Echo "ExecutablePath: " & objItem.ExecutablePath WScript.Echo "ExecutionState: " & objItem.ExecutionState WScript.Echo "Handle: " & objItem.Handle WScript.Echo "HandleCount: " & objItem.HandleCount WScript.Echo "InstallDate: " & WMIDateStringToDate(objItem.InstallDate) WScript.Echo "KernelModeTime: " & objItem.KernelModeTime WScript.Echo "MaximumWorkingSetSize: " & objItem.MaximumWorkingSetSize WScript.Echo "MinimumWorkingSetSize: " & objItem.MinimumWorkingSetSize WScript.Echo "Name: " & objItem.Name WScript.Echo "OSCreationClassName: " & objItem.OSCreationClassName WScript.Echo "OSName: " & objItem.OSName WScript.Echo "OtherOperationCount: " & objItem.OtherOperationCount WScript.Echo "OtherTransferCount: " & objItem.OtherTransferCount WScript.Echo "PageFaults: " & objItem.PageFaults WScript.Echo "PageFileUsage: " & objItem.PageFileUsage WScript.Echo "ParentProcessId: " & objItem.ParentProcessId WScript.Echo "PeakPageFileUsage: " & objItem.PeakPageFileUsage WScript.Echo "PeakVirtualSize: " & objItem.PeakVirtualSize WScript.Echo "PeakWorkingSetSize: " & objItem.PeakWorkingSetSize WScript.Echo "Priority: " & objItem.Priority WScript.Echo "PrivatePageCount: " & objItem.PrivatePageCount WScript.Echo "ProcessId: " & objItem.ProcessId WScript.Echo "QuotaNonPagedPoolUsage: " & objItem.QuotaNonPagedPoolUsage WScript.Echo "QuotaPagedPoolUsage: " & objItem.QuotaPagedPoolUsage WScript.Echo "QuotaPeakNonPagedPoolUsage: " & objItem.QuotaPeakNonPagedPoolUsage WScript.Echo "QuotaPeakPagedPoolUsage: " & objItem.QuotaPeakPagedPoolUsage WScript.Echo "ReadOperationCount: " & objItem.ReadOperationCount WScript.Echo "ReadTransferCount: " & objItem.ReadTransferCount WScript.Echo "SessionId: " & objItem.SessionId WScript.Echo "Status: " & objItem.Status WScript.Echo "TerminationDate: " & WMIDateStringToDate(objItem.TerminationDate) WScript.Echo "ThreadCount: " & objItem.ThreadCount WScript.Echo "UserModeTime: " & objItem.UserModeTime WScript.Echo "VirtualSize: " & objItem.VirtualSize WScript.Echo "WindowsVersion: " & objItem.WindowsVersion WScript.Echo "WorkingSetSize: " & objItem.WorkingSetSize WScript.Echo "WriteOperationCount: " & objItem.WriteOperationCount WScript.Echo "WriteTransferCount: " & objItem.WriteTransferCount WScript.Echo Next Next
Function WMIDateStringToDate(dtmDate) WScript.Echo dtm: WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _ Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _ & " " & Mid (dtmDate, 9, 2) & ":" & Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate,13, 2)) End Function
--
O'Reilly Active Directory Third Edition - http://www.joeware.net/win/ad3e.htm
_____
From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of Michael B. Smith Sent: Tuesday, April 29, 2008 1:18 PM To: ActiveDir@mail.activedir.org Subject: RE: [ActiveDir] [OT] BIND as Secondary DNS?
>From one of my upcoming books:
WMI stands for Windows Management Instrumentation. WMI is the Microsoft implementation of something known as CIM, which stands for Common Information Model. CIM (and therefore WMI) is an industry-standard way of representing information about computing objects. These objects include processors, processes, tasks, networks, IP addresses, routers, switches, etc. etc. There are literally hundreds of WMI objects implemented within modern versions of Windows (WMI was first available in Windows 2000 Server).
WMI provides a schema (that is, a description of the information that is available) and a specification of the format of the data contained within the schema. Within WMI, Microsoft has also defined a simple and standard mechanism for accessing the information contained therein.
In my opinion, you get a great deal of value from spending time reading the MSDN documents on (for example) Win32_Process. And if you get there, you can see all the other Win32_* items. Drill down, and lo and behold, there is a wealth of data.
Within PowerShell, start with "gwmi win32_process | fl" and go from there.
http://msdn2.microsoft.com/en-us/library/aa394372(VS.85).aspx <http://msdn2.microsoft.com/en-us/library/aa394372%28VS.85%29.aspx>
Regards,
Michael B. Smith
MCSE/Exchange MVP
http://TheEssentialExchange.com <http://theessentialexchange.com/>
From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of Susan Bradley, CPA aka Ebitz - SBS Rocks [MVP] Sent: Tuesday, April 29, 2008 1:01 PM To: ActiveDir@mail.activedir.org Subject: Re: [ActiveDir] [OT] BIND as Secondary DNS?
I think it's what you are used to and what makes sense to your platform.
Up here in the GUI world PowerShell is being used all around me. SBS is exposing it in the 2k8 era and using it for antispam cmdlets in Exchange 2k7, move data scripting and it's being used in the backup tasks. IIS 7 just came out with a PowerShell platform as well.
You and your blinking c prompt server core world it's understandable :-)
Forgive the very newb question... in my platform I am looking at PowerShell but find that the PowerShell scripting tutorials assume a foundational knowledge of WMI, Common Information Model Standards and what not. What resource would you gurus say is the best one for better understanding these foundations?
joe wrote:
Note that I am not saying no one else should be using PoS or .NET... I am saying for me, it hasn't made any sense to do so IMO. I actually recommend some others to use it because it would be the quickest easiest way for them to spin up. But when people ask me to get involved with it, I don't see the benefit *to me* to do so and say so. This includes writing wrappers, etc for it because people seem to think I do certain things better than others.
--
O'Reilly Active Directory Third Edition - http://www.joeware.net/win/ad3e.htm
_____
From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of joe Sent: Tuesday, April 29, 2008 12:42 PM To: ActiveDir@mail.activedir.org Subject: RE: [ActiveDir] [OT] BIND as Secondary DNS?
Binary, Unicode, and large int can't be marshalled into text? How do you know that isn't happening in the backend somewhere currently? Say some XML stream of some sort? There is and has been a whole object passing model that has existed for years and years and years called CORBA but the actual implementation of that is a bit FAT for what we are talking about because it needed to account for many things we don't care about in the command line management world. But a similar idea slimmed down to the specific case of passing data between two command line processes would be nice and it could be published as a protocol instead of locking into a specific app model.
I think you are happy that the data marshalling is done and you don't have to deal with it, the fact that it is powershell or .net or anything else doesn't really play into it. Anything given to you with the same functionality would have been fine. It is like when people rave about PowerShell because it lets them manage Exchange at the command line, that isn't an argument for PowerShell, it is an argument for having anything that can actually do what you need that didn't exist or possibly didn't know how to do before.
I like the idea of PowerShell, I think the .NET requirement was extremely shortsighted considering it isn't what I would consider a first class citizen of the OS. But I still don't see anything that PoS does for me that makes me go, my god, I could never accomplish that any other way. Once we start seeing kernel components written in and being run by .NET pieces meaning perf has actually been looked at in some serious way, .NET will start looking more attractive to me. Write now the arguments are mostly of the variety that people gave for VB years ago and that wasn't enough to get me to use VB either. Ditto Java. Now when Borland came out with Borland Builder which gave me VB capability with native good c++ code, I was all over that.
--
O'Reilly Active Directory Third Edition - http://www.joeware.net/win/ad3e.htm
_____
From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of Brandon Shell Sent: Tuesday, April 29, 2008 11:05 AM To: ActiveDir@mail.activedir.org Subject: Re: [ActiveDir] [OT] BIND as Secondary DNS?
What about Binary Data? Unicode? or iADSLargeInteger. The biggest thing you lose is ability to maintain the integrity of the object/text throughout the pipe. Using .NET you know if you have FileInfo object it will stay a FileInfo object until you decide to change it. The problem isn't passing the text, it is knowing what to do with it on the flip side. The benefit you have with the object model is Typing. I can TYPE the data so that there is no ambiguity in the interpretation of the "text."
I don't feel the need to debate the design of Powershell (that is water under the bridge,) but the validity of the usefulness of dealing with Objects. Ironically we both agree with the crapiness of the s.ds.d namespace and ADSI in general, but that is a VERY small scope for Powershell. When it comes to Dealing with Processes, Files, WMI, and the slew of other things that Powershell Addresses from an Admin point of view using the .NET namespace was a good idea.
What Dushyant was talking about was, in Powershell you can have Parameters that can be passed via the Pipe. These Parameters are determined by Type or by Name. If it is a STRING it goes here, if it is a DATETIME it goes there, if it is ... You get the idea. You can NOT achieve that passing just text. It is just not feasible. Basically, I get your point, The serialization is still done I just don't have to deal with it. This is the draw. I don't have to worry about it. Not to mention it is SUPER powerful.
In regards to "defined this standard passing mechanism" They did... its called .NET Almost all the stuff they needed already had pre-defined .NET classes that could be used.
I really respect your opinion. You have a lot of experience, but I think in this case you have been blinded by your hatred for .NET (albeit understandable hatred.) Could Powershell have been done different... absolutely. Could it have been done better... absolutely. Should they have used .NET or just a standard parsing methods... that is converstation for you and Jeffrey Snover.
btw... Powershell is not a shell. It is an Engine similar to vbscript parsing engine. They just have a shell that loads Powershell.
On Tue, Apr 29, 2008 at 9:48 AM, joe <listmail@joeware.net> wrote:
Give me an example or three of things you can do that you don't think could be done otherwise that you believe to be a function of passing info between programs (or if you prefer, call them cmdlets) that you can't do with passing text. And as we were discussing at the summit, these should not be things based on two apps not speaking the same language because no one defined a protocol for the text streaming interchang, but things that couldn't be done period even if that was defined. As you know and despite the incorrect assumption/comment made by Dushyant in the PoS session, Adfind/Mod and ds* can actually communicate with each other in great part because I allowed it and that isn't all that hard as long as people agree on a format. But give me an example of something that can't be done with that object passing that you feel can't be accomplished if the agreements/protocols aren't established.
I think we would have been better served if MSFT had defined this standard passing mechanism versus doing what was done. Something that wasn't solely reliant on .NET. The .NET requirement is a silly requirement IMO. Anyway, this wouldn't even need a whole new shell to pull off and the foundation would have built up a lot faster and be far wider and accepted now than it is. Again, IMO.
joe
--
O'Reilly Active Directory Third Edition - http://www.joeware.net/win/ad3e.htm
_____
From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of Brandon Shell
Sent: Tuesday, April 29, 2008 9:34 AM
To: ActiveDir@mail.activedir.org Subject: Re: [ActiveDir] [OT] BIND as Secondary DNS?
While I still think it would be cool for you to write them... I have S.DS.P now... That solves my immediate need so I can do the rest 
It may not be as fast as ADFind, but the flexibility of objects will more than make up for that time lost with my ability to process the output.
To be clear... I think ADFind and ADMod awesome tools and I am very grateful for them.
On Tue, Apr 29, 2008 at 9:08 AM, joe <listmail@joeware.net> wrote:
Absolutely, I just don't consider that exploring... If I did explore that area, it would be to work out how to write native code to interface with it.
If ya want it to so bad... you write it. 
joe
--
O'Reilly Active Directory Third Edition - http://www.joeware.net/win/ad3e.htm
Those who can.... do.
Those who can't... beg.
_____
From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of Brandon Shell Sent: Tuesday, April 29, 2008 9:02 AM
To: ActiveDir@mail.activedir.org
Subject: Re: [ActiveDir] [OT] BIND as Secondary DNS?
never stop exploring... 
On Tue, Apr 29, 2008 at 8:50 AM, joe <listmail@joeware.net> wrote:
Very funnyΏ]....

joe
Ώ] But accurate
-- O'Reilly Active Directory Third Edition - http://www.joeware.net/win/ad3e.htm
-----Original Message----- From: ActiveDir-owner@mail.activedir.org
[mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of Dean Wells Sent: Tuesday, April 29, 2008 8:17 AM To: ActiveDir@mail.activedir.org Subject: RE: [ActiveDir] [OT] BIND as Secondary DNS?
Hehe ... and not entirely dissimilar to what happens when people ask joe .NET/Powershell questions in-person; joe: can you write a wrapper ... joe? joe? ... where'd he go?
-- Dean Wells MSEtechnology t Email: dwells@msetechnology.com http://msetechnology.com <http://msetechnology.com/>
-----Original Message----- From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of Richard Kline Sent: Monday, April 28, 2008 10:20 AM To: ActiveDir@mail.activedir.org Subject: RE: [ActiveDir] [OT] BIND as Secondary DNS?
First Nomination for Understatement of the Year award:
-----Original Message----- From: ActiveDir-owner@mail.activedir.org [mailto:ActiveDir-owner@mail.activedir.org] On Behalf Of joe Sent: Sunday, April 27, 2008 4:28 PM To: ActiveDir@mail.activedir.org Subject: RE: [ActiveDir] [OT] BIND as Secondary DNS?
...
A DNS server that is dynamically handed its address is NOT the most useful device you could have on a network... 
joe
List info : http://www.activedir.org/List.aspx List FAQ : http://www.activedir.org/ListFAQ.aspx List archive: http://www.activedir.org/ma/default.aspx
List info : http://www.activedir.org/List.aspx List FAQ : http://www.activedir.org/ListFAQ.aspx List archive: http://www.activedir.org/ma/default.aspx
List info : http://www.activedir.org/List.aspx List FAQ : http://www.activedir.org/ListFAQ.aspx List archive: http://www.activedir.org/ma/default.aspx
List info : http://www.activedir.org/List.aspx List FAQ : http://www.activedir.org/ListFAQ.aspx List archive: http://www.activedir.org/ma/default.aspx
List info : http://www.activedir.org/List.aspx List FAQ : http://www.activedir.org/ListFAQ.aspx List archive: http://www.activedir.org/ma/default.aspx
| | | |
|
|