Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VBS ausgabe in der Textdatei Ausrichten, Formatieren

Frage Entwicklung VB for Applications

Mitglied: u0206084

u0206084 (Level 1) - Jetzt verbinden

06.03.2007, aktualisiert 09.03.2007, 8251 Aufrufe, 5 Kommentare

Hallo

Ich lese anhand folgenden Scriptes das AD aus und leite die Ausgabe in eine Textdatei um, leider ist die Ausgabe nicht bündig untereinander sondern verschoben. Wer kann mir helfen die Ausrichtung des Textes anzupassen.

Mein Script:

strDom = "Rm1.dom"
Const FRIST =14

Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000

Set objDomainNT = GetObject("WinNT://" & strDom)
intMaxPwdAge = objDomainNT.Get("MaxPasswordAge")
If intMaxPwdAge <= 0 Then
WScript.Echo "Max Passwortalter ist 0, Passwörter laufen nicht ab!"
WScript.Quit
End If
intMaxPwdAge = Int(intMaxPwdAge / 86400)


Set oGroup = GetObject("WinNT://" & strDom & "/Domain Users")


For Each oObject In oGroup.Members


Set oUser = GetObject(oObject.ADsPath)
intCurrentValue = oUser.UserFlags
If intCurrentValue and ADS_UF_DONT_EXPIRE_PASSWD Then
'WScript.Echo oUser.Name & ": Passwort läuft niemals ab."
Else
intPasswordAge = oUser.PasswordAge
dtmChangeDate = DateAdd("s", -intPasswordAge, Now)
'WScript.Echo oUser.Name & ": Passwort zuletzt geändert: " & dtmChangeDate
intExpire = DateDiff("d", Now, dtmChangeDate) + intMaxPwdAge
If intExpire <= 0 Then 'abgelaufen
strMessage = oUser.Name & ": abgelaufen - Tage: " & -intExpire
ElseIf intExpire <= FRIST Then 'demnächst
strMessage = "Passwort des Benutzer" & vbtab & oUser.Name & vbtab &"("& oUser.Fullname &")" & vbTab & vbTab &"laueft in " & intExpire & " Tagen ab"& vbCRLF
WScript.Echo strMessage

End If



End If
Next
Mitglied: bastla
06.03.2007 um 16:25 Uhr
Hallo u0206084!

Du könntest die beiden Functions "FormL" und "FormR" dazu verwenden, einen String links- oder rechtsbündig ausgerichtet mit Leerstellen auf eine bestimmte Länge zu ergänzen - für eine vernünftige Darstellung des Ergebnisses ist aber ein Font mit einer fixen Breite (à la "Courier New" erforderlich).

Zusammen mit einer kleinen Demo sähe das so aus:
01.
'FormatDemo.vbs 
02.
For i = 1 To 20 
03.
	L = FormL(String(i, "X"), 20) 
04.
	R = FormR(String(i, "0"), 20) 
05.
	WScript.Echo L & "|" & R 
06.
Next 
07.
 
08.
 
09.
Function FormL(EinText, Stellen) 
10.
If Stellen > Len(EinText) Then 
11.
	FormL = Left(EinText & Space(Stellen), Stellen) 
12.
Else 
13.
	FormL = EinText 
14.
End If 
15.
End Function 
16.
 
17.
Function FormR(EinText, Stellen) 
18.
If Stellen > Len(EinText) Then 
19.
	FormR = Right(Space(Stellen) & EinText, Stellen) 
20.
Else 
21.
	FormR = EinText 
22.
End If 
23.
End Function
Grüße
bastla

[Edit] Die Demo ist natürlich für eine Verwendung per Commandline, also etwa "cscript //nologo FormatDemo.vbs > FormatDemo.txt" gedacht ... [/Edit]
Bitte warten ..
Mitglied: u0206084
08.03.2007 um 09:58 Uhr
Hallo bastla,
nett das du mir schon wieder versuchst zu helfen, leider habe ich keine ahnung wie ich dein Script in das obige inplementieren kann.

aAso wenn du Zeit und Lust hast wäre ich dir dankbar.

Gruß
Bitte warten ..
Mitglied: Biber
08.03.2007 um 11:11 Uhr
Moin u02060084,

01.
strDom = "Rm1.dom" 
02.
Const FRIST =14 
03.
 
04.
Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000 
05.
 
06.
Set objDomainNT = GetObject("WinNT://" & strDom) 
07.
intMaxPwdAge = objDomainNT.Get("MaxPasswordAge") 
08.
If intMaxPwdAge <= 0 Then 
09.
    WScript.Echo "Max Passwortalter ist 0, Passwörter laufen nicht ab!" 
10.
    WScript.Quit 
11.
End If 
12.
intMaxPwdAge = Int(intMaxPwdAge / 86400) 
13.
 
14.
Set oGroup = GetObject("WinNT://" & strDom & "/Domain Users") 
15.
 
16.
For Each oObject In oGroup.Members 
17.
 
18.
     Set oUser = GetObject(oObject.ADsPath) 
19.
     intCurrentValue = oUser.UserFlags 
20.
     If intCurrentValue and ADS_UF_DONT_EXPIRE_PASSWD Then 
21.
         'WScript.Echo oUser.Name & ": Passwort läuft niemals ab." 
22.
     Else 
23.
         intPasswordAge = oUser.PasswordAge 
24.
         dtmChangeDate = DateAdd("s", -intPasswordAge, Now) 
25.
         'WScript.Echo oUser.Name & ": Passwort zuletzt geändert: " & dtmChangeDate 
26.
         intExpire = DateDiff("d", Now, dtmChangeDate) + intMaxPwdAge 
27.
         If intExpire <= 0 Then 'abgelaufen 
28.
            strMessage = Pad( oUser.Name, 15) & ": abgelaufen - Tage: " & -intExpire 
29.
         ElseIf intExpire <= FRIST Then 'demnächst 
30.
           strMessage = "Passwort des Benutzer" & vbtab & Pad(oUser.Name, 15) & _  
31.
             vbtab &"("& Pad(oUser.Fullname, 25) &")" & vbTab & vbTab &"laueft in " & Pad(intExpire, 2) & " Tagen ab"& vbCRLF 
32.
              WScript.Echo strMessage 
33.
 
34.
          End If 
35.
 
36.
     End If 
37.
Next 
38.
Wscript.quit() 
39.
Function Pad( EinString, Fixlen) 
40.
   Pad = Left( cStr(EinString) & Space(FixLen), FixLen) 
41.
End Function
[ungetestete Skizze]

Gruss
Biber
Bitte warten ..
Mitglied: bastla
08.03.2007 um 14:17 Uhr
@Biber

Die Function würde vielleicht besser "PadOrCut()" heißen - oder auch "Procrustes()" ...

Grüße
bastla
Bitte warten ..
Mitglied: u0206084
09.03.2007 um 15:42 Uhr
Vilen Danke für euere Hilfe hat Prima geklappt.

Danke
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Python
Python - ausgabe formatieren

Frage von BadFsaadKl zum Thema Python ...

Batch & Shell
gelöst VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen) (5)

Frage von Luuke257 zum Thema Batch & Shell ...

Visual Studio
gelöst VBS schreibt bestimmte Variable nicht in Textdatei (11)

Frage von Saschaaaaa zum Thema Visual Studio ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...