08 May 2010

create 1000 users

' Create 1000 Sample User Accounts


Set objRootDSE = GetObject("LDAP://rootDSE")

Set objContainer = GetObject("LDAP://cn=Users," & _
objRootDSE.Get("defaultNamingContext"))

For i = 1 To 1000
Set objLeaf = objContainer.Create("User", "cn=UserNo" & i)
objLeaf.Put "sAMAccountName", "UserNo" & i
objLeaf.SetInfo
Next

WScript.Echo "1000 Users created."

create 1000 users

' Create 1000 Sample User Accounts


Set objRootDSE = GetObject("LDAP://rootDSE")

Set objContainer = GetObject("LDAP://cn=Users," & _
objRootDSE.Get("defaultNamingContext"))

For i = 1 To 1000
Set objLeaf = objContainer.Create("User", "cn=UserNo" & i)
objLeaf.Put "sAMAccountName", "UserNo" & i
objLeaf.SetInfo
Next

WScript.Echo "1000 Users created."

'Below script to create number of computers in AD--for testing

'Below script to create number of computers in AD--for testing

'==============================================================================
'
' Description: This script creates multiple sequential computer accounts
' in an AD OU. It appends a 3 digit number to the base name starting with
' the number entered at the prompt.
' ==============================================================================
Option Explicit
'Define Constants
Const ADS_SCOPE_ONELEVEL = 1
'Declare Variables
Dim DQ
Dim strAdmin
Dim intRecord
Dim objShell
Dim objNetwork
Dim intWarn
Dim objRootDSE
Dim strADsPath
Dim objConnection
Dim objCommand
Dim strOUPath
Dim objRecordSet
Dim strBaseName
Dim intRecordMax
Dim bEnabled
Dim objOU
Dim strNewComputerName
Dim objNewComputer
Dim strDomainDN
Dim strDomainFQDN
Dim intOULevel
Dim strSearchADsPath
Dim intStartNumber
'Set variables
DQ = Chr(34)
'Create Objects
Set objShell = CreateObject("Wscript.Shell")
Set objNetwork = CreateObject("WScript.NetWork")
'Verifies script was run using Cscript, and if not relauches it using Cscript
If Not WScript.FullName = WScript.Path & "\cscript.exe" Then

objShell.Popup "Relaunching script with Cscript in 5 seconds...", 5, _
"Script Host Message", 48

objShell.Run "cmd.exe /k " & WScript.Path & "\cscript.exe //NOLOGO " & _
DQ & WScript.scriptFullName & DQ, 1, False

Script.Quit 0
End If

'Warn User
intWarn = MsgBox("This will make changes to AD." & VbCr & _
"Are you sure you want to do this?", 308, "ID 10 T Check")
'308 = Yes/No (4) + 'Exclaimation (48) + Default Button 2 (256)
If intWarn = vbNo Then

WScript.Quit 0
End If
'Construct an ADsPath to the Current Domain with rootDSE
Set objRootDSE = GetObject("LDAP://rootDSE")
strADsPath = "LDAP://" & objRootDSE.Get("defaultNamingContext")
'Convert domain Distinguished Name to FQDN format
strDomainDN = objRootDSE.Get("defaultNamingContext")
strDomainFQDN = Replace(Replace(strDomainDN, "DC=", ""), ",", ".")
'Connect to Active Directory
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_ONELEVEL
'Prompt for Path to OU
Do

strOUPath = _
InputBox("Please enter the path to the OU where the computer accounts " & _
" will be created - Seperate OUs With a \", "OU Path Input", "TopOU\SubOU")
If strOUPath = False Then
WScript.Quit

End If
Loop Until strOUPath <> ""


'Split OU path by OU
strOUPath = UCase(strOUPath)
strOUPath = Split(strOUPath, "\")


'Prepare variables for search
intOULevel = 0
strSearchADsPath = strADsPath


'Search through each OU level in path provided
For intOULevel = 0 To UBound(strOUPath)

objCommand.CommandText = "SELECT ADsPath FROM '" & strSearchADsPath & _
"'" & " WHERE objectCategory='organizationalUnit' AND Name = '" & _
strOUPath(intOULevel) & "'"

Set objRecordSet = objCommand.Execute

'Verify OU was found

If objRecordSet.EOF Then

WScript.echo "OU named " & strOUPath(intOULevel) & _
" not found, Exiting script."

WScript.quit

Else

objRecordSet.MoveFirst
Do Until objRecordSet.EOF
strSearchADsPath = objRecordSet.Fields("ADsPath").Value
objRecordSet.MoveNext
Loop
End If
Next
'Get current username to use in description field
strAdmin = objNetwork.UserName
'Prompt for the base computer name
Do
strBaseName = _
InputBox("Please enter the base computer name to use for new accounts:", _
"Base Computer Name", "TestPC")
If strBaseName = False Then
WScript.Quit
End If
Loop Until strBaseName <> ""
strBaseName = UCase(strBaseName)
'Prompt for starting computer number
Do

intStartNumber = _
InputBox("Please enter the beginning number to use in computer names:", _
"Starting Computer Number", "001")
If intStartNumber = False Then

WScript.Quit

End If
Loop Until intStartNumber <> ""
intStartNumber = CInt(intStartNumber)
intRecord = intStartNumber
'Prompt for number of accounts to be created
Do

intRecordMax = _
InputBox("Please enter the number of accounts to be created", _
"Count Input", "10")
If intRecordMax = False Then

WScript.Quit

End If
Loop Until intRecordMax <> ""
intRecordMax = CInt(intRecordMax)


'Bind to OU that computers will be created in
Set objOU = GetObject(strSearchADsPath)

'Create the user accounts
Do Until intRecord = intRecordMax + intStartNumber
intRecord = Right("000" & intRecord, 3)
strNewComputerName = strBaseName & intRecord
WScript.Echo "Creating " & strNewComputerName
Set objNewComputer = objOU.Create("Computer", "cn= " & strNewComputerName)
objNewComputer.Put "samAccountName", strNewComputerName & "$"
objNewComputer.Put "userAccountControl", 4096
objNewComputer.Put "description", "Account created: " & Date() & " by: " _
& strAdmin
objNewComputer.SetInfo 'Writes settings to AD
intRecord = intRecord + 1
Loop

WScript.Echo
WScript.echo "Finished creating computer accounts."

'Below script to create number of computers in AD--for testing

'Below script to create number of computers in AD--for testing

'==============================================================================
'
' Description: This script creates multiple sequential computer accounts
' in an AD OU. It appends a 3 digit number to the base name starting with
' the number entered at the prompt.
' ==============================================================================
Option Explicit
'Define Constants
Const ADS_SCOPE_ONELEVEL = 1
'Declare Variables
Dim DQ
Dim strAdmin
Dim intRecord
Dim objShell
Dim objNetwork
Dim intWarn
Dim objRootDSE
Dim strADsPath
Dim objConnection
Dim objCommand
Dim strOUPath
Dim objRecordSet
Dim strBaseName
Dim intRecordMax
Dim bEnabled
Dim objOU
Dim strNewComputerName
Dim objNewComputer
Dim strDomainDN
Dim strDomainFQDN
Dim intOULevel
Dim strSearchADsPath
Dim intStartNumber
'Set variables
DQ = Chr(34)
'Create Objects
Set objShell = CreateObject("Wscript.Shell")
Set objNetwork = CreateObject("WScript.NetWork")
'Verifies script was run using Cscript, and if not relauches it using Cscript
If Not WScript.FullName = WScript.Path & "\cscript.exe" Then

objShell.Popup "Relaunching script with Cscript in 5 seconds...", 5, _
"Script Host Message", 48

objShell.Run "cmd.exe /k " & WScript.Path & "\cscript.exe //NOLOGO " & _
DQ & WScript.scriptFullName & DQ, 1, False

Script.Quit 0
End If

'Warn User
intWarn = MsgBox("This will make changes to AD." & VbCr & _
"Are you sure you want to do this?", 308, "ID 10 T Check")
'308 = Yes/No (4) + 'Exclaimation (48) + Default Button 2 (256)
If intWarn = vbNo Then

WScript.Quit 0
End If
'Construct an ADsPath to the Current Domain with rootDSE
Set objRootDSE = GetObject("LDAP://rootDSE")
strADsPath = "LDAP://" & objRootDSE.Get("defaultNamingContext")
'Convert domain Distinguished Name to FQDN format
strDomainDN = objRootDSE.Get("defaultNamingContext")
strDomainFQDN = Replace(Replace(strDomainDN, "DC=", ""), ",", ".")
'Connect to Active Directory
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_ONELEVEL
'Prompt for Path to OU
Do

strOUPath = _
InputBox("Please enter the path to the OU where the computer accounts " & _
" will be created - Seperate OUs With a \", "OU Path Input", "TopOU\SubOU")
If strOUPath = False Then
WScript.Quit

End If
Loop Until strOUPath <> ""


'Split OU path by OU
strOUPath = UCase(strOUPath)
strOUPath = Split(strOUPath, "\")


'Prepare variables for search
intOULevel = 0
strSearchADsPath = strADsPath


'Search through each OU level in path provided
For intOULevel = 0 To UBound(strOUPath)

objCommand.CommandText = "SELECT ADsPath FROM '" & strSearchADsPath & _
"'" & " WHERE objectCategory='organizationalUnit' AND Name = '" & _
strOUPath(intOULevel) & "'"

Set objRecordSet = objCommand.Execute

'Verify OU was found

If objRecordSet.EOF Then

WScript.echo "OU named " & strOUPath(intOULevel) & _
" not found, Exiting script."

WScript.quit

Else

objRecordSet.MoveFirst
Do Until objRecordSet.EOF
strSearchADsPath = objRecordSet.Fields("ADsPath").Value
objRecordSet.MoveNext
Loop
End If
Next
'Get current username to use in description field
strAdmin = objNetwork.UserName
'Prompt for the base computer name
Do
strBaseName = _
InputBox("Please enter the base computer name to use for new accounts:", _
"Base Computer Name", "TestPC")
If strBaseName = False Then
WScript.Quit
End If
Loop Until strBaseName <> ""
strBaseName = UCase(strBaseName)
'Prompt for starting computer number
Do

intStartNumber = _
InputBox("Please enter the beginning number to use in computer names:", _
"Starting Computer Number", "001")
If intStartNumber = False Then

WScript.Quit

End If
Loop Until intStartNumber <> ""
intStartNumber = CInt(intStartNumber)
intRecord = intStartNumber
'Prompt for number of accounts to be created
Do

intRecordMax = _
InputBox("Please enter the number of accounts to be created", _
"Count Input", "10")
If intRecordMax = False Then

WScript.Quit

End If
Loop Until intRecordMax <> ""
intRecordMax = CInt(intRecordMax)


'Bind to OU that computers will be created in
Set objOU = GetObject(strSearchADsPath)

'Create the user accounts
Do Until intRecord = intRecordMax + intStartNumber
intRecord = Right("000" & intRecord, 3)
strNewComputerName = strBaseName & intRecord
WScript.Echo "Creating " & strNewComputerName
Set objNewComputer = objOU.Create("Computer", "cn= " & strNewComputerName)
objNewComputer.Put "samAccountName", strNewComputerName & "$"
objNewComputer.Put "userAccountControl", 4096
objNewComputer.Put "description", "Account created: " & Date() & " by: " _
& strAdmin
objNewComputer.SetInfo 'Writes settings to AD
intRecord = intRecord + 1
Loop

WScript.Echo
WScript.echo "Finished creating computer accounts."

04 May 2010

Dell PowerEdge R510 server

Specifications

  • Processor: Up to two Intel Xeon 5500 and 5600 processors, up to six cores per socket, up to 12 sockets per server.
  • RAM: Up to 64 GB, 128 GB, or 192 GB DDR3 RAM, depending on which Dell resource you use. (See “RAM options are inconsistent” in the What’s wrong section below for more information.)
  • RAID: Wide variety of RAID controller options to support internal and external storage.
  • Drive bays: Chassis options include 4, 8, or 12 drive bays.
  • Drive options: Up to 12 disks at 2 TB each. Supports 2.5″ and 3.5″ SATA and DAS disks and includes a solid state disk option. The 12 disk chassis also has space for two more internal drives.
  • Network: 2 x 1 Gb Ethernet ports on board (Broadcom 5716).
  • Power: Redundant power supply available.
  • Additional information: Product Web site
  • Photos of the Dell PowerEdge R510

The target market

The Dell PowerEdge R510 server is aimed squarely at space-constrained data centers or small and medium-size organizations. I see these primary use cases:

  • Common platform: Organizations that want significant server use flexibility and also want a common platform to administrative ease. The Dell PowerEdge R510’s versatility makes it a natural fit for many applications.
  • Smaller is better: Organizations that need to pack more servers into a data center and that don’t want to move to blades to gain density. The Dell PowerEdge R510’s 26″ depth makes it possible to support this need.
  • Mega storage needed: Small and medium organizations that need a server with massive internal storage and that may not want to invest in a SAN.

What problem does it solve

Many organizations have a desire to standardize on a single server platform in order to make it easier to support the server environment and to keep spare parts on hand in the event of a failure; however, those organizations often have a wide variety of computing needs, each requiring different computing resources. A VMware host, for example, will need RAM and processing power and will generally be connected to a SAN. Exchange, on the other hand, needs RAM, processing power, and raw disk space. SQL Server has similar needs. With its flexible chassis options, dual quad-core processing capability, and support for triple digit GBs of RAM, the 2U Dell PowerEdge R510 can meet the needs for all but the most processor intensive applications. IT can deploy a wide array of services on this single computing platform without sacrificing in any area of the computing spectrum.

The Dell PowerEdge R510 is also a short server, measuring only 26″ deep. This makes it an ideal choice for smaller organizations that have small data centers and need to eke out as much space as possible without sacrifice.

Standout features

In addition to offering very flexible computing options and having a short depth, the Dell PowerEdge R510 offers an optional LCD display that allows administrators to quickly determine chassis status and choose boot options. The availability of the display is dependent on which chassis option is selected. For example, as you will see in the photo gallery, getting a display on the 12 chassis model would be tough.

What’s wrong

Processor density
This is not a specific product issue, but rather a gap in Dell’s line. Ideally, I’d love to see the company release a version of the Dell PowerEdge R510 with support for up to four processors. Obviously, with a short depth, support for a lot of RAM and 12 disks crammed in the existing chassis, this four-socket dream might be difficult to produce in this form factor.

RAM options are inconsistent
Another negative element of this server is not necessarily a knock on the server itself — instead, it’s directed at Dell’s marketing folks. I got frustrated when I looked at various views of the Dell PowerEdge R510 on Dell’s site. Depending on the page being viewed, the site lists the server’s maximum RAM at three values:

In purchasing a server, the maximum RAM configuration available at present is 128 GB.

In the Dell PowerEdge R510’s complete technical guide, there is mention that the chassis selected also impacts the availability of certain RAM configurations. The 4 drive chassis is listed as accepting 1, 2, and 4 GB memory modules; the 8 drive chassis is shown as accepting 1, 2, 4, 8, and 16 GB modules.

My recommendation: Work with your sales rep to make sure your system has the memory options you expect and need.

Competitive products

Bottom line for business

The Dell PowerEdge R510 server is a very welcome addition to Dell’s server lineup and certainly fills an important niche by providing a single-platform solution to organizations that have a wide variety of needs.

Dell PowerEdge R510 server

Specifications

  • Processor: Up to two Intel Xeon 5500 and 5600 processors, up to six cores per socket, up to 12 sockets per server.
  • RAM: Up to 64 GB, 128 GB, or 192 GB DDR3 RAM, depending on which Dell resource you use. (See “RAM options are inconsistent” in the What’s wrong section below for more information.)
  • RAID: Wide variety of RAID controller options to support internal and external storage.
  • Drive bays: Chassis options include 4, 8, or 12 drive bays.
  • Drive options: Up to 12 disks at 2 TB each. Supports 2.5″ and 3.5″ SATA and DAS disks and includes a solid state disk option. The 12 disk chassis also has space for two more internal drives.
  • Network: 2 x 1 Gb Ethernet ports on board (Broadcom 5716).
  • Power: Redundant power supply available.
  • Additional information: Product Web site
  • Photos of the Dell PowerEdge R510

The target market

The Dell PowerEdge R510 server is aimed squarely at space-constrained data centers or small and medium-size organizations. I see these primary use cases:

  • Common platform: Organizations that want significant server use flexibility and also want a common platform to administrative ease. The Dell PowerEdge R510’s versatility makes it a natural fit for many applications.
  • Smaller is better: Organizations that need to pack more servers into a data center and that don’t want to move to blades to gain density. The Dell PowerEdge R510’s 26″ depth makes it possible to support this need.
  • Mega storage needed: Small and medium organizations that need a server with massive internal storage and that may not want to invest in a SAN.

What problem does it solve

Many organizations have a desire to standardize on a single server platform in order to make it easier to support the server environment and to keep spare parts on hand in the event of a failure; however, those organizations often have a wide variety of computing needs, each requiring different computing resources. A VMware host, for example, will need RAM and processing power and will generally be connected to a SAN. Exchange, on the other hand, needs RAM, processing power, and raw disk space. SQL Server has similar needs. With its flexible chassis options, dual quad-core processing capability, and support for triple digit GBs of RAM, the 2U Dell PowerEdge R510 can meet the needs for all but the most processor intensive applications. IT can deploy a wide array of services on this single computing platform without sacrificing in any area of the computing spectrum.

The Dell PowerEdge R510 is also a short server, measuring only 26″ deep. This makes it an ideal choice for smaller organizations that have small data centers and need to eke out as much space as possible without sacrifice.

Standout features

In addition to offering very flexible computing options and having a short depth, the Dell PowerEdge R510 offers an optional LCD display that allows administrators to quickly determine chassis status and choose boot options. The availability of the display is dependent on which chassis option is selected. For example, as you will see in the photo gallery, getting a display on the 12 chassis model would be tough.

What’s wrong

Processor density
This is not a specific product issue, but rather a gap in Dell’s line. Ideally, I’d love to see the company release a version of the Dell PowerEdge R510 with support for up to four processors. Obviously, with a short depth, support for a lot of RAM and 12 disks crammed in the existing chassis, this four-socket dream might be difficult to produce in this form factor.

RAM options are inconsistent
Another negative element of this server is not necessarily a knock on the server itself — instead, it’s directed at Dell’s marketing folks. I got frustrated when I looked at various views of the Dell PowerEdge R510 on Dell’s site. Depending on the page being viewed, the site lists the server’s maximum RAM at three values:

In purchasing a server, the maximum RAM configuration available at present is 128 GB.

In the Dell PowerEdge R510’s complete technical guide, there is mention that the chassis selected also impacts the availability of certain RAM configurations. The 4 drive chassis is listed as accepting 1, 2, and 4 GB memory modules; the 8 drive chassis is shown as accepting 1, 2, 4, 8, and 16 GB modules.

My recommendation: Work with your sales rep to make sure your system has the memory options you expect and need.

Competitive products

Bottom line for business

The Dell PowerEdge R510 server is a very welcome addition to Dell’s server lineup and certainly fills an important niche by providing a single-platform solution to organizations that have a wide variety of needs.

03 May 2010

ConfigMgr 2007 Tool Kit v2

 

http://www.microsoft.com/downloads/details.aspx?FamilyID=5a47b972-95d2-46b1-ab14-5d0cbce54eb8&displaylang=en

direct http://download.microsoft.com/download/5/5/0/55078AC4-3D15-407B-948E-CEB72A0A5A50/ConfigMgrTools.msi

The following list provides specific information about each tool in the toolkit.

  • Client Spy - A tool that helps you troubleshoot issues related to software distribution, inventory, and software metering on Configuration Manager 2007 clients.
  • Delete Group Class Tool - A tool used to remove inventory group definitions along with history data, tables, views and stored procedures for the group.
  • Desired Configuration Management Migration Tool - A tool used to migrate from the DCM Solution for SMS 2003 to DCM in ConfigMgr 2007.
  • Desired Configuration Management Model Verification Tool - A tool used by desired configuration management content administrators for the validation and testing of configuration items and baselines authored externally from the Configuration Manager console.
  • Desired Configuration Management Substitution Variable Tool - A tool used by desired configuration management content administrators for authoring desired configuration management configuration items that use chained setting and object discovery.
  • Management Point Troubleshooter Tool - A tool that checks a computer system before and after a management point installation to ensure that the installation meets the requirements for management points.
  • Policy Spy - A policy viewer that helps you review and troubleshoot the policy system on Configuration Manager 2007 clients.
  • Preload Package Tool - A tool used to manually install compressed copies of package source files on Configuration Manager 2007 sites.
  • Security Configuration Wizard Template for Configuration Manager 2007 - The Security Configuration Wizard (SCW) is an attack-surface reduction tool for the Microsoft Windows Server 2008 R2 operating system. Security Configuration Wizard determines the minimum functionality required for a server's role or roles, and disables functionality that is not required. The Configuration Manager 2007 Service Pack 2 Security Configuration Wizard template supports new site system definitions and enables the required services and ports.
  • Send Schedule Tool - A tool used to trigger a schedule on a Client or trigger the evaluation of a specified DCM Baseline. You can trigger a schedule either locally or remotely.
  • Trace32 - A log viewer that provides a way to easily view and monitor log files created and updated by Configuration Manager 2007 clients and servers.

ConfigMgr 2007 Tool Kit v2

 

http://www.microsoft.com/downloads/details.aspx?FamilyID=5a47b972-95d2-46b1-ab14-5d0cbce54eb8&displaylang=en

direct http://download.microsoft.com/download/5/5/0/55078AC4-3D15-407B-948E-CEB72A0A5A50/ConfigMgrTools.msi

The following list provides specific information about each tool in the toolkit.

  • Client Spy - A tool that helps you troubleshoot issues related to software distribution, inventory, and software metering on Configuration Manager 2007 clients.
  • Delete Group Class Tool - A tool used to remove inventory group definitions along with history data, tables, views and stored procedures for the group.
  • Desired Configuration Management Migration Tool - A tool used to migrate from the DCM Solution for SMS 2003 to DCM in ConfigMgr 2007.
  • Desired Configuration Management Model Verification Tool - A tool used by desired configuration management content administrators for the validation and testing of configuration items and baselines authored externally from the Configuration Manager console.
  • Desired Configuration Management Substitution Variable Tool - A tool used by desired configuration management content administrators for authoring desired configuration management configuration items that use chained setting and object discovery.
  • Management Point Troubleshooter Tool - A tool that checks a computer system before and after a management point installation to ensure that the installation meets the requirements for management points.
  • Policy Spy - A policy viewer that helps you review and troubleshoot the policy system on Configuration Manager 2007 clients.
  • Preload Package Tool - A tool used to manually install compressed copies of package source files on Configuration Manager 2007 sites.
  • Security Configuration Wizard Template for Configuration Manager 2007 - The Security Configuration Wizard (SCW) is an attack-surface reduction tool for the Microsoft Windows Server 2008 R2 operating system. Security Configuration Wizard determines the minimum functionality required for a server's role or roles, and disables functionality that is not required. The Configuration Manager 2007 Service Pack 2 Security Configuration Wizard template supports new site system definitions and enables the required services and ports.
  • Send Schedule Tool - A tool used to trigger a schedule on a Client or trigger the evaluation of a specified DCM Baseline. You can trigger a schedule either locally or remotely.
  • Trace32 - A log viewer that provides a way to easily view and monitor log files created and updated by Configuration Manager 2007 clients and servers.