Thursday 22 March 2012

WSUS 3.0 SP2 Kurulum Hata Kodlari

Return Code Return String Meaning
0x001450SUS_LAUNCH_ERRORSetup conditions are not satisfied.
0x001451SUS_UNKNOWN_ERRORUnknown error.
0x001452SUS_REBOOT_REQUIREDReboot is required to complete the installation. This error most commonly occurs when installing Windows® Internal Database.
0x001453SUS_INVALID_COMMANDLINEInvalid command line entry.
0x001454SUS_LOWSQLVERSIONInvalid SQL Server version. WSUS supports only computers running at least SQL Server 2005 SP2.
0x001455SUS_TRIGGERSNOTSETTriggers are not set in SQL Server. For instructions about how to enable nested triggers, see How to: Configure the nested triggers Option (SQL Server Management Studio).
0x001456SUS_INVALIDPATHInvalid content path is specified.
0x001457SUS_NETWORKPATHSpecified content path is a network path.
0x001458SUS_NONNTFS_PATHSpecified content path is not NTFS.
0x001459SUS_NONFIXEDDRIVESpecified content path is not on a fixed drive.
0x00145aSUS_NONTFS_DRIVES_PRESENTNo NTFS drives exist on the system.
0x00145bSUS_INSUFFICIENT_SPACENot enough space is available at the given path. At least 6 GB of space is required.
0x00145cSUS_NEED_SERVER_AND_PORTBoth server name and port are required for replica mode.
0x00145dSUS_MSCOM_SERVERSpecified server name ends in .microsoft.com.
0x001460SUS_ERROR_PREREQCHECK_FAILPrerequisite check failed.
0x001461SUS_LOWDBSCHEMAUPGRADE_VERSIONThis database schema is too old to be upgraded.
0x001462SUS_UPGRADE_REQUIREDWSUS Setup must upgrade. Use the /G parameter to avoid this error.

Thursday 15 March 2012

Software Update sonrasi yeniden baslatmaya ihtiyac duyan bilgisayarlari listeleme

Asagidaki script size WSUS veya Windows Update den updatelerini cekip kurmus ancak kurulum sonra yeniden baslatmaya ihtiyac duyan bilgisayarlari listeleyerek buyuk kolaylik saglayacaktir, ornek script :
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null

if (!$wsus) {
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer();
}

$computerScope = new-object Microsoft.UpdateServices.Administration.ComputerTargetScope;
$computerScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot;

$updateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope;
$updateScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot;

$computers = $wsus.GetComputerTargets($computerScope);

$computers | foreach-object {
$_.FullDomainName | write-host;

# Show which updates are causing the reboot required for the computer. Remove the next 5 lines to only generate a list of computers.
$updatesForReboot = $_.GetUpdateInstallationInfoPerUpdate($updateScope);
$updatesForReboot | foreach-object {
$neededUpdate = $wsus.GetUpdate($_.UpdateId);
" "+$neededUpdate.Title | write-host;
# Remove previous lines to only show computers that need updates
}

}
Ornegin bu scriptte hangi updatelerin yuklendigi hakkinda bilge veren kismi cikartarak kendinize sadece bilgisayar isimlerinden olusan bir cikti hazirlayabilirsiniz de , ve bu ciktiyi SCOM/MOM gibi bir sunucuda Task tanimlayarak haftalik yeniden baslatma zamanlamasi yapabilirsiniz. Bunun icin
sadece bu kismini kullanmaniz yeterli olacaktir.

[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null

if (!$wsus) {
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer();
}

$computerScope = new-object Microsoft.UpdateServices.Administration.ComputerTargetScope;
$computerScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot;

$updateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope;
$updateScope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::InstalledPendingReboot;

$computers = $wsus.GetComputerTargets($computerScope);

$computers | foreach-object {
$_.FullDomainName | write-host;
Bu bilginin kaynagi ve scripting hakkinda daha fazla bilgi icin Microsoft Script Center i siddetle tavsiye ederim.

Friday 2 March 2012

Sysprep ile WSUS degerlerini temizlemek

Mevcut sysprep.inf dosyanizi notepad ile aciniz, ve asagidaki degerleri [GuiRunOnce] altina ekleyip kaydediniz, komutlar kurulum sonrasi bir defalik calistirilacak ve imajda bulunan eski degerleri temizleyecek, istemcinize yeni SusClientId atanmasini saglayacaktir.

Eger [GuiRunOnce] altinda baska komutlariniz varsa CommandX de bulunan X degerlerini sizinkilere devam edecek sekilde degistirebilirsiniz.


Command0=”reg.exe delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v PingID /f”
Command1=”reg.exe delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v AccountDomainSid /f”
Command2=”reg.exe delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v SusClientId /f”
Command3=”reg.exe delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v SusClientIDValidation /f”