SelectEtoile : Base de connaissance SGBD

Posts Tagged 'microsoft'

Présentation du site

 
Ce site a été développé afin de fournir des explications, documentations et astuces en tout genre concernant les bases de données.Ils proviennent de retour d'expériences de différents DBA.
Il est à noter que ces articles ne sont que des notes et en aucune façon des documentations officielles.
Ce site peut contenir des commandes non supportées par les différents éditeurs qui sont à utiliser avec précaution.
Bien sur, si vous constatez des erreurs ou avez des remarques sur un ou plusieurs articles, n'hésitez pas à nous en faire part, soit via l'onglet Contacts, soit via les commentaires à votre disposition à la fin de chaque article.
 
Pour ceux qui seraient intéressés pour écrire ou proposer des articles, n'hésitez pas à me contacter via 'Contacts' dans le menu du haut.
flux_rssInscrivez vous au fil d'actualité selectetoile.net flux_rss

SQLServer - Créer un package SQLServer 2008 SP3 à partir d'un SQLServer 2008 SP1 ou SP2

Télécharger les fichiers du SP3 :

Pour la démonstration, je vais les mettre dans D:\install\Microsoft\SQL Server 2008\SP\SP3

Il s'agit des fichiers :

  • SQLServer2008SP3-KB2546951-IA64-ENU.exe
  • SQLServer2008SP3-KB2546951-x64-ENU.exe
  • SQLServer2008SP3-KB2546951-x86-ENU.exe

 

Copier le répertoire à patcher vers la cible :

Sous DOS, lancer :

  • d:
  • cd D:\install\Microsoft\SQL Server 2008\
  • mkdir ENT_SP3
  • cd ENT_SP3
  • xcopy "D:\install\Microsoft\SQL Server 2008\ENT_SP2" /E

 

Extraire les fichiers SP3*.exe vers D:\install\Microsoft\SQL Server 2008\SP\PCU_SP3

Sous DOS, lancer :

  • SQLServer2008SP3-KB2546951-x64-ENU.exe /x:"D:\install\Microsoft\SQL Server 2008\SP\PCU_SP3"
  • SQLServer2008SP3-KB2546951-x86-ENU.exe /x:"D:\install\Microsoft\SQL Server 2008\SP\PCU_SP3"

 

Copier les fichiers Setup.exe et Setup.rll de PCU_SP3 à ENT_SP3

  • robocopy "D:\install\Microsoft\SQL Server 2008\SP\PCU_SP3" "D:\install\Microsoft\SQL Server 2008\ENT_SP3" Setup.exe
  • robocopy "D:\install\Microsoft\SQL Server 2008\SP\PCU_SP3" "D:\install\Microsoft\SQL Server 2008\ENT_SP3" Setup.rll

 

Copier tous les fichiers (pas les répertoires) , sauf Microsoft.SQL.Chainer.PackageData.dll, de "D:\install\Microsoft\SQL Server 2008\SP\PCU_SP3" vers "D:\install\Microsoft\SQL Server 2008\ENT_SP3"

  • robocopy "D:\install\Microsoft\SQL Server 2008\SP\PCU_SP3\x86" "D:\install\Microsoft\SQL Server 2008\ENT_SP3\x86" /XF Microsoft.SQL.Chainer.PackageData.dll
  • robocopy "D:\install\Microsoft\SQL Server 2008\SP\PCU_SP3\x64" "D:\install\Microsoft\SQL Server 2008\ENT_SP3\x64" /XF Microsoft.SQL.Chainer.PackageData.dll

 

Vérification du fichier DefaultSetup.ini dans les répertoires :

  • D:\install\Microsoft\SQL Server 2008\ENT_SP3\x86
  • D:\install\Microsoft\SQL Server 2008\ENT_SP3\x64
  • D:\install\Microsoft\SQL Server 2008\ENT_SP3\IA64

Il faut préciser la variable PCUSOURCE, comme sous l'exemple suivant :

PCUSOURCE="\\mamachine\install\Microsoft\sql server 2008\SP\PCU_SP3"

Il reste plus qu'à lancer le setup.exe et croiser les doigts ; )))

Utiliser SQL Server Management Studio avec un autre compte (Integrated Login)

Problème :

En mode integrated login, lancer SQL Server Management Studio avec un autre compte du domaine.

Solution :

  C:\WINNT\system32\runas.exe /savecred /env /user:@domaine "C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\SqlWb.exe"

Lorsque la connexion est établie pour la première fois, une fenêtre CMD apparaît. Il faut lui donner en parture votre mot de passe. Elle ne reviendra plus.

 

 

Comment interroger une base de registre à distance ?

Bien que l'info existe un peu partout sur le net, j'ai fait cet article pour une application SQLServer

En effet, a partir d'une liste de serveurs Windows, il fallait que je trouve si des instances SQLServer étaient installées dessus et donner la version

Je pense qu'il y a certainement plus simple ; ))

 

J'ai utilisé les commandes suivantes 'OpenSubKey', 'GetValueNames' et 'GetValue'

 

Voici un petit exemple de script réalisé sous powershell

$servers = 'host04','host05'

foreach ($server in $servers){
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $server );
$regKey= $reg.OpenSubKey("SOFTWARE\\Microsoft\\Microsoft SQL Server");
    foreach ($Instancename in $regkey.GetValue('InstalledInstances')){
        if($Instancename -eq "MSSQLSERVER"){
            $regKey= $reg.OpenSubKey("SOFTWARE\\Microsoft\\Microsoft SQL Server\\Instance Names\\SQL");
            $Instancename=$regkey.GetValue($Instancename)
        }
        $regKey= $reg.OpenSubKey("SOFTWARE\\Microsoft\\Microsoft SQL Server\\" + $InstanceName + "\\MSSQLServer\\CurrentVersion");
        $server + " - " + $Instancename + " - " + $regkey.GetValue('CurrentVersion');
    }
}

 

Voici le résultat :

host04 - SQLSERVER04 - 10.0.4000.0
host04 - SQLSERVERTEST - 10.0.4000.0
host05 - SQLSERVER22 - 10.0.5500.0
host05 - SQLSERVERDEV02 - 10.0.5500.0