Performance charts for networking does not work on ESX/ESXi 4.1 Update 1
Posted by cemguneyli in News, Virt-vmware, Virtualization on May 20, 2011
Symptoms
- Performance charts for networking fail to work on ESX/ESXi 4.1 Update 1
- You are using bnx2x driver version 1.54.1.v41
Resolution
Additional Information
Storwize V7000 new features been released
Posted by cemguneyli in News, Stor-General, Stor-IBM, Storage on May 12, 2011
Storwize V7000 was introduced in October 2010 in IBM Storage Mid-range portfolio. V7000 archived one of the fastest product ramps in IBM history with more than 1.800 systems sold to more than 1.000 worldwide customers since general availability in November 2010. The products supports 10 GbE ports in new control enclosure models and this can increase ISCSI thoughput by up to 700 per cent. High performance 2.5-inch 146 GB, 15.000 rpm SAS drive is available and provides up to 30 per cent faster thoughput. Original disk drives choice is 2.5-inch 10.000 rpm SAS drives comes with 300, 450, 600 and 300 GB E-MLC SSD (enterprise-grade multilevel cell). Also 3.5-inch 2 TB 7.2K rpm Near-Line SAS disk is available. Two V7000 control enclosures (2U rack-mountable chasses) have Eight 8 Gbps FC host ports, Four 1 Gbps and optionally Four 10 Gbps ISCSI hosts ports. Per control enclosure 16 GB cache memory.
Two V7000 control enclosures can now be clustered to another V7000 control enclosure with IBM Storwize V7000 software v6.2, meaning doubling the capacity of a single managed V7000 up to 480 TB. The software has had built-in real time performance monitoring fuctionality added and the FlashCopy function can be used with Remote Mirror volumes, adding more choices to high-availability scenarios. This is similar to high-end storage products like DS8000.
Vmware vStorage API for Array Integration is now supported, meaning the array can now do storage work offloaded from the ESX server, enabling more VMs to be hosted and run. This is one of the most important features in this release. (v6.2)
When a customer is buying new V7000, IBM is offering data migration features for 60 days free. Which is enough for a company can migrate all the data from another storage device to V7000 himself and/or any storage devices behind V7000 as an external storage virtualization. Storwize V7000 can be upgraded from the smallest to the largest configuration without disruption. Existing V7000s can participate in clusters via a non-disruptive software upgrade to v6.2 and a cluster is managed as a single system. Once clustering is enabled then expansion enclosures can be added to scale capacity and/or a second control enclosure can be added to boost performance.
There is a Storwize V7000 plug-in for Vmware Vcenter wihch also supports virtualised external disk systems. The list of supported external systems now includes EMCs VNX, HDSs VSP, HP P9500 plus Texas Memory Systems RamSan-620. Lastly existing model 112 and 124 control enclosures can be upgraded to add 10 GbE support. ISCSI is getting important and more important because of agility and cost approaches.
As a reminder, i want to marked that usually everybody want 15K rpm HDD but 10K rpm HDD is better if you have a change to balance the performance impact. So V7000 can provide a better performance for 10K rpm HDD with SSD and/or 146 GB 15K rpm HDD. Result is with the right approach and calculation, you can get better performance compare to native 15K rpm HDD.
IBM has not yet added compression to the V7000 and it is expected at some future date. It said in September 2010 that, within 12-18 moths, we didsee the RACE integration into IBMs block storage products; we may some time to wait.
Most of the new V7000 functionality will be available in June this year . There is no extra feature to order and no extra charge for clustering. The Vcenter plug-in will be available at no charge on 30 June (for v6.1 software) and 31 July (v6.2 software).
http://www-03.ibm.com/systems/storage/disk/storwize_v7000/index.html
Search,Enable or Disable user/computer accounts in Active Directory over Web page (LDAP ASP)
Posted by cemguneyli in ete, Microsoft, System on May 11, 2011
through this code/ASP in below/file, you can search users,computers, printers and other objects in Active directory over web page, as a result of this search, you can get object’s location in AD. You can enable and disable the user/computer accounts of this page in Active Directory. Also You’ll able to move accounts into a Organization Unit when disable or enable accounts. (you can set different Organization Unit for Enable and Disable process). I mean you can collect disabled user/computer accounts into one Organization Unit or separated OUs.
To publish this ASP page over web site in IIS 6 or 7,ASP page need administrative privilege for working but for search just need authorized users. So at least ISS default authentication method should be change to basic authentication. For prevent unauthorized user to disable/enable accounts in Active Directory.
You can download ASP file here
source : http://www.emrullahekmekci.com.tr/?p=400
<%
‘
‘ 10 / 05 /2011 — Emrullah Tahir Ekmekçi
‘ Search, Enable or Disable Users and Computer account in Active Directory over Web browser
‘ 1.0
response.charset=”windows-1254″
Response.CacheControl = “no-cache”
response.Clear()
%>
<title>Search/Enable/Disable Users/Computers Accounts</title>
<body>
<br>
<br>
<center><form id=”form1″ name=”form1″ method=”post” action=”ADAramaAcmaKapama.asp”>
<label>User/Computer name
<input name=”is” type=”hidden” value=”is” /><input type=”text” name=”uname” id=”uname” />
</label>
</form></center>
</body>
</html>
<%
Dim strCN, objRootDSE, strDNSDomain, adoCommand, adoConnection
Dim strBase, strFilter, strAttributes, strQuery, adoRecordset
Dim strDN, strDisplay, strObjectCategory, intIndex
‘ Kullanici ve Bilgisayar hesabi acma ve kapatma
if request(“hesap”) <> “” and request(“y”) <> “” and request(“t”) <> “” then
strCN = request(“hesap”)
ka = request(“y”)
Set objRootDSE = GetObject(“LDAP://RootDSE”)
strDNSDomain = objRootDSE.Get(“defaultNamingContext”)
Set adoCommand = CreateObject(“ADODB.Command”)
Set adoConnection = CreateObject(“ADODB.Connection”)
adoConnection.Provider = “ADsDSOObject”
adoConnection.Open “Active Directory Provider”
adoCommand.ActiveConnection = adoConnection
strBase = “<LDAP://” & strDNSDomain & “>”
strFilter = “(cn=” & strCN & “*)”
strAttributes = “cn,distinguishedName,sAMAccountName,name,userAccountControl”
strQuery = strBase & “;” & strFilter & “;” & strAttributes & “;subtree”
adoCommand.CommandText = strQuery
adoCommand.Properties(“Page Size”) = 100
adoCommand.Properties(“Timeout”) = 30
adoCommand.Properties(“Cache Results”) = False
Set adoRecordset = adoCommand.Execute
Const ADS_UF_ACCOUNTDISABLE = 2
Set objUser = GetObject (“LDAP://” & adoRecordset.Fields(“distinguishedName”))
strOUDN = “OU=DisabledComputers,DC=fabrikam,DC=com” ‘ Disabled computers account will be moved this ou
strOUDNE = “CN=Computers,DC=fabrikam,DC=com” ‘ Enabled computers account will be moved this ou
strOUDNU = “OU=DisabledComputers,DC=fabrikam,DC=com” ‘Disabled users account will be moved this ou
strOUDNEU = “CN=Users,DC=fabrikami,DC=com” ‘ Enabled users account will be moved this ou
intUAC = objUser.Get(“userAccountControl”)
if ka = “k” then
if request(“t”) = “u” then
Set objOU = GetObject(“LDAP://” & strOUDNU)
objUser.Put “userAccountControl”, intUAC OR ADS_UF_ACCOUNTDISABLE ‘ User account is closed.
objUser.SetInfo
objOU.movehere objUser.ADsPath, objUser.name ‘ User account is moving.
end if
if request(“t”) = “b” then
Set objOU = GetObject(“LDAP://” & strOUDN)
objUser.accountdisabled = true ‘ Computer account is closed.
objUser.SetInfo
objOU.movehere objUser.ADsPath, objUser.name ‘ Computer account is moving.
end if
response.write “Account has been closed”
elseif ka = “a” then
if request(“t”) = “u” then
Set objOU = GetObject(“LDAP://” & strOUDNEU)
objUser.Put “userAccountControl”, intUAC XOR ADS_UF_ACCOUNTDISABLE ‘ User account is open.
objUser.SetInfo
objOU.movehere objUser.ADsPath, objUser.name ‘ User account is moving.
end if
if request(“t”) = “b” then
Set objOU = GetObject(“LDAP://” & strOUDNE)
objUser.accountdisabled = false ‘ Computer account is open.
objUser.SetInfo
objOU.movehere objUser.ADsPath, objUser.name ‘Computer account is moving.
end if
response.write “Account has been opened”
end if
response.Redirect “ADAramaAcmaKapama.asp?uname=”&request(“hesap”)&”&is=1″
adoRecordset.Close
response.End()
end if
‘ object search
if request(“uname”) = “” and request(“is”) <> “” then
%><p><b><center>User/Computer name can not be empty.</center></b></font></p><%
elseif request(“uname”) <> “” and request(“is”) <> “” then
strCN = request(“uname”) & “*”
if len(strCN) <4 then
response.Clear()
Response.Write(“Please enter least 3 char.”)
Response.end
end if
Set objRootDSE = GetObject(“LDAP://RootDSE”)
strDNSDomain = objRootDSE.Get(“defaultNamingContext”)
Set adoCommand = CreateObject(“ADODB.Command”)
Set adoConnection = CreateObject(“ADODB.Connection”)
adoConnection.Provider = “ADsDSOObject”
adoConnection.Open “Active Directory Provider”
adoCommand.ActiveConnection = adoConnection
strBase = “<LDAP://” & strDNSDomain & “>”
strFilter = “(cn=” & strCN & “)”
strAttributes = “cn,distinguishedName,sAMAccountName,name,userAccountControl”
strQuery = strBase & “;” & strFilter & “;” & strAttributes & “;subtree”
adoCommand.CommandText = strQuery
adoCommand.Properties(“Page Size”) = 100
adoCommand.Properties(“Timeout”) = 30
adoCommand.Properties(“Cache Results”) = False
Set adoRecordset = adoCommand.Execute
If (adoRecordset.EOF = True) Then
Response.Write(“<center>No record found</center>”)
Response.end
End If
‘ Table has been created what is object will be show.
Response.Write(“<table width=100% height=100% ><tr width=100% height=100% ><td width=100% height=100% align=center valign=center><table border=’1′>”)
Response.Write(“<tr><th> Account Name </th><th> Computer/User name </th><th> Status</th><th> Type </th><th> DN </th></tr>”)
Response.Write(“<font size=-2>”)
Do Until adoRecordset.EOF
vSAMAccountName= adoRecordset.Fields(“sAMAccountName”).Value
vName = adoRecordset.Fields(“name”).Value
vUserAccountControl= adoRecordset.Fields(“userAccountControl”).Value
vDistinguishedName= adoRecordset.Fields(“distinguishedName”).Value
AKR = 0
if vUserAccountControl = 512 then
AKR = 1
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vSAMAccountName&”&y=k&t=u’ title=’Kapatmak için tiklayin’><center> Close</center> </a>”
elseif vUserAccountControl = 514 then
AKR = 0
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vSAMAccountName&”&y=a&t=u’ title=’Açmak için tiklayin’><center> Open </center></a>”
elseif vUserAccountControl = 544 then
AKR = 1
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vSAMAccountName&”&y=k&t=u’ title=’Kapatmak için tiklayin’><center> Close/ilsd </center></a>”
elseif vUserAccountControl = 66048 then
AKR = 1
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vSAMAccountName&”&y=k&t=u’ title=’Kapatmak için tiklayin’><center> Close/s </center></a>”
elseif vUserAccountControl = 66050 then
AKR = 0
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vSAMAccountName&”&y=a&t=u’ title=’Açmak için tiklayin’><center> Open/s </center></a>”
elseif vUserAccountControl = 4096 then
AKR = 1
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vName&”&y=k&t=b’ title=’Kapatmak için tiklayin’><center> Close </center></a>”
elseif vUserAccountControl = 4128 then
AKR = 1
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vName&”&y=k&t=b’ title=’Kapatmak için tiklayin’><center> Close </center></a>”
elseif vUserAccountControl = 4098 then
AKR = 0
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vName&”&y=a&t=b’ title=’Açmak için tiklayin’><center> Open </center></a>”
else
vUserAccountControlDesc = vUserAccountControl
end if
cuc = instr (vSAMAccountName,”$”)
if vUserAccountControl <> “” then
if cuc = 0 then Response.Write(“<tr><td> ” & vSAMAccountName & ” </td>”) else Response.Write(“<tr><td></td>”)
if AKR = 0 then
response.write (“<td style=’background-color: #FF0000′> “&vName&” </td>”)
else
response.write (“<td style=’background-color: #00FF00′> “&vName&” </td>”)
end if
if cuc = 0 then
Response.Write(“<td style=’background-color: #667C26′>” & ” User ” & “</td>”)
else
Response.Write(“<td style=’background-color: #4863A0′>”& ” Computer ” & “</td>”)
end if
Response.Write(“<td>” & vUserAccountControlDesc & ” </td>”)
Response.Write(“<td align=right > ” & vDistinguishedName & ” </td>”)
else
end if
Response.Write(“</td></tr>”)
adoRecordset.MoveNext
strDisplay = 1
Loop
adoRecordset.Close
if strDisplay = “” then Response.Write(“Can not be search —” & strDisplay & “—“)
adoConnection.Close
Response.Write(“</font>”)
Response.Write(“</table></td></tr></table>”)
Response.Write(“<br><align=left>P.S. :<br>Open/ilsd = Password will change first logon<br>Open/s = Password never expire<br>Close/s= Password never expire<br><br><br><br>”)
Response.End()
end if%>
Web’ten Active Directory’deki Kullanıcı ve Bilgisayar hesaplarını Enable/Disable yapılması (ASP ile)
Posted by cemguneyli in ete, Microsoft on May 10, 2011
Aşağıda ve linkte bulunan asp kodları/dosyası ile, Active Directory’deki kullanıcı ve bilgisayar hesapları arasında arama yapabilir, nesnelerin Active Directory içerisindeki yerini öğrenebilir ve kullanıcı ve bilgisayar hesaplarını kapatıp açabilirsiniz. Kapatılan kulanıcı ve bilgisayar hesaplarını istediğiniz OU’da toplayabilir veya açtıklarınızı istediğiniz OU ya taşıyabilirsiniz.
Bu ASP dosyasını çalışabilmesi yayınladığınız web sitesi için IIS yapılacak tek ayar ise ; web site’ın authentication method’unu Basic authentication yapmak, böylece yetkisiz kullanıcılar Active Directory’de arama yapabilecekler fakat, enable/disable veya nesne taşıması yapamıyacaklar.
Dosyayi buradan indirebilirsiniz
Kaynak : http://www.emrullahekmekci.com.tr/?p=379
<%
‘
‘ 10 / 05 /2011 — Emrullah Tahir Ekmekçi
‘ Kullanici ve Bilgisayar hesaplarinin web üzerinden Enable/Disable yapilmasi
‘ 1.0
response.charset=”windows-1254″
Response.CacheControl = “no-cache”
response.Clear()
%>
<title>Kullanici/Bilgisayar hesabi arama/acma/kapatma</title>
<body>
<br>
<br>
<center><form id=”form1″ name=”form1″ method=”post” action=”ADAramaAcmaKapama.asp”>
<label>Nesne adi
<input name=”is” type=”hidden” value=”is” /><input type=”text” name=”uname” id=”uname” />
</label>
</form></center>
</body>
</html>
<%
Dim strCN, objRootDSE, strDNSDomain, adoCommand, adoConnection
Dim strBase, strFilter, strAttributes, strQuery, adoRecordset
Dim strDN, strDisplay, strObjectCategory, intIndex
‘ Kullanici ve Bilgisayar hesabi acma ve kapatma
if request(“hesap”) <> “” and request(“y”) <> “” and request(“t”) <> “” then
strCN = request(“hesap”)
ka = request(“y”)
Set objRootDSE = GetObject(“LDAP://RootDSE”)
strDNSDomain = objRootDSE.Get(“defaultNamingContext”)
Set adoCommand = CreateObject(“ADODB.Command”)
Set adoConnection = CreateObject(“ADODB.Connection”)
adoConnection.Provider = “ADsDSOObject”
adoConnection.Open “Active Directory Provider”
adoCommand.ActiveConnection = adoConnection
strBase = “<LDAP://” & strDNSDomain & “>”
strFilter = “(cn=” & strCN & “*)”
strAttributes = “cn,distinguishedName,sAMAccountName,name,userAccountControl”
strQuery = strBase & “;” & strFilter & “;” & strAttributes & “;subtree”
adoCommand.CommandText = strQuery
adoCommand.Properties(“Page Size”) = 100
adoCommand.Properties(“Timeout”) = 30
adoCommand.Properties(“Cache Results”) = False
Set adoRecordset = adoCommand.Execute
Const ADS_UF_ACCOUNTDISABLE = 2
Set objUser = GetObject (“LDAP://” & adoRecordset.Fields(“distinguishedName”))
strOUDN = “OU=DisabledComputers,DC=fabrikam,DC=com” ‘ Kapatilan Bilgisayar Hesaplarinin tasinacagi OU
strOUDNE = “CN=Computers,DC=fabrikam,DC=com” ‘ Açilan Bilgisayar Hesaplarinin tasinacagi OU
strOUDNU = “OU=DisabledComputers,DC=fabrikam,DC=com” ‘Kapatilan kullanici Hesaplarinin tasinacagi OU
strOUDNEU = “CN=Users,DC=fabrikami,DC=com” ‘ Açilan Bilgisayar Hesaplarinin tasinacagi OU
intUAC = objUser.Get(“userAccountControl”)
if ka = “k” then
if request(“t”) = “u” then
Set objOU = GetObject(“LDAP://” & strOUDNU)
objUser.Put “userAccountControl”, intUAC OR ADS_UF_ACCOUNTDISABLE ‘ kullanici hesabi kapatiliyor
objUser.SetInfo
objOU.movehere objUser.ADsPath, objUser.name ‘ kullanici hesabi tasiniyor
end if
if request(“t”) = “b” then
Set objOU = GetObject(“LDAP://” & strOUDN)
objUser.accountdisabled = true ‘ bilgisayar hesabi kapatiliyor
objUser.SetInfo
objOU.movehere objUser.ADsPath, objUser.name ‘ bilgisayar hesabi tasiniyor
end if
response.write “Hesap Kapatildi”
elseif ka = “a” then
if request(“t”) = “u” then
Set objOU = GetObject(“LDAP://” & strOUDNEU)
objUser.Put “userAccountControl”, intUAC XOR ADS_UF_ACCOUNTDISABLE ‘ kullanici hesabi açiliyor
objUser.SetInfo
objOU.movehere objUser.ADsPath, objUser.name ‘ bilgisayar hesabi kapatiliyor
end if
if request(“t”) = “b” then
Set objOU = GetObject(“LDAP://” & strOUDNE)
objUser.accountdisabled = false ‘ bilgisayar hesabi açiliyor
objUser.SetInfo
objOU.movehere objUser.ADsPath, objUser.name ‘bilgisayar hesabi tasiniyor
end if
response.write “Hesap Acildi”
end if
response.Redirect “ADAramaAcmaKapama.asp?uname=”&request(“hesap”)&”&is=1″
adoRecordset.Close
response.End()
end if
‘ AD’de nesene aramari
if request(“uname”) = “” and request(“is”) <> “” then
%><p><b><center>Nesneyi bos gecmeyin lütfen.</center></b></font></p><%
elseif request(“uname”) <> “” and request(“is”) <> “” then
strCN = request(“uname”) & “*”
if len(strCN) <4 then
response.Clear()
Response.Write(“en az 3 karakter girmelisiniz.”)
Response.end
end if
Set objRootDSE = GetObject(“LDAP://RootDSE”)
strDNSDomain = objRootDSE.Get(“defaultNamingContext”)
Set adoCommand = CreateObject(“ADODB.Command”)
Set adoConnection = CreateObject(“ADODB.Connection”)
adoConnection.Provider = “ADsDSOObject”
adoConnection.Open “Active Directory Provider”
adoCommand.ActiveConnection = adoConnection
strBase = “<LDAP://” & strDNSDomain & “>”
strFilter = “(cn=” & strCN & “)”
strAttributes = “cn,distinguishedName,sAMAccountName,name,userAccountControl”
strQuery = strBase & “;” & strFilter & “;” & strAttributes & “;subtree”
adoCommand.CommandText = strQuery
adoCommand.Properties(“Page Size”) = 100
adoCommand.Properties(“Timeout”) = 30
adoCommand.Properties(“Cache Results”) = False
Set adoRecordset = adoCommand.Execute
If (adoRecordset.EOF = True) Then
Response.Write(“<center>Aradiginiz kriterde kayit bulunamadi</center>”)
Response.end
End If
‘ AD nesnelerinin gösterilecegi tablo olusturuluyor.
Response.Write(“<table width=100% height=100% ><tr width=100% height=100% ><td width=100% height=100% align=center valign=center><table border=’1′>”)
Response.Write(“<tr><th> Hesap adi </th><th> Bilgisayar/Kullanici Adi </th><th> Durum </th><th> Tipi </th><th> AD Yeri </th></tr>”)
Response.Write(“<font size=-3>”)
Do Until adoRecordset.EOF
vSAMAccountName= adoRecordset.Fields(“sAMAccountName”).Value
vName = adoRecordset.Fields(“name”).Value
vUserAccountControl= adoRecordset.Fields(“userAccountControl”).Value
vDistinguishedName= adoRecordset.Fields(“distinguishedName”).Value
AKR = 0
if vUserAccountControl = 512 then
AKR = 1
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vSAMAccountName&”&y=k&t=u’ title=’Kapatmak için tiklayin’><center> Kapat</center> </a>”
elseif vUserAccountControl = 514 then
AKR = 0
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vSAMAccountName&”&y=a&t=u’ title=’Açmak için tiklayin’><center> Aç </center></a>”
elseif vUserAccountControl = 544 then
AKR = 1
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vSAMAccountName&”&y=k&t=u’ title=’Kapatmak için tiklayin’><center> Kapat/ilsd </center></a>”
elseif vUserAccountControl = 66048 then
AKR = 1
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vSAMAccountName&”&y=k&t=u’ title=’Kapatmak için tiklayin’><center> Kapat/s </center></a>”
elseif vUserAccountControl = 66050 then
AKR = 0
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vSAMAccountName&”&y=a&t=u’ title=’Açmak için tiklayin’><center> Aç/s </center></a>”
elseif vUserAccountControl = 4096 then
AKR = 1
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vName&”&y=k&t=b’ title=’Kapatmak için tiklayin’><center> Kapat </center></a>”
elseif vUserAccountControl = 4128 then
AKR = 1
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vName&”&y=k&t=b’ title=’Kapatmak için tiklayin’><center> Kapat </center></a>”
elseif vUserAccountControl = 4098 then
AKR = 0
vUserAccountControlDesc = “<a href=’./ADAramaAcmaKapama.asp?hesap=”&vName&”&y=a&t=b’ title=’Açmak için tiklayin’><center> Aç </center></a>”
else
vUserAccountControlDesc = vUserAccountControl
end if
cuc = instr (vSAMAccountName,”$”) ‘ Nesnin Bilgisayar hesabini oldugunu belirten “$” karakteri kontrolu yapiliyor
if vUserAccountControl <> “” then
if cuc = 0 then Response.Write(“<tr><td> ” & vSAMAccountName & ” </td>”) else Response.Write(“<tr><td></td>”)
if AKR = 0 then
response.write (“<td style=’background-color: #FF0000′> “&vName&” </td>”)
else
response.write (“<td style=’background-color: #00FF00′> “&vName&” </td>”)
end if
if cuc = 0 then
Response.Write(“<td style=’background-color: #667C26′>” & ” Kullanici ” & “</td>”)
else
Response.Write(“<td style=’background-color: #4863A0’>”& ” Bilgisayar ” & “</td>”)
end if
Response.Write(“<td>” & vUserAccountControlDesc & ” </td>”)
Response.Write(“<td align=right > ” & vDistinguishedName & ” </td>”)
else
end if
Response.Write(“</td></tr>”)
adoRecordset.MoveNext
strDisplay = 1
Loop
adoRecordset.Close
if strDisplay = “” then Response.Write(“Arama yapilamadi —” & strDisplay & “—“)
adoConnection.Close
Response.Write(“</font>”)
Response.Write(“</table></td></tr></table>”)
Response.Write(“<br><align=left>Note :<br>Acik/ilsd = Ilk logon’da sifre degistirilecek<br>Acik/s = Süresis sifre<br>Kapali/s = Süresis sifre<br><br><br><br>”)
Response.End()
end if%>
Active Directory'deki Bilgisayar hesaplarının en son Logon zamanının alınması/listelenmesi (VBA, windows script)
Posted by cemguneyli in ete on May 4, 2011
Geçtiğimiz hafta, Active Diretory’de aktif olmayan (kullanılmayan) bilgisayar hesaplarının listesine ihtiyacım oldu. Bu bilgiyi Active Directory’den almak için çeşitli yollar kullanabilirdim fakat bunların bir çoğu oldukça meşakatli.
İnternette bu işlem için çeşitli Windows Script’ler var, ama hangisini ve nasıl kullancağım ? Üstelik elde ettiğim sonuçları text yada csv dosyasına nasıl aktaracağım ?
Sonuç olarak aşağıda linki bulunan uygulamayı geliştirdim (vba içerisinde windows script kullandım).
Bu uygulamada, ihtiyaç duyulabilecek basit 1 -2 seçenek ekleyerek kullanılabilirliğini de artırdım. Örneğin, bulunacak bilgisayarlar için zaman aralığı (son XX gündür logon olmayan bilgisayarlar) girilebiliyor ve bu bilgisayarları Active Diretory’de DN olarak belirttiğiniz yere taşıyabiliyor. Ayrıca Bilgisayar hesabının adını, son logon zamanını ve DN ini text dosyası olarak alabiliyorsunuz. (csv uyumlu, böylece excel’e kolaylıkla aktarabilirsiniz.)
Uygulamayı buradan indirebilirsiniz.
Not: Zip dosyasının şifresi “ete”
Dışkaynak kullanımı hakkında
Posted by cemguneyli in interview, News on May 2, 2011
Kurumlar, BT ihtiyaçları için kendi bünyelerinde kaynak barındırmak yerine dışkaynak kullanarak maliyetlerini optimize ediyorlar. Burada kullanılan dış kaynakların yönetimini yapabilmeleri aldıkları hizmetlerin doğruluğunu belirleyen en önemli etmenlerden biridir. BT ile alakalı dışkaynak kullanımı, ihtiyaça göre odaklanmış hizmetlerin direk olarak alınabilmesini mümkün kıldığından bütün kurumlar için çok önemlidir. Ancak alınan hizmetlerin doğruluğunun kontrolünün yapılması özellikle BT ile alakalı hizmetlerde kritik rol oynamaktadır. Bulut bilişim, SaaS gibi trend olan konuların konuşulduğu, uygulandığı bir dönemdeyiz. Alınan bir hizmetin yada yapılan bir işin doğru şekilde yapılması sonradan meydana gelebilecek/oluşabilecek problemlerin engellenmesini sağlayabilir.
– Dışkaynak seçimi ve yönetiminde başarıya ulaşmak için nelere dikkat edilmeli, neler yapılmamalıdır, bu doğrultuda püf noktaları nelerdir?
Dışkaynak seçiminde hizmeti sağlayacak olan firmanın bu konuda yaptığı çalışmalar, yatırımlar, yeterliliği ve tecrübeleri en önemli unsurlardır diye düşünüyorum. Dışkaynak seçiminde en önemli noktalardan bir tanesi 3. bir göz kullanarak yapılan işlerin doğruluğunun kontrol ettirilmesi. Dışkaynak hizmeti almadan önce hizmet içeriğinin belirlenmesi, gerekiyorsa bu konu için dışarıdan danışmanlık alınması bir diğer önemli husustur. Kurumların kendi bünyelerinde bulunan kaynaklar ile yaptırdıkları işleri, bunun da ötesinde gene dışkaynak kullanarak yaptırdıkları işleri güvenilir 3. bir göz ile kontrol ettirmeleri bunun içinde dışkaynak kullanmaları güvenlik açısından önemli bir unsurdur.
– Dışkaynak kullanımında ve yönetiminde dünyada ve Türkiye’de son eğilimler nelerdir? Bu konuda gelecek öngörülerinizi de paylaşabilir misiniz?
Dışkaynak kullanımı Türkiye de de gün geçtikçe daha fazla yaygınlaşmakta. Gelecekte de daha fazla tercih edilen, kullanılan bir hizmet şekli olacak. Dünyada da, Türkiye’de de ‘Bulut bilişim, SaaS’ gibi servisler/hizmetler gelecekte daha fazla önem kazanacak. Günümüzde en önemli unsur veriye her yerden kolayca, güvenli bir şekilde erişmek; bu da bulut bilişim ile tam anlamıyla mümkün oluyor.
Getting Last Logon time for Computers in Domain as list with VBA
Posted by cemguneyli in Articles, ete, Microsoft on April 27, 2011
Last week, I need to find how many inactive computers in our Active Directory with computers name and last logon date. I can use this info various way after gather from our Active Directory.
There are lot of scripts about it in Internet but problem is which one should I use and how to! Also I need to export those computers as a text or csv file and how to move those computers in a Organization Unit in Active directory.
So I developed this application. I can gather/do whole this.
Application has some setting like you can set a Day period and set DN location in Active directory for where those computers account will moved.
Also Application has two language support, Turksih and English.
P.S. : Zip file password is “ete”
Gathering PCs info during logon progress
Posted by cemguneyli in Articles, ete, System on April 20, 2011
Whole data about your PC in Active Directory will automatically coming from PCs to wherevery you want. You should run this script via Login progress, I ment, use GPO, If you have any Question How/What/Where … , Just ask !
P.S. : Some codes have been obtained from the Internet.
link : http://www.emrullahekmekci.com.tr/2011/04/20/gathering-pcs-info-durining-login-progress/
' 20 / 04 /2011 -- Emrullah Tahir Ekmekçi
' user and computer data collection with Text file
' 1.1
On Error Resume Next ' If we do not get any or portion info from computer, will try again copy file for determine computer
' Gathered data will be copying this network path.
Targetpath = "172.28.202.164SharedSL"
'Temp Dir
Set objShell = CreateObject("Wscript.Shell")
TempDir = objShell.ExpandEnvironmentStrings("%temp%")
Set objShell = nothing
' Computer Name
set wshnetwork=createobject("wscript.network")
strComputer=wshnetwork.computername
set wshnetwork=nothing
filename = TempDir & "" & strComputer & ".txt"
SET objWMIDateTime = CREATEOBJECT("WbemScripting.SWbemDateTime")
SET objWMI = GETOBJECT("winmgmts:" & strComputer & "rootcimv2")
SET colOS = objWMI.InstancesOf("Win32_OperatingSystem")
' System Last Boot and Up date
FOR EACH objOS in colOS
objWMIDateTime.Value = objOS.LastBootUpTime
LBUT = objWMIDateTime.GetVarDate & vbcrlf & TimeSpan(objWMIDateTime.GetVarDate,NOW)
NEXT
' System Type // Systemtype options will be narrow after gather whole types
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")
Set colChassis = objWMIService.ExecQuery _
("Select * from Win32_SystemEnclosure")
For Each objChassis in colChassis
For Each strChassisType in objChassis.ChassisTypes
Select Case strChassisType
Case 1 SystemType = "Other"
Case 2 SystemType = "Unknown"
Case 3 SystemType = "Desktop"
Case 4 SystemType = "Low Profile Desktop"
Case 5 SystemType = "Pizza Box"
Case 6 SystemType = "Mini Tower"
Case 7 SystemType = "Tower"
Case 8 SystemType = "Portable"
Case 9 SystemType = "Laptop"
Case 10 SystemType = "Notebook"
Case 11 SystemType = "Handheld"
Case 12 SystemType = "Docking Station"
Case 13 SystemType = "All-in-One"
Case 14 SystemType = "Sub-Notebook"
Case 15 SystemType = "Space Saving"
Case 16 SystemType = "Lunch Box"
Case 17 SystemType = "Main System Chassis"
Case 18 SystemType = "Expansion Chassis"
Case 19 SystemType = "Sub-Chassis"
Case 20 SystemType = "Bus Expansion Chassis"
Case 21 SystemType = "Peripheral Chassis"
Case 22 SystemType = "Storage Chassis"
Case 23 SystemType = "Rack Mount Chassis"
Case 24 SystemType = "Sealed-Case PC"
Case Else SystemType = "Unknown"
End Select
Next
Next
' very rare but sometimes Select Case could not get any data from strChassisType even "Case Else"
if SystemType = "" or SystemType = " " then
SystemType = "Unknown"
end if
' Windows installed date
Set dtmInstallDate = CreateObject("WbemScripting.SWbemDateTime")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
dtmInstallDate.Value = objOperatingSystem.InstallDate
installd = dtmInstallDate.GetVarDate
Next
' Collect Computer Info
ComputerInfo = "[ComputerInfo]" & vbCrLf
ComputerInfo = ComputerInfo & strComputer & vbCrLf
ComputerInfo = ComputerInfo & TempDir & vbCrLf
ComputerInfo = ComputerInfo & LBUT & vbCrLf
ComputerInfo = ComputerInfo & SystemType & vbCrLf
ComputerInfo = ComputerInfo & installd & vbCrLf
' Username
Set colSoftware = objWMIService.ExecQuery ("SELECT * FROM Win32_Product")
Set objNetwork = CreateObject("WScript.Network")
Username = objNetwork.UserName
ComputerInfo = ComputerInfo & Username & vbCrLf
' Collect Members of Local Admin Groups
LocalAdminGroup = LocalAdminGroup & vbCrLf & "[LocalAdminGroup]" & vbCrLf
Set objComp = GetObject("WinNT://" & strComputer)
objComp.GetInfo
If objComp.PropertyCount > 0 Then
Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators,group")
If objGroup.PropertyCount > 0 Then
For Each mem In objGroup.Members
LocalAdminGroup = LocalAdminGroup & Right(mem.adsPath,Len(mem.adsPath) - 8) & vbCrLf
Next
End If
End If
'Collect Operation System and CPU info
OsInfo = OsInfo & vbCrLf & "[OsInfo]" & vbCrLf
Set colSettings = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colSettings
OsInfo = OsInfo & objOperatingSystem.Caption & vbCrLf
OsInfo = OsInfo & objOperatingSystem.RegisteredUser & vbCrLf
OsInfo = OsInfo & objOperatingSystem.ServicePackMajorVersion & vbCrLf
OsInfo = OsInfo & objOperatingSystem.ServicePackMinorVersion & vbCrLf
OsInfo = OsInfo & objOperatingSystem.Version & vbCrLf
Next
Set colSettings = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem")
For Each objComputer in colSettings
OsInfo = OsInfo & objComputer.Manufacturer & vbCrLf
OsInfo = OsInfo & objComputer.Model & vbCrLf
OsInfo = OsInfo & objComputer.TotalPhysicalMemory /10241024+1 & vbCrLf
Next
Cpu = Cpu & vbCrLf & "[Cpu]" & vbCrLf
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")
For Each objItem in colItems
Cpu = Cpu & objItem.Description & vbCrLf
Cpu = Cpu & objItem.Manufacturer & vbCrLf
Cpu = Cpu & objItem.MaxClockSpeed & vbCrLf
Cpu = Cpu & objItem.Name & vbCrLf
Next
' Collect Bios Info
bios = bios & vbCrLf & "[Bios]" & vbCrLf
Set colBIOS = objWMIService.ExecQuery ("Select * from Win32_BIOS")
For each objBIOS in colBIOS
bios =bios & objBIOS.Manufacturer & vbcrlf
bios =bios & objBIOS.Name & vbcrlf
bios =bios & objBIOS.ReleaseDate & vbcrlf
bios =bios & objBIOS.SerialNumber & vbcrlf
bios =bios & objBIOS.SMBIOSBIOSVersion & vbcrlf
bios =bios & objBIOS.SMBIOSMajorVersion & vbcrlf
bios =bios & objBIOS.SMBIOSMinorVersion & vbcrlf
bios =bios & objBIOS.Version & vbcrlf
Next
Basebord = Basebord & vbCrLf & "[Basebord]" & vbCrLf
Set objWMIService = GetObject("winmgmts:" & strComputer & "rootcimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_BaseBoard")
For Each objItem in colItems
Basebord = Basebord & objItem.Manufacturer & vbcrlf
if objItem.Model = "" then
Basebord = Basebord & objItem.Model & vbcrlf
Else
Basebord = Basebord & "Veri Yok" & vbcrlf
end if
Basebord = Basebord & objItem.Product & vbcrlf
Basebord = Basebord & objItem.SerialNumber & vbcrlf
Next
' Collect Drivers info
disk = disk & vbCrLf & "[Disk]" & vbCrLf
Set colItems = objWMIService.ExecQuery ("Select * from Win32_LogicalDisk")
For Each objItem in colItems
if objItem.Name <> "" then disk = disk & objItem.Name & vbCrlf
if objItem.Description <> "" then disk = disk & objItem.Description & vbCrlf
disk = disk & objItem.VolumeName & vbCrlf
if objItem.VolumeSerialNumber <> "" then disk = disk & objItem.VolumeSerialNumber & vbCrlf
if objItem.Size <> "" then disk = disk & Int(objItem.Size /1073741824) & vbCrlf
if objItem.FreeSpace <> "" then disk = disk & Int(objItem.FreeSpace /1073741824) & vbCrlf & vbCrlf else disk = disk & vbCrlf
Next
' Collect Modems info
modem = modem & vbCrLf & "[Modem]" & vbCrLf
Set colItems = objWMIService.ExecQuery("Select * from Win32_POTSModem")
For Each objItem in colItems
modem = modem & objItem.AttachedTo & vbcrlf
modem = modem & objItem.DeviceType & vbcrlf
modem = modem & objItem.Model & vbcrlf & vbcrlf
Next
' Collect Network Cards info
Networkb = Networkb & vbCrLf & "[Network]" & vbCrLf
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration")
For Each objItem In colItems
For Each objValue In objItem.IPAddress
If objValue <> "" Then
Networkb = Networkb & objItem.Description & vbcrlf & objValue & vbcrlf & objItem.MACAddress & vbcrlf
End If
Next
Next
' Collect Installed Apps
Apps = Apps & vbCrLf & "[Apps]" & vbCrLf
If colSoftware.Count > 0 Then
For Each objSoftware in colSoftware
Apps = Apps & objSoftware.Caption & vbtab & objSoftware.Version & vbCrLf
Next
End If
' Collect Services info
Set cInstances = GetObject("winmgmts:{impersonationLevel=impersonate}//" &_
strComputer & "/root/cimv2:Win32_Service").Instances_
svrc = svrc & vbCrLf & "[Services]" & vbCrLf
For Each oInstance In cInstances
svrc= svrc & oInstance.Properties_("DisplayName").Value & vbTab & oInstance.Properties_("StartMode").Value & vbTab & oInstance.Properties_("State").Value & vbCrLf
Next
' Collect Installed Microsft Updates
Updates = Updates & vbCrLf & "[Updates]" & vbCrLf
Set objSession = CreateObject("Microsoft.Update.Session", strComputer)
If Err.Number <> 0 Then
Set objSearcher = objSession.CreateUpdateSearcher
intHistoryCount = objSearcher.GetTotalHistoryCount
Set colHistory = objSearcher.QueryHistory(1, intHistoryCount)
For Each objEntry in colHistory
Set objIdentity = objEntry.UpdateIdentity
Updates = Updates & objEntry.Date & vbtab & objEntry.Title & vbcrlf
Next
End If
Report = ComputerInfo & LocalAdminGroup & OsInfo & Cpu & Bios & Basebord & Disk & Modem & Networkb & Apps & svrc & Updates
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.CreateTextFile( filename , True)
objTextFile.WriteLine Report
objTextFile.Close
Set FSO =CreateObject("scripting.FileSystemObject")
if FSO.FileExists (filename) then
FSO.CopyFile filename ,Targetpath , True
end if
SET objWMIDateTime = Nothing
SET objWMI = Nothing
SET colOS = Nothing
Set objWMIService = Nothing
Set colChassis = Nothing
Set dtmInstallDate = Nothing
Set colOperatingSystems = Nothing
Set colSoftware = Nothing
Set objNetwork = Nothing
Set objComp = Nothing
Set colSettings = Nothing
Set colItems = Nothing
Set colBIOS = Nothing
Set objFSO = Nothing
Set objTextFile = Nothing
Set FSO = Nothing
Set objSearcher = Nothing
Set colHistory = Nothing
Set objIdentity = Nothing
FUNCTION TimeSpan(dt1, dt2)
IF (ISDATE(dt1) AND ISDATE(dt2)) = FALSE THEN
TimeSpan = "00:00:00"
EXIT FUNCTION
END IF
seconds = ABS(DATEDIFF("S", dt1, dt2))
minutes = seconds 60
hours = minutes 60
minutes = minutes MOD 60
seconds = seconds MOD 60
IF LEN(hours) = 1 THEN hours = "0" & hours
TimeSpan = hours & ":" & _
RIGHT("00" & minutes, 2) & ":" & _
RIGHT("00" & seconds, 2)
END FUNCTION
IBM XIV Storage Plug-in for Microsoft Cluster Server (MSCS), Version 1.0.2.1
Posted by cemguneyli in News, Stor-General, Stor-IBM, Storage on April 15, 2011
The plug-in enables failover automation of XIV storage services that run on two geographically dispersed cluster nodes, enabling deployment of MSCS in a geo-cluster configuration.
MSCS and the XIV storage system support one-button fail over initiation for automated recovery, or manual fail over for step-by-step control over the recovery process. Both accommodate a broad range of fail over scenarios and infrastructure components. Version 1.0.2.1 includes a hotfix for a known issue.
http://www-01.ibm.com/support/docview.wss?uid=ssg1S4000869&myns=s028&mynp=OCSTJTAG&mync=E
To avoid potential loss of access, customers must be on "IBM XIV Host Attachment Kit for Windows, Version 1.5.3" or above
Posted by cemguneyli in News, Stor-General, Stor-IBM, Storage, Sys-IBM, System on April 15, 2011
To avoid potential loss of access that might happen during XIV operation or hot upgrade customers must be on “IBM XIV Host Attachment Kit for Windows, Version 1.5.3” or above and before the upgrade
Symptom
Servers disconnect from XIV
Cause
- During some cases of module failure (e.g. SMI timeout) Windows 2003 server might disconnect from XIV
- During XIV hot upgrade Windows 2003 server might disconnect from XIV
- Extreme steady state situations
Environment
Windows 2003 or Windows 2003 R2 in a cluster environment connected to XIV
Resolving the problem
In a Windows 2003 or Windows 2003 R2 in a cluster environment, customers must be on “IBM XIV Host Attachment Kit for Windows, Version 1.5.3” or above.
This release of “IBM XIV Host Attachment Kit for Windows, Version 1.5.3” contains a fix to avoid potential loss of access.
Here is the link to download “IBM XIV Host Attachment Kit for Windows, Version 1.5.3” :
http://www-01.ibm.com/support/docview.wss?rs=1319&context=STJTAG
&context=HW3E0&dc=D400&q1=ssg1*&uid=ssg1S4000795&loc=en_US&cs=utf-8&lang=en