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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值