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

Psts auslesen und in .txt-datei speichern

Frage Microsoft Outlook & Mail

Mitglied: adler123

adler123 (Level 1) - Jetzt verbinden

02.10.2013, aktualisiert 15:08 Uhr, 2158 Aufrufe, 2 Kommentare

hi

ich hab gerade ein brett vor meinem kopf und bitte daher inständigst um eure hilfe!


es gibt eine .bat-datei, die u.a. eine .vbs-datei aufruft und deren ergebnisse wiederum in eine .txt-datei speichern soll - zur grundlegenden erklärung.

das ist die .bat-datei:
(namentlich "Drucker-Netz-Psts_auslesen.bat")
01.
net use >C:\pstPfade\netz.txt 
02.
reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices" >> C:\drucker.txt 
03.
\\server1\cscript \\server1\software$\pstPfade.vbs >C:\PST-Export.txt
das wäre die .vbs-datei:
(namentlich die 3 zeilen drüber angeführte pstPfade.vbs)
01.
Option Explicit  
02.
  
03.
ChkScriptHost()  
04.
  
05.
Dim ws, fso  
06.
Dim arrProfilesG(), NumProfiles, DefaultProfile, i  
07.
  
08.
Set ws = WScript.CreateObject("WScript.Shell")  
09.
Set fso = WScript.CreateObject("Scripting.FileSystemObject")  
10.
DetectPST()  
11.
ChkNumProfiles()  
12.
For i = 0 To NumProfiles - 1  
13.
    ChkNumFolders(i)  
14.
Next  
15.
DispLine "Quiting Script..."  
16.
Set fso = Nothing  
17.
Set ws = Nothing  
18.
  
19.
Sub ChkScriptHost()  
20.
    If InStr( Lcase(WScript.FullName), "wscript.exe") Then  
21.
        Dim ws  
22.
        Set ws = WScript.CreateObject("WScript.Shell")  
23.
        ws.Run("%ComSpec% /k cscript.exe //nologo """ & WScript.ScriptFullName & """")  
24.
        Set ws = Nothing  
25.
        WScript.Quit  
26.
    End If  
27.
End Sub  
28.
  
29.
  
30.
Sub DetectPST()  
31.
    Dim KeyPath, strComputer, FoldersKeyPath, objWMIReg, arrProfiles, i, j, k, l, NumProfiles, PSTFound  
32.
    Dim strValue, KeyValue, NumFolders, KeyName, PSTKeyName, PSTPath, PSTVersion, arrFolders(), FolderName, NumPST  
33.
    Const HKEY_CURRENT_USER = &H80000001  
34.
    strComputer = "."  
35.
    KeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\"  
36.
      
37.
    On Error Resume Next  
38.
    DefaultProfile = ws.RegRead("HKCU\" & KeyPath & "DefaultProfile")  
39.
    Set objWMIReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")  
40.
    objWMIReg.EnumKey HKEY_CURRENT_USER, KeyPath, arrProfiles  
41.
    On Error GoTo 0  
42.
    NumProfiles = UBound(arrProfiles) + 1  
43.
    ReDim Preserve arrProfilesG(NumProfiles - 1, 2)  
44.
    For i = LBound(arrProfiles) To UBound(arrProfiles)  
45.
        FoldersKeyPath = "HKCU\" & KeyPath & arrProfiles(i) & "\9207f3e0a3b11019908b08002b2a56c2\01023d00"  
46.
        On Error Resume Next  
47.
        strValue = ws.RegRead(FoldersKeyPath)  
48.
        If Err = 0 Then  
49.
            For j = LBound(strValue) To UBound(strValue)  
50.
                If strValue(j) < 16 Then  
51.
                    KeyValue = KeyValue & "0" & LCase(CStr(Hex(strValue(j))))  
52.
                Else  
53.
                    KeyValue = KeyValue & LCase(CStr(Hex(strValue(j))))  
54.
                End If  
55.
            Next  
56.
            NumFolders = (Len(KeyValue) / 32)  
57.
        End If  
58.
        On Error GoTo 0  
59.
        arrProfilesG(i, 0) = arrProfiles(i)  
60.
        NumPST = 0  
61.
        PSTFound = False  
62.
        For k = 1 To NumFolders  
63.
            FolderName = ""  
64.
            PSTPath = ""  
65.
            PSTVersion = ""  
66.
            KeyName = Mid(KeyValue, ((k - 1) * 32) + 1, 32)  
67.
            PSTKeyName = "HKCU\" & KeyPath & arrProfiles(i) & "\"& KeyName & "\001f6700"  
68.
            On Error Resume Next  
69.
            strValue = ws.RegRead(PSTKeyName)  
70.
            If Err = 0 Then  
71.
                For l = LBound(strValue) To UBound(strValue)  
72.
                    If strValue(l) <> 0 Then PSTPath = PSTPath & Chr(strValue(l))  
73.
                Next  
74.
                FolderName = ws.RegRead("HKCU\" & KeyPath & arrProfiles(i) & "\" & KeyName & "\001e3001")  
75.
                If Err = 0 Then  
76.
                    PSTVersion = "97-2002"  
77.
                    PSTFound = True  
78.
                    NumPST = NumPST + 1  
79.
                    ReDim Preserve arrFolders(2, NumPST - 1)  
80.
                    arrFolders(0, NumPST - 1) = FolderName  
81.
                    arrFolders(1, NumPST - 1) = PSTPath  
82.
                    arrFolders(2, NumPST - 1) = PSTVersion  
83.
                Else  
84.
                    strValue = ws.RegRead("HKCU\" & KeyPath & arrProfiles(i) & "\" & KeyName & "\001f3001")  
85.
                    For l = LBound(strValue) To UBound(strValue)  
86.
                        If strValue(l) <> 0 Then FolderName = FolderName & Chr(strValue(l))  
87.
                    Next  
88.
                    PSTVersion = "2003"  
89.
                    PSTFound = True  
90.
                    NumPST = NumPST + 1  
91.
                    ReDim Preserve arrFolders(2, NumPST - 1)  
92.
                    arrFolders(0, NumPST - 1) = FolderName  
93.
                    arrFolders(1, NumPST - 1) = PSTPath  
94.
                    arrFolders(2, NumPST - 1) = PSTVersion  
95.
                End If  
96.
            End If  
97.
            On Error GoTo 0  
98.
        Next  
99.
        arrProfilesG(i, 1) = PSTFound  
100.
        arrProfilesG(i, 2) = arrFolders  
101.
    Next  
102.
    Set objWMIReg = Nothing      
103.
End Sub  
104.
  
105.
Sub DispLine(Text)  
106.
    WScript.StdOut.WriteLine Text      
107.
End Sub  
108.
  
109.
Sub DispMsg(Text, Num, Keyword1, Keyword2)  
110.
    Select Case Num  
111.
        Case 0, 1  
112.
            DispLine Replace(Text, "&k", Keyword1)  
113.
        Case Else  
114.
            DispLine Replace(Text, "&k", Keyword2)  
115.
    End Select  
116.
End Sub  
117.
  
118.
Sub ChkNumProfiles()  
119.
    NumProfiles = UBound(arrProfilesG, 1) + 1  
120.
    DispMsg "Found " & NumProfiles & " &k for this user.", NumProfiles, "profile", "profiles"  
121.
    DispLine "Default Profile: " & DefaultProfile  
122.
End Sub  
123.
  
124.
Sub ChkNumFolders(i)  
125.
    Dim NumFolders, TotalNumFolders, j  
126.
    DispLine ""  
127.
    DispLine "Checking Profile: " & arrProfilesG(i,0)& " ..."  
128.
    If arrProfilesG(i, 1) = True Then  
129.
        TotalNumFolders = UBound(arrProfilesG(i, 2), 2) + 1  
130.
        For j = 0 To TotalNumFolders - 1  
131.
            If arrProfilesG(i, 2)(2, j) = "97-2002" Then  
132.
                NumFolders = NumFolders + 1  
133.
            End If  
134.
        Next  
135.
        DispMsg vbTab & "Found totally " & TotalNumFolders & " personal &k under profile " & arrProfilesG(i, 0) & ".", NumFolders, "folder", "folders"  
136.
        DispLine ""  
137.
        DispPSTInfo(arrProfilesG(i, 2))  
138.
        If NumFolders > 0 Then  
139.
            DispMsg vbTab & "Found " & NumFolders & " &k old version.", NumFolders, "is", "are"  
140.
        Else  
141.
            DispLine vbTab & "No old version personal folder found."  
142.
        End If  
143.
    Else  
144.
        DispLine vbTab & "No persional folder found."  
145.
    End If  
146.
End Sub  
147.
  
148.
Sub DispPSTInfo(arrFolders)  
149.
    Dim i  
150.
    For i = LBound(arrFolders, 2) To UBound(arrFolders, 2)   
151.
        DispLine vbTab & "Folder Name: " & arrFolders(0, i)  
152.
        DispLine vbTab & "Path: " & arrFolders(1, i)  
153.
        DispLine vbTab & "Format: " & arrFolders(2, i)  
154.
        DispLine vbTab & "Size: " & FormatNumber(fso.GetFile(arrFolders(1, i)).Size,0,,-1) & " Bytes"  
155.
        DispLine ""  
156.
    Next  
157.
End Sub

wie gesagt - kopf gegen schreibtisch und so. die "netz.txt" und "drucker.txt" funktionieren 1a, aber das mit den psts funktioniert bis dato nur, wenn man die .vbs-datei "standalone" ausführt. ich bekomm die variablen nicht in die text-datei.

*finger aufzeig* hilfe.... bitte.... danke!

lg


[Edit Biber] Codeformatierung [/Edit]
Mitglied: emeriks
02.10.2013 um 14:50 Uhr
Hallo adler123,
mal abgesehen davon, dass Du bei DER Formatierung nicht wirklich viel Antworten erwarten kannst ...

Warum schreibst Du aus der VBS nicht gleich in eine Datei? Also statt "WScript.StdOut" gleich "fso.OpenTextFile", als "append"?

Emeriks
Bitte warten ..
Mitglied: MartinBinder
02.10.2013 um 15:04 Uhr
01.
\\server1\cscript \\server1\software$\pstPfade.vbs >C:\PST-Export.txt
Was ist denn \\server1\cscript für ein Aufruf???
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

Batch & Shell
gelöst Zeiten in .txt datei auslesen und Differenz berechnen (14)

Frage von meex87 zum Thema Batch & Shell ...

PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 im Unternehmen? (26)

Frage von zorlayan zum Thema Windows 10 ...

LAN, WAN, Wireless
Ping u. DNS geht am Rechner nicht mehr (19)

Frage von Kuemmel zum Thema LAN, WAN, Wireless ...

Festplatten, SSD, Raid
Raid 1 2 SSD mit Windows Server 2016 (17)

Frage von jaywee zum Thema Festplatten, SSD, Raid ...