Tuesday 22 February 2011

Script ile SMS/SCCM Advanced Client'in Machine Policy yi cekip uygulamasini saglamak

Asagidaki ornek script araciligi ile SMS/SCCM Advanced Client yuklu istemcinizin sunucunuzdan son machine policy i cekip , uygulamasini saglayabilirsiniz, ozellikle testlerinizde isinizi hizlandirmak icin cok faydali olacagini saniyorum.



On Error Resume Next

Dim objCPAppletMgr
Dim objClientActions
Dim objClientAction
Dim strActionName

strActionName="Request & Evaluate Machine Policy"

'Get the Control Panel applet manager object
set objCPAppletMgr = CreateObject("CPApplet.CPAppletMgr")

'Get a collection of client actions

set objClientActions=objCPAppletMgr.GetClientActions

'Loop through the available client actions

For Each objClientAction In objClientActions

If objClientAction.Name = strActionName Then
objClientAction.PerformAction
WScript.Echo "Action " + objClientAction.Name + " initiated"
End If
Next
If you have a server with multiple NICs and if it is consisting to register it's IP address to DNS server even while you uncheck the "register this connection's addresses in DNS" option, I recommend you to create the registry entry below

Create a DWORD named  DisableDynamicUpdate under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters and assign value 1 .



Or you can run the command below to easily create the record.

reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v DisableDynamicUpdate /t REG_DWORD /d 1 /f



Normally this method shown for 2000 and 2003 servers in MS pages, but it is also working for 2008.

Sunucunun IP adresini DNS'e kayit etmesini engellemek

Bir den fazla network kartina sahiop bir sunucunuz var ise, ve siz DNS sunucusuna kayit etme secenegini sectiginiz halde halen kartlardan biri DNS de ikinci,.. kayit aciyor ise asagidaki regsitry kaydini eklemenizi tavsiye ederim,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters altinda  DisableDynamicUpdate DWORD u olusturun ve 1 degerini atayin, yada asagidaki komutu calistirabilirsiniz kolayce eklemek icin.

reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v DisableDynamicUpdate /t REG_DWORD /d 1 /f

Bu yontemin Windows 2000, 2003 de calistigi belirtilmis MS sayfalarinda, ancak 2008'de de calismakta.

Wednesday 16 February 2011

Changing collation of Virtual Center Database

I needed to change VMWare ESX's Virtual Center 2 Database collation while moving the DB to another MS SQL server using different collation, you might not need to change VC2 DB collation but I think it is better to use default server collation. As usual for most databases I got the error below; because of an object dependent on database collation.

  • Alter failed for Database 'VirtualCenter2'.  (Microsoft.SqlServer.Smo)

  • An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

  • The object 'sys_PhysicalIndexStatistics_Wrapper' is dependent on database collation. The database collation cannot be changed if a schema-bound object depends on it. Remove the dependencies on the database collation and then retry the operation.

  • ALTER DATABASE failed. The default collation of database 'VirtualCenter2' cannot be set to SQL_Latin1_General_CP1_CI_AS. (.Net SqlClient Data Provider) (Microsoft SQL Server, Error: 5075)


You can easily deal with this issue by using the steps below.

  1. After restoring the DB on target server , browse to VC2 DB\Programmability\Functions\Table-valued Functions, right click on sys_PhysicalIndexStatistics_Wrapper then select Script Function As > Create To > New Query Editor, it will create the query needed to re-create the  sys_PhysicalIndexStatistics_Wrapper object.

  2. Delete sys_PhysicalIndexStatistics_Wrapper

  3. Change collation of the database.

  4. Run the query you have created on step 1. , check if sys_PhysicalIndexStatistics_Wrapper created successfully.

Virtual Center Veritabaninin Collation degerini degistirmek.

Az once VMWare ESX in Virtual Center 2 Database ini fakli collation'a sahip bir SQL sunucusuna tasirken, ne olur ne olmaz belki bir uyumluluk sorunu cikartir diye veritabaninin Collation'i ni Latin1_General_CP1_CI_AS 'den SQL_Latin1_General_CP1_CI_AS 'e cevirmem gerekti fakat cogu veritabaninda karsilasilmasi dogal olan hatalardan birini aldim
  • Alter failed for Database 'VirtualCenter2'.  (Microsoft.SqlServer.Smo)
  • An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
  • The object 'sys_PhysicalIndexStatistics_Wrapper' is dependent on database collation. The database collation cannot be changed if a schema-bound object depends on it. Remove the dependencies on the database collation and then retry the operation.
  • ALTER DATABASE failed. The default collation of database 'VirtualCenter2' cannot be set to SQL_Latin1_General_CP1_CI_AS. (.Net SqlClient Data Provider) (Microsoft SQL Server, Error: 5075)
Bu hatayi sizde asmak isterseniz asagidaki basit adimlardan faydalanabilirsiniz. (4 adim)
  1. Database i hedef SQL sunucusuna restore ettikten sonra, DB\Programmability\Functions\Table-valued Functions altindaki sys_PhysicalIndexStatistics_Wrapper'a sag tusla basip Script Function As > Create To > New Query Editor u secin, sys_PhysicalIndexStatistics_Wrapper i yaratmak icin gerekli Query i boylece yedege almis olacaksiniz.
  2. sys_PhysicalIndexStatistics_Wrapper objesini silin
  3. Database collation i degistirin
  4. 1. adimda acmis oldugunuz Query'i calistirin, sys_PhysicalIndexStatistics_Wrapper in yeniden yaratilmis oldugunu teyit edin.

Friday 4 February 2011

WSUS 3.0 sunucunuzun senkronizasyonun script ile baslatilmasi

Merhaba asagida WSUS Team'in yayimladigi ornek scripti kullanarak WSUS 3.0 sunucunuzun senkronizasyona baslamasini saglayabilirsiniz.

Script de ki GetUpdateServer() call kismini GetUpdateServer(,true|false) seklinde degistirip icinde sunucuadi yazan kisma kendi uzak WSUS sunucunuzun adini yazabilirsiniz, eger SSL baglantisi ile haberlesiyorsaniz , parametreyi true , SSL kullanmadan baglaniyorsaniz false birakmaniz yeterli olacaktir.
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer();
$wsus.GetSubscription().StartSynchronization();

uzak WSUS sunucunuz icin degistirilmis haline ornek ise.

[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer(WSUSSunucunuz,false);
$wsus.GetSubscription().StartSynchronization();
WSUS Team in cok yararli olacagini dusundugum Blog Sitesi.