Ich habe eine Windows Forms App, die Benutzerkonten in Exchange mit Powershell und Exchange2007-Cmdlets bereitstellt. Es gibt nur ein Formular für diese Anwendung, das die Informationen für den neuen Benutzer übernimmt und anschließend die Powershell-Befehle ausführt. Wie ein guter Programmierer habe ich den Code einfach umstrukturiert und alle Exchange- und Active Directory-Aufrufe herausgenommen und in separate Klassen aufgeteilt. In der Windows-Formular, ich den folgenden Code in einer Schaltfläche Click-Ereignis aufrufen:Ich kann nicht auf einen Objektfehler bei externer Klassenbibliothek zugreifen
ExchangeMailboxFunctions exFuncs = new ExchangeMailboxFunctions();
exFuncs.CreateNewMailbox(username, userPrincipalName, OU, txtDisplayName.Text, txtFirstName.Text, txtInitials.Text, txtLastName.Text,
txtPassword1.Text, ckbUserChangePassword.Checked, mailboxLocation);
in der Klasse selbst, ich habe die folgenden:
RunspaceConfiguration config = RunspaceConfiguration.Create();
PSSnapInException warning;
Runspace thisRunspace;
public ExchangeMailboxFunctions()
{
InitializePowershell();
}
private void InitializePowershell()
{
try
{
thisRunspace = RunspaceFactory.CreateRunspace(config);
config.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out warning);
thisRunspace.Open();
}
catch (Exception ex)
{
throw new Exception(string.Format("Could not initialize Powershell: {0}", ex.Message));
}
}
public void CreateNewMailbox(string username, string userPrincipalName, string OU, string DisplayName, string FirstName, string Initials,
string LastName, string Password, bool ChangePasswordNextLogon, string MailboxLocation)
{
try
{
using (Pipeline thisPipeline = thisRunspace.CreatePipeline())
[Set a bunch of pipLine parameters here]
thisPipeline.Invoke();
}
catch (Exception ex)
Die thisPipeline.Invoke verursacht den Fehler und ich habe keine Ahnung, was disposed ist. Dieser Code funktionierte einwandfrei, wenn er im Codebehind des Formulars enthalten war. Ich habe auch einige Active Directory-Methoden, die ich in eine separate Klassenbibliothek riss und sie scheinen gut zu funktionieren.
Was soll ich tun, damit dies aufhört? Vielen Dank! in Ihrem Beispiel
Yup, das ist was passiert. Es scheint auch noch ein weiteres "}" für die Funktion zu fehlen. – JasonMArcher