Jump to content

Refnex

Members
  • Gesamte Inhalte

    29
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von Refnex

  1. Hi @ all,

    hatte sowas mal in vbs geschrieben.

     

     

    Hier Viel Spass

    '======================================================================================
    '
    '	Help file use html
    '======================================================================================
    
    if msgbox("You like to show the Manual of this programm ?", vbYesNo,"Bulk File renamer powerd by xxx") = vbyes then 
    
          Set wshshell = WScript.CreateObject("WScript.Shell")
    	runman = "\\Server01\deployment$\Applications\Individual\HTM_Manuals_for_progs\Bulk_file_renamer\1.htm"
    wshshell.run(runman),0,false
    
    else 
    
          ' hier code für nö 
    
    end if
    
    '======================================================================================
    
    '======================================================================================
    '	Deklaration
    '======================================================================================
    
    Dim oCmd, oFolder, oFSO, oFileList, oFile 
    Dim sRenamePath, sRenamePrefix, sFileExtension, sConfirmRename, scriptcall
    Dim iFileCount, iFileIndex 
    Dim bConfirmEach 
    
    '======================================================================================
    
    
    '======================================================================================
    '	GUI Browse Folder
    '======================================================================================
    
    
    
    ' Flags for the options parameter
    Const BIF_returnonlyfsdirs   = &H0001
    Const BIF_dontgobelowdomain  = &H0002
    Const BIF_statustext         = &H0004
    Const BIF_returnfsancestors  = &H0008
    Const BIF_editbox            = &H0010
    Const BIF_validate           = &H0020
    Const BIF_browseforcomputer  = &H1000
    Const BIF_browseforprinter   = &H2000
    Const BIF_browseincludefiles = &H4000
    
    Dim wsh, objDlg, objF
    
    ' Get Application object of the Windows shell.
    Set objDlg = WScript.CreateObject("Shell.Application")
    
    ' Use the BrowseForFolder method.
    ' For instance: Set objF = objDlg.BrowseForFolder _
    '     (&H0, "Select the folder to copy", &H10, "C:\Born")
    
    Set objF = objDlg.BrowseForFolder (&H0, _
        "Please Select the folder to rename his Items", _
        BIF_editbox + BIF_returnonlyfsdirs)
    
    ' Here we use the first method to detect the result.
    If IsValue(objF) Then 
        sRenamePath = objF.Title
    Else
        WScript.quit()
    End If
    
    ' Here we use TypeName to detect the result.
    If InStr(1, TypeName(objF), "Folder") > 0 Then
        sRenamePath = objF.Title
    Else
        WScript.quit()
    End If
    
    Function IsValue(obj)
        ' Check whether the value has been returned.
        Dim tmp
        On Error Resume Next
        tmp = " " & obj
        If Err <> 0 Then
            IsValue = False
        Else
            IsValue = True
        End If
        On Error GoTo 0
    End Function
    
    '======================================================================================
    
    '======================================================================================
    '	Choose Praefix
    '======================================================================================
    
    
    sRenamePrefix = InputBox("Please input the Prefix for the Name", "Bulk File renamer powerd by xxx")
    
    If sRenamePrefix = "" Then 
    wscript.Echo "Error no Praefix" 
    WScript.quit() 
    end if
    
    
    '======================================================================================
    
    '======================================================================================
    '	Rename Files in Loop
    '======================================================================================
    
    
    'Set wshshell = WScript.CreateObject("WScript.Shell")
    'scriptcall = "rename.vbs"
    'runthis = scriptcall & sRenamePath & sRenamePrefix
    'wshshell.run(runthis)
    
     
     'Set oCmd = Wscript.Arguments 
     
    REM Select Case (oCmd.Count) 
        REM Case 2 
          REM sRenamePath = oCmd.item(0) 
          REM sRenamePrefix = oCmd.item(1) 
          REM bConfirmEach = False 
        REM Case 3 
          REM sRenamePath = oCmd.item(0) 
          REM sRenamePrefix = oCmd.item(1) 
          REM bConfirmEach = oCmd.item(2) 
        REM Case Else 
          REM WScript.Echo "RenameFiles.vbs requires 2 parameters:" &_ 
              REM vbcrlf & "1) Folder Path (or . for current folder)" &_ 
              REM vbcrlf & "2) File Prefix" &_ 
              REM vbcrlf & "3) Confirm each file? True/*False* (optional)" 
          REM WScript.Quit 
    REM End Select 
    ' 
    ' Get a list of all files in the specified folder 
    ' 
    Set oFSO = CreateObject("Scripting.FileSystemObject") 
    Set oFolder = oFSO.GetFolder(sRenamePath) 
     
    Set oFileList = oFolder.Files 
    For Each oFile in oFileList 
        iFileCount = iFileCount + 1 
    Next 
     
    For Each oFile in oFileList 
        sFileExtension = Right(oFile.Name,Len(oFile.Name)-InStr(oFile.Name,".")) 
        If (LCase(sFileExtension) <> "db" AND LCase(sFileExtension) <> "jbf") Then         
           'Skip thumbs.db and PSP.jbf files 
            iFileIndex = iFileIndex + 1 
            If (bConfirmEach) Then 
                sConfirmRename = LCase(InputBox("Rename " & oFile.Name & "?")) 
            Else 
                sConfirmRename = "y" 
            End If 
            If (sConfirmRename = "y") Then 
                oFile.Move (sRenamePath & "\" & sRenamePrefix & "_" & _ 
                    ZeroFill(iFileIndex,Len(iFileCount)) & "." & sFileExtension) 
            End If 
        End If 
    Next 
    Set oFolder = Nothing 
    Set oFSO = Nothing 
    WScript.Echo "Done" 
    WScript.Quit 
    '======================================================================================
    Function ZeroFill (sString, iFieldLength) 
        ZeroFill = Right(String(iFieldLength, "0") & Ltrim(sString), iFieldLength) 
    End Function 
    
    
  2. Hi Sorry war noch unterwegs,

     

    Kannst du das etwas Spezifizieren ? 

     

    Meinst du so ?

    # Auslesen der Ist Situation Ausgabe Name und Host auf dem die VM derzeit läuft
    $Array_VM_is = @(Get-ClusterGroup | select Name, OwnerNode)
    # Auslesen des Prefferiertem Node 
    $Array_VM_want =@(Get-ClusterGroup | Get-ClusterOwnerNode ) #| select OwnerNodes
    $New = $Array_VM_is | Where {$Array_VM_want -NotContains $_}
    $New.OwnerNodes
    
    

    Dort bekomme ich Gar kein ergebniss wenn ich mir die Variable New.OwnerNodes ausgeben lasse

    Lasse ich mir aber die Variable New.OwnerNode " ACHTUNG ohne S " bekomme ich das gleiche ergebniss wie vorher. 

     

    Name                 ID                    State

    HyperV-Host    (Id des Node)     Up/Down

     

    Hierzu sei auch gesagt das bei den Beiden Abfragen in zu den VM und den Hosts die Parameter bei den VM´s in (wo sie Momentan laufen ) als OwnerNode ( ohne s ) angegeben werden und bei der Abfrage Wo sie laufen sollten der Node als OwnerNodes ( mit s ) angegeben wird.

     

    Bin echt a bissal ratlos

  3. Hallo Zusammen,

     

    Ich muss ein Kleines Script in Powershell erstellen das Folgendes erledigt:

    Ausgangs Situation ist ein Cluster mit mehreren Nodes, Das script soll ermitteln Auf welchem Node gerade eine VM Läuft und welcher Node der Owner ist (Bevorzugter Besitzer Node ist )

    Wenn ddie VM auf dem Falschen Node Läuft soll soll sie Via Live Migration verschoben werden.

     

    Ich habe versuch mit Folgenden Die Situation zu ermitteln:

    Die Ist situation:

    $Array_VM_is = @(Get-ClusterGroup | select Name, OwnerNode)
    

    Dies gibt mir auch schön aus Auf Welchem Node Gerade Die VMs laufen und Pumpt sie in ein Array.

     

    Die Soll Situation:

    $Array_VM_want =@(Get-ClusterGroup | Get-ClusterOwnerNode )
    

    Zeigt mir dann an welcher der Owner (Bevorzugter Besitzer Node ist )

     

    Wie kann ich nun am besten diese Zwei spalten, 

    Array_VM_is "OwnerNode" 

    mit der Spalte aus 

    Array_VM_want "OwnerNodes" 

    Vergleichen und mir die Falschen Maschienen ausgeben lassen ?

     

    Ich habe es schon versucht mit  

    forEach ($Node in $Array_VM_is) {
    if ($Array_VM_want.OwnerNodes -contains $Node.OwnerNode){
    echo $Node.OwnerNode
        }
    }
    #echo $compare
    

    jedoch bekomme ich hier nur Die HyperV Nodes Ausgegeben im Format:

    Name                 ID                    State

    HyperV-Host    (Id des Node)     Up/Down

     

    Das Selbe Ergebniss wenn ich versuche sie mit compare zu Vergleichen 

    Compare-Object -ReferenceObject $Array_VM_is.OwnerNode -DifferenceObject $Array_VM_want.OwnerNodes
    

    Kann mir hier jemand weiterhelfen ?

     

    Gruss

     

  4. Moin,

     

    Gehört ja,

    Getestet ?  Ja nach besten wissen und gewissen. jedoch bekomme ich hier eine sehr für mich Cryptische Ausgabe.

     

    #TYPE Microsoft.PowerShell.Commands.Internal.Format.FormatStartData
    "ClassId2e4f51ef21dd47e99d3c952918aff9cd","pageHeaderEntry","pageFooterEntry","autosizeInfo","shapeInfo","groupingEntry"
    "033ecb2bc07a4d43b5ef94ed5a35d280",,,"Microsoft.PowerShell.Commands.Internal.Format.AutosizeInfo","Microsoft.PowerShell.Commands.Internal.Format.TableHeaderInfo",
    "9e210fe47d09416682b841769c78b8a3",,,,,
    "27c87ef9bbda4f709f6b4002fa4af63c",,,,,
    "27c87ef9bbda4f709f6b4002fa4af63c",,,,,
    "27c87ef9bbda4f709f6b4002fa4af63c",,,,,
    "27c87ef9bbda4f709f6b4002fa4af63c",,,,,
    "4ec4f0187cb04f4cb6973460dfe252df",,,,,
    "cf522b78d86c486691226b40aa69e95c",,,,,

    ok danke fehler gefunden 

     

    -closed-

  5. Hi @ all

     

    ich habe ne kleine frage.

     

    Ich habe hier ein Script was mir die Hyper-V CSV belegung ausgibt 

    #Loads the FailoverClusters module
     Import-Module FailoverClusters
     
    $objs = @()
     
    #Write the name of your cluster instead of “clustername”
     $csvs = Get-ClusterSharedVolume -Cluster meinserver.irgendwas.com 
     foreach ( $csv in $csvs )
     {
        $csvinfos = $csv | select -Property Name -ExpandProperty SharedVolumeInfo
        foreach ( $csvinfo in $csvinfos )
        {
           $obj = New-Object PSObject -Property @{
              Name        = $csv.Name
              Path        = $csvinfo.FriendlyVolumeName
              Size        = $csvinfo.Partition.Size
              FreeSpace   = $csvinfo.Partition.FreeSpace
              UsedSpace   = $csvinfo.Partition.UsedSpace
              PercentFree = $csvinfo.Partition.PercentFree
           }
           $objs += $obj
        }
     }
     
    #Writes the output in a nice-looking format to “filname” (insert your own)
     
    $objs | ft -auto Name,Path,@{ Label = “Size(GB)” ; Expression = { “{0:N2}” -f ($_.Size/1024/1024/1024) } },@{ Label = “Free(GB)” ; Expression = { “{0:N2}” -f ($_.FreeSpace/1024/1024/1024) } },@{ Label = “Used(GB)” ; Expression = { “{0:N2}” -f ($_.UsedSpace/1024/1024/1024) } },@{ Label = “PercentFree” ; Expression = { “{0:N2}” -f ($_.PercentFree) } } | out-file “filename.txt”  -Encoding default 
    
     
    
      
    

    Dieser liefert mir ein Brauchbares ergebniss

     

     
    Name               Path                      Size(GB) Free(GB) Used(GB) PercentFree
    ----               ----                      -------- -------- -------- -----------
    Volume1 - VM-01-R5 C:\ClusterStorage\Volume1 826,56   226,59   599,97   27,41      
    Volume2 - VM-02-R5 C:\ClusterStorage\Volume2 836,56   242,72   593,84   29,01      
    Volume3 - VM-03-R5 C:\ClusterStorage\Volume3 1 394,36 450,08   944,27   32,28      
    Volume4 - VM-04-R5 C:\ClusterStorage\Volume4 1 673,25 416,77   1 256,48 24,91      
     
     
    Jedoch will ich hier noch für ein anderes Programm eine Semikolon Trennung.
     
     
    Name               Path                      Size(GB) Free(GB) Used(GB) PercentFree
    ----               ----                      -------- -------- -------- -----------
    Volume1 - VM-01-R5 ; C:\ClusterStorage\Volume1 ; 826,56 ;  226,59  ; 599,97 ;  27,41      
    Volume2 - VM-02-R5 ; C:\ClusterStorage\Volume2 ; 836,56 ;  242,72  ; 593,84 ;  29,01      
    Volume3 - VM-03-R5 ; C:\ClusterStorage\Volume3 ; 1 394,36 ; 450,08 ;  944,27 ;  32,28      
    Volume4 - VM-04-R5 ; C:\ClusterStorage\Volume4 ; 1 673,25 ; 416,77 ;  1 256,48 ; 24,91      
     
     
    Wie bekomme ich das hin ?
     
    Sorry habe mit Powershell noch nicht wirklich gearbeitet bin mehr oldshool vbs ;-)
     
    Danke für eure hilfe Gruss 
  6. Hallo Sunny61,

     

    Das die Combi nicht der Bringer ist ist mir klar, und den Artikel zur EventId habe ich auch schon gefunden und Die DB Files und Paths auf zugriffs Berechtigungen geprüft hier ist alles iO.

     

    Jedoch verstehe ich deine Aussage nicht ganz ??

    Nicht jeder ist SQL er genauso wie nicht jeder Routig und Switching kann ;-) ich würd auch nicht im Cisco Forum schreiben wenn jemand mit nen Catalyst Probelme hatt " Ist ne schlechte Kombination, Wie Wär es jemanden dazu zu holen " sonder würd ihm Probieren zu Helfen ;-)

     

    Aber danke für deinen Aufschlussreiche Hilfestellung

     

    PS: nimms Bitte Jetzt nicht Persönlich gegen deine Person ;-)

     

    Gruss

  7. Hi @ all SQL er,

     

    Ich habe hier ein Kleines Grosses Problem.

    Leider ist uns auf dem Monitorring Server (ActiveExperts) die HDD gecrasht.

    Der Server und Alle Tools wie Ridgline etc... laufen nach dem Restore auch gut, jedoch die Verbindungen auf die DB's bekomme ich nicht UP.

    Hier erhalte ich immer folgenden Fehler egal was ich mache ;-(

     

    ==================================================================================================

    TITLE: Microsoft SQL Server Management Studio
    ------------------------------

    Cannot show requested dialog.

    ------------------------------
    ADDITIONAL INFORMATION:

    Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc)

    For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476

    ------------------------------

    An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

    ------------------------------

    Database 'msdb' cannot be opened due to inaccessible files or insufficient memory or disk space.  See the SQL Server errorlog for details. (Microsoft SQL Server, Error: 945)

    For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.2500&EvtSrc=MSSQLServer&EvtID=945&LinkId=20476

    ------------------------------
    BUTTONS:

    OK
    ------------------------------

    ==================================================================================================

     

    Leider habe ich keinerlei Ahnung von MSSql und ich hoffe mir kann hier jemand helfen die DB wieder ans laufen zu bringen.

    Grüsse an alle

  8. Hallo @ all

     

    Ich denke die Cisco Cracks uter euch können mir sicher weiterhelfen.

     

    es geht um Folgendes:

     

    Ich habe hier ein SAP System Stehen wo der Zugriff auf geweisse Server per ACL beschränt werden soll.

    Es Handelt aber hierbei um Exreme Switches,

    Die ACL soll folgendermasen aussehen z.B. es sollen DNS abfragen aus dem Netz 10.50.0.0/24 auf 2 server mit der IP 10.0.1.12 und 10.0.1.13 erlaubt werden die Regle schaut nun folgendermasen aus

    entry Sap-to-DNS-DCs {
    	if {
    			source-address 10.50.0.0/24;
    			destination-address 10.0.1.12/31;
    			protocol tcp;
    			source-port 1688;
    			destination-port 1688;
    	} then {
    			permit;
    			count DNS-DCs;
    }
    }

    geht das mit der Prefix angabe /31 da es sich hierbei laut RFC3021 nur für eine Point-to-Point verbindungen eraubt ist.

    oder ist das ne absolute vergewaltigung ?

     

    Abeer meiner meinung nach sollte es doch möglich sein da es bei einer ACL ja keine Broadcast und Netzadresse gibt oder ?

     

    Ich hoffe ihr versteht was ich meine sont einfach nochmal fragen ;-)

    Danke für eure hilfe

  9. Hi @ all

     

    hab da mal so ne keine frage und hoffe es kann mir jemand helfen.

    Ich muss gerade nen Script basteln was Auf dem Server via Schedule Job ausgeführt wird und immer in einer csv die Daten von den Festplatten (Gesamt, Belegt) einträgt und dann in ein weiteres File dumpt zur weiter Bearbeitung.

    Dieses file soll eine XLS sein und die dort übernommenen Server anhand ihres namens immer in ein neues Tabellen Blatt eingefügt werden.

     

    das zusammen Sammeln und das Speichen bzw. Convertiren in XLS bekomme ich noch hin aber mit der Sortierung tu ich mir schwer

     

    Hier mal der Source das ihr wisst was das dingens Treibt

     

    '------------------------------------------
    ' Ermittlung des Computernamens
    Set MyFiles	= CreateObject("Scripting.FileSystemObject")
    Set wshnet = CreateObject("WScript.Network")
    Set wshshell = CreateObject("WScript.Shell")
    Dim strComputer
    strComputer = wshnet.Computername
    'Auslesen der Windows-Hardwareinformationen
    
    
    ' Um weitere laufwerke hinzu zu fügen verwenden Sie folgenden String
    ' "   if objItem.Caption = "(Laufwerk buchstabe):" then (festplatten ausgabe variable)= objItem.Caption & " ; " & Round(objItem.FreeSpace /1024 /1024 /1024, 2) & " ; " & Round(objItem.Size /1024 /1024 /1024,2) & " ; " & " GByte"
    ' achten sie Bitte darauf das sie auch die ausgabe in Zeile 
    
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk",,48)
    For Each objItem in colItems
    if objItem.Caption = "C:" then festplatteC= objItem.Caption & "; " & Round(objItem.FreeSpace /1024 /1024 /1024, 2) & " ; " & Round(objItem.Size /1024 /1024 /1024,2) & ";" & " GByte"
    if objItem.Caption = "D:" then festplatteD= objItem.Caption & "; " & Round(objItem.FreeSpace /1024 /1024 /1024, 2) & " ; " & Round(objItem.Size /1024 /1024 /1024,2) & ";" & " GByte"
    Next
    
    ' Datum und Uhrzeit ermitteln
    Dim ausgabe
    Dim datum
    Dim zeit
    
    set ausgabe = WScript.CreateObject("WScript.Shell")
    datum = Date
    zeit = Time
    timestamp = datum & " "  & zeit
    
    
    
    '===================================================================================
    ' FOR DEBUGING
    '===================================================================================
    
    ' Messagebox mit den abgefragten Werten erzeugen und anzeigen lfür Debug
    'Meldung = "Folgende Daten wurden ermittelt:" & VbCr & VbCr
    
    
    ' ACHTUNG wie oben beschreiben bei zugefügtem laufwerk bitte ausgabe anpassen 
    'Example "Add "Festplatte C: " & festplatteC"
    
    'Add "Festplatte C: " & festplatteC
    'Add "Festplatte D: " & festplatteD
    'Add "Timestamp: " & timestamp
    
    'MsgBox Meldung,,"Ergebnis:"
    
    '====================================================================================
    
    Sub Add(text)
       ' fügt Text hinzu
      Meldung = strComputer & Meldung & text & vbCrLf
    End Sub
    
    '===================================================================================
    ' FOR DEBUGING
    '===================================================================================
    'Frage_Logfile = "Sollen diese Angaben in das Logfile eingetragen werden?"
    'antwort = MsgBox(Frage_Logfile, vbYesNo + vbQuestion,"Logeintrag erzeugen?")
    'if antwort = vbNo then
     ' MsgBox "Kein Logeintrag geschrieben.",vbExclamation,"Abbruch"
      'WScript.Quit
    'end if
    '======================================================================================
    
    
    ' Erzeugung des Strings für die Logdatei
    
    Logeintrag = timestamp & ";" & strComputer & ";"  & festplatteC & ";" & festplatteD
    
    ' Deklaration der Variablen für das Logfile
    filename = "d:\HW-Infos.csv" ' <---- Hier den Pfad und den Dateinamen des zu schreibenden Logfiles eintragen
    
    
    Const ForAppending = 8
    Set fs = CreateObject("Scripting.FileSystemObject")
    
    ' Logdatei zum Anhängen der Eintrage laden
    Set textstream = fs.OpenTextFile(filename, ForAppending, True)
    ok = (Err.number = 0)
    If ok Then
       On Error Goto 0
       textstream.WriteLine Logeintrag
       textstream.Close'
       Logeintrag_OK = "Folgender Logeintrag wurde erzeugt:" & vbcr & vbcr & Logeintrag
    '   MsgBox Logeintrag_OK,,"Logeintragung erfolgreich:"
    Else
       MsgBox "Fehler: " & Err.Description
    End If
    
    '===========================================================================================================
    ' Convert CSV to XLS
    '===========================================================================================================
    
    Dim sInFile
    sOutPathDefault = "d:\KonvertierteCSV" 'Angabe des Default-Zielpfades ohne abschließenden "\"
    
    sInFile = filename
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    If Not fso.FileExists(sInFile) Then
    	WScript.Echo sInFile & " nicht gefunden!"
    	WScript.Quit(1)	
    Else 'Pfad der Quelldatei zerlegen
    	Set oInFile = fso.GetFile(sInFile) 'für vollständige Dateiangaben aus Dateisystem
    	sInPath = oInFile.Path 'voller Quelldateipfad - wird zum Einlesen verwendet
    	sInFileName = Left(oInFile.Name, InstrRev(oInFile.Name, ".") - 1) 'Dateiname ohne Pfad und Typ
    	sInFileType = Mid(oInFile.Name, InstrRev(oInFile.Name, ".")) 'für Überprüfung auf CSV
    	Set oInFile = Nothing
    End If
    
    If WScript.Arguments.Count > 1 Then
    	sOutFilePath = WScript.Arguments(1) 'angegebenen Zielpfad verwenden
    Else
    	sOutFilePath = sOutPathDefault 'kein Zielpfad angegeben - Default verwenden
    End If
    
    If Not fso.FolderExists(sOutFilePath) Then 'Zielpfad nicht vorhanden, daher ...
    	On Error Resume Next
    	fso.CreateFolder(sOutFilePath) '... zu erstellen versuchen
    	If Err.Number > 0 Then
    		WScript.Echo "Ungueltiger Zielpfad: " & sOutFilePath
    		WScript.Quit(1)
    	Else
    		On Error Goto 0 'Standardfehlerbehandlung wieder einschalten
    	End If
    End If
    
    If LCase(sInFileType) = ".csv" Then 'bei Typ ".csv" für Import in Temp-File kopieren
    	sInPathTemp = sOutFilePath & "\" & sInFileName & ".tmp" 'Temp-File im Zielverzeichnis anlegen (Annahme: dort Schreibrechte)
    	fso.CopyFile sInPath, sInPathTemp
    	sInPath = sInPathTemp 'Daten aus Temp-File lesen
    End If
    
    sOutPath = sOutFilePath & "\" & sInFileName & ".xls" 'Zieldateipfad erstellen
    Do While InStr(sOutPath, "\\") 'vermeiden doppelter (mehfacher) "\" im Zieldateipfad (stört Excel offensichtlich nur beim Speichern)
    	sOutPath = Replace(sOutPath, "\\", "\")
    Loop
    
    Set oXL = CreateObject("Excel.Application")
    With oXL
    	.Workbooks.OpenText sInPath, , , 1, , , , True, , , , ,Array(Array(1, 1),Array(2, 2))	
    	On Error Resume Next
    	.ActiveWorkbook.ActiveSheet.Cells.EntireColumn.AutoFit 'Optimale Spaltenbreite für alle Spalten setzen
    	.DisplayAlerts = False 'Keine Rückfrage beim Überschreiben schon vorhandener Zieldatei
    	.ActiveWorkbook.SaveAs sOutPath, -4143 'Speichern als .xls
    If Err.Number > 0 Then
    		CleanUp
    		WScript.Echo sOutPath & " konnte nicht gespeichert werden!"
    		WScript.Quit(1)
    	End If
    	
    End With
    CleanUp
    
    Sub CleanUp
    oXL.Quit
    Set oXL = Nothing
    If LCase(sInFileType) = ".csv" Then
    	On Error Resume Next
    	fso.DeleteFile sInPathTemp 'temporäre Import-Datei zu löschen versuchen
    End If
    End Sub

    evtl fällt euch ne Idee ein wie das klappen soll

    thx schönes we

    Ben

  10. Hi @ all

     

     

    Ich habe mal eine Frage,

     

    Ich als absoluter Exchange low-pro habe eine Frag zum Thema Freigabe eines Postfaches über die console von Exchange.

     

    Situation:

     

    Person 1 ist im Krankenstand

    Person 2 ist für 4 Monate im Urlaub

    Person 3 ist anwesend

    Person 4 ist anwesend und Chef

     

    Nun will der Chef der Abteilung Zugriff auf die Postfächer von Person 1,2,3

     

    Diesen kann man ja über die Verwaltungsconsole von Exchange mit Rechtsklick auf das Postfach und Manage Full Access Permissions bewerkstelligen,

     

    Meine Frage an euch sieht er dann das Komplette Postfach inklusive unter Ordner etc….

    Oder gibt es auch hier irgendwelche Restriktionen?

     

    Danke für eure Antworten und einen schönen Tag noch

  11. Hi Sorry war im ausland bei nem kunden,

     

    Also das Problem hatt sich gelöst genaues kann ich auch nicht sagen wie es entstanden ist.

     

    Jedenfals war es so das dort nur Windows Maschienen auf dem HyperV Node laufen und aufeinmal haben die V-MAschienen ca 70 pings <1ms =1ms auf nen Ping gehabt und dann 2-3 aussreisser mit 1200 - 2500ms.

     

    es liefen ca. 15 Vserver auf dem host und die ausfälle waren auf allen Vserven zu gleichen zeit aber nur auf 1nem Node.

    wobei der Node an sich nie Schlechte Latenzen hatte sondern nur die Vserver

     

    ich Habe mich dann entschlossen den IPstack zurück zu setzen auf dem Node via. netsh int ip reset c:\resetlog.txt

     

    das hatt dann auch geholfen.

    nu laufen se wieder wie am Schnürchen ;-)

  12. Hi @ all

     

    Ich hebe ein Kleines Problem, wir haben einen Hyper-V Cluster mit 3 nodes,

    jeder node bestitz 12 Netzwerk Karten, 4 im Trunk für das Public Lan + 2 Fail Over, 2 im Trunk für das DMZ Lan, 2 im Trunk für Live Migration Lan und 2 für das CSV Lan.

     

    Nun zu meinem Problem, Der 3. node ist via Ping einwandfrei zu erreichen jedoch auf den v-servern habe ich das Phenomen das ich ca 50-70 pings <1ms bzw =1ms habe und dann einen aussreisser mit 1200ms bis 2700ms.

     

    Somit meldet unser Monitorring mehrmals am TAg kleine ausfälle über die pings was relativ lästig ist.

     

    auf keinem anderen Node treten diese Probleme, ich habe auch nochmal die Switch config geprüft dort ist alles i.o.

     

    Hatte schonmal jemand ein ähnliches Problem ? oder einen Denkanstoss für mich wo dieses Phenomen herkommen kann ?

     

    dake für eure Hilfe

    Gruss

  13. Hi Thx für die Antworten, habe mir das mit den GPO`s auch angesehn und denke so werde ich es die tage auch umsetzten ( späterstens mit dem neuen Printserver).

     

    habe nun auch das Problem mit dem Drucker löschen können im script,

    das problem war das die drucker nicht auf die maschiene sondern auf den user gemappt werden und somit er natürilich nicht in HKLM sondern in HKCU

    suchen muss ;-)

     

    wer das script noch benötigen sollte nu iss es lauffähig.

     

    Danke nochmal an alle und gruss an alle

     

     

    on error resume next 
    Const HKEY_CURRENT_USER = &H80000001 
    strComputer = "."
    strComputer-srv = "PRN01" 
    strPrinter = "XR6_PCL6" 
    strServer = "PRN01" 
    strPrintdel = "XR6-PCL6"
    
    Set netPrinter = CreateObject("WScript.Network")  
    
    UNCpath = "\\" & strServer & "\" & strPrinter 
    netPrinter.AddWindowsPrinterConnection UNCpath 
    
     regKey = "Printers\Connections\,,HOHPRN01,HOHXR6-PCL6"
    RegDeleteTree HKEY_CURRENT_USER, regKey
    
    
    Sub RegDeleteTree(hiveParam, keyParam) 
       Dim aSubKeys, strKey, strSubKey, ccode, reo                          ' get the registry WMI provider
       Set reo = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
                                                                            ' we add a backslash in tail
       If (Right(keyParam,1)<>"\") Then keyParam = keyParam & "\" 
    
       On Error Resume Next                                                 ' deactivate RunTime Errors 
       ccode = reo.EnumKey(hiveParam, keyParam, aSubKeys)                   ' check for key content 
       If ccode = 0 And IsArray(aSubKeys) Then 
           For Each strSubKey In aSubKeys 
               If Err.Number <> 0 Then                                      ' wrong key or other error => exit 
                   Err.Clear 
                   Exit Sub 
               End If 
               RegDeleteTree hiveParam, keyParam & strSubKey                ' for each content do recursion 
           Next 
       End If 
       reo.DeleteKey hiveParam, keyParam                                    ' last action: delete the key
    End Sub 
    
    
    wscript.sleep 2000 																			 ' get the registry WMI provider
    Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & _ 
       "\root\default:StdRegProv") 
    strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows" 						' SET ENTRY PATH
    strEntryName = "Device" 																	' SET ENTRY NAME
    strValue = "\\" & strServer & "\" & strPrinter & ",winspool,Ne04" 
    objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, strEntryName, strValue 
    

  14. Hallo zusemmen.

     

    Ich habe eine Frage an euch, ich Habe mir ein Script gemacht das einen Netzwerk Drucker entfernen und dann einen neuen Mappen soll.

     

    Das Hinzufügen funktioniert auch einwandfrei aber das entfernen Bereitet Probleme.

     

    on error resume next 
    Const HKEY_CURRENT_USER = &H80000001 
    strComputer = "." 
    strPrinter = "PrinterXR6_PCL6" 
    strServer = "ServerPRN01" 
    strPrintdel = "PrinterXR6-PCL6"
    
    Set netPrinter = CreateObject("WScript.Network")  
    
    UNCpath = "\\" & strServer & "\" & strPrinter 
    netPrinter.AddWindowsPrinterConnection UNCpath 
    
    Set objNetwork = WScript.CreateObject("WScript.Network")
    objNetwork.RemovePrinterConnection "\\" & strComputer & "\" & strPrintdel
    
    wscript.sleep 2000 
    Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & _ 
       "\root\default:StdRegProv") 
    strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows" 
    strEntryName = "Device" 
    strValue = "\\" & strServer & "\" & strPrinter & ",winspool,Ne04" 
    objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, strEntryName, strValue 
    
    

     

    Der code wir ohne Fehler ausgeführt der neue Drucker eingerichtet und als Standart Markiert, jedoch der alte nicht gelöscht :confused:

     

    Hoffe es kann mir jemand weiterhelfen.

    Gruss an alle

  15. 
    '-Konstanten----------------------------------------------
    
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    
    '-Array Variablen die zu überprüfenden Ordner getrennt mit ; angeben------
    
    strRootFolder = "\\server510\test\1test; "
    
    'CompName 
    
    'strComputer =strRootFolder 
    
    
    '-Variablen-----------------------------------------------
    
    strRootFolder = split(strRootFolders, ";")
    strLogFile = "F:\Rekursiv_loeschen\log.txt" '-Ablage der Log Datei
    strExcludeFile = "F:\Rekursiv_loeschen\KillfolderExclude.txt" ' In diesem Textfile bitte die zu Exclusion Freigegebenen Verzeichnisse eintragen 
    lngDays = 1
    lngRetries = 3 'Anzahl Versuche, wenn Ordner-löschen fehlschlägt 
    lngRetSleepTime = 1000 'Wartezeit nach Fehlversuch in ms
    
    '---
    
    'Wenn Statusmeldungen in DOS-Box gewünscht, Script mittels "cscript.exe KillOldFolders.vbs" starten!
    If LCase (Right (WScript.FullName, 11)) <> "cscript.exe" Then boolcsript = False Else boolcscript=True
    
    Set objWMIService = GetObject("winmgmts:\\" & strRootFolders & "\root\cimv2")
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ofolder = fso.GetFolder(strRootFolders)
    Set flog = fso.OpenTextFile(strLogFile, ForAppending, True)
    
    Writelog "---- Alte Ordner in " & strRootFolders & " werden gelöscht! - " & Now()
    Writelog "Ausgeschlossene Verzeichnisse:"
    
    Dim arrEx()
    maxExcludes=0
    If fso.FileExists(strExcludeFile) Then
    Set fex = fso.OpenTextFile(strExcludeFile, ForReading)
    Do While Not fex.AtEndOfStream
    maxExcludes=maxExcludes+1
    ReDim Preserve arrEx(maxExcludes)
    arrEx(maxExcludes) = fex.readline()
    Writelog arrEx(maxExcludes)
    Loop
    fex.close
    End If
    
    Writelog "----"
    
    'Durchlaufe alle Unterverzeichnisse
    For Each folder In ofolder.subfolders
    KillfolderSub folder
    Next
    
    Writelog "---- Script beendet - " & Now()
    if not boolcscript then MsgBox "Script beendet - " & Now()
    
    '---
    'ENDE
    '---
    
    Sub KillfolderSub(objFolder)
    'On Error Resume Next
    strFolder = objFolder.Path
    ' vardatecreated = objFolder.datecreated
    
    'Wenn Ordner in "Exclude"-Liste steht, nicht löschen!
    boolExclude = False
    For i=1 To maxExcludes
    if lcase(strFolder) = lcase(trim(arrEx(i))) then boolExclude = True
    Next
    
    If boolExclude Then
    Writelog "Ordner " & strFolder & " incl. Unterordner nicht gelöscht (Exclude-Regel!)"
    
    Else
    
    'Durchlaufe alle Unterverzeichnisse
    For Each subfolder In objFolder.subfolders
    KillfolderSub subfolder
    Next
    
    'Wenn Ordner vor mehr als x Tagen erstellt wurde...
    
    ' WScript.Echo vardatecreated & " - "& Date & " - "& lngDays
    ' If vardatecreated < (Date - lngDays) Then
    ' WScript.Echo "alt löschen"
    'Alle Dateien im Ordner löschen
    For Each file In objFolder.Files
    vardatecreated = file.DateLastModified
    'Script.Echo file & " - "&vardatecreated & " - "& Date & " - "& lngDays
    If vardatecreated < (Date - lngDays) Then
    Err.Clear
    strFile = file.Path
    fso.DeleteFile strFile, True
    If Err = 0 Then
    Writelog "Datei " & strFile & " gelöscht"
    Else
    Writelog "Datei " & strFile & " konnte nicht gelöscht werden! - Fehler " & Err & " (" & Err.Description & ")"
    End If 
    Else
    Writelog "Datei " & strFile & " nicht gelöscht! - zu Neu" & vardatecreated
    End If
    Next
    
    ' End If
    End If
    
    
    
    
    On Error Goto 0
    End Sub
    
    
    '---
    'Löschen leerer Ordner
    '---
    
    mko (strRootFolders)
    
    Sub mko (sfolder)
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fsofolder = fso.GetFolder(sFolder)
    For Each subfolder In fsofolder.SubFolders
    
    mko(subfolder.Path)
    
    Next
    
    If fsofolder.Files.Count = 0 And fsofolder.SubFolders.Count = 0 Then
    fsofolder.Delete vbTrue
    
    End If
    
    
    
    End Sub
    
    
    '---
    
    Sub Writelog(strMessage)
    
    flog.writeline strMessage
    if boolcscript then WScript.echo strMessage
    
    End Sub
    

  16. Hallo an alle,

     

    ich habe ein kleines problem.

    ich habe hier ein script was in verschieden ordner zugreiffen soll und

    dann den inhalt bzw die ordner darunter löscht.

     

    ausser sie sind in einer exclusions liste erfasst.

    local funzt das script 1. klasse ber sobale ich es auf ein UNC Pfad \\coputer schicke kommt der Fehler 0x80041021

     

    hier mal das script evtl kann mir einer von euch sagen wo der fehler liegt :confused:

  17. hi @ all

     

    ich habe hier nen kleines problem und hoffe ihr könnt mir helfen.

     

    wir haben beabsichtigt in unserer firma zum aufsetzen neuer clients den windows deployment server zu verwenden.

    die installation verlief problemlos, aber wenn ich nun einen abbild rechner vorbereite mit sysprep und dann über px booten lasse, komme ich genau bis zu dem punkt wo er das image auf den server schieben will und danngehts nicht mehr weiter.

     

    genauer gesagt ich kann den windows deploy server erreichen, er zeigt mir auch die abbildgruppen an, aber das feld weiter ist ausgegraut :confused:

     

    hoffe es kann mir jemand helfen,

    bei fragen was bei meiner schreibweise immer vorkommt ^^ einfach nochmal nachfragen

    thx for help

    lg

    Ref

×
×
  • Neu erstellen...