Jump to content

Will this run for ever


 Share

Recommended Posts

I'm trying to run through our users home directory for old backup folders that is not needed anymore. We have a backup solution that create a folder on users home directory. The name of the folder is the name of the computer. So when a users a getting a new computer the a new backup folder is created. And in time a lot of backup folders will be present if the user are not deleting them, but that is usually not the case. So we will go through all users home folder and delete what not needed anymore. To find out which computer that is active I use the AD attribute "managedby" on the computer object and I make an array of active computers for the user, so I don't delete wrong folders. But what I can't find out is if my 'DO ... UNTIL' runs for ever. I hope you guys can help me out here.

Func DelFolder()
  Local $aComputerOwner, $sFileDate, $hSearch, $sFileName = ""
  For $i = 0 To UBound($aUsersTarget) - 1
    $aComputerOwner = _AD_GetObjectsInOU("OU=computers," & $sSiteOU & ",OU=company,DC=AD,DC=company,DC=ORG","(&(objectclass=computer)(managedby=" & $aUsersTarget[$i][0] & "))",Default,"cn")
    if $aComputerOwner <> 0 Then
      $hSearch = FileFindFirstFile($aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $aUsersTarget[$i][4] & "\" & "*.")
      if $hSearch <> -1 Then
        Do
          $sFileName = FileFindNextFile($hSearch)
          if UBound(_ArrayFindAll($aComputerOwner,$sFileName)) = 0 Then
            if StringInStr($sFileName,StringUpper(stringRight($sSiteOU,2) & StringMid($sSiteOU,StringInStr($sSiteOU,",")-2,2)&"LT")) <> 0 Or StringInStr($sFileName,StringUpper(stringRight($sSiteOU,2) & StringMid($sSiteOU,StringInStr($sSiteOU,",")-2,2)&"DT")) <> 0 Then
              $sFileDate = _ConvertTimeFormat(FileGetTime($aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $aUsersTarget[$i][4] & "\" & $sFileName,0,1))
                If _DateDiff('M', $sFileDate, _NowCalc()) > $sIntVal Then
                  if $aUsersTarget[$i][4] = "" Then             ;   HomePath                        Username
                    _FileWriteLog($hFile, $aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $sFileName&@CRLF)
                    if $bDebugMode Then
                      ConsoleWrite($aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $sFileName& ' ' &_DateDiff('M', $sFileDate, _NowCalc())& ' ' &$sIntVal& ' ' & $aUsersTarget[$i][4] & @CRLF)
                    EndIf
                Else                    ;   HomePath                        Username                    BackupFolder
                    _FileWriteLog($hFile, $aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $aUsersTarget[$i][4] & "\" & $sFileName&@CRLF)
                    if $bDebugMode Then
                      ConsoleWrite($aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $sFileName& ' ' &_DateDiff('M', $sFileDate, _NowCalc())& ' ' &$sIntVal& ' ' & $aUsersTarget[$i][4] & @CRLF)
                    EndIf
                EndIf
              EndIf
            EndIf
          EndIf
        Until FileFindNextFile($hSearch) = @error
      Else
        _FileWriteLog($hFile, "Error: No files/directories matched for " & $aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $aUsersTarget[$i][4] & "\" & "*."&@CRLF)
        if $bDebugMode Then
          ConsoleWrite("Error: No files/directories matched for " & $aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $aUsersTarget[$i][4] & "\" & "*."&@CRLF)
        EndIf
      EndIf
    ; Close the search handle.
      FileClose($hSearch)
    EndIf
  Next
EndFunc

 

Yours sincerely

Kenneth.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...