您的位置:首页 > 其它

8.Leveraging the Power of ADO and 9.Managing Exchange 2007

2010-09-03 17:26 453 查看
8.##################################################################################################Leveraging the Power of ADO
$strQuery = "<LDAP://dc=nwtraders,dc=msft>;;name;subtree"
ou=myTestOU,dc=nwtraders,dc=msft

LDAP Dialect Query Syntax
Base
Filter
Attributes
Search Scope

<LDAP://dc=nwtraders,dc=msft>
(objectCategory=computer)
name
subtree

$strQuery = "<LDAP://dc=nwtraders,dc=msft>;;name;subtree"
$objConnection = New-Object -comObject "ADODB.Connection"
$objCommand = New-Object -comObject "ADODB.Command"
$objConnection.Open("Provider=ADsDSOObject;")
$objCommand.ActiveConnection = $objConnection
$objCommand.CommandText = $strQuery
$objRecordSet = $objCommand.Execute()
Do
{
$objRecordSet.Fields.item("name") |Select-Object Name,Value
$objRecordSet.MoveNext()
}
Until ($objRecordSet.eof)
$objConnection.Close()

Objects Used to Search Active Directory
Object
Description

Connection
An open connection to an OLE DB data source such as ADSI

Command
Defines a specific command to execute against the data source

Parameter
An optional collection for any parameters to provide to the Command object

RecordSet
A set of records from a table, a Command object, or SQL syntax A RecordSet object can be created without any underlying Connection object

Field
A single column of data in a recordset

Property
A collection of values supplied by the provider for ADO

Error
Contains details about data access errors. Refreshed when an error occurs in a single operation

Authentication Properties for the Connection Object
Property
Description

User ID
A string that identifies the user whose security context is used when performing the search. (For more information about the format of the user name string, see IADsOpenDSObject::OpenDSObject in the Platform SDK.) If the value is not specified, the default is the logged-on user or the user impersonated by the calling process.

Password
A string that specifies the password of the user identified by “User ID”

Encrypt
Password A Boolean value that specifies whether the password is encrypted. The default is False.

ADSI Flag
A set of flags from the ADS_AUTHENTICATION_ENUM enumeration. The flag specifies the binding authentication options. The default is zero.

$objConnection = New-Object -comObject "ADODB.Connection"
$objConnection.provider = "ADsDSOObject"
$objConnection.properties.item("user ID") = $strUser
$objConnection.properties.item("Password") = $strPwd
$objConnection.open("modifiedConnection")

$strBase = "<LDAP://dc=nwtraders,dc=msft>"
$strFilter = "(objectCategory=computer)"
$strAttributes = "name"
$strScope = "subtree"
$strQuery = "<LDAP://dc=nwtraders,dc=msft>;;name;subtree"
$strQuery = "$strBase;$strFilter;$strAttributes;$strScope"
$strUser = "LondonAdmin"
$strPwd = "Password1"
$objConnection = New-Object -comObject "ADODB.Connection"
$objCommand = New-Object -comObject "ADODB.Command"
$objConnection = New-Object -comObject "ADODB.Connection"
$objConnection.provider = "ADsDSOObject"
$objConnection.properties.item("user ID") = $strUser
$objConnection.properties.item("Password") = $strPwd
$objConnection.open("modifiedConnection")

$objCommand = New-Object -comObject "ADODB.Command"
$objCommand.ActiveConnection = $objConnection
$objCommand.Properties.item("Asynchronous") = $blnTrue
$objCommand = New-Object -comObject "ADODB.Command"
$objCommand.ActiveConnection = $objConnection
$objCommand.Properties.item("Size Limit") = 4

$strFilter = "(objectCategory=User)"
#$objConnection.properties.item("user ID") = $strUser
#$objConnection.properties.item("Password") = $strPwd
$objConnection.open()
$objCommand.properties.item("Time Limit")=1

$strBase = "<LDAP://dc=nwtraders,dc=msft>"
$strFilter = "(objectCategory=computer)"
$strAttributes = "name"
$strScope = "subtree"
$strQuery = "$strBase;$strFilter;$strAttributes;$strScope"
$objConnection = New-Object -comObject "ADODB.Connection"
$objCommand = New-Object -comObject "ADODB.Command"
$objConnection.Open("Provider=ADsDSOObject;")
$objCommand.ActiveConnection = $objConnection
$objCommand.CommandText = $strQuery
$objRecordSet = $objCommand.Execute()
Do
{
$objRecordSet.Fields.item("name") |Select-Object Name,Value
$objRecordSet.MoveNext()
}
Until ($objRecordSet.eof)
$objConnection.Close()

$strFilter = "((objectCategory=computer))"
$strFilter = "(&(objectCategory=computer))"
$strFilter = "(&(objectCategory=computer)(name=london))"

$strBase = <GC://ou=MyTestOU,dc=nwtraders,dc=msft>
$strFilter = "(objectCategory=user)"
$strAttributes = "name"
$strScope = "oneLevel"
$strQuery = "$strBase;$strFilter;$strAttributes;$strScope"

$strBase = "<LDAP://London/ou=MyTestOU,dc=nwtraders,dc=msft>"

$strBase = "<LDAP://192.168.1.1/ou=MyTestOU,dc=nwtraders,dc=msft>"

$strScope = "base"
$strQuery = "$strBase;;$strAttributes;$strScope"
$strAttributes = "objectCategory,name"
$objRecordSet.Fields.item("objectCategory") |Select-Object value
$objRecordSet.Fields.item("name") |Select-Object value

Select name from 'LDAP://ou=MyTestOu,dc=nwtraders,dc=msft'where
objectCategory='computer'
Select adsPath, cn from 'LDAP://dc=nwtraders,dc=msft' where
objectCategory='user'order by sn DESC

$strAttributes = "Select name from "
$strBase = "'LDAP://ou=MyTestOu,dc=nwtraders,dc=msft'"
$strFilter = " where objectCategory='computer'"
$strQuery = "$strAttributes$strBase$strFilter"
$objConnection = New-Object -comObject "ADODB.Connection"
$objCommand = New-Object -comObject "ADODB.Command"
$objConnection.Open("Provider=ADsDSOObject;")
$objCommand.ActiveConnection = $objConnection
$objCommand.CommandText = $strQuery
$objRecordSet = $objCommand.Execute()
Do
{
$objRecordSet.Fields.item("name") |Select-Object Name,Value
$objRecordSet.MoveNext()
}
Until ($objRecordSet.eof)
$objConnection.Close()

$objADSI = [ADSI]"LDAP://ou=myTestOU,dc=nwtraders,dc=msft"
$strBase = "<LDAP://ou=mytestOU,dc=nwtraders,dc=msft>"
$strFilter = "(objectCategory=User)"
$strAttributes = "name"
$strScope = "subtree"
$strQuery = "$strBase;$strFilter;$strAttributes;$strScope"
$objConnection = New-Object -comObject "ADODB.Connection"
$objCommand = New-Object -comObject "ADODB.Command"
$objConnection.Open("Provider=ADsDSOObject")
$objCommand.ActiveConnection = $objConnection
$objCommand.CommandText = $strQuery
$objRecordSet = $objCommand.Execute()
Do
{
}
Until ($objRecordSet.eof)
$objRecordSet.Fields.item("name") |Select-Object Value
$objRecordSet.MoveNext()
$objConnection.Close()

$strFilter = "(objectCategory=User)"
#$strFilter = "(&(objectCategory=User)(l=charlotte))"
#$strFilter = "(&(objectCategory=User)(l=charlotte)(department=hr))"
#$strFilter = "(&(objectCategory=User)(l=charlotte)(!department=hr))"
#$strFilter = "(&(objectCategory=User)(|(l=charlotte)(l=dallas))(!department=hr))"

$strFilter = "(objectCategory=User)"
$objCommand.Properties.item("Page Size") = 500
$objCommand.Properties.item("Size Limit") = 0
$blnTrue = [bool]-1
$objCommand.Properties.item("Asynchronous") = $blnTrue

9.##################################################################################################Managing Exchange 2007
Get-Excommand | Where-Object {$_.name -match "stat"} |Format-List name,definition

Enable-Mailbox -Identity nwtraders/MyNewUser -Database "mailbox database"

New-Mailbox -Alias myTestUser2 -Database "mailbox database" `
-Name MyTestUser2 -OrganizationalUnit myTestOU -FirstName My `
-LastName TestUser2 -DisplayName "My TestUser2" `
-UserPrincipalName MyTestUser2@nwtraders.com

$password = ConvertTo-SecureString "P@ssW0rD!" -asplaintext -force
New-Mailbox -Alias myTestUser2 -Database "mailbox database" `
-Name MyTestUser2 -OrganizationalUnit myTestOU -FirstName My `
-LastName TestUser2 -DisplayName "My TestUser2" `
-UserPrincipalName MyTestUser2@nwtraders.com -password $password

$password = ConvertTo-SecureString "P@ssW0rD!" -asplaintext -force
$strDatabase = "Mailbox Database"
$strOU = "myTestOU"
$strDomain = "Nwtraders.msft"
$strFname = "My"
$strLname = "TestUser"
for($i=0;$i -le 10;$i++)
{
}
New-Mailbox -Alias $strFname$strLname$i -Database $strDatabase `
-Name $strFname$strLname$i -OrganizationalUnit $strOU -FirstName `
$strFname -LastName $strLname -DisplayName $strFname$strLname$i `
-UserPrincipalName $strFname$strLname$i"@"$strDomain `
-password $password

Get-Mailbox
Get-Mailbox | Format-Table alias, prohibitsendquota –AutoSize
get-mailbox mytestuser1
get-mailbox -identity mytestuser1
nwtraders.com/MyTestOU/MyTestUser1
get-mailbox -identity mytestuser1 | Format-List identity
get-mailbox -identity mytestuser1 | Format-List alias, identity

"Retrieving users with unrestricted mailbox limits "
"This may take a few minutes ..."
$a = get-mailbox|
where-object {$_.prohibitSendQuota -eq "unlimited"}
"There are " + $a.length + " users without restrictions."
"They are listed below. `r"
$a | Format-List alias

Get-Mailbox | Format-Table alias, *quota

Get-StorageGroup
Get-StorageGroup "first storage group" | Format-List *
Get-MailboxDatabase
Get-MailboxDatabase | Format-List *
Get-MailboxDatabase | Format-list *quota

Get-EventLogLevel
Get-EventLogLevel routing
Set-EventLogLevel routing -Level medium
Get-EventLogLevel routing | Format-List *
$a = Get-EventLogLevel routing
Set-EventLogLevel -Identity $a.Identity -Level medium

$aryLog = Get-EventLogLevel |
where-object {$_.identity -match "transport"}
foreach ($strLog in $aryLog)
{
}
$strLogIdent = $strLog.identity
$aryLog = Get-EventLogLevel |
where-object {$_.identity -match "transport"}
foreach ($strLog in $aryLog)
{
}
$strLogIdent = $strLog.identity
Set-EventLogLevel -identity $strLogIdent -level $strLevel

$aryUsers = Get-Content -path "c:/ch9/UserNames.txt"
$password = "Password01"
$strOU = "myTestOU"
$strDomain = "nwtraders.msft"
$strDatabase = "Mailbox Database"
$password = ConvertTo-SecureString $password -asplaintext -force
foreach ($i in $aryUsers)
{
}
$newAry = $i.split(',')
$strFname = $newAry[0]
$strLname = $newAry[1]
New-Mailbox -Alias $strFname$strLname -Database $strDatabase
-Name $strFname$strLname -OrganizationalUnit $strOU
FirstName $strFname -LastName $strLname
-DisplayName $strFname$strLname `
-UserPrincipalName $strFname$strLname"@"$strDomain `
-password $password

$dteMaxAge = [timespan]"30.00:00:00"
$intSize = 50MB
$strLogPath = "c:/x2kLogs"
$aryServer = Get-MailboxServer
foreach ($strServer in $aryServer)
{
}
$strServer = $strServer.identity
Set-MailboxServer -identity $strServer
-MessageTrackingLogEnabled $true
-MessageTrackingLogMaxAge $dteMaxAge
-MessageTrackingLogMaxDirectorySize $intSize
-MessageTrackingLogPath $strLogPath
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐