Question : Comment créer une règle dans McAfee pour ne pas bloquer le port 587 pour envoyer des email using le smtp

Bonjour, le

I a écrit un email PL/SQL qui rapporte que les alertes dans la base de données d'Oracle sur le problème des fenêtres 2008 server.
The est quand McAfee est actif il empêche envoyer l'email du port 587 using SMTP.
when que je mets McAfee hors tension le manuscrit de PL/SQL peut envoyer des email sur le port 587.
How peut nous créer une règle dans McAfee qui ne bloque pas des email sur le port 587 using le smtp ?
class= de

Réponse : Comment créer une règle dans McAfee pour ne pas bloquer le port 587 pour envoyer des email using le smtp

j'ai également corrigé un bogue dans le groupMembership tellement ici qu'il est :
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
73 :
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 :
87 :
88 :
89 :
90 :
91 :
92 :
93 :
94 :
95 :
96 :
97 :
98 :
99 :
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 :
108 :
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 :
119 :
120 :
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
130 :
131 :
132 :
133 :
134 :
135 :
136 :
137 :
138 :
139 :
140 :
141 :
142 :
143 :
144 :
145 :
146 :
147 :
148 :
149 :
150 :
151 :
152 :
153 :
154 :
155 :
156 :
157 :
158 :
159 :
160 :
161 :
162 :
163 :
164 :
165 :
166 :
167 :
168 :
169 :
170 :
171 :
172 :
173 :
174 :
175 :
176 :
177 :
178 :
179 :
180 :
181 :
182 :
183 :
184 :
185 :
186 :
187 :
188 :
189 :
190 :
191 :
192 :
193 :
194 :
195 :
196 :
197 :
198 :
199 :
200 :
201 :
202 :
203 :
204 :
205 :
206 :
207 :
208 :
209 :
210 :
211 :
212 :
213 :
214 :
215 :
216 :
217 :
218 :
219 :
220 :
221 :
222 :
223 :
224 :
225 :
226 :
227 :
228 :
229 :
230 :
231 :
232 :
233 :
234 :
235 :
236 :
237 :
238 :
239 :
240 :
241 :
242 :
243 :
244 :
245 :
246 :
247 :
248 :
249 :
250 :
251 :
252 :
253 :
254 :
255 :
256 :
257 :
258 :
259 :
260 :
261 :
262 :
263 :
264 :
265 :
266 :
267 :
268 :
269 :
270 :
271 :
272 :
273 :
274 :
275 :
276 :
277 :
278 :
279 :
280 :
281 :
282 :
283 :
284 :
285 :
286 :
287 :
288 :
289 :
290 :
291 :
292 :
293 :
294 :
295 :
296 :
297 :
298 :
299 :
300 :
301 :
302 :
303 :
304 :
305 :
306 :
307 :
308 :
309 :
310 :
311 :
312 :
313 :
314 :
315 :
316 :
317 :
318 :
319 :
320 :
321 :
322 :
323 :
324 :
325 :
326 :
327 :
328 :
329 :
330 :
331 :
332 :
333 :
334 :
335 :
336 :
337 :
338 :
339 :
340 :
341 :
342 :
343 :
344 :
345 :
346 :
347 :
348 :
349 :
350 :
351 :
352 :
353 :
354 :
355 :
356 :
357 :
358 :
359 :
360 :
361 :
362 :
363 :
364 :
365 :
366 :
367 :
368 :
369 :
370 :
371 :
372 :
373 :
374 :
375 :
376 :
377 :
378 :
379 :
380 :
381 :
382 :
383 :
const ROOT_OU = « ou=test »
const REPOSITORY_FILE = « c:\temp\repository.log »
const REPOSITORY_COMPARE_FILE = « c:\temp\repository _comp.log »
const RESULT_FILE = « c:\temp\result.log »
const USER_PROPS = « nom, OU de parent, AccountDisabled, AccountExpirationDate, directeur, GroupMembership »

Placer l'usersPropsDict = le CreateObject (« Scripting.Dictionary »)
placer l'objFSO = le createobject (« scripting.filesystemobject »)

GetUsersProps

si objFSO.FileExists (REPOSITORY_FILE) puis
	objFSO.CopyFile REPOSITORY_FILE, REPOSITORY_COMPARE_FILE, VRAI

	LogUsersProps
	CheckUserChanges
autrement
	LogUsersProps
finir si

wscript.echo « accomplissent »

fonction CheckUsersStatus (prevStateArr, curStateArr)

	faible strResult
	Placer l'usersDict = le CreateObject (« Scripting.Dictionary »)
	
	pour chaque ligne dans le prevStateArr
		si "" d'équilibre (ligne <> ) alors
			l'utilisateur = s'est dédoublé (ligne, « , ") (0)
			utilisateur d'usersDict.Add, 0
		finir si
	après
	
	pour chaque ligne dans le curStateArr
		si "" d'équilibre (ligne <> ) alors
			l'utilisateur = s'est dédoublé (ligne, « , ") (0)
			si usersDict.Exists (utilisateur) puis
				usersDict.Item (utilisateur) = 2
			autrement
				utilisateur d'usersDict.Add, 1
			finir si
		finir si
	après
	
	pour chaque clef dans l'usersDict
		choisir le cas usersDict.Item (la clef) 
			affaire 0 : le 'utilisateur a été supprimé
				le strResult = le strResult et le « utilisateur [ » et la clef et « ] ont été supprimés » et vbNewLine
			affaire 1 : 'nouvel utilisateur créé
				le strResult = le strResult et le « nouvel utilisateur [ » et la clef et « ] ont été créés » et vbNewLine
			affaire 2 : 'vérifier si l'utilisateur était déplacé
		finir choisi
	après
	CheckUsersStatus = strResult
fonction de fin

CheckUserChanges secondaire

	curStateData = objFSO.OpenTextFile (REPOSITORY_FILE, 1).ReadAll
	prevStateData = objFSO.OpenTextFile (REPOSITORY_COMPARE_FILE, 1).ReadAll
	le curStateArr = s'est dédoublé (curStateData, vbNewLine)
	le prevStateArr = s'est dédoublé (prevStateData, vbNewLine)
	
	le strSubject = « utilisateur d'ANNONCE change la notation de résultat - » et la date et « « et l'heure
	
	strResult = CheckUsersStatus (prevStateArr, curStateArr)
	pour i=1 à UBound (curStateArr)
		ligne = curStateArr (i)
		s'InStr (le prevStateData, équilibrent (ligne) et vbNewLine) = 0 puis
			matchLine = FindUserChangeDelta (ligne, prevStateArr)
			si "" <> de matchLine alors				
				changeResult = LogUserPropertiesChange (matchLine, ligne)
				si "" <> de changeResult alors
					strResult = strResult et changeResult
				finir si
			finir si
		finir si
	après
	
	si objFSO.FileExists (RESULT_FILE) puis
		objResFile réglé = objFSO.OpenTextFile (RESULT_FILE, 8)
	autrement
		objResFile réglé = objFSO.CreateTextFile (RESULT_FILE, 2)
	finir si
	
	strSubject d'objResFile.WriteLine
	
	si "" <> de strResult alors
		strResult d'objResFile.WriteLine
		strSubject de NotifyByEmail, strResult
	autrement
		objResFile.WriteLine « aucuns changements ont été surveillés. »
	finir si
	objResFile.Close
	
finir le sous-marin

substrater NotifyByEmail (strSubject, strResult)
	Obscurcir ToAddress
	Obscurcir MessageSubject
	Obscurcir MessageBody
	Obscurcir MessageAttachment

	Obscurcir l'ol, NS, newMail

	ToAddress = « [email protected] »
	MessageSubject = strSubject
	MessageBody = strResult

	Placer l'ol = le WScript.CreateObject (« Outlook.Application »)
	Placer NS = ol.getNamespace (« MAPI »)
	ns.log sur le "", "", vrai, faux
	Placer le newMail = l'ol.CreateItem (l'olMailItem)
	newMail.Subject = MessageSubject
	newMail.Body = MessageBody et vbCrLf

	'valider le destinataire, juste dans le cas…
	Placer myRecipient = ns.CreateRecipient (ToAddress)
	myRecipient.Resolve
	Sinon myRecipient.Resolved alors
	   MsgBox « destinataire inconnu »
	Autrement
	   newMail.Recipients.Add (myRecipient)
	   newMail.Send
	Finir si

	Placer l'ol = rien

finir le sous-marin

fonction GetGroupMembershipChanges (I, arr1, arr2)
	changeResult = faux
	strResult = « GroupMembership :  » et vbNewLine
	
	si UBound (arr1) < i="" then="" if="" UBound="">= I alors
			strResult = strResult et « groupes [ » et remplacer (arr2 (i), « ;  », « , ") et « ] ont été ajoutés » et vbNewLine
			le changeResult = rectifient
		finir si
	autrement
		si UBound (arr2) < i="" then="" if="" UBound="">= I alors
				strResult = strResult et « groupes [ » et remplacer (arr1 (i), « ;  », « , ") et « ] ont été enlevés » et vbNewLine
				le changeResult = rectifient
			finir si
		autrement
			arrMembers1 = s'est dédoublé (arr1 (i), « ; ")
			arrMembers2 = s'est dédoublé (arr2 (i), « ; ")
			
			Placer dictmembers2 = CreateObject (« Scripting.Dictionary »)
			Placer dictmembers1 = CreateObject (« Scripting.Dictionary »)

			pour chaque mem2 dans arrMembers2
				dictmembers2.Add mem2, rien
			après
			
			pour chaque mem1 dans arrMembers1
				si dictmembers2.Exists (mem1) = faux puis 	
					le strResult = le strResult et le « groupe [ » et les mem1 et « ] ont été enlevés » et vbNewLine
					le changeResult = rectifient
				finir si
				
				dictmembers1.Add mem1, rien
			après
			
			pour chaque mem2 dans arrMembers2
				si dictmembers1.Exists (mem2) = faux puis 	
					le strResult = le strResult et le « groupe [ » et les mem2 et « ] ont été ajoutés » et vbNewLine
					le changeResult = rectifient
				finir si
			après
			
		finir si
	finir si
	
	si le changeResult = rectifient alors
		GetGroupMembershipChanges = strResult
	autrement
		GetGroupMembershipChanges = ""
	finir si	
finir la fonction

fonction LogUserPropertiesChange (matchLine, ligne)

	changeResult = faux
	arr1 = s'est dédoublé (matchLine, « , ")
	arr2 = s'est dédoublé (ligne, « , ")
	
	l'userPropsArr = s'est dédoublé (USER_PROPS, « , ")
	strResult = « [ » et arr1 (0) et « ] » et vbNewLine
	
	pour i=1 à UBound (userPropsArr)
		'manipulation spéciale pour GroupMembership
		si userPropsArr (i) = « GroupMembership » puis
			strGroupResult = GetGroupMembershipChanges (I, arr1, arr2)
			si "" <> de strGroupResult alors
				strResult = strResult et strGroupResult et vbNewLine
			finir si
		autrement
			si >= i d'UBound (arr1) et >= i d'UBound (arr2) puis
				si arr1 (i) <> arr2 (i) alors
					strLine = userPropsArr (i) et « :  » et vbNewLine
					strLine = strLine et « avant = » et arr1 (i) et vbNewLine
					strLine = strLine et « après = » et arr2 (i) et vbNewLine
					
					strResult = strResult et strLine et vbNewLine
					le changeResult = rectifient
				finir si
			autrement
				si >= i d'UBound (arr1) et UBound (arr2) < i="" then="" strLine="userPropsArr(i)">= I alors
						strLine = userPropsArr (i) et « :  » et vbNewLine
						strLine = strLine et « avant = aucune propriété » et vbNewLine
						strLine = strLine et « après = » et arr2 (i) et vbNewLine
						
						strResult = strResult et strLine et vbNewLine
						le changeResult = rectifient
					finir si
				finir si
			finir si
		finir si
	après 
	si le changeResult = rectifient alors
		LogUserPropertiesChange = strResult et vbNewLine
	autrement
		LogUserPropertiesChange = ""
	finir si
	
finir la fonction

fonction FindUserChangeDelta (ligne, prevStateArr)

	faible utilisateur, matchLine
	l'utilisateur = s'est dédoublé (ligne, « , ") (0)
	
	pour chaque prevLine dans le prevStateArr
		si "" d'équilibre (prevLine <> ) alors
			si fente (prevLine, « , ") (0) = utilisateur alors
				matchLine = prevLine
				sortir pour
			finir si
		finir si
	après

	FindUserChangeDelta = matchLine
fonction de fin

LogUsersProps secondaire
	sur le résumé d'erreur après
	faible userProp
	placer l'objLog = l'objFSO.CreateTextFile (REPOSITORY_FILE, 2)
	
	objLog.WriteLine USER_PROPS
	
	pour chaque objKey dans l'usersPropsDict
		userProp = objKey
		pour chaque objInnerKey dans l'usersPropsDict (objKey)
			userProp = userProp et « , » et usersPropsDict (objKey) (objInnerKey)
		après
		
		userProp d'objLog.WriteLine
	après
	
	objLog.Close
sous-marin d'extrémité

GetUsersProps secondaire
	faible utilisateur
	Const ADS_SCOPE_SUBTREE = 2

	Placer l'objConnection = le CreateObject (« ADODB.Connection »)
	Placer l'objCommand =   le CreateObject (« ADODB.Command »)
	objConnection.Provider = « ADsDSOObject »
	objConnection.Open « fournisseur actif d'annuaire »
	Placer objCommand.ActiveConnection = objConnection

	objCommand.Properties (« taille de page ») = 1000
	objCommand.Properties (« Searchscope ») = ADS_SCOPE_SUBTREE
	
	Placer l'objRootDSE = le GetObject (« LDAP : //RootDSE »)
	strDNSDomain = objRootDSE.Get (« defaultNamingContext »)

	si "" <> de ROOT_OU alors
		ldaproot = « LDAP : / » et ROOT_OU et « , » et strDNSDomain
	autrement
		ldaproot = « LDAP : / » et strDNSDomain
	finir si
		
	objCommand.CommandText = « distinguishedName CHOISI, sAMAccountName DE «  » et ldaproot et «  » OÙ objectCategory='user'"
	
	Placer l'objRecordSet = l'objCommand.Execute

	Tandis que pas objRecordSet.EOF
		utilisateur = objRecordSet.Fields (« sAMAccountName »). Valeur
		
		si usersPropsDict.Exists (utilisateur) = faux puis
			sur le résumé d'erreur après
			Placer le propsDict = le CreateObject (« Scripting.Dictionary »)
			utilisateur d'usersPropsDict.Add, propsDict
			
			distName = objRecordSet.Fields (« distinguishedName »). Valeur
			Placer ObjUser = GetObject (« LDAP : / » et distName)
			l'arrPath = s'est dédoublé (distName, « , ")
			intLength = Len (arrPath (1))
			intNameLength = intLength - 3
			parentOU = droit (arrPath (1), intNameLength)
			propsDict.Add « OU de parent », parentOU
			propsDict.Add « AccountDisabled », ObjUser.AccountDisabled
			
			si "" <> d'ObjUser.AccountExpirationDate alors
				propsDict.Add « AccountExpirationDate », ObjUser.AccountExpirationDate
			autrement
				propsDict.Add « AccountExpirationDate », ""
			finir si
			
			si "" <> d'ObjUser.Manager alors
			placer l'objManager = le GetObject (« LDAP : / » et ObjUser.Manager)
				propsDict.Add « directeur », remplacent (objManager.Name, « CN= », le "")
			autrement
				propsDict.Add « directeur », ""
			finir si
		finir si
		
		objRecordSet.MoveNext
	WEnd 
	
	getUsersGroups	
sous-marin d'extrémité

getUsersGroups secondaires

	faible groupe
	Const ADS_SCOPE_SUBTREE = 2

	Placer l'objConnection = le CreateObject (« ADODB.Connection »)
	Placer l'objCommand =   le CreateObject (« ADODB.Command »)
	objConnection.Provider = « ADsDSOObject »
	objConnection.Open « fournisseur actif d'annuaire »
	Placer objCommand.ActiveConnection = objConnection

	objCommand.Properties (« taille de page ») = 1000
	objCommand.Properties (« Searchscope ») = ADS_SCOPE_SUBTREE
	
	Placer l'objRootDSE = le GetObject (« LDAP : //RootDSE »)
	strDNSDomain = objRootDSE.Get (« defaultNamingContext »)

	si "" <> de ROOT_OU alors
		ldaproot = « LDAP : / » et ROOT_OU et « , » et strDNSDomain
	autrement
		ldaproot = « LDAP : / » et strDNSDomain
	finir si

	objCommand.CommandText = « distinguishedName CHOISI, sAMAccountName DE «  » et ldaproot et «  » OÙ objectCategory='group'"
	
	Placer l'objRecordSet = l'objCommand.Execute
	
	Tandis que pas objRecordSet.EOF
		groupe = objRecordSet.Fields (« distinguishedName »). Valeur
		
		Placer ObjGroup = GetObject (« LDAP : / » et groupe)
		pour chaque objMember dans objGroup.Members
			si usersPropsDict.Exists (objmember.samaccountname) puis
				si usersPropsDict.Item (objmember.samaccountname). Existe (« groupMembership ») alors
					groupMembership = usersPropsDict.Item (objmember.samaccountname). Article (« groupMembership »)
					groupMembership = groupMembership et « ;  » et objGroup.samaccountname
					usersPropsDict.Item (objmember.samaccountname). Article (« groupMembership ») = groupMembership
				autrement
					usersPropsDict.Item (objmember.samaccountname). Ajouter le « groupMembership », objGroup.samaccountname
				finir si
				
			finir si			
		après
		objRecordSet.MoveNext
	WEnd 
finir le sous-marin
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us