1

我只是想在这里制作一个日志文件。OpenTextFile我曾尝试用而不是做一些事情CreateTextFile,但它什么也没写,我真的不知道为什么而且我很难找到我需要的信息。

'Nick Repella 10/29/13

'Needed in case object does not exist (outdated list)
On Error Resume Next

Function IsCompDisabled(strLine)
    Dim objComputer
    objComputer = "LDAP://cn="
    objComputer = objComputer & strLine
    objComputer = objComputer & ",ou=HIDDENOU,dc=HIDDENDC,dc=HIDDENDC,dc=HIDDENDC"
    IsCompDisabled = GetObject(objComputer).AccountDisabled
End Function 

'Set the file to read computer names from (Change C:\scripts\text.txt to the 
'target file)
Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\scripts\text.txt", 1)

Dim strLine

Do While Not objFileToRead.AtEndOfStream
    strLine = objFileToRead.ReadLine()
    If (IsCompDisabled(strLine) = True) Then
        outFile="c:\scripts\compDisableCheck.log"
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objFile = objFSO.CreateTextFile(outFile, True)
        objFile.Write strLine & "has been deleted"
        objFile.Close        
    Else
        WScript.Echo strLine & " computer is enabled no action taken"
    End If
Loop

MsgBox "Done"
4

1 回答 1

5

仔细研究文档。定义 ForAppending, .OpenTextfile(sFSpec, ForAppending, True) 之前的输出文件,循环结束后关闭。

(未经测试)代码:

Option Explicit

Const ForAppending = 8

'No global OERN

'Function to tell if the computer is disabled
Function IsCompDisabled( strLine )
    ' type prefix fraud!
    Dim objComputer
    objComputer = "LDAP://cn="
    objComputer = objComputer & strLine
    objComputer = objComputer & ",ou=HIDDENOU,dc=HIDDENDC,dc=HIDDENDC,dc=HIDDENDC"
  ' Needed  H E R E  in case object does not exist (outdated list)
  On Error Resume Next
    IsCompDisabled = GetObject(objComputer).AccountDisabled
    ' should be logged; pass otp file as parameter
  On Error GoTo 0
End Function

'Set the file to read computer names from (Change C:\scripts\text.txt to the target file)
Dim oFS : Set oFS = CreateObject("Scripting.FileSystemObject")
Dim objFileToRead : Set objFileToRead = goFS.OpenTextFile("C:\scripts\text.txt") ' Using defaults, no magiv number
' delete otp file here, if you want logs per session
Dim objFile : Set objFile = goFS.OpenTextFile("c:\scripts\compDisableCheck.log", ForAppending, True)
'objFile[ToAppend] ?

Dim strLine

'Read from file until end of file
'If computer disabled say so / If computer enabled say so
Do Until objFileToRead.AtEndOfStream ' not while not
    strLine = objFileToRead.ReadLine()
    If IsCompDisabled(strLine) Then ' no camparison against boolean literals
       ' timestamp?
       objFile.WriteLine strLine & " has been deleted"
    Else
       ' ? objFile.WriteLine ...
       WScript.Echo strLine & " computer is enabled, no action taken"
    End If
Loop
objFile.Close
objFileToRead.Close

MsgBox "Done"
于 2013-10-30T21:43:50.767 回答