-
Gesamte Inhalte
1.886 -
Registriert seit
-
Letzter Besuch
Alle erstellten Inhalte von Cybquest
-
SQL Tabelle erstellen wen nicht vorhanden
Cybquest antwortete auf ein Thema von bergesel in: Windows Forum — Scripting
Kannst mal vor den db.execute ne Zeile "Msgbox sql" einfügen und nachschauen, wo das Euro-Zeichen sitzt? EDIT: Meine SQL-Kenntnisse hab ich eher aus dem Access/MSSQL/Oracle-Bereich. Wie wir Schwaben sagen: "Des isch so no gworrä" ;) Im Buch "Scripting für Administratoren" von Microsoft Press gibt's allerdings auch einiges zum Thema Datenbanken! -
SQL Tabelle erstellen wen nicht vorhanden
Cybquest antwortete auf ein Thema von bergesel in: Windows Forum — Scripting
Computername bekommst Du z.B. mit: Set WshNetwork = WScript.CreateObject("WScript.Network") strComputer = WshNetwork.ComputerName -
SQL Tabelle erstellen wen nicht vorhanden
Cybquest antwortete auf ein Thema von bergesel in: Windows Forum — Scripting
Zunächst: An der Stelle funktioniert das "IF NOT EXIST.." natürlich nicht! Ist ja SQL-Syntax, d.h. müsste entspr. "verpackt" werden. Weiterhin muss der Teil [dbo].[Computername] bzw. "Computername" auch durch die entspr. Variable ersetzt werden. Und diese ist in deinem Script momentan ein Punkt! Das geht natürlich nicht! Hier zur Anregung (ungetestet ;) ... sql= "IF NOT EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N’" & strComputer & "‘) " sql=sql & "AND OBJECTPROPERTY(id, N’IsUserTable’) = 1) " sql=sql & "CREATE TABLE " & strComputer & " (Category int NOT NULL , ComputerNameEV varchar (30) NULL , Eventcode varchar (30) NULL , Message varchar (30) NULL ," sql=sql & "Recordnumber int NULL , Sourcename int NULL ," sql=sql & "timewritten int NULL , ntype int NULL , nuser int NULL );" -
Bei einem Ping muss der angepingte Rechner ja auch antworten können!
-
Dienste per GPO auf "Manuell" setzen
Cybquest antwortete auf ein Thema von DB1973 in: Windows Server Forum
Hi, hier noch ne Möglichkeit, per VB-Script (z.B. Login-Script) Dienste zu manipulieren (Beispiel): 'Nachrichtendienst aktivieren und starten StrStartType = 2 '2=Autostart, 3=Manuell, 4=Deaktiviert strStatus = 4 '1=Stoppen, 4=Starten strService = "Messenger" Service strService, StrStartType, strStatus '------------ SCRIPT ENDE ------------------------------------ '------------------------------------------------------------- Sub Service(ServiceName, StartType, Status) On Error Resume Next Set dienst = GetObject("WinNT://127.0.0.1/" & ServiceName & ",service") If Err.Number = 0 Then If (StartType > 0) and (dienst.StartType <> StartType) Then dienst.Put "StartType", StartType dienst.SetInfo End If If (Status > 0) and (dienst.Status <> Status) Then if Status = 4 then dienst.start if Status = 1 then dienst.stop End If End If On Error GoTo 0 End Sub -
Zur SQL-Syntax ggf. z.B. einfach mal auf ner Microsoft Seite vorbeischauen: DROP TABLE (Transact-SQL)
-
Zum ^L in ner Batch: Das Dächle geht da nicht, sonder es muss Strg-L sein! Batch kannst z.B. mit copy con MeineBatch.bat @echo {Strg+L} {Enter} {Strg+Z} erzeugen. Wenn du die im Notepad anschaust, hast nur nen fetten Punkt hinter'm Echo.
-
Sind die Tabellen felder alle Char bzw. Strings? Oder gibt's da z.B. auch DateTime o.ä.? Möglicherweise kommt aus einem Eventlog-Eintrag der Wert "HOST" zurück, wo sonst ein Datum steht oder so... So ein Löschproblem hab ich mal so gelöst: Um die 100k Zeilen zu löschen hab ich dann statt nem "DELETE..." einfach "DROP TABLE..." und anschliessend wieder "CREATE TABLE..." gemacht ;)
-
Hmmm... sehe auf Anhieb nix verdächtiges. Gibts in deiner SQL-Tabelle eine Spalte Host?
-
Defrag per Script unter XP
Cybquest antwortete auf ein Thema von bergesel in: Windows Forum — Scripting
@bergesel: Einfach mal das Script aus Deinem "DSN=eventlog..." Thread analysieren und kreativ einarbeiten ;) -
Defrag per Script unter XP
Cybquest antwortete auf ein Thema von bergesel in: Windows Forum — Scripting
Hier ein Beispiel-Script, das die Fragmentierung nur überprüft (durch den Schalter -a beim defrag) und das kpl. Ergebnis ausgibt. Ggf. könnte aus diesem Ergebnis der Prozentwert rausgepriemelt und weiter verarbeitet werden. Ergebnis ist abhängig von der Defrag-Version (unter Vista siehts z.B. anders aus als unter XP) Set WSHShell = WScript.CreateObject("WScript.Shell") Set fso = CreateObject("Scripting.FileSystemObject") strergebnis = "" FileName = "defrag.txt" temp = fso.GetSpecialFolder(2).Path WshShell.run "cmd.exe /C DEFRAG.EXE C: -a > " & temp & "\" & FileName, 0, true Set file = fso.OpenTextFile(temp & "\" & FileName) strergebnis = file.readAll file.Close Set file = Nothing Set fso = Nothing MsgBox strErgebnis -
Dein umgearbeitetes Script: Set db = CreateObject("ADODB.Connection") db.Open("Provider=SQLOLEDB.1;Data Source=MeinServer;UID=MeinUser;PWD=") sql = "use MeineDatenbank;" db.Execute(sql) strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colRetrievedEvents = objWMIService.ExecQuery _ ("Select * from Win32_NTLogEvent") For Each objEvent in colRetrievedEvents sql = "INSERT INTO Tabelle1 (Category,ComputerName,Eventcode,Message)" sql = sql & "values ('" & objEvent.Category & "','" & objEvent.ComputerName & "','" & objEvent.EventCode & "','" & objEvent.Message & ");" db.Execute(sql) Next db.Close "MenServer", "MeineDatenbank" u.ä. natürlich entspr. ändern. Ggf. den Provider deinen gegebenheiten anpassen (bin von MSSQL ausgegangen). Hab das mit dem Recordset durch nen direkten SQL INSERT ersetzt (nur ein paar deiner Felder... war zu Faul ;) ) ...das alles allerdings ungetestet aus´dem Bauch zusammengeschrieben ;)
-
Ja hast Du denn eine SQL Datenbank mit entsprechenden Tabellen? Hier ein Beispiel, um eine Datenbank über'n Provider (also ohne DSN) anzusprechen: set db = CreateObject("ADODB.Connection") db.Open("Provider=SQLOLEDB.1;Data Source=MeinServer;UID=MeinUser;PWD=") sql = "use MeineDatenbank;" set rs = db.Execute(sql)
-
Verstehe ich das richtig: Das soll ein Serverschrank für's private Wohnzimmer sein? Da finde ich die Spanplatten-Idee nicht so schlecht ;) Statt Schaumstoff würde ich Dir evtl. Terosonplatten (aus dem Autozubehörmarkt) empfehlen.
-
Ich persönlich sehe dabei, einem Server "von Hand" einen zusätzlichen DNS-Namen zu geben, kein großes Problem. Längerfristig würde ich im Falle des TS jedoch die Clients einfach auf den neuen Namen umstellen. Wenn dann alle umgestellt sind, könnte man den Eintrag im DNS wieder rausnehmen und die 2. IP-Adresse wieder entfernen.
-
ACCESS - Bericht aus verschiedenen Tabellen
Cybquest antwortete auf ein Thema von S!nky in: Windows Server Forum
Nicht bei den Beziehungen die Tabellen 2x hinzufügen, sondern in der Abfrage! Ich persönlich halte mich übrigens mit der Definition von Beziehungen ziemlich zurück. Mach ich nur bei Beziehungen, bei denen referentielle Integrität notwendig ist (Aktualisierungs-/Löschweitergaben...) Ansonten setze ich die Beziehungen in den Abfragen selbst. -
ACCESS - Bericht aus verschiedenen Tabellen
Cybquest antwortete auf ein Thema von S!nky in: Windows Server Forum
Den Satz hab ich zwar nicht ganz verstanden, aber ich denke Du meinst, es kommen bei der Abfrage keine DAten raus. Hab mir das Bild mal angesehen und würde folgendes dazu sagen: Die Tabellen "Räume" und "Haus..." müssen zweimal rein! Für die Verkabelung und für die Switche getrennt. -
Registry REG_BINARY lesen und ändern?
Cybquest antwortete auf ein Thema von retofischer in: Windows Forum — Allgemein
Um einen String binär abszuspeichern, hab ich mal aus div. Quellen ne VB-Function zusammengeschustert: Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long Public Function RegSetBinary(ByVal lkey As Long, ByVal skey As String, ByVal sdata As String) Dim b() As Byte Dim i As Integer, lArrSize As Long ReDim b(0 To (Len(sdata) - 1) * 2 + 3) For i = 0 To (Len(sdata) - 1) * 2 Step 2 b(i) = Asc(Mid(sdata, i / 2 + 1, 1)) b(i + 1) = 0 Next i 'If i Mod 2 <> 0 Then b(i + 1) = 0 b(i + 1) = 0 lArrSize = UBound(b()) + 1 RegSetBinary = RegSetValueEx(lkey, skey, 0&, REG_BINARY, b(0), lArrSize) End Function Ggf. muss man das bissle anpassen. Hab bemerkt, dass bei manchen Strings noch ne 0 hinten dran gehörte, bei anderen wiederum nicht... Gebastelt hab ich's um Outlook2003 Signaturen unterzujubeln ;) Um einen ausgelesenen Wert umzuwandeln hab ich grad nix. -
Vielen Dank! Werde mich weiterhin bemühen, kreative Scripte anbieten zu können ;) Mit feiern war gestern nix. Ich zieh morgen um... hab gestern kartonweise Zeug verpackt :(
-
Ein Schlüsselfeld, das pro Datensatz eindeutig ist. Zum einen hilfreich für schnelle Sortier- und Suchoperationen, zum anderen notwendig, um Relationen zwischen Tabellen herstellen zu können. Frage zurück: Wie die 50 Tabellen aussehen sollen (welche Felder mit welchen Datentypen) ist bekannt? Und wie die Tabellen in Relation zueinander stehen? Beispiel (Primärschlüssel fett): Tabelle "Aufträge": AuftragsNr Kunde Datum Tabelle "Auftragsdetails": ID AuftragsNr Artikel Menge Da wäre dann z.B. eine 1:n-Relation zwischen Aufträge.AuftragsNr und Auftragsdetails.AuftragsNr
-
Probleme bei der Ordnerumleitung
Cybquest antwortete auf ein Thema von fudelsut in: Windows Forum — Allgemein
Der User muss Besitzer seines Ordners sein. Kann es sein, dass das beim Umzug verloren ging? -
Hier mal'n VBS Beispielscript fü eine Tabelle: set db = CreateObject("ADODB.Connection") db.Open("Provider=SQLOLEDB.1;Data Source=server;UID=sa;PWD=") sql = "use Datenbank;" db.Execute(sql) sql="CREATE TABLE tblTabelle (Feld1 int NOT NULL , Feld2 varchar (30) NULL , " sql=sql & "Feld3 datetime NULL , Feld4 int NULL );" db.execute sql Soll die Tabelle auch einen Primärschlüssel erhalten, dann noch entspr. "altern": sql="ALTER TABLE tblTabelle WITH NOCHECK ADD CONSTRAINT aaaaatblTabelle_PK PRIMARY KEY NONCLUSTERED (Feld1);" db.execute sql
-
Defrag per Script unter XP
Cybquest antwortete auf ein Thema von bergesel in: Windows Forum — Scripting
Mal am DOS-Prompt "defrag /?" eingeben... Den Befehl kann man dann bequem in ner Batch verpacken. -
Du sagst, das Programm holt die Daten aus Access und fügt sie in den Brief ein... warum muss dann was in die Registry geschrieben werden? Oder holt das Programm nur einmalig die Daten aus Access und schreibt sie nur in die Registry? ... hmmm... Hier auf jeden Fall mal Beispielcode für den Zugriff auf Access: set db = CreateObject("ADODB.Connection") db.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\datenbank.mdb") sql = "select * from tabelle;" set rs = db.Execute(sql) do until rs.EOF for x = 0 to rs.Fields.Count-1 list = list & trim(rs(x)) & ", " next list = list & vbCr rs.MoveNext loop MsgBox list Mit nem passenden SQL-String die passenden Daten raussuchen. Die Daten dann in die Registry... hab grad den passenden Befehl nicht zur Hand ;)
-
SQL Server Skript für Sichern
Cybquest antwortete auf ein Thema von fmessner in: Windows Forum — Scripting
Per Batch z.B. so in der Art: FOR /F "tokens=1,2,3 delims=/. " %%a in ('date/T') do set ed=%%a-%%b-%%c FOR /F "tokens=1,2,3 delims=/: " %%a in ('time/T') do set et=%%a-%%b echo BACKUP DATABASE Datenbank >C:\scripte\sqldata.sql echo TO DISK = 'C:\BACKUP\Datenbank_%ed%_%et%.DAT' >>C:\scripte\sqldata.sql echo GO >>C:\scripte\sqldata.sql C:\<PfadzuSQL>\binn\isql -U sa -P -H host -i C:\scripte\sqldata.sql ... aber wie wärs, einfach nach der normalen Sicherung die Datei per Batch umzukopieren?