TaliaI
asked on
Modify .vbs script to send information to output file not screen
I need this script below to run without popping up on the screen but creating an output file with the information in it.
arrAttributes = Array("homeDirectory","dis playname", "mail")
Set adoCommand = CreateObject("ADODB.Comman d")
Set adoConnection = CreateObject("ADODB.Connec tion")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
adoCommand.ActiveConnectio n = adoConnection
Set objRootDSE = GetObject("LDAP://RootDSE" )
strBase = "<LDAP://" & objRootDSE.Get("defaultNam ingContext ") & ">"
Set objRootDSE = Nothing
strFilter = "(&(objectCategory=person) (objectCla ss=user)(h omeDirecto ry=*))"
strAttributes = Join(arrAttributes,",")
Wscript.Echo Join(arrAttributes,";") & " ; home directory size in MB"
strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
adoCommand.CommandText = strQuery
adoCommand.Properties("Pag e Size") = 100
adoCommand.Properties("Tim eout") = 30
adoCommand.Properties("Cac he Results") = False
Set adoRecordset = adoCommand.Execute
Do Until adoRecordset.EOF
On Error Resume Next
strTempOutput = ""
For i = 0 To Ubound(arrAttributes)
strTempOutput = strTempOutput & " ; " & adoRecordset.Fields(arrAtt ributes(i) ).Value
strOutput = Mid(Ltrim(strTempOutput),3 )
Next
Wscript.Echo strOutput & " ; " & Foldersize (adoRecordset.Fields(arrAt tributes(0 )).Value) & " MB"
adoRecordset.MoveNext
Loop
adoRecordset.Close
adoConnection.Close
Set adoRecordset = Nothing
Set adoConnection = Nothing
Set adoCommand = Nothing
Function Foldersize(strPath)
On Error Resume Next
Set objNetwork = CreateObject("WScript.Netw ork")
Set objFSO = CreateObject("scripting.fi lesystemob ject")
objNetwork.MapNetworkDrive "p:", strPath
Set objFld = objFSO.GetFolder("p:")
Foldersize = Round(objFld.Size/1048576, 2)
objNetwork.RemoveNetworkDr ive "p:"
Set objFld = Nothing
Set objFSO = Nothing
End Function
arrAttributes = Array("homeDirectory","dis
Set adoCommand = CreateObject("ADODB.Comman
Set adoConnection = CreateObject("ADODB.Connec
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
adoCommand.ActiveConnectio
Set objRootDSE = GetObject("LDAP://RootDSE"
strBase = "<LDAP://" & objRootDSE.Get("defaultNam
Set objRootDSE = Nothing
strFilter = "(&(objectCategory=person)
strAttributes = Join(arrAttributes,",")
Wscript.Echo Join(arrAttributes,";") & " ; home directory size in MB"
strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
adoCommand.CommandText = strQuery
adoCommand.Properties("Pag
adoCommand.Properties("Tim
adoCommand.Properties("Cac
Set adoRecordset = adoCommand.Execute
Do Until adoRecordset.EOF
On Error Resume Next
strTempOutput = ""
For i = 0 To Ubound(arrAttributes)
strTempOutput = strTempOutput & " ; " & adoRecordset.Fields(arrAtt
strOutput = Mid(Ltrim(strTempOutput),3
Next
Wscript.Echo strOutput & " ; " & Foldersize (adoRecordset.Fields(arrAt
adoRecordset.MoveNext
Loop
adoRecordset.Close
adoConnection.Close
Set adoRecordset = Nothing
Set adoConnection = Nothing
Set adoCommand = Nothing
Function Foldersize(strPath)
On Error Resume Next
Set objNetwork = CreateObject("WScript.Netw
Set objFSO = CreateObject("scripting.fi
objNetwork.MapNetworkDrive
Set objFld = objFSO.GetFolder("p:")
Foldersize = Round(objFld.Size/1048576,
objNetwork.RemoveNetworkDr
Set objFld = Nothing
Set objFSO = Nothing
End Function
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER