Archiv nach Kategorien: Allgemein - Seiten 2

Excel Arbeitsmappenschutz entfernenMA

Hier ein kleines Stückchen VBA-Code, mit dessen Hilfe man eine Kennwort geschütze Arbeitsmappe “entsperren” kann.

Einfach mit Alt+F11 in den VBA-Editor wechseln, Code einfügen und ausführen.

Sub PasswordBreaker()
  'Author unknown but submitted by brettdj of www.experts-exchange.com
  'http://www.theofficeexperts.com/VBASamples/Excel02.htm

  Dim i As Integer, j As Integer, k As Integer
  Dim l As Integer, m As Integer, n As Integer
  Dim i1 As Integer, i2 As Integer, i3 As Integer
  Dim i4 As Integer, i5 As Integer, i6 As Integer
  On Error Resume Next
  For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
  For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
  For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
  For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126

 ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
      Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
      Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
  If ActiveSheet.ProtectContents = False Then
      MsgBox "One usable password is " & Chr(i) & Chr(j) & _
          Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
          Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
   ActiveWorkbook.Sheets(1).Select
   Range("a1").FormulaR1C1 = Chr(i) & Chr(j) & _
          Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
          Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
       Exit Sub
  End If
  Next: Next: Next: Next: Next: Next
  Next: Next: Next: Next: Next: Next
End Sub

Ausgabe von sp_help_job in Temptable speichern

Ich brauchte eine Übersicht von SQL Agent Jobs (Name, LastRunDate, Current Execution Status und LastRunOutcome), doch da die Job Hisorty auf 10 Tage auf diesem Server begrenzt ist, fällt der Ansatz über die Tabellen msdb.dbo.sysjobs und msdb.dbo.sysjobhistory aus (siehe Beispiel).

select distinct [name] as 'Job Name',
	case [enabled] when 1 then 'Enabled' else 'Disabled' end as 'Enabled',
	cast (ltrim(str(run_date))+' '+stuff(stuff(right('000000'+ltrim(str(run_time)), 6) , 3, 0, ':'), 6, 0, ':') as datetime) as 'Last Run',
	step_id as Step,
	case [h].[run_status]
		when 0 then 'Failed' else 'Success'
		end as 'Status'
from msdb.dbo.sysjobs         j
left join msdb.dbo.sysjobschedules s
	on j.job_id = s.job_id
LEFT join msdb.dbo.sysjobhistory h
	on j.job_id = h.job_id
where step_id = 0
     and h.instance_id in (select max(sh.instance_id)
				from msdb.dbo.sysjobs sj
				join msdb.dbo.sysjobhistory sh
					on sj.job_id = sh.job_id
				where h.step_id = 0
				group by sj.[name])

Die einzigste Möglichkeit von allen Jobs diese Werte zu ermitteln, ist über die Prozedur sp_help_job. Leider ist es nicht möglich das Ergebnis in eine TempTable umzuleiten (siehe Beispiel)

insert into #TempJobTable
   execute sp_help_job

Dies Endet dann meist in folgender Fehlermeldung:

Server: Msg 8164, Level 16, State 1, Procedure sp_get_composite_job_info, Line 67
An INSERT EXEC statement cannot be nested.

Nun bleibt nur noch der Weg über OPENROWSET (siehe Beispiel) was wunderbar funktioniert.

SELECT * INTO #JobInfo
FROM OPENROWSET('sqloledb', 'server=(local);trusted_connection=yes', 'set fmtonly off exec msdb.dbo.sp_help_job')
Select
[name],
cast(ltrim(str(last_run_date))+' '+stuff(stuff(right('000000'+ltrim(str(last_run_time)), 6) , 3, 0, ':'), 6, 0, ':') as NVARCHAR(255)) as 'Last Run',
CASE [current_execution_status]
	WHEN 1 THEN 'Executing'
	WHEN 2 THEN 'Waiting For Thread'
	WHEN 3 THEN 'Between Retries'
	WHEN 4 THEN 'Idle'
	WHEN 5 THEN 'Suspended'
	WHEN 7 THEN 'PerformingCompletion'
	ELSE 'Unknown'
	END AS Status
, CASE [last_run_outcome]
	WHEN 0 THEN 'Failed'
	WHEN 1 THEN 'Success'
	ELSE 'Unknown'
	END AS Result
from #JobInfo
ORDER BY [name]
DROP TABLE #JobInfo

Frohes neues Jahr 2009

Ich möchte hier an dieser Stelle allen ein frohes neues Jahr 2009 wünschen!

Incognitomail – Wegwerfadressen Teil 2

Bei Incognitomail bekommt man wie bei dem bereits vorgestellten Temporaryinbox eine Temporäre E-Mail Adresse, kostenlos und ohne vorherige Anmeldung.

incognitomail

incognitomail

E-Mail Adressen zum wegwerfen

Wer kennt die Situation nicht. Mal will nur eben an einem Gewinnspiel teilnehmen, etwas in ein

Gästebuch schreiben oder vielleicht nur etwas herunterladen. Meist wird in diesen Fällen eine E-Mail Adresse verlangt. Ich will aber nicht Hinz und Kunz meine private Adresse hinterlassen, welche dann auch leider oft in irgendwelchen Spamverteilern landen.

Hier gibt es einen super Service, welcher dazu noch völlig kostenfrei ist, und keinerlei Registrieung verlangt – Temporaryinbox.com! Hier kann jeder ohne Voranmeldung eine Einweg-E-Mail Adresse sich holen, so oft man mag bzw. braucht. Als zusätzliches Feature kann der Posteingang auch per RSS-Feed überwacht werden.

Link: http://www.temporaryinbox.com/

Willkommen

Hallo zusammen!

Nach langer Zeit will ich mich auch mal wieder an einem Blog versuchen.
Ob das was wird in der Zukunft und mit der Zeit, wird sich weise.

Gruß,

Christian