Jump to content

fazez

Members
  • Gesamte Inhalte

    122
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von fazez

  1. Ja, Ticket wird aufgemacht.

    Das VDP bietet ein eigenes Plugin für Exchange um die Datenbank zu sichern.


    Am 27.10 und 28.10 konnte kein Sanpshot erstellt werden. Der Fehler ist am 26.10 laut VDP aufgetreten.

    VDP: Es ist ein unerwarteter Fehler mit folgendem Fehlercode aufgetreten: 10020. Weitere Informationen sind möglicherweise in den Clientprotokollen verfügbar, die von der Konfigurationsanwendung (https://<VDP-Hostname>:8543/vdp-configure) heruntergeladen werden können.

    Snip aus dem Protokoll:

    2015-10-26T21:02:18.438-02:00 avvcbimage Warning <19733>: vSphere Task failed (quiesce, snapshot error=44): 'An error occurred while saving the snapshot: Failed to quiesce the virtual machine.'.
    2015-10-26T21:02:18.438-02:00 avvcbimage Error <17775>: Snapshot 'VDP-1445889663eb584fa5f8b9514aded246119dbd3260d278ab6a' creation for VM '[Esxi-Exchange-LUN01] Exchange01/Exchange01.vmx' task creation encountered a quiesce problem
    2015-10-26T21:02:18.438-02:00 avvcbimage Warning <0000>: The VM could not be quiesced prior to snapshot creation and this backup will not be used as a base for subseqent CBT backups.
    2015-10-26T21:02:18.438-02:00 avvcbimage Warning <0000>:     Consider using the pre-freeze and post-thaw scripts to facilitate VM quiescing
    2015-10-26T21:02:18.439-02:00 avvcbimage Warning <0000>:     If this is a level 0 backup, rerun with the --quiesce_fs flag set to false to get a valid baseline and then remove it for subsequent backups.


    2015-10-26T22:37:38.232-02:00 avvcbimage Warning <16004>: Soap fault detected, Get In-Use Block problem, Msg:'SOAP 1.1 fault: "":ServerFaultCode [no subcode]
    "Error caused by file /vmfs/volumes/554c8d68-bbe7f810-94b1-001b214ad5e8/Exchange01/Exchange01_1-000001.vmdk"
    Detail: <FileFaultFault xmlns="urn:vim25" xsi:type="FileFault"><file>/vmfs/volumes/554c8d68-bbe7f810-94b1-001b214ad5e8/Exchange01/Exchange01_1-000001.vmdk</file></FileFaultFault>
    '
    2015-10-26T22:37:38.232-02:00 avvcbimage Warning <14654>: The in-use blocks (pass 1) could not be found for 'VDP-1445889663eb584fa5f8b9514aded246119dbd3260d278ab6a', using disk extents.
    2015-10-26T22:37:38.232-02:00 avvcbimage Warning <0000>:    In-use blocks are not available for certain storage types.  The disk must be located on VMFS Volume.
    2015-10-26T22:37:38.232-02:00 avvcbimage Warning <0000>:    additionally, the virtual machine must have zero snapshots when change block tracking was enabled.
    2015-10-26T22:37:38.232-02:00 avvcbimage Warning <0000>: vCenter returned one in-use block of size 858993459200,
    2015-10-26T22:37:38.232-02:00 avvcbimage Warning <0000>:         This could be the result of either a long formatted (or secure erased) disk,
    2015-10-26T22:37:38.232-02:00 avvcbimage Warning <0000>:         the virtual disk is thick and eager zeroed, or a cloned thick disk.

  2. Hi zusammen,

     

    wir haben glaube ich ein riesen Problem :(

     

    Wir haben eine  Exchange 2013 auf vSphere 6.0 laufen. Das Backup wird durch VDP 6.0 durchgeführt. Auf dem Exchange Server wir dazu ein kleiner Plugin installiert dass auch die Exchange DB sichert.

    Seit heute morgen ist der Exchange nicht mehr erreichbar. Im Log steht, dass die Datenbank corrupt bzw. die TimeStamps nicht mehr ok wären.

     

    Im Datenbankverzeichnis sehe ich jetzt 3 .edb mit dem gleichen Namen. Zwei davon haben auch die gleiche Größe. Die Timestamps der .edb unterscheiden sich.

    Das vCenter sagt, dass die VM Konsolidiert werden muss, obwohl im Snapshotmanager keine Snapshots sichtbar sind.

     

    Liege ich richtig in der Annahme, dass mir das VDP wahrscheinlich meine ExchangeDB geschossen hat?

    Was sollte ich jetzt am besten tun?

     

    Meine ersten Maßnahmen:

    Exchange heruntergefahren.

    Wenn der Exchange heruntergefahren ist, könnte ich Snapshot --> Konsolidieren auswählen.

     

    Da ich aber nicht genau weiss was dann passiert habe ich mich entschlossen erst einmal den Exchange zu klonen.

    Wenn der Klon erstellt ist würde ich Konsolidieren versuchen und den Exchange wieder hochfahren.

     

    Würdet ihr das auch so machen? Soll ich die Original VM Konsolidieren oder erst den Klon?

     

    Bitte um Tipps, ich möchte jetzt nichts falsch machen.

     

    MfG Ben

     

  3. Hallo zusammen,

     

    wir haben einen Lync 2010 Standard Server, an dem die Lync-Installation auf dem Laufwerk D liegt. Jetzt ist etwas ganz schreckliches passiert; jemand hat versehentlich einen Softwareverteilungsjob auf dem Lync-Server abgefeuert, der das D-Laufwerk löscht und und eine andere Software auf das Laufwerk kopiert.

     

    Der Zustand ist jetzt der, dass auf dem D-Laufwerk nur Teile der vorherigen Ordnerstruktur gelöscht wurden. Einige Dateien waren wohl zum Zeitpunkt des Löschens in Verwendung und könnten desshalb nicht gelöscht werden.

     

    Der Lync-Server ist eine VM. Und wenn schon mal was daneben geht, dann natürlich richtig. -> Es gibt kein Backup von diesem Server.

     

    Jetzt die spannende Frage: Habe ich eine chance den Server wieder zu reparieren oder ist es ratsamer zu versuchen die Installation sauber zurückzubauen und einen neuen Lync-Server zu installieren? (gerne auch Lync 2013)

    Beim zurückbauen müssen ja einige Dinge aus dem AD entfernt werden, dass eine erneute Installation möglich ist??

     

    Danke für Eure Hilfe :)

     

    Ben

  4. Hi Jetter,

     

    wenn ich am Exchange auf das Postfach gehe und dort Rechte Maus --> Eigenschaften --> Mailbox Settings --> Messaging Records Management --> Properties

    sehe ich dass meine Policy eingetragen ist.

     

    Auf den einzelnen Ordnern --> Eigenschaften im Outlook habe ich den Karteireiter Richtlinien nicht. -sollte da einer sein?

     

    MfG Ben

  5. Hallo zusammen,

     

    habe mir nach der Anleitung hier eine Retention Policy erstellt, die mir alle Emails die älter als 30 Tage sind aus einem bestimmten Postfach löschen soll.

     

    So habe ich das RetentionTag erstellt:

    New-RetentionPolicyTag "30 Tage Aufbewahrung" -Type All -Comment "Alle Emails älter 30 Tage werden permanent gelöscht" -RetentionEnabled $true -AgeLimitForRetention 30 -RetentionAction PermanentlyDelete

    So habe ich das RetentionTag mit der RetentionPolicy verknüpft:

    New-RetentionPolicy "Emails älter 30 Tage löschen" -RetentionPolicyTagLinks "30 Tage Aufbewahrung"

    Policy auf ein Postfach "TestPostfach" anwenden:

    Get-User TestPostfach | Set-Mailbox -RetentionPolicy "Emails älter 30 Tage löschen"

    Und zum Schluss starte ich

    Start-ManagedFolderAssistant -Identity “TestPostfach”

     

    Im Postfach sind nach wie vor alte Emails vorhanden und ich bekomme auch keine Fehlermeldung oder Error Event.

     

    Sieht wer den Fehler??

     

    MfG Ben

     

  6. Hallo zusammen,

     

    bräuchte noch mal kurz eure Hilfe.

     

    Habe ein Skript gebaut das in der dsa.msc am DC über das Kontext aufgerufen werden kann.

     

    Der User auf den im dsa.msc geklickt wurde finde ich so heraus:

    Set Args =  WScript.Arguments
    Set objSdUtil = GetObject(Args(0))

     

    Für den zweiten Teils des Skripts benötige ich aber den LDAP-Pfad von diesem User.

     

    Kann ich irgendwie aus objSdUtil den LDAP-Pfad "herausquetschen"?

     

    Danke,

     

    MfG Ben



    Habe es herausgefunden:

     

    userPath = "LDAP://" & objSdUtil.Get("distinguishedName")

    MfG Ben

  7. Hallo Nils,

     

    danke für den Hinweis, werde es mir gleich anschauen!

     

    MfG Ben



    Ist ein interessantes Tool. Um aber schnell Reports zu erstellen leider ungeeignet.

     

    Ich werde dann mein Problem ein klein bisschen anders lösen:

    Werde mein Skript anpassen dass es den entsprechenden User noch zusätzlich in eine Gruppe aufnimmt. Zum Report erstellen frage ich dann nur die Mitglieder der Gruppe ab.

     

    danke,

     

    MfG Ben

  8. Hallo zusammen,

     

    habe schon lange gesucht, kann aber nichts passendes finden; hoffe hier kann mir geholfen werden :)

     

    Möchte eine LDAP-Abfrage auf alle User in der Domain machen.

    Es sollen nur die User ausgegeben werden, die im Security-Tab des eigenen User-Objects eine bestimmte Gruppe eingetragen haben.

     

    Hintergrund ist, dass eine andere Abteilung auf bestimmte User in der Domain das Recht hat, die Passwörter zurückzusetzen bzw. Accounts zu unlocken. Auf diese User wird per Skript eine Sicherheitsgruppe hinzugefügt (deren Mitglieder alle Mitarbeiter der anderen Abteilung sind) die ich abfragen möchte.

     

    Damit ich mir immer auf die Schnelle einen Überblick verschaffen kann auf welchen Accounts die andere Abteilung erhöhte Rechte hat.

     

    MfG Ben

     

     

  9. Argh, ich war gestern schon zuhause und habe den Code schnell zusammenkopiert....

    Im Skript habe ich das schon richtig angegeben.Hier noch mal das ganze Teil:

     

    <?xml version="1.0" encoding="utf-8" ?>

    <Configuration version="1.0">

    <Feature Name="AddingtoGroup" Cmdlets="Enable-Mailbox">

    <ApiCall Name="OnComplete">

    If($succeeded) {

     

     

    Import-Module ActiveDirectory

    #Add-PSSnapin Microsoft.Windows.AD

     

     

    $User = (Get-User $provisioningHandler.UserSpecifiedParameters["Name"]).sAMAccountName

    Add-AdGroupMember -Identity "Meine Gruppe" -Member $User

     

    }

    </ApiCall>

    </Feature>

    </Configuration>

     

    MfG Fazez

  10. <?xml version="1.0" encoding="utf-8" ?>

    <Configuration version="1.0">

    <Feature Name="AddtoGroup" Cmdlets="Mailbox-Enable">

    <ApiCall Name="OnComplete">

    If($succeeded) {

     

    Import-Module ActiveDirectory

    #Add-PSSnapin Microsoft.Windows.AD

     

    $User = (Get-User $provisioningHandler.UserSpecifiedParameters["Name"]).sAMAccountName

    Add-AdGroupMember -Identity "MeineGruppe" -Member $User

     

    }

    </ApiCall>

    </Feature>

    </Configuration>

  11. Hallo zusammen,

     

    ich würde ganz gerne, wenn für einen User eine Mailbox eingerichtet wird (Enable-Mailbox), den User zu einer AD-Gruppe hinzufügen.

     

    Import-Module ActiveDirectory

    #Add-PSSnapin Microsoft.Windows.AD

     

     

    $User = (Get-User $provisioningHandler.UserSpecifiedParameters["Name"]).sAMAccountName

    Add-AdGroupMember -Identity "MeineGruppe" -Member $User

     

    Ich bekomme immer die Meldung dass das "Add-AdGroupMember" Cmdlet nicht bekannt sei.

     

    Kann mir wer sagen was ich falsch mache?

    Danke,

     

    MfG Fazez

  12. Und was macht der dann da unten, nachdem das Skript auf einen Fehler gelaufen ist?

    Habs rot markiert:

     

    VERBOSE: Adding Mailbox Permission on 'Mailbox' for User 'User' with AccessRights ''FullAccess''.

    VERBOSE: [09:00:45.722 GMT] Add-MailboxPermission : Resolved current organization: .

    VERBOSE: [09:00:45.722 GMT] Add-MailboxPermission : Invoked ScriptingAgentHandler.OnComplete with succeeded=True,

    e=<null>.

    VERBOSE: [09:00:45.722 GMT] Add-MailboxPermission : Executing script "$provisioningHandler = $args[1];

    $succeeded = $args[3];

    $exception = $args[5];

     

     

    If($succeeded) {

     

    Start-Sleep -s 5

     

    Set-ADServerSettings -ViewEntireForest $true

     

    $Mailbox = $provisioningHandler.UserSpecifiedParameters["Identity"]

    $removeUser = $provisioningHandler.UserSpecifiedParameters["User"]

    if (!$Mailbox) {throw "Could not bla bla" } $DomainController = $Mailbox.OriginatingServer

    $LDAPUser=[ADSI]"LDAP://$($DomainController)/$($Mailbox.DistinguishedName)"

    $LDAPUser.msExchDelegateListLink.Remove(((Get-Mailbox $removeUser).DistinguishedName))

    $LDAPUser.SetInfo()

    }

    ".

    VERBOSE: [09:00:50.776 GMT] Add-MailboxPermission : Admin Audit Log: Entered Handler:OnComplete.

    VERBOSE: [09:00:50.808 GMT] Add-MailboxPermission : Admin Audit Log: Exited Handler:OnComplete.

    WARNING: The cmdlet extension agent with the index 0 has thrown an exception in OnComplete(). The exception is:

    Microsoft.Exchange.Provisioning.ProvisioningException: ScriptingAgent: Exception thrown while invoking scriptlet for

    OnComplete API: The following exception occurred while retrieving member "SetInfo": "Unknown error (0x80005000)". --->

    System.Management.Automation.ExtendedTypeSystemException: The following exception occurred while retrieving member

    "SetInfo": "Unknown error (0x80005000)" ---> System.Runtime.InteropServices.COMException (0x80005000): Unknown error

    (0x80005000)

     

    ++++GEKÜRZT++++

     

    VERBOSE: [09:00:50.808 GMT] Add-MailboxPermission : Ending processing &

    VERBOSE: [09:00:50.823 GMT] Add-MailboxPermission : Reading security descriptor of mailbox

    "04a678e5-d58a-404b-9deb-d2d47a27e8b9" from the database on server "unser.exchangeserver.de".

    VERBOSE: [09:00:50.823 GMT] Add-MailboxPermission : Adding the access control entry on the object CN=Nachname\,

    Vorname,OU=hier,OU=und,OU=da,OU=dahoim,DC=istschön,DC=de:

    S-1-5-21-495839723-839482115-682295330-16354; Allow; CreateChild; ContainerInheritAll.

    VERBOSE: [09:00:50.823 GMT] Add-MailboxPermission : Saving security descriptor of mailbox

    "04a446e5-d24a-946b-9deb-d2d98b27eeb9" in the Exchange database on server "unser.exchangeserver.de".

     

    MfG Fazez

  13. Ich habe jetzt einfach mal das Script so zusammengebaut wies es eigentlich funktionieren müsste:

     

    <?xml version="1.0" encoding="utf-8" ?>

    <Configuration version="1.0">

    <Feature Name="MailboxPermissionWithoutAutoMapping" Cmdlets="Add-MailboxPermission">

    <ApiCall Name="OnComplete">

    If($succeeded) {

     

    Start-Sleep -s 5

    Set-ADServerSettings -ViewEntireForest $true

    $Mailbox = $provisioningHandler.UserSpecifiedParameters["Identity"]

    $removeUser = $provisioningHandler.UserSpecifiedParameters["User"]

    if (!$Mailbox) {throw "Could not bla bla" }

    $DomainController = $Mailbox.OriginatingServer

    $LDAPUser=[ADSI]"LDAP://$($DomainController)/$($Mailbox.DistinguishedName)"

    $LDAPUser.msExchDelegateListLink.Remove(((Get-Mailbox $removeUser).DistinguishedName))

    $LDAPUser.SetInfo()

     

    }

    </ApiCall>

    </Feature>

    </Configuration>

     

    Das komische ist, das er mir bei "Set-Info()" aussteigt. Und zwar mit 0x8000500 ("das angegebene Verzeichnisdienstattribut bzw. der Wert ist nicht vorhanden"). Es ist immer die gleiche Fehlermeldung auch wenn ich echte Namen für $removeUser und $Mailbox verwende.

     

    Das erinnert mich stark an die Aussage von Steve Goodmann:

    Disable Exchange 2010 SP1 and SP2's Auto Shared Mailbox Mapping Feature

     

    Savvy Exchange Powershell coders will ask "why don't you do this using the Scripting Agent, disabling it across the board, even in Exchange Management Console".. Well that was my first thought. However, it appears that with Add-MailboxPermission the actual entries are added after the OnComplete section runs instead of before. If that get's fixed I'll certainly re-visit as it would be ideal to have a solution that allows the feature to be switched on or off on demand.

     

    Gibt es noch einen Einstiegspunkt nach OnComplete? Kann doch nicht sein, dass man das nicht umsetzen kann?!?

     

    Hier noch kurz ein Auszug von der Fehlermeldung aus der EMC:

     

     

    Warning:

    The cmdlet extension agent with the index 0 has thrown an exception in OnComplete(). The exception is: Microsoft.Exchange.Provisioning.ProvisioningException: ScriptingAgent: Exception thrown while invoking scriptlet for OnComplete API: The following exception occurred while retrieving member "SetInfo": "Unknown error (0x80005000)". ---> System.Management.Automation.ExtendedTypeSystemException: The following exception occurred while retrieving member "SetInfo": "Unknown error (0x80005000)" ---> System.Runtime.InteropServices.COMException (0x80005000): Unknown error (0x80005000)

    at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)

    at System.DirectoryServices.DirectoryEntry.Bind()

    at System.DirectoryServices.DirectoryEntry.get_AdsObject()

    at System.DirectoryServices.PropertyValueCollection.PopulateList()

    at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName)

    at System.DirectoryServices.PropertyCollection.get_Item(String propertyName)

    at System.Management.Automation.DirectoryEntryAdapter.GetMember[T](Object obj, String memberName)

    at System.Management.Automation.Adapter.BaseGetMember[T](Object obj, String memberName)

     

     

    MfG Fazez

  14. Servus,

     

    habe den Code von Steve blog verwendet. In der PowerShell läuft das einwandfrei wenn ich den Namen von dem User der Rechte auf eine Mailbox bekommen hat händisch eintrage.

     

    Leider weiß ich immer noch nicht wie ich per Skrippt an den User komme.

     

    Wenn ich die folgende Zeile in eine txt pipe:

     

    $user = $provisioningHandler.UserSpecifiedParameters["User"]

     

    steht in der txt das:

     

    SecurityIdentifier

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

     

     

    Jemand noch eine Idee wie das gehen könnte?

    Danke,

     

    MfG Fazez

  15. Habe mit dem ScriptingAgent bisschen zum Spielen angefangen, aber ich checks noch nicht ganz :)

     

    Über das hier kann ich die zuvor geänderte Mailbox ansteuern:

     

    $provisioningHandler.UserSpecifiedParameters["Identity"]

     

    Wie komme ich aber an den User (Max Mustermann), der Rechte für diese Mailbox bekommen hat?

     

     

    <?xml version="1.0" encoding="utf-8" ?>

    <Configuration version="1.0">

    <Feature Name="MailboxPermissionWithoutAutoMapping" Cmdlets="Add-MailboxPermission">

    <ApiCall Name="OnComplete">

    If($succeeded) {

     

    $mailbox = $provisioningHandler.UserSpecifiedParameters["Identity"]

     

    Add-MailboxPermission -Identity $mailbox -User "Mustermann, Max" -AccessRight FullAccess -InheritanceType All -Automapping $false

     

     

    }

    </ApiCall>

    </Feature>

    </Configuration>

     

    Das nächste ist, wenn ich Max Musternamann durch ein realen namen ersetze, der auch das msexchDelegateListBL Attribut auf mein Testpostfach hat, loopt das script. -keine Fehlermeldung wird aber auch nicht fertig.

     

    Habe das getestet in dem ich mir die "Identity" in ein texfile gepiped habe. Als das Textfile dann 1MB gross war habe ich an der EMC abgebrochen...

     

    MfG Fazez

×
×
  • Neu erstellen...