$id = "firstname.lastname@example.org"
#See how many items are in mailbox
Get-MailboxFolderStatistics $id | Select Identity, ItemsInFolder
#Delete items in mailbox
Search-Mailbox -Identity $id -DeleteContent -force
"Exchange Server database transaction logs record all changes to an Exchange Server database. Over time, these log files accumulate and use all the available disk space if they are not periodically removed from the hard disk." (ref)By using Scanner, I confirmed that the fat cat on the server was the Exchange logging. For our environment, we didn't care about backing up changes to the database. For this case, enabling circular logging was the solution because it enabled the Exchange server to automatically get rid of unnecessary log files and by so freeing up disk space. I used the directions here to enable circular logging, which involved dismounting and remounting the database.
"To speed up new log file creation and the automatic deletion process, you can send yourself an e-mail message with a 5-megabyte (MB) attachment" (ref)Oddly enough, it worked and shortly thereafter the Exchange server's available disk space increased and the EWS application behaved normally again.
At the time of the [command timeout] the transaction is not rolled back unless transaction abort (XACT_ABORT) has been enabled. The client needs to submit a rollback. If the client does not submit the rollback and continues other processing the transaction remains open and the behavior scope of the application becomes undefined.What Bob Dorr is saying is that in the above code, MyInsertMethod1, fails to defensively handle the command timeout exception because it does not end the transaction if such an exception occurs. The transaction can be ended by a COMMIT or ROLLBACK. Furthermore, the side effects of this are not good. The transaction still holds onto any locks that it has, or in other words the transaction is still open and it will "leak".
The Skype for Business Online permissions are tenant administrator consent only. For an app to be used by all users of an O365 tenant, a tenant administrator must provide consent. To provide consent for all users in the tenant, construct the following URL for your app as shown in the example below.Note: update the Client ID and Reply URL (redirect URI) for your app.
"As part of registration, you specify whether your app is a Web application, such as an MVC or Web Forms solution, or a native app, such as a smart phone or other mobile device. Azure AD uses this information to generate resources your app will need to authenticate with Azure."Once the native app is registered in Azure AD then its time to write the code that does the authentication dance with the UCWA and Skype for Business online servers, which goes something like this.
var ar = await authContext.AcquireTokenAsync(resourceUri, UcSettings.ApplicationId, new UserCredential(UcSettings.Username, UcSettings.Password));
/ucwa/oauth/v1/applications/XXX/people/groupMembershipsThis path should be appended to the end of the UCWA application resource URL, such as:
https://webpoolXXXX.infra.lync.com/ucwa/oauth/v1/applications/XXX/people/groupMembershipsThe URI of the new contact will be passed as a parameter in this URL. So, if the contact's URI is sip:newContact@acme.com, it will look something like:
float version = 2.0F;If this POST request is made to the correct application URL with the bearer token, and version header, the new contact should appear in the authenticated user's Skype for Business client almost immediately. In rare cases, it might be necessary to log-out and then back in to see the changes.