Posts Tagged ‘Microsoft’
Recuperare l’ownership della propria istanza Sql Server Express 2008
mercoledì, dicembre 14th, 2011
Cercando documentazione relativa al maintenance mode di Sql Server mi sono imbattuto in questo shell script (http://code.msdn.microsoft.com/addselftosqlsysadmin/) che permette di assegnare i privilegi di sysadmin sull’istanza locale di Sql Server Express all’utente con cui ci si è loggati sul proprio OS (o ad un qualsiasi altro specificato come parametro); per farlo, ovviamente, l’utente in oggetto dovrà far parte del gruppo “Administrators” locale.
Uno degli scenari dove questo script è particolarmente utile è il seguente:
quando sql server express viene installato da uno specifico utente, un secondo utente che proverà ad utilizzare il servizio, godendo dei soli privilegi minimi, non potrà creare database, tabelle o altre tipologie di oggetti. Questo accade perchè l’utente owner dell’installazione è il solo a cui è garantito il ruolo da sysadmin, ergo, il secondo utente pur facendo parte del gruppo degli amministratori del sistema operativo non potrà in alcun modo gestire l’istanza locale del rdbms light di Microsoft. Il problema diventa ancor più grave quando l’utente che ha effettuato l’installazione viene per qualsiasi motivo eliminato dal sistema non potento, quindi, utilizzarlo per poter riassegnare manualmente ad altri utenti il ruolo da sysadmin.
Ai tempi di Sql Server Express 2005, Microsoft aveva deciso di garantire il ruolo da sysadmin a tutto il gruppo degli amministratori locali del OS permettendo, quindi, agli utenti di avere l’ownership dell’istanza in maniera praticamente trasparente. Putroppo, con l’introduzione del UAC su Windows Vista questa decisione ha introdotto problemi di usabilità generale ad esempio su Visual Studio. L’UAC, per sua natura, nascondendo il token di sicurezza da “Adminsitrator” al processo di Visual Studio non permetteva la gestione completa del server DB direttamente dalla GUI del IDE Microsoft: l’utente era quindi costretto a lanciare VS in “elevated mode” (per inciso col “Run as Administrator”) che è generalmente una pratica non consigliabile.
Lo script automatizza i seguenti steps:
- restart del servizio SQL Server con l’ozione –m (maintenance mode) che permette una singola connessione da un admin box (aggiunto automaticamente ed in maniera temporanea al ruolo sysadmin del server);
- connessione all’istanza SQL e aggiunta dell’utente specificato al ruolo sysadmin;
- restart del servizio SQL in modalità standard;
.. perfetto per “riguadagnare” la proprietà
del proprio server in pochissimi secondi.
administrator, maintenance mode, Microsoft, owner, shell script, SQL Server Express 2008, sysadmin
IT Pro, Microsoft, Sql Server, Tools | No Comments »
Windows Developer Preview, installazione da HDD USB e l’importanza del codice opensource.
venerdì, settembre 16th, 2011
E’ ormai “notizia consumata” il fatto che Microsoft in occasione della “Build Windows” Conference in quel di Anaheim, California, martedi sera abbia annunciato e reso disponibile la prima build pubblica di Windows 8 (per gli amici Windows Developer Preview).
Inutile ribadire il good mood che si è generato sul web intorno alla prossima release di Windows grazie anche all’ottima strategia di comunicazione che Microsoft sta adottando da qualche mese a questa parte basata anche su lavoro di Steven Sinofksy (che in questi giorni si è “trasformato” nel nuovo Steve Jobs
) e del suo mega team.
Era ormai un mese che seguivo gli sviluppi del nuovo OS grazie soprattutto al blog del Windows engineering team (http://blogs.msdn.com/b/b8/), ma nella spettacolare presentazione di martedi ho visto praticamente “materializzarsi” tutte le novità che erano state annunciate ed abbondantemente discusse nei commenti dei posts.
L’annuncio della disponibilità di una beta \ preview pubblica se lo aspettavano un po tutti, ergo mentre seguivo la keynotes del day 1 in streaming preparavo la partizione estesa sul hdd del mio laptop per poter “accogliere” il nuovo Windows. A fine keynotes avevo il download manager che puntava a http://msdn.microsoft.com/en-us/windows/apps/br229516.
Nella notte di mercoledi la blogosfera si è letteralmente riempita di guide, howto e posts tutti relativi all’installazione di WDP usando varie tecniche (VM su VPC, VM su VirtualBox, installazione nativa, etc). Personalmente, avendo “preparato” appositamente il mio laptop, a fine download, ero pronto per una bella installazione nativa che mi facesse godere a pieno del nuovo OS, ma l’ostacolo era dietro l’angolo: le dimensioni del img ISO WindowsDeveloperPreview-64bit-English-Developer (quella con I developer tool inclusi)di ben 4.8 GB.
E qui vengo all’oggetto di questo post: per usare quella ISO in un’installazione nativa c’è la necessità di avere o una pendrive da 8GB o un DVD9, ma a me mancavano entrambi e non potevo aspettare di procurarmeli … dovevo provare WDP, i nuovi tools di sviluppo (VS 2011 Express e Blend 5), la nuova API per le app metro style, subito
.
L’alternativa possibile per chi come me è sprovvisto di un pendrive “larga” e non si ritrova un DVD9 sottomano e quella di usare un HDD USB.
Nel mio caso l’HDD aveva i suoi 500GB tutti spalmati su un’unica partizione, per cui ho dovuto usare la live di gparted (gparted è un software che fa da partition manager e che gira su GNU/Linux http://gparted.sourceforge.net/) per poter “tirare fuori” dalla partizione principale una secondaria da 10 GB da usare come supporto per l’installazione di WDP.
Lo step successivo è stato quello di caricare il contenuto della ISO nella nuova partizione (necessariamente NTFS perchè ci sono file nel setup di WDP con peso sup. a 4GB) e renderla bootabile in modo da poter sfruttare il boot da device USB supportato dai BIOS moderni.
Mi era già capitato di installare Win7 da pendrive USB ed in quel caso avevo usato l’ottimo e super user friendly tool di Microsoft “Windows 7 USB/DVD download tool” (sempre per gli amici WUDT) (link) per cui ho deciso di riutilizzarlo.
Quindi .. Step 1: selezione della ISO,
Step 2: media type USB Device
STEP 3: … ecco il secondo problema: il software non supportava HDD USB ma solo drive removibili (pen drive USB).
Leggendo la documentazione dal sito ufficiale, pare che questa sia stata una scelta by design. Essendo, come dicevo super user friendly
, i suoi sviluppatori hanno deciso di evitare che qualche utente distratto potesse formattarsi l’HD sbagliando la selezione da quella dropdownlist.
Poi, però, mi sono ricordato di aver letto che di questo tool erano disponibili i sorgenti su codeplex. Una ricerca da codeplex.com .. ed istantaneamente “pesco” la pagina ufficiale:
Leggendo la documentazione “dev oriented” ho scoperto che in realtà I sorgenti di WUDT sono già inclusi nell’installer standard scacaricabile da MS Store, ed infatti in :
%userprofile%\AppData\Local\Apps\Windows 7 USB DVD Download Tool
ci ho trovato un bel wudtsource.zip pronto per essere “esplorato”.
La modifica è stata più che banale.
Aperta la solution in VS 9, ho subito notato quel “DriveService”:
… si tratta della classe astratta da cui poi ereditano DvdDriveService e UsbDriveService. Ovviamente, la mia modifica era da fare su quest ultimo.
Aperto il file UsbDriveService.cs, il “blocco by design” si nota subito :
/// <summary> /// Initializes the list of drives to work with. /// </summary> /// <returns>The result of the initialization.</returns> public override DriveStatus Initialize() { return this.Initialize(DriveType.Removable); }
ed il conseguente codice di inizializzazione:
/// <summary> /// Initializes the list of drives to work with. /// </summary> /// <param name="type">The type of drives to get.</param> /// <returns>The result of the initialization.</returns> protected DriveStatus Initialize(DriveType type) { this.drives = new List<DriveInfo>(); var result = DriveStatus.Ready; DriveInfo[] devices = DriveInfo.GetDrives(); foreach (var drive in devices) { if (drive.DriveType == type) { this.drives.Add(drive); } } if (this.Drives.Count <= 0) { result = DriveStatus.NoDevices; } return result; }
Le possibilità, quindi, sono due:
1) modificare l’enumerable nel metodo in ovverride, scegliendo in base alle proprie esigenze, tra:
// Summary: // Defines constants for drive types, including CDRom, Fixed, Network, NoRootDirectory, // Ram, Removable, and Unknown. [Serializable] [ComVisible(true)] public enum DriveType { // Summary: // The type of drive is unknown. Unknown = 0, // // Summary: // The drive does not have a root directory. NoRootDirectory = 1, // // Summary: // The drive is a removable storage device, such as a floppy disk drive or a // USB flash drive. Removable = 2, // // Summary: // The drive is a fixed disk. Fixed = 3, // // Summary: // The drive is a network drive. Network = 4, // // Summary: // The drive is an optical disc device, such as a CD or DVD-ROM. CDRom = 5, // // Summary: // The drive is a RAM disk. Ram = 6, }
2) eliminare il controllo dal metodo init protected:
foreach (var drive in devices) { //if (drive.DriveType == type) //{ this.drives.Add(drive); //} }
L’effetto della 2° scelta è facilmente intuibile:
.. ho avuto quindi la possibilità di scegliere la mia partizione su HDD USB preparata ad-hoc per accogliere la ISO di installazione di WDP.
Il resto è procedura standard.
Ne approfitto, per chi volesse provare WDP usando un VHD, l’ottimo post di Scott Hanselman:
Microsoft, WDP, Windows, Windows 8
.NET Framework, Microsoft, Windows | No Comments »
Microsoft acquisisce Teamprise da SourceGear
martedì, novembre 10th, 2009
Apprendo questa notizia bomba dal blog di Brian Harry.
Era ormai qualche anno che il team di Microsoft lavorava con gli sviluppatori di SourceGear per rendere il prodotto Teamprise sempre “più simile” al TeamExplorer di Visual Studio; finalmente integrando tutto in un’unica soluzione la suite di BigM coprirà buona parte di tutte le necessità di ALM in ambienti di sviluppi tecnologicamente eterogenei
Teamprise sarà integrato nella product-line di Visual Studio 2010 ed includerà:
- Teamprise plugin for Eclipse: bugtracking, source control management, gestione build, reporting etc. direttamente da Eclipse e in tutti gli altri IDE basati su quest ultimo (JBoss, BEA Workshop, Rational Application Developer .. per gli amici RAD, Adobe Flex Bulder, APTANA Studio etc.);
- Teamprise Explorer: tutte le funzionalità incluse nel plug-in per Eclipse potranno essere utilizzate anche tramite questo software stand-alone, perfetto quindi per i componenti del team non strettamente legati allo sviluppo (graphic designer, quality assurance testers e project managers);
- Teamprise Command-Line Client: un’interfaccia non grafica, cross-platform per interfacciarsi al Team Foundation Server, perfetta per lo scripting e per gli scenari di build.
Il “trittico” potrà essere acquistato separatamente (si parla di ~700$USD) e sarà disponinbile per tutti i subscriber MSDN e tutti quelli che acquisteranno Visual Studio 2010 Ultimate.
Per approfondimenti :
- annuncio su Microsoft PressPass : http://www.microsoft.com/presspass/press/2009/nov09/11-09teamprisepr.mspx
- nuova sezione prontamente aperta sul sito Microsoft: http://www.microsoft.com/pathways/teamprise/default.htm
Microsoft, SourceGear, Teamprise, Visual Studio, Visual Studio 2010
Microsoft, Visual Studio | No Comments »

