Tuesday, September 13, 2011

I'm asked to write a script to send password expiration message to the users whom password are about to expire.
The main aim is to notify pop/smtp users defined days before their password expires. Here is the script below. It's written for Active Diretory 2003/2008 enviorments.
It's never tested in production environments. Using the script in your environment is your responsibilities.
You need to edit 'EDIT' section before using it in your environment.


'-----
Const ForReading=1,ForWriting=2,ForAppending=8,adLockOptimistic = 3,adOpenDynamic = 1,TriStateTrue = -1
Dim objUser, strUserDN, objShell, lngBiasKey, lngBias, WshShell, k
Dim objRootDSE, strDNSDomain, objDomain, objMaxPwdAge, intMaxPwdAge, FSO , adocommand , adoconnection,adoRecordSet
Dim objDate, dtmPwdLastSet, lngFlag, blnPwdExpire, blnExpired, LogFileAccounts, strBase,StrAttributes,StrQuery
Dim strFilter
Dim lngHighAge, lngLowAge
Dim sBCC,sSub,sBody,sAttch

Set WSHShell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Int k : k=0
'----- EDIT-------
Int intMaxPwdAge : intMaxPwdAge = 200 'Enter Maximum pasword age of your domain
Dim outFile : outFile ="C:\SifresiDolanlar.txt" 'Output file
Dim Verbose : Verbose = 2 ' 1 =Verbose Mode, 0 =Quite mode, 2 = Report Mode (users will not get the message)
Dim strFrom : strFrom = "mailadmin@ttmail.com" 'From address of the message that will be sent to the users
Dim strBCC : strBCC = "borand@ttmail.com" 'BCC address, for getting a copy of the message
Dim strAdm : strAdm = "borand@ttmail.com" 'Mail administrator's address, for reporting
Dim strMailServer: strMailServer = "exf01.borand.local" 'Relay server, you need to give relay access for anonymous access for the IP address of the script machine
Dim HDayBefore : HDayBefore = 15 'Days before users will be informed
Dim strSub : strSub = "Sifrenizin süresi dolmak Uzeredir, lütfen degistiriniz"
Dim ebody : ebody = "Sifrenizin süresi dolmak üzeredir " 'Body of the message that will be sent to the user
ebody = ebody + vbCrLf + "Sifrenizi domaine üye bilgisayarinizdan veya owa sayfasindan (https://mail.borand.com.tr/owa )degistirebilirsiniz."
ebody = ebody + vbCrLf + "Saygilarimizla,"
ebody = ebody + vbCrLf + "Mesajlasma Sistemi Birim Yöneticisi"

strBase = "" 'Enter the Dn of the root container
strFilter = "(&(objectCategory=person)(objectClass=user)(mailnickName=*)(userPrincipalName=bora*))" 'Test filter
'strFilter = "(&(objectCategory=person)(objectClass=user))" ' Main filter (Filters all mailbox users)

'---- CALLS-----


Call Main()
Call SendMailToAdmin

'----

Function Main
Set logfileAccounts =FSO.CreateTextFile(Outfile,ForWriting, True)
logfileAccounts.WriteLine (Date()&" Tarihi icin sifresi dolmak üzere olan hesaplar")
DisplayMsg( " Main Function Running---")
Const ADS_UF_PASSWD_CANT_CHANGE = &H40
Const ADS_UF_DONT_EXPIRE_PASSWD = &H10000

Set adoCommand = CreateObject("ADODB.Command")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
adoCommand.ActiveConnection = adoConnection


StrAttributes = "distinguishedName,lastLogon"
strQuery = strBase & ";" & strFilter & ";" & strAttributes

adoCommand.CommandText = strQuery
adoCommand.Properties("Page Size") = 100
adoCommand.Properties("Timeout") = 300
adoCommand.Properties("Cache Results") = False
DisplayMsg(strQuery)
' On Error Resume Next
Set adoRecordset = adoCommand.Execute
If (Err.Number <> 0) Then
WScript.Echo Err.Description
Else
Do Until adoRecordset.EOF
strDN = adoRecordset.Fields("distinguishedName").Value
' WScript.Echo strDN
Set objuser = Getobject ("LDAP://" & strDN)
strUserDN = objUser.distinguishedName
Call GetPwdLastDate(objUser)
datePwdAge = DateDiff("d", dtmPwdLastSet, Now())
DisplayMsg("Users' password age is : " &datePwdAge)
If (intMaxPwdAge-HDayBefore < datePwdAge) And (datePwdAge < intMaxPwdAge) Then
DisplayMsg (" Kullanicinin sifresi dolmak uzere, mail gonderilecek ")
k=k+1
emailAdr = objUser.mail
LogFileAccounts.WriteLine EmailAdr & " " & datePwdAge
If Verbose <> 2 Then
Call SendMail (strFrom,emailAdr,strBCC,strSub,ebody,"")
End If
End If


adoRecordset.MoveNext
Loop
adoRecordset.Close
adoConnection.Close

End If
logfileAccounts.WriteLine (k &" kullaniciya mail gonderildi")
logfileAccounts.Close
DisplayMsg(" Main Function BITT")
End Function

Sub SendMailtoAdmin
DisplayMsg("running SendMailtoAdmin function...")
Set oFileIn= FSO.OpenTextFile(outFile, ForReading,False,TriStateTrue)
BodyText=oFileIn.ReadAll
DisplayMsg(BodyText)
oFileIn.Close
Call SendMail(strfrom,strAdm,"","Sifresi Dolmak uzere olan hesaplar",BodyText,"")
End Sub

Function GetPwdLastDate(objUser)
' Retrieve user password information.
' The pwdLastSet attribute should always have a value assigned,
' but other Integer8 attributes representing dates could be "Null".
If (TypeName(objUser.pwdLastSet) = "Object") Then
Set objDate = objUser.pwdLastSet
dtmPwdLastSet = Integer8Date(objDate, lngBias)
Else
dtmPwdLastSet = #1/1/1601#
End If
lngFlag = objUser.Get("userAccountControl")
blnPwdExpire = True
If ((lngFlag And ADS_UF_PASSWD_CANT_CHANGE) <> 0) Then
blnPwdExpire = False
End If
If ((lngFlag And ADS_UF_DONT_EXPIRE_PASSWD) <> 0) Then
blnPwdExpire = False
End If

' Determine if password expired.
blnExpired = False
If (blnPwdExpire = True) Then
If (DateDiff("d", dtmPwdLastSet, Now()) > intMaxPwdAge) Then
blnExpired = True
End If
End If

' Display password information.
Wscript.Echo "User: " & strUserDN & vbCrLf & "Password last set: " _
& dtmPwdLastSet & vbCrLf & "Maximum password age (days): " _
& intMaxPwdAge & vbCrLf & "Can password expire? " & blnPwdExpire _
& vbCrLf & "Password expired? " & blnExpired

End Function

Function Integer8Date(ByVal objDate, ByVal lngBias)
' Function to convert Integer8 (64-bit) value to a date, adjusted for
' local time zone bias.
Dim lngAdjust, lngDate, lngHigh, lngLow
lngAdjust = lngBias
lngHigh = objDate.HighPart
lngLow = objdate.LowPart
' Account for error in IADsLargeInteger property methods.
If (lngLow < 0) Then
lngHigh = lngHigh + 1
End If
If (lngHigh = 0) And (lngLow = 0) Then
lngAdjust = 0
End If
lngDate = #1/1/1601# + (((lngHigh * (2 ^ 32)) _
+ lngLow) / 600000000 - lngAdjust) / 1440
' Trap error if lngDate is ridiculously huge.
On Error Resume Next
Integer8Date = CDate(lngDate)
If (Err.Number <> 0) Then
On Error GoTo 0
Integer8Date = #1/1/1601#
End If
On Error GoTo 0
End Function

Sub SendMail(sFrom,sTo,sBCC,sSub,sBody,sAttch)
Call DisplayMsg("Running SendMail function")
'On error resume next
err.clear
Const cdoAnonymous = 0 'Do not authenticate
Dim objEmail : Set objEmail = CreateObject("CDO.Message")
objEmail.From = sFrom
objEmail.To = sTo
ObjEmail.BCC = sBCC
objEmail.Subject = sSub
objEmail.Textbody = sBody
objEmail.AddAttachment sAttch
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 '2=remote server 1=Local pickup directory
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 0 '0=Anonymous,1=Basic,2=NTLM
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strMailServer
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
WScript.Echo sTo & " " & sBCC & " email addresses got the notification message."
If err.number <> 0 then
Call DisplayMsg( "Error sending email : " & err.descprition)
wscript.quit
end if
end Sub

Function DisplayMsg(msgTxt)
'Prints msg on screen only if Verbose is set
if Verbose = 1 Or Verbose = 2 then
wscript.echo msgTXT
end if
end Function

'---End of Script

Thursday, July 29, 2010

Windows 2008 uzerinde Exhange Server 2007 Yedekleme sorunlari analizi
VSS Troubleshooting
Exchange Server 2007’de VSS ile alinan backup problemlerinin cozumu, islemin karmasikligi yuzunden zaman alabiliyor. Ozellikle CCR kullaniliyorsa, karmasiklik daha da artiyor ve problemin asil kaynagini bulmak zor oluyor. Problem; Exchange servislerinden (Information store veya Exchange Replication service), VSS servislerinden veya kullanilan backup yazilimindan kaynaklaniyor olabilir. Asagidaki adimlar kullanilarak problemin kaynagini tespit etmenize yardimci olabilir.
VSS t/shooting’de ilk adim. VSS Writer’larin durumlarinin kontrolu olmali. Asgidaki komutla (command prompt) bunu gorebilirsiniz.
Vssadmin list witers.
Cikti asagidaki gibi olacaktir. Exchange server 2007 yedegi aliyorsaniz, ciktida ‘Microsoft Exchange Writer’ ve ‘System Writer’in listelendigine ve stable olduklarindan emin olun.



Backup isleminde kullanilacak writer’in state’inin “Stable” oldugundan emin olun. Eger Failed veya backup almadiginiz halde “Waiting for completion” gibi bir state’de ise backup oncesi ‘Stable’ hale getirmeniz gerekli. Bunu VSS ve Ms Exchange Replication (MsExchangeRepl) servislerini yeniden baslatarak yapabilirsiniz.

Net stop VSS
Net Stop MsExchangeRepl
Net Start VSS
Net Start MsExchangeRepl

Bu islemden sonra Vssadmin list writers komutu ile ilgili Writer’in stable oldugunu kontrol ediniz.

Diger bir adimda backup isleminde gorev olan servisler icin eventlog seviyesini arttirmak. Bunun icin asagidaki servislerin event log seviyesini Expert yapiniz.
• MSExchange Repl\Service
• MSExchange Repl\Exchange VSS Writer
• MSExchangeIS\9002 System\Exchange Writer
• MSExchangeIS\9002 System\Backup Restore

Asagidaki komutla bu islemi yapabilirsiniz.
• Set-EventLogLevel "MSExchange Repl\Exchange VSS Writer" -Level Expert
• Set-EventLogLevel "MSExchange Repl\Service" -Level Expert
• Set-EventLogLevel "MSExchangeIS\9002 System\Exchange Writer" -Level Expert
• Set-EventLogLevel "MSExchangeIS\9002 System\Backup Restore" -Level Expert

Bu islemden sonra Application log’a dusecek olasi hatalar sizi cozume ulastirabilir. Sorunun backup yazilimindan kaynaklanip kaynaklanmadigini ise BETEST aracini kullanarak bulabilirsiniz.

BETEST Windows VSS SDK’si ile gelen bir uygulama. Bu arac Vss requestor olarak calisip, VSS uzerinden exchange yedegi almamizi sagliyor.
Windows 2008 icin Windows SDK’i asagidaki linkten indirebilirsiniz.
http://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC&displaylang=en

Tum SDK’i Exchange server’in kurulu oldugu makineye kurmaniza gerek yok. Herhangi bir x64 makineye SDK’i kurup (sadece developer tools’u kurmaniz yeterli) sadece ilgili VSSTools klasorunu exchange uzerine kopyalamaniz yeterli. 64bit icin VSS tools klasoru default kurulumda asagidaki yolda oluyor.

C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\x64\vsstools
VSSTools klasorunu exchange makineye tasidiktan sonra yedeginiz alacagimiz store’lar icin bir liste olusturmamiz gerekiyor. Listeyi xml veya text tabanli olusturabilirsiniz. Xml icin ornek vsstools icinde mevcut, burada text tabanli liste icin ornek verecegim. Text tabanli bilesen listesinde format asagidaki gibi olmali.

"": "" {"target" # "new target", ...}, ..."" : '",...";

Ornegin;
"{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}":"Microsoft Exchange Server\Microsoft Information Store\SMEXVMB03\25a14af4-35b8-49c3-b63b-348e49d80733";

WriterID : Ilgili Writer ID. Ornegin Exchange icin ‘Microsoft Exchange Writer’. Bunun ID’sini ‘vssadmin list writers’ ciktisindan alabilirsiniz.




: Ornekteki formatta yazilir. En sondaki GUID ilgili storage grubun guid’i. Bunu da asagidaki komutla alabilirsiniz

Get-StorageGroup xxx |fl name,guid




Eger yedegi pasif node uzerinden veya LCR’in pasif kopyasini almak istiyorsaniz, logical paht’e ‘Replica’ eklemeniz gerekiyor. CCR ve LCR’in pasif kopyasi icin format asagidaki gibi olacak.

"{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}":"Microsoft Exchange Server\Microsoft Information Store\Replica\SMEXVMB03\25a14af4-35b8-49c3-b63b-348e49d80733";
Birden fazla storage grup’u ayni anda almak isterseniz ‘componnet logical path’ler arasina bosluk girerek yazabilirsiniz. En sonu “;” ile bitirmeniz gerekiyor.

Asagidaki gibi.
"{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}":"Microsoft Exchange Server\Microsoft Information Store\SMEXVMB03\25a14af4-35b8-49c3-b63b-348e49d80733" "Microsoft Exchange Server\Microsoft Information Store\SMEXVMB03\3fc7815f-cd3a-4bac-b63b-348e49d435d39”;

Bu formatta hazirladiginiz text’i component.txt olarak kaydedin ve asagidaki komutla yedegi baslatin.

BETEST.exe /B /E /T FULL /S output.XML /C components.txt /D c:\betest > output.txt

/B: backup only
/T: backup türü, full, copy, incremantal vs.
/S: geri donuste isinize yaracak output ciktisi.
/D yedegin konulacagi directory.

Yedegi baslattiktan sonra event viewer application log uzerinden islemleri takip edebilirsiniz. Eger full backup aliyorsaniz, basarili bir backup sonrasinda aktif kopya uzerinde loglar basarili bir sekilde silinecektir. Asagidaki event’i aktif kopyada görüyor olmaniz gerekiyor.

ESE BACKUP event 916
Information Store (7632) Deleting log files E:\SMEXVMB03\LOG02\LOG\E010006AEB6.log to E:\SMEXVMB03\LOG02\LOG\E010006B090.log.

Exchange Server 2007 Service Pack 3 kurulduktan sonra CCR’da pasif node uzerinden yedek alindiginda loglarin silinemesi ile ilgili bilinen bir sorun var. Bu durum da aktif kopya uzerinde yukaridaki event yerine, asagidaki event dusuyor ve loglar silinmiyor. Bu yazinin tarihi itibariyle bu sorun henuz fix edilmemisti, eger bu semptomlari aliyorsaniz Microsoft destek hattindan ilgili fixi alabilirsiniz. Veya hotfix yazilana kadar yedegi aktif node uzerinden almaniz gerekebilir.

Log Name: Application
Source: ESE
Date: 7/27/2010 9:00:46 AM
Event ID: 214
Task Category: Logging/Recovery
Level: Error
Keywords: Classic
User: N/A
Computer: activeNode.contoso.com
Description:
MSExchangeIS (2004) First Storage Group: The backup has stopped with error -521.


VSS’de karsilacagini diger bir bilinen sorun ise Writer listesinde ‘System Writer’ in listelenmemesi. Bu durumda da Exchange yedegi alinmasinda problem cikmakta. Bu genelde asagidaki klasorlerin yetkilerinden kaynaklanmaktadir. System ve Administrators’in bu klasorler ve icindeki item’lar uzerinde yetkili olduklarindan emin olun.

• %Windir%\Winsxs\FileMap
• %windir%\winsxs\Temp\PendingRenames

Bundan sonraki tshooting adimlari ilgili coponentin trace’i alinarak yapilabilir.Fakat bu trace’in analizi icin Microsoft Destek merkezinden yardim almaniz gerekmektedir.

ExTrace kullanilarak ilgili tag’lerin trace’ini alabilirsiniz.

Asagidaki registry degisikligi ilse VSSTracing’i acabilirsiniz.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS\Debug\Tracing]
"TraceFile"="C:\\VSSTrace.log"
"TraceToFile"=dword:00000001
"TraceToDebugger"=dword:00000001
"TraceForceFlush"=dword:00000000
"TraceFileLineInfo"=dword:00000001
"TraceEnterExit"=dword:00000001
"TraceLevel"=dword:ffffffff

VSS ile ilgili asagidaki fixler mevcut. Bunlari kontrol etmenizde fayda var.
http://support.microsoft.com/default.aspx?scid=kb;EN-US;975928
http://support.microsoft.com/default.aspx?scid=kb;EN-US;983425

Alintilar:
http://msdn.microsoft.com/en-us/library/bb530721(VS.85).aspx
http://msexchangeteam.com/archive/2008/08/25/449684.aspx

Monday, June 22, 2009

Following script updates an exchange component's diagnostic level for a server array. It can be usefull when you need to change exchange components' diagnostic level for multiple exchange servers.

'Reads and updates Exchange diagnostic level
'Written by Boran Duzgun

Const HKEY_LOCAL_MACHINE = &H80000002
diaglevel = 7 'Between 0-7

'Enter diagnostic level component
keystrKeyPath = "SYSTEM\CurrentControlSet\Services\MSExchangeTransport\Diagnostics"

'Enter Sub component valueName
strValueName = "6 SMTP Protocol"

ServerList =Array("Servexf01","Servexf02","Servexf03","Servexf04","Servexf05","Servexf06","Servexf07","Servexf08","Servexf09","Servexf10")

For i=0 To 10 Step 1

strComputer = ServerList(i
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\default:StdRegProv")
oReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue
WScript.Echo Sunucu(i) &" \ " & strValueName & "Old Value : " & dwValue
oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,diaglevel
oReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue
WScript.Echo Sunucu(i) & " \ " & strValueName & "New Value : " & dwValue

Next

Monday, December 31, 2007

EFS: Kurtarma Metotları - Bölüm 1

Encrypting File Ssytem (EFS) ile dosyaların şifrelenmesi, gerekli geri dönüş önlemleri alınmadığı durumlarda sistem yöneticisinin başını ağrıtan en önemli konuların başındadır. Önemli veriyi korumak amacıyla yapılan şifreleme, kullanıcının private key’inin kaybedilmesi veya bozulmasıyla verinin çözümlenmesini imkansız hale getirmekte ve sistem yöneticisi için çok önemli bir sorun olabilmektedir.

Kullanıcının EFS private key’i, kullanıcı profilinde saklanır ve şifrelenmiş dosyalar ise ağda herhangi bir yerde olabilir ve çoğu zaman sistem yöneticisi tarafından kullanıcının EFS kullandığı dahi bilinmemektedir. Kullanıcının bir sorunu olduğunda sık yapılan problem çözme yöntemlerinin başında ise, bilgisayarın yeniden kurulması veya profilin yeniden yaratılması gelir. Bu işlemler yapılırken kullanıcının private key’inin yedeğinin alınması atlanır ve geri dönüş önlemleri alınmamış ise veriye bir daha ulaşılamaz. Eminim bu senaryo ile daha önce karşılaşmışsınızdır.

Kullanıcının private key’inin kaybolması veya bozulması durumunda, şifrelenmiş verinin çözülmesi için iki farklı sistematik metot mevcut. Bunlardan ilki ve en yaygın olarak kullanılan metot; Data Recovery Agent (DRA) kullanımıdır. Bu metot, dosya şifreleme anahtarının (File Encryption Key-FEK) DRA private key’i kullanarak çözülmesi prensibine dayanır. Bu metodu kullanmak için yapılandırılmış domainde, şifrelenmiş dosya, hem şifreleyen kullanıcının hem de DRA’nın private key’i kullanılarak çözümlenebilir.

İkinci metot ise Key Recovery Agent (KRA) kullanılarak, kullanıcının private key’ini kaybetmesi durumunda Certification Authority (CA) veri tabanından tekrar kullanıcıya verilmesi prensibine dayanır. Bu metot için ortamınızda Windows Enterprise CA olması ve private key’leri depolayacak şekilde yapılandırması gerekmektedir.

Makalemin devamını okumak için linke tıklayınız.. http://mshowto.org/index.php?option=com_content&task=view&id=298&Itemid=1
Problem: “Event ID: 13042, Self-Update is not working”

You receive above event logged in the application log. In case “SSL required and SSL 128 required” check box in the directory security tab of SelfUpdate and Client WebSErvice are sellected this event occurs.

To resolve this issue, clear the check box for “SSL required” and “SSL 128 required” from mentioned directories.

Wednesday, December 26, 2007

Exchange FE Monitoring Problem: “EAS Logon Failed” and Owa Logon Failed

Following MOM allerts occur when monitoring Exchange FE server that have M07-040 security bulletin applied. This annoying problem was only resolving as removing the security patch. At last, Microsoft published a hotfix to resolve this problem. Contact to MS Customer service to obtain hotfix 943511 (http://support.microsoft.com/?id=943511).

Description:
EAS Logon failed.
URL: https://localhost/Microsoft-Server-ActiveSync?Cmd=GetHierarchy&User=ALBATROSMOM&DeviceId=EASMonitor&DeviceType=SmartPhone
Error: 401
Descripton: Unauthorized

This event was generated by the script: "Exchange 2003 - EAS logon verification"

Description:
OWA Logon failed.
URL: https://localhost/Exchange/ALBATROSMOM
Descripton: Authentication failed. The logon request was redirected back to the logon page. This may indicate the credential for Mailbox Access Account is incorrect. Run the Exchange Management Pack Configuration Utility again to verify.
Other Details: undefined

This event was generated by the script: "Exchange 2003 - OWA logon verification"

Friday, June 08, 2007

Consider disabling Exchange MTA stacks service in Exchange 2003.

Exchange Message Transfer Agent stacks service provides Microsoft Exchange x.400 services. Exchange x.400 services are used for connecting to Exchange 5.5 servers. You may consider to disable MTA stacks service in Exchange 2003 if you don't have Exchange 5.5 in your enviroment.

Microsoft does not support disabling MTA stacks in Exchange 2000. Because this service is core operational service for Exchange 2000 and also required for to correctly process mailbox moves and other additional core processes. This behaviour has been removed in Exchange 2003.

I disabled ExMTA with guidance of following article
(KB810489). As described in article, you must do some settings for not to get some error. If you are using mom agent to monitor excahge, remove MsExchangeMTA from Monitored Services value under "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Exchange MOM" key. I have several mbx store so i wrote following batch file to enter “Gateway in Threads” and “Gateway out Threads” values to registry easily.

@Echo off

//Change following ID’s and servername with yours

set storelist=Private-259fb6c9-1894-467b-b354-8302d1f72973 Private-32e11f31-6cf8-4cda-a839-9e4bcd5fa13a Private-31fe4a60-a306-48f8-abff-5082ddd01f1e

for %%i in (%storelist%) do (
echo Setting %%i ...

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\<servername>\%%i /v "Gateway In Threads" /t REG_DWORD /d 0

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\<servername>\%%i /v "Gateway Out Threads" /t REG_DWORD /d 0

)

echo.
Echo Command Completed

Monday, December 25, 2006

Politika Yönetimi Scripting Örnekleri

AD (Active Directory) veritabanı ile ağımızdaki tüm objeleri bir veritabanında topladıktan sonra, Group Policy Object (GPO) olarak adlandırılan politikalar ile objelerimizi yönetiyoruz. Bu makalede politikalar ile ilgili problemleri çözmede veya
GPO’ların durumlarını sorgulayabileceğimiz scriptlere değineceğim.
Bu scriptler yardımıyla çok sık karşılaşılan politika (gpo) problemlerini çözebilir, yarattığınız fakat artık kullanılmayan politikalarınızı bulabilir, tüm politikalarınızı yeniden yetkilendirebilir veya uygulanan politika ağacını çıkarabilirsiniz. Ayrıca kendi yazdığınız uygulamalarınız içinde de bu scriptleri kullanabilirsiz.
Devamı için sizi sitemize alalım :) http://www.mshowto.org/

Thursday, December 21, 2006

DNS Üzerinde Geçerli Olmayan Kayıtların Tanımlanması ve Temizlenmesi (DNS Aging/Scavenging)

Bu makalede DNS üzerindeki kaynak kayıtlarını (Resource Records- RR) güncel tutmak amacıyla, zone üzerindeki geçerli olmayan kayıtların (stale records -belirli bir suredir güncellenmeyen kayıtlar) otomatik olarak nasıl tanımlanacağını ve bu kayıtların nasıl silineceğine değineceğim. Bu işleme DNS aging/scavenging özelliği deniliyor.
Dinamik update özelliği ile birlikte, istemcinin dns kaydı (Resource Record-RR) DHCP tarafından veya belli periyodlar ile istemci tarafindan (dnsclient servisi) güncellenir. Fakat dinamik olarak yaratılmış bu kayıtlar, istemcinin ağa uzun süre veya bir daha hiç dahil olmayacağı durumlarda otomatik olarak silinemez. Bu yanlış kayıtlar DNS üzerinde yer kaplamasının yanında sorgularda olmayan makineleri döneceği icin zamanla baş ağrıtır ve dns performansını düşürür.
Öncelikle DNS'in aging/scavenging özelliğini doğru bir sekilde kullanabilmek için kayıtlarınızın dinamik olarak güncelleştirilebiliyor olması gerekiyor. Dinamik güncelleştirmenin kapalı olduğu zone’lar ve manuel yaratılan kayıtlar için bu mekanizmayı kullanamazsınız. DNS’in bu özelliğini verimli olarak kullanabilmek için terminolojisini de iyi anlamak gerekiyor.
DNS Aging, dns üzerinde kayıtlar için bir time stamp oluşturulması ve tanımlanan süreler için bu kaydın nitelendirilmesi işlemine deniliyor. DNS scaveng işlemi ise, bu nitelendirme işlemi sonunda stale records (bayat – belirtilen süre kadar güncellenmemiş) olarak nitelendirilen kayıtların temizlenmesi işlemidir.

Makalemin devamını okumak için tıklayınız.

http://mshowto.org/index.php?option=com_content&task=view&id=180&Itemid=70



Friday, November 24, 2006

Domain bazında EFS kullanımının engellenmesi.

Büyük organizasyonlar EFS (Encrypting File System) kullanarak dosya şifrelemek yönetimsel bazı sorunları doğurabiliyor. Varsayılan olarak domain kurulduğunda Domain Administrator kullanıcısı Data Recovery Agent olarak tanımlanır ve private key'i ilk kurulan bu domain controller'da tutulur. Fakat ilk kurulan Domain controller'in yeniden kurulması gibi durumlarda DRA'nın private key'inin yedeğinin alınması bir çok kere unutuluyor. Eğer kullanıcının local de saklanan private key'i de istemcisinin yeniden kurulması veya profile'nın silinmesi sonrasında kullanıcının encrypt ettiği dosyalara erişim imkansız hale geliyor. Veya kullanıcının user account'unun tamamen silinmesi gibi..

Milli açık anahtar altyapısını kullanmamız nedeniyle EFS'den ayrı bir şifreleme yazılımımız var. Bu sertifikalar için bir ortamda CA olduğu için EFS kullanımı gereksiz olabiliyor. Bu yüzden EFS'i domain bazında kullanımını engelleyeceğiz.

EFS'in tamamen disable edilmesi, hem encryption hem de decryption işlemini engelleyecektir. Yani kullanıcılar bilerek veya bilmeyerek encrypt ettikleri dosyalar varsa, politikanın uygulanması sonrasında bu dosyalara erişemeyeceklerdir.

EFS'i disable için Public Key Policies altında Encryptin File System'e sağ tıklayın ve properties'i açın ve "Allow Users to encrypt file using Encrypting Files System (EFS)" check box'ı kaldırın.

Fakat bu politika diğer politikalar gibi uygulanma sırası önemli değildir. Yani bilgiayara uygulanan herhangi bir politikada disallow yapılması, sonrası uygulanan tüm politikalarda Allow olsa bile EFS bilgisayarda kullanılmayacaktır. Bir nevi security'deki Deny gibi davranıyor.

Kullanıcı politika sonrasında dosyalarını tekrar isteyebilir. Bu durumda mutlaka bilgisayarı uyguladığınız politikadan etkilenmeyen bir OU'ya taşıyarak kurtarabilirsiniz. Bu yüzden bu politikayı, üst OU'larda değilde hiyerarşik olarak daha alt OU'lara uygulayın ve sorun durumunda biligisayar hesabını bir üst OU'ya move edip, gpupdate /force işlemini yapın.

Tuesday, November 14, 2006

Etki Alanında Bilgisayar Hesabı Şifresi Nasıl Resetlenir ve Bu İşleme Ne Zaman İhtiyaç Duyulur?

Bir windows tabanlı bilgisayarı etki alanına (domain) kattığınızda etki alanı veritabanında bu bilgisayar için bir hesap yaratılır. Aynı anda kimlik denetimi (authentication) güvenliğinin olması için bu hesap için bir de şifre (LSA Secret) oluşturulur. Bu şifre hem bilgisayar üzerinde hem de etki alanı veritabanında saklanır.

Güvenlik nedeni ile bu şifre, ait olduğu bilgisayar tarafından belli aralıklar ile değiştirilir. Varsayılan olarak bu süre 30 gündür. Bilgisayar, şifre geçmişinde (password history) geçerli şifreyi ve bir önceki şifreyi tutar. Bilgisayar şifreyi değiştirdiğinde, sunucu veya diğer etki alanı bilgisayarı ile kimlik denetimi yaparken sunucu bu değişikliği henüz algılamadığı için bir önceki şifreyi kullanır ve kimlik denetimi başarılı bir şekilde yapılır. İşlemler sonrasında da şifre değişikliği sunucuya aktarılır.

Makalemin devamını okumak için aşağıdaki linke tıklayınız
http://mshowto.org/index.php?option=com_content&task=view&id=173&Itemid=33

Tuesday, October 31, 2006

UserAccountControl attribute'u için hakların ayarlanması.

User objesinin disable/enable veya lockout (windows 2000'de) olup olmadığı gibi durumlarını objenin UserAccountControl attribute'nun numeric değerine göre belirlenir. Bu değerler için objenin durumunu aşağıdaki makalede bulabilirsiniz. Bu değerleri otomatik olarak değiştirmek için veya raporlama amaçlı bu attribute'u kullanarak kolayca script yazabilirsiniz.

http://support.microsoft.com/kb/305144

Bana gelen soru şu olmuştu; operatörlerin kullanıcıları disable/enable edebilme haklarını almak istiyoruz. Fakat OU üzerindeki Security listesinde user objesi için Enable/disable seklinde bir hak yok. Yukarıda da belirttiğim gibi objenin bu gibi durumları objenin UserAccountControl attribute'unun değerine göre belirleniyor. Delegated Users'dan (operatorler) bu hakkı "Account Restrictions" hakkını alarak yapabiliyoruz. Fakat bu Account restriction hakkı, bir çok attribute'a erişimi denetliyor. Yani sadece UserAccountControl attribute'u değil aşağıdaki attribute'ların da haklarını da ayarlıyor.

Property set containing user attributes that describe account restrictions.

Applies to: Computer, User

• accountExpires

• pwdLastSet

• userAccountControl

• userParameters

• tokenGroupsNoGCAcceptable

Active Directory object permissions


Dolayısıyla bu hakkın alınması, operatorun operatorluk işini yapamasina neden olabilir. Bu yüzden gelen isteği reddedip, bu hakkın operatorlerden alınmasını engelledik ve kendi isimizi biraz daha azalttık :>)

Tuesday, September 12, 2006

Exchange 2003 Üzerinde Banner Değişimi İle Güvenliğinizi Arttırın

Exchange 2003 üzerindeki Virtual Server’ların otomatik bağlantı yanıtı olan banner’lar sunucuya Telnet üzerinden bağlanıldığında veya başka bir saldırı şekliyle atak yapıldığında sunucunuz ile ilgili bazı bilgileri karşı tarafa verir. Bu bilgiler, Exchange üzerindeki işletim sisteminin versiyonu ve üzerine yüklü servis paketi bilgisidir. Kötü amaçlı kişiler bu bilgileri öğrenerek sistem açıklarını bulabilir. Verilen bu yanıtları değiştirmek bir seviye de olsa güvenliğinizi arttıracaktır. Bu makalemde Exchange 2003 üzerinde çalışan SMTP, IMAP4 ve POP3 virtual server’larının varsayılan bağlantı yanıtlarının (banner) nasıl değiştirileceğini inceleyeceğiz.

Banner bilgisini değiştirmek için bir çok yol bulunuyor. Bu makalede Metabase Explorer araçları ile doğrudan metabase üzerinde değişiklik yaparak banner değişikliğine gideceğiz. Ayrıca sonuca scripting kullanarakta ulaşmak mümkün.

İşlemler sırasında metabase’in bozulup, geri dönüşü olmayan bir noktaya gelebileceğinizi düşünürsek, başlamadan önce IIS Metabase yedeği almanızı öneririm.

Default SMTP Virtual Server banner’ını görelim. SMTP banner için aşağıdaki komutu command prompt’da çalıştırın.

Telnet Sunucu_Adı 25

Yanıt aşağıdaki gibi olacaktır.



http://www.mshowto.org adresinde yayımlanan makalemin devamını okumak için tıklayınız.

Wednesday, September 06, 2006

Site'lar arası Urgent Replication (İvedi Replikasyon)

Bildiğiniz gibi AD'deki bazı değişikliklerin ivedi olarak replikasyonu yapılır. Buna urgent replication deniliyor. Bu değişiklikler, account lockout, password değişikliği, account lockout policy'sinde yapılan değişiklikler, domain password policy'sinde yapılan değişiklikler gibi değişikliklerdir.

Fakat bu urgent replication tanımı karıştırılabiliyor. Yani tüm bu değişikliklerin hangi dc'de yapılırsa yapılsın tüm forest'a hemen replike olacağı zannediliyor. Yukarıdaki her işleme göre olay farklı olabiliyor. Bu değişiklikler sadece site içine hemen replike olur, site'lar arasında durum olaya göre değişiyor.

Urgent replikasyon aynı site icindeki dc'ler arasında replikasyonu ivedi olarak yapılır. Fakat sitelar arası replikasyon için, eğer site link üzerinde bunları geçirmesi için konfigurasyon yapmamışsanız normal replikasyon zamanınında yapılacaktır.

Fakat account lockout durumu için olay biraz daha farklıdır. Account lockout durumunda olayın olduğu dc bu durumu ivedi olarak PDC rolüne sahip DC'ye bildirir. Diğer site'lardaki DC'ler ise bu değişikliği normal replikasyon zamanında alırlar. Yani PDC ile aralarında bir urgent replikasyon olayı olmaz. Zaten account'un PDC üzerinde lockout'unun kaldırılması kullanıcının logon olması için yeterlidir.

Bu durumlarda şu şekilde problemler oluşabiliyor. Operator kendi site'inda kullanıcının lock'ını açıyor. Bir süre sonra kullanıcı tekrar lock oluyor. Fakat kullanıcı operator'un bağlandığı (Active Directory Users and Computers) DC'den farklı bir dc de lock olduğu için, operator bu lock'ı göremiyor. Kullanıcının lock olmadığı halde logon olamadığını düşünüyor ve System Admin'i arıyor.

Saturday, August 26, 2006

Active Directory Offline Defragmentation

Directory Servisi (DS) Active Directory (AD) veritabanı (Ntds.dit) için online defragmentation işlemini garbage-collection işleminin bir parçası olarak her 12 saatte bir yapar. Garbage-collection işlemi sırasında öncelikle tombstone süresi dolmuş objeler veritabanından tamamıyla kaldırılır, gereksiz log dosyaları temizlenir ve son olarak da online defragmentation (birleştirme) işlemi yapılır. Fakat bu online defragmentation sırasında veritabanını küçültemez. Yeni nesnelerin ve attribute’ların eklenmesiyle de Active Directory veritabanı (Ntds.dit) zamanla çok büyük boyutlara ulaşabilir. Bu boyutu küçültmenin yolu ise offline defragmentation yapmaktır.

Makalemin devamını okumak için aşağıdaki linke tıklayınız.
http://mshowto.org/index.php?option=com_content&task=view&amp;id=156&Itemid=33

Monday, August 21, 2006

Mshowto.org adresinde yayımlanan makalelerim

Repadmin ile Active Directory Replikasyonlarınızı Gözlemleyin
http://mshowto.org/index.php?option=com_content&task=view&id=154&Itemid=33

Klasör ve Dosya İzinlerinin Otomatik Düzenlenmesi (ACL)
http://mshowto.org/index.php?option=com_content&task=view&id=144&Itemid=33

Policy ile İstenmeyen Programların Çalışmasını Engelleyin
http://mshowto.org/index.php?option=com_content&task=view&id=136&Itemid=33

Thursday, July 27, 2006

Agimizdaki sunucu veya istemcilerin ne zaman acildigini (reboot) ettigini ogrenmek icin asagidaki scripti olusturdum. Patch dagitimi sonrasinda veya tum sunucular icin belirli araliklar ile ne zaman reboot ettiklerini ogrenmek istiyorsaniz isinize yarabilir.

Tum sunucu isimlerini "sunucu" dizisine ekleyip, diziyi sunucu sayisi kadar genisletin. Daha sonra bu sayiyi kadar for dongusu kullanın. Sonuclar d:\boot_zamanlari.txt dosyasına yazilacaktir.

'///////////////////////////////////////////////
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oWshNet = CreateObject("WScript.Network")
Const OpenAsASCII = 0
Const OverwriteIfExist = -1
sOutFile = "d:\boot_zamanlari.txt"

On Error Resume Next
dim sunucu(10)
sunucu(1) = "DCMSHOWTO1"
sunucu(2) = "DCMSHOWTO2"
sunucu(3) = "DCMSHOWTO3"
sunucu(4) = "DCMSHOWTO4
sunucu(5) = "FSMSHOWTO1"
sunucu(6) = "FSMSHOWTO2"
sunucu(7) = "EXCMSHOWTO1"
sunucu(8) = "EXCMSHOWTO2"
sunucu(9) = "SQLMSHOWTO1"
sunucu(10) = "ISAMSHOWTO1"

i=1
for i=1 TO 10 step 1
strComputer = sunucu(i)

' Connect to specified computer
Set objWMIService = GetObject( "winmgmts://" & strComputer & "/root/cimv2" )
' Display error number and description if applicable
If Err Then ShowError

Set colItems = objWMIService.ExecQuery( "Select * from Win32_OperatingSystem", , 48 )
For Each objItem in colItems
strTimeShift = Right( objItem.LastBootUpTime, 4 ) / 60
strBootYear = Left( objItem.LastBootUpTime, 4 )
strBootMonth = Mid( objItem.LastBootUpTime, 5, 2 )
strBootDay = Mid( objItem.LastBootUpTime, 7, 2 )
strBootDate = DateValue( strBootDay & "-" & strBootMonth & "-" & strBootYear )
strBootHour = Mid( objItem.LastBootUpTime, 9, 2 ) - strTimeShift
strBootMins = Mid( objItem.LastBootUpTime, 11, 2 )
If strBootHour < 0 Then
strBootHour = strBootHour + 24
strBootDate = DateAdd( "d", -1, DateValue( strBootDate ) )
End If
If strBootHour > 23 Then
strBootHour = strBootHour - 24
strBootDate = DateAdd( "d", 1, DateValue( strBootDate ) )
End If
strBootTime = strBootHour & ":" & strBootMins
strBoot = strBootDate & ", " & strBootTime
strMsg = "Last boot time of " & strComputer & ": " & strBoot
Next

' Display results
'WScript.Echo strMsg

Set fOutFile = oFSO.CreateTextFile _
(sOutFile, OverwriteIfExist, OpenAsASCII)
fOutFile.WriteLine strMsg

Next

fOutFile.Close

'Done
WScript.Quit(0)
'///////////////////////////////////////////////////////////////////

Wednesday, July 12, 2006

Kullanıcı home folder yetkilerinin düzenlenmesi

AD'de kullanıcılar için set edilmiş home folder yetkileri, kullanıcıların home folder üzerinde full kontrol hakkı olmasından dolayı, alt klasörlerde kullanıcı tarafından değiştirilebiliyor. Administrators ve System kullanıcılarının nesne üzerinde yetkisinin kaldırılması bazı yönetimsel sorunları doğuruyor.

Aşağıdaki script, homefolders klasöründeki her klasör için Administrators ve System kullancılarına Full kontrol hakkı verip, kullanıcının Full Control hakkını modify olarak değiştirmektedir.

Script'in çalışması için home folder'ın \\sunucu\share1\%username% olarak set edildigini varsayıyorum. Yani alt klasör isimleri ile domain kullanıcı adı aynı.

Linkten script'in zip halini indirebilirsiniz. Buraya koydugumda sayfa bozuldu. Link veriyorum. http://estetikplastikcerrahi.com/herkesekonut/yetkiduzenle.zip

Script için Subinacl'ye ihtiyacınız olacaktır. Resource kit içinde bulabilirsiniz.

Tuesday, June 06, 2006

How to force AD replication,

For AD partition;

repadmin /replicate dcfrom dcto dc=domainname,dc=com

example for domaindnszones partition;
repadmin /replicate dcfrom dcto dc=domaindnszones,dc=domainname,dc=com

You can also force replication for enterprise level with;
repadmin /syncall dcfrom /e /P
-e:enterprise level
-P:Push changes

For single object replication use "replsingleobj" parametre.

To force sysvol replication use ntfrs util;
ntfrsutil forcerepl dcto /r "DOMAIN SYSTEM VOLUME (SYSVOL SHARE)" /p dcfrom

*forcerepl parametre is not supported by old ntfrsutil versions..

Tuesday, May 23, 2006

Unable to open awservices.exe

Sometimes, you may give full permission for users (server operators etc.) to a service to manage server. The User may have problem with this service's executable file when user need to run this file at command prompt.

This problem occured when server operators run awservices.exe at command prompt to interpret functioning of Unicenter TND agent Tecnology.

To resolve this case, you must give full control permission on service dacl (discretionary access control lists). To do this beforo read dacl of service with;

"Sc sdshow awservices" command. The command genaretes results that like;

(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;PU)(A;;CCDCLCSWLOCRRC;;;LS)

Copy this results and add server operators group or the group which you want to add with neccesary permission.

To set new dacl to service, use following comand;

sc sdset awservices D:

SC
Communicates with the Service Controller and installed services. SC.exe retrieves and sets control information about services. You can use SC.exe for testing and debugging service programs. Service properties stored in the registry can be set to control how service applications are started at boot time and run as background processes. More information about SC click here
A problem that can't reach to machine on network.

PROBLEM: Couldn't reach to machine on network either rdp or ping even safe mode with networking. But the machine was up and no errors at eventviewer. Not resolved by resetting tcp/ip and winsock stack. No problem with nic or server services..

To determine the problem was very hard. I restarted machine without to run some services like IPSEC. Nema problema.. :) The problem was gone..

When I opened IPSEC Monitor with MMC, got error that 0x80070002. The problem occured after starting IPSEC .

CAUSE: corrupted polstore.dll

RESULOTION: regsvr32 polstore.dll

Rebuild a new local policy store. To do this, Click Start, click Run, type regsvr32 polstore.dll in the Open box, and then click OK

Related MS article http://support.microsoft.com/?kbid=912023
To reset TCP/IP http://support.microsoft.com/kb/299357
To reset and repair winsock http://support.microsoft.com/kb/811259

Monday, May 08, 2006

SYSVOL share permission sets default "everyone:read" and "authenticated users:full" when you promote server to domain controller. Windows Server 2003 domain controller unnecessarily provides too many permissions to the SYSVOL share for the Authenticated Users group. This situation is described in KB812538.

The ACLs (NTFS permissions) of items in the SYSVOL share do not allow Full Control access to members of the Authenticated Users group. However, if these permissions are inadvertently changed, members of the Authenticated Users group might have Full Control permissions in the default installation of Windows Server 2003.

I am managing 46 dc at different sites. I used RMTShare.exe to decrease share permissions. The command is;

RMTShare.exe \\DC1\SYSVOL /GRANT "Authenticated Users":R /REMOVE Everyone

You can use this command with bacth file or wbscritp.

Microsoft has placed the RMTShare.exe program on their FTP site at ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt40/i386/RMTSHAR.EXE.

Saturday, January 28, 2006

Setting Audit entries via batch file.

Setting Audit entries via batch file.
You can use this batch file to set auditing entry to a folder. This batch adds “delete subfolders and files” and “delete” auditing entries for “authenticated users” to TEST folder’s SACL. Send this batch to servers with psexec @file parametre to run.
------------
net use Z: \\Domain.com\sysvol\Domain.com\SCRIPTSZ:\SetACL.exe -on "F:\TEST" -ot file -actn ace -ace "n:s-1-5-11;p:delete;m:aud_succ;w:sacl;s:y" -ace "n:s-1-5-11;p:del_child;m:aud_succ;w:sacl;s:y"
net use Z: /delete
-------------
* SetACL is assumed in the \\Domain.com\sysvol\Domain.com\SCRIPTS* SetACL.exe is free for everyone. The current version of SetACL and more examples can be found on sourceforce.net

Monday, December 12, 2005

IBM x235 Server'larda Memory Leak problemi.

Server Raid Manager 7.10 kurulu IBM serverlerde snmp servisi gittikce artan bir memory kullanimina neden oluyor. Nonepaged pool ve paged pool'un tamamını kullandıktan sonra da bilgisayar çakılıp kaliyor.

Soruna snmp.exe'nin server raid manager ile gelen aus-snmp.dll'i kullanmasi neden oluyor. Sorunlu aus-snmp.dll (versiyon yok, boyut 198 kb olarak gozukuyor.) server raid manager update ile degisiyor. Sonrasinda sorun olusmuyor. Server Raid manager 8.20'ye update ettik.

PROBLEM: SNMP.EXE CAUSES MEMORY LEAK PROBLEM on IBM servers.

SYMPTOMS: The server hangs in 2 hours after restarts.

Event ID: 2019Source: SrvDescription: The server was unable to allocate from the system nonpaged pool because the pool was empty

Cause: aus-snmp.dll

Resulotion: updgrade Server Raid Manager.

Thursday, November 10, 2005

Administrator Group üyelerinine ait dosyaların owner'ının Administrators olma problemi.

Dosya sunucusunda olmaması gereken bir dosyanın sahibinin Administrators (local) olmasıyla patlak verdi olay. Local Administrators grubu üyelerinden biri server 2003 üzerinde bir dosya yarattıklarında owner Administrators gozukuyor. Boyle olunca da bir auditing yok ise dosyayı yaratanı bulamıyoruz.

Policy değişikliği ile sorunu çözdük.
Default Domain Policy /Computer conf. / Windows Settings / local policies
Security Settings \ Local Policies \ Security Options. The policy name is “System objects: Default owner for objects created by members of the Administrators group”

Geçmiş olsun..

Tuesday, October 25, 2005

Farkli bir site'daki print serverda tanımlı printerların AD'de listelenmeme problemi.

Print server farkli bir site da ise, sitenizdaki dc o print server uzerindeki printerlari oksuz kabul edip silebilir. Konu ile ilgili makale aşağıda.

Group policy'de "Directory Pruning Interval" ve "Directory Pruning Retry periods" daha buyuk degerler girmek ve, "Directory Pruning Interval" degerini "Never" yapmak yeterlidir. Tabi bunu dc'lerin etkilenecegi policy'de yapmak gerekiyor.

Printer Pruner May Prune All the Print Queue Objects on Its Site
http://support.microsoft.com/?kbid=246906

Monday, October 24, 2005

Yeni bir program kurdum. Resmi buraya gonderdi. Amacim photo bolumune eklemekti. Bakalım blog icinde goruluyor mu?


trabzon Posted by Picasa

Sunday, October 23, 2005

Merhaba Blog,

Başlayamıyorum çünkü geç oldu. Daha doğrusu yazacak birşey de bulamıyorum şimdi. Ama seni günlük ilgilendiğim problemleri not almak için oluşturdum. Umarım birileri için faydalı olur.

Geç oldu yatıyorum..