Home » 2010

Yearly Archives: 2010

SQL Slipstreaming

By Perry Whittle, 2010/12/27

How to: SQL Slipstreaming SP\CU During Setup

Most of us by now have encountered the issues with the RTM SQL Server 2008 installation media, the issues are more apparent during the installation of a clustered SQL Server instance. There are various ways of coping with the installation issues, but it is far easier to update the SP\CU files during the setup process.

SQL Server 2008 has a new feature called “Slipstreaming”, this basically enables you to integrate the Service Pack and Cumulative Update installation during the RTM SQL Server setup process. There are various prerequisites depending upon the Operating System in use, they are covered further on in this article.

So, how do we slipstream the Service Pack and the Cumulative Update?

The first operation is to obtain the relevant SP and if required the relevant CU. At the time of writing SP1 and SP2 are available for SQL Server 2008 (this does not apply to SQL Server 2008 R2). I prefer to copy my update executable(s) onto the server and then extract locally onto a folder on the C drive.

Note: Extracting and then launching the SP from the C drive forces the SP to use a temporary folder on that drive, this can be very useful in clustered environments as clustered drives may offline and online during installation (an issue many have encountered).

For this article I am going to slipstream my SQL Server 2008 installation with SP1 and CU7 for SP1. I have the following executables which i have copied to the server

  • en_sql_server_2008_sp1_x64.exe
  • SQLServer2008-KB979065-x64.exe

To extract the updates, use the following syntax noting my chosen paths

  • C:\en_sql_server_2008_sp1_x64.exe /X:C:\SP1
  • C:\SQLServer2008-KB979065-x64.exe /X:C:\CU7

Two folders will be created on the C drive containing the update files. If you are using Windows 2003 server you must first install the following prerequisites. If the SQL Server 2008 DVD autoruns, cancel this and proceed manually.

  • Filestream Hotfix KB937444 (download from MS site)
  • Windows Installer update (this is on the SQL Server 2008 install DVD)
  • .NET 3 Framework (this is on the SQL Server 2008 install DVD)

For a Windows 2008 server simply go into server features and enable the .NET 3.51 feature

Once the prerequisites are installed you need to launch the SQLSupport.msi inside the C:\CU7\x64\setup\1033 folder. With the support files installed, launch the SQL Server setup process using the following from a command prompt.

Note: my DVD drive is drive D:

D:\setup /CUSource=C:\CU7 /PCUSource=C:\SP1

The SQL Server Installation Center opens, you may now install your SQL Server instance leaving the installation center and the command prompt open in the background. The following screenshots from the installation process, indicate that a slipstream action is being performed,




Login to the new SQL Server instance and a quick version check reveals 10.0.2766, SQL Server 2008 SP1 CU7! You may also create a “Merged Drop” media, this comprises of the original RTM media with the update files overlaid creating an updated install media. More on this can be found at the following Microsoft link: http://support.microsoft.com/kb/955392

By Perry Whittle, 2010/12/27

Better DNS Servers

Free Fast Public DNS Servers

Service provider: Google

=> Google public dns server IP address:

  • 8.8.8.8
  • 8.8.4.4

=> Service provider:Dnsadvantage
Dnsadvantage free dns server list:

  • 156.154.70.1
  • 156.154.71.1

=> Service provider:OpenDNS
OpenDNS free dns server list / IP address:

  • 208.67.222.222
  • 208.67.220.220

=> Service provider:Norton
Norton free dns server list / IP address:

  • 198.153.192.1
  • 198.153.194.1

=> Service provider: GTEI DNS (now Verizon)
Public Name server IP address:

  • 4.2.2.1
  • 4.2.2.2
  • 4.2.2.3
  • 4.2.2.4
  • 4.2.2.5
  • 4.2.2.6

=> Service provider: ScrubIt
Public dns server address:

  • 67.138.54.100
  • 207.225.209.66
  • 4.2.2.1
  • 4.2.2.2
  • 4.2.2.3
  • 4.2.2.4
  • 4.2.2.5
  • 4.2.2.6

Reduce SQL Log and TempDB File Sizes

Shrink the TempDB:
use tempdb
go
-- this command shrinks the primary data file
dbcc shrinkfile (tempdev, 'target size in MB')
go
-- this command shrinks the log file, look at the last paragraph.
dbcc shrinkfile (templog, 'target size in MB')
go

Shrink Log File:
DBCC SHRINKFILE ('Test_log',TRUNCATEONLY)
BACKUP LOG "Test DB Name" WITH TRUNCATE_ONLY

HDD Recovery Tools

Here is short list of hard drive recovery tools that were mentioned on the Revision3.com show Tekzilla. (Episode 167, aired on Thursday, November 18th, 2010)
In no particular order:
Recuva
Data Rescue 3
TestDisk
PhotoRec
GetDataBack

Examples of AD from the Command-line

User Information
Find DN of Currently Logged On User

Paste code as is:

dsquery * domainroot -filter “(samAccountName=%USERNAME%)”

Find User With Primary Email Address

Retrieve user object matching given address as primary SMTP e-mail.

Syntax:

dsquery * domainroot -filter “(&(objectClass=User) (mail=))” -l -d -attr *

Example:

dsquery * domainroot -filter “(&(objectClass=User) (mail=John.Doe@mydom.com))” -l -d mydom.local -attr *

Find User With Any Email Address

Retrieve user object matching any assigned e-mail address.

Syntax:

dsquery * domainroot -filter “(&(objectClass=User) (proxyAddresses=**))” -l -d -attr *

Example:

dsquery * domainroot -filter “(&(objectClass=User) (proxyAddresses=*John.Doe@mydom.com*))” -l -d mydom.local -attr *

Find Email of User when DN is Known

Retrieve user object matching given DN and show primary SMTP e-mail address.

Syntax:

dsquery * domainroot -filter “(distinguishedName=)” -d -l -attr mail

Example:

dsquery * domainroot -filter “(distinguishedName=CN=Kerekes\, Charlie,OU=Knoxville,DC=mydom,DC=local)” -d mydom.local -l -attr mail

Find Hidden GAL Recipients

Retrieve all user objects that are hidden from the Global Address List in Exchange.

Syntax:

dsquery * domainroot -filter “(&(objectClass=User) (msExchHideFromAddressLists=TRUE))” -l -d -attr displayName

Example:

dsquery * domainroot -filter “(&(objectClass=User) (msExchHideFromAddressLists=TRUE))” -l -d mydom.local -attr displayName

Users With Password Set to Never Expire

Retrieve list of users with the “Password never expires” attribute set.

Syntax:

dsquery * domainroot -filter “(&(objectClass=user) (userAccountControl>=65536))” -attr sAMAccountName userPrincipalName userAccountControl -d

Example:

dsquery * domainroot -filter “(&(objectClass=user) (userAccountControl>=65536))” -attr sAMAccountName userPrincipalName userAccountControl -d mydom.local

Group Information
List Members of a Group

Querying AD for group membership is a multi-step process. The reason is that AD stores group membership in two places. The first place is the most obvious—in the member attribute of the group object. The second is not as obvious—as an integer value in the primaryGroupID attribute of user objects.

For most scenarios, querying the member attribute of group objects will provide a complete list of members. However, if the group in question is set as a default group for any user object, that user will not be listed in the member attribute.

Query the Group’s “Member” Attribute

The sample below lists all members stored in the member attribute of the group. If this query is not showing all members, you will need to perform the queries in the next section as well.

Syntax:

dsquery * domainroot -filter “(&(objectClass=group)(name=))” -l -d -attr member

Example:

dsquery * domainroot -filter “(&(objectClass=group)(name=Help Desk Associates))” -l -d mydom.local -attr member

Query the User’s “primaryGroupID” Attribute

First, we determine the primary group ID for the group in question. We do this by finding the SID of the group object; the last segment of the SID is used as the primary group ID.

Syntax:

dsquery * domainroot -filter “(&(objectClass=group)(name=))” -l -d -attr objectSid

Example:

dsquery * domainroot -filter “(&(objectClass=group)(name=Help Desk Associates))” -l -d mydom.local -attr objectSid

The above query will produce an output similar to this:

S-1-5-21-123456789-1234567890-9876543211-1169

Now we are ready to find all user objects that have the above group set as their default.

Syntax:

dsquery * domainroot -filter “(&(objectClass=user)(primaryGroupID=))” -l -d -attr cn

Example:

dsquery * domainroot -filter “(&(objectClass=user)(primaryGroupID=1169))” -l -d mydom.local -attr cn

List Group Members with Additional User Attributes

If we want more than the DN of group members, we need to use a FOR statement to first generate the list of members, then query each member object for the desired attributes.

Please be aware that the example below queries only the member attribute of the group and will miss any user objects with this group as their default. See the above section for details about the primaryGroupID attribute.

Syntax:

for /F “delims=*” %i IN (‘dsquery * domainroot -filter “(&(objectClass=group)(name=))” -l -d -attr member’) DO @dsquery * domainroot -filter “(distinguishedName=%i)” -attr


Example:

for /F “delims=*” %i IN (‘dsquery * domainroot -filter “(&(objectClass=group)(name=Help Desk Associates))” -l -d mydom.local -attr member’) DO @dsquery * domainroot -filter “(distinguishedName=%i)” -attr displayName samAccountName mail

Computer Information
List All Computer Objects

Syntax:

dsquery * domainroot -filter “(objectClass=Computer)” -attr name -l -d

Example:

dsquery * domainroot -filter “(objectClass=Computer)” -attr name -l -d mydom.local

List Computer Objects in a Specific OU

This example lists all computer objects stored in the mydom.local/Servers/Exchange OU.

Syntax:

dsquery * “” -filter “(objectClass=Computer)” -attr name -l -d

Example:

dsquery * “ou=Exchange,ou=Servers,dc=mydom,dc=local” -filter “(objectClass=Computer)” -attr name -l -d mydom.local

List All Domain Controllers

Syntax:

dsquery * “ou=domain controllers,

” -filter “(objectClass=Computer)” -attr name -l -d


Example:

dsquery * “ou=domain controllers,dc=mydom,dc=local” -filter “(objectClass=Computer)” -attr name -l -d mydom.local

Find DN of Computer Object in Current Domain

The DN contains the full directory path of the computer object and can be helpful in locating the computer using the GUI tools in a complex AD structure.

Syntax:

dsquery * domainroot -filter “(&(objectClass=Computer) (name=))”

Example:

dsquery * domainroot -filter “(&(objectClass=Computer) (name=exch19))”

URL Escape Codes

ASCII Character

URL Escape Code

SPACE

%20

<

%3C

>

%3E

#

%23

%

%25

{

%7B

}

%7D

|

%7C

\

%5C

^

%5E

~

%7E

[

%5B

]

%5D

`

%60

;

%3B

/

%2F

?

%3F

:

%3A

@

%40

=

%3D

&

%26

$

%24

Nonprofit CRM Systems

Here are some CRM systems that have specific offering to Nonprofit Organizations

  1. Open CiviCRM
  2. Microsoft Dynamics CRM
  3. SalesForce.com Foundation
  4. Convio

You may notice that a major vendor is missing from the list above.  Since I would not personally recommend Blackbaud Enterprise CRM, I have not included them a link to their site.

There are other open source CRM solutions that may also be good for nonprofit organizations but I have not investigated them thoroughly yet. One other open source project of note though is OpenERP.com. I have not seen any customizations or tailoring for nonprofits though.  OpenERP is much more that just a CRM, it is offers a complete enterprise solution that includes: accounting, CRM, HR, marketing, project management, warehouse management, and more.

Good luck with your CRM vendor search.

–Mike Wood

Now this is my kind of technol…

Now this is my kind of technology! http://bit.ly/doQmpU

Someone spent a lot of time on…

Someone spent a lot of time on this pumpkin – http://bit.ly/9IHhVK

Gun shots are so much more exc…

Gun shots are so much more exciting when your waiting at the bus stop. It’s not like you can really go anywhere if you want to make the bus.

mmmm… Bacon… http://bit.ly…

mmmm… Bacon… http://bit.ly/cGnIcO

Fossil Rim Wildlife Center

If you like nature from the comfort of a car then Fossil Rim is for you!

Directions from Dallas, TX: click here


View Larger Map

Moved down the block to South …

Moved down the block to South Water Kitchen. Missing my friends at Alexis Hotel (Kimpton). #seattle

Relaxing @ McCormick & Schmick…

Relaxing @ McCormick & Schmick http://where.bit.ly/c3Qf4L

The guy behind me is really an…

The guy behind me is really angry the plane did not get its booze delivery for the flight. #fly

American Airline GoGo Wi-Fi wo…

American Airline GoGo Wi-Fi works well. It’s on AT&T net. Gets 1.5Mb down. decent/mid latency and jitter. $9.95+tax/flight #fly

Midget wrestling & beer. Does …

Midget wrestling & beer. Does it get any better? God I hope so.

I’ve been watching the hell ou…

I’ve been watching the hell out “Married … With Children” the last two week. I think there is something wrong with me.

What’s the equivalent to Seatt…

What’s the equivalent to Seattle’s Chop Suey in Dallas? The Double Wide comes close. Close like a tornado and a trailer park. #music

If ignorance of the law is no …

If ignorance of the law is no excuse, then ignorance of English should excuse you from jury duty. Peers my ass. http://bit.ly/cguJSn #law