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, 2136 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 ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Webentwicklung
gelöst HTML Output in eine txt Datei mit VisualBasicScript (2)

Frage von coca22COCA zum Thema Webentwicklung ...

Batch & Shell
Merkwürdige Zeilenformatierung in txt Datei (3)

Frage von miczar zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

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

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...