Je suis en train de mettre en place un service qui désactive un accès d'échange de l'utilisateur par powershell à distance au serveur d'échange et d'exécution comme ceci:powershell Remoting à l'échange: Set-CASMailbox ne pas propriété ActiveSyncBlockedDeviceIDs
Set-CASMailbox -Identity usern -OwaEnabled $False
Set-CASMailbox -Identity usern -EwsEnabled $False
Set-CASMailbox -Identity usern -EcpEnabled $False
Set-CASMailbox -Identity usern -MapiEnabled $False
Set-CASMailbox -Identity usern -MapiBlockOutlookRpcHttp $True
Set-CASMailbox -Identity usern -EwsAllowMacOutlook $False
Set-CASMailbox -Identity usern -EwsAllowOutlook $False
//THIS ONE FAILS:
Set-CASMailbox -Identity usern -ActiveSyncBlockedDeviceIDs "USERSDEVICEID"
erreur : Impossible de trouver un paramètre correspondant au nom de paramètre 'ActiveSyncBlockedDeviceIDs'.
quand je fais un Get-Command, à partir du serveur d'échange lui-même, il fait ActiveSyncBlockedDeviceIDs show dans la liste des paramètres Set-CASMailbox accepte, mais quand je fais un Get-Command de mon code C# de la télécommande serveur, il n'affiche pas ActiveSyncBlockedDeviceIDs dans la liste des paramètres !!! est-ce que je manque quelque chose? le commandlet Set-CASMailbox est-il différent entre celui qui s'exécute sur le serveur et celui qui est exposé à distance? ou ce champ n'est-il pas supporté? (ou tout autre arbre que je devrais aboyer pour que cela se produise via un service wcf qui ne s'exécute pas sur le serveur d'échange?)
mon code C# pour l'exécuter à partir du serveur distant est comme ça: (essayez .. . blocs, etc enlevés)
WSManConnectionInfo connectionInfo = new WSManConnectionInfo(
new Uri("http://" + server + "/Powershell/Microsoft.Exchange"),
"http://schemas.microsoft.com/powershell/Microsoft.Exchange",
credential);
Runspace runspace = RunspaceFactory.CreateRunspace(connectionInfo);
PowerShell ps = PowerShell.Create();
ps.Runspace = runspace;
//none of these seem to make any difference if i add them or not.
//ps.Commands.AddScript(@"Import-Module 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'");
//ps.Commands.AddScript(@"Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010");
ps.Commands.AddScript(@"Get-Command");
runspace.Open();
var psResult = ps.Invoke();
//iterate through and find parameters for Set-CASMailbox
foreach (var res in psResult) {
if (res.Members["Name"].Value.ToString()=="Set-CASMailbox") {
foreach (var mem in res.Members) {
if (mem.Name == "ParameterSets") {
Console.WriteLine(mem.Value);
break;
}
}
}
}
liste ou paramètres Sorties:
(ActiveSyncBlockedDeviceIDs est pas là, ni est ActiveSyncEnabledDeviceIDs pour cette matière)
[-Identity] <MailboxIdParameter>
[-ActiveSyncDebugLogging <Nullable`1>]
[-ActiveSyncEnabled]
[-ActiveSyncMailboxPolicy <MailboxPolicyIdParameter>]
[-DisplayName <String>]
[-DomainController <Fqdn>]
[-ECPEnabled]
[-EmailAddresses <ProxyAddressCollection>]
[-EwsAllowEntourage <Nullable`1>]
[-EwsAllowList <MultiValuedProperty`1>]
[-EwsAllowMacOutlook <Nullable`1>]
[-EwsAllowOutlook <Nullable`1>]
[-EwsApplicationAccessPolicy <Nullable`1>]
[-EwsBlockList <MultiValuedProperty`1>]
[-EwsEnabled <Nullable`1>]
[-HasActiveSyncDevicePartnership]
[-IgnoreDefaultScope]
[-ImapEnabled]
[-ImapEnableExactRFC822Size]
[-ImapMessagesRetrievalMimeFormat <MimeTextFormat>]
[-ImapSuppressReadReceipt]
[-ImapUseProtocolDefaults]
[-MAPIBlockOutlookNonCachedMode]
[-MAPIBlockOutlookRpcHttp]
[-MAPIBlockOutlookVersions <String>]
[-MAPIEnabled]
[-Name <String>]
[-OWAEnabled]
[-OwaMailboxPolicy <MailboxPolicyIdParameter>]
[-PopEnabled]
[-PopEnableExactRFC822Size]
[-PopMessagesRetrievalMimeFormat <MimeTextFormat>]
[-PopSuppressReadReceipt]
[-PopUseProtocolDefaults]
[-PrimarySmtpAddress <SmtpAddress>]
[-SamAccountName <String>]
[-ShowGalAsDefaultView]
[-Verbose]
[-Debug]
[-ErrorAction <ActionPreference>]
[-WarningAction <ActionPreference>]
[-ErrorVariable <String>]
[-WarningVariable <String>]
[-OutVariable <String>]
[-OutBuffer <Int32>]
[-WhatIf]
[-Confirm]
Utilisez-vous le même compte sur les sessions locales et distantes lorsque vous exécutez la commande get? – mjolinor
Je le crois. J'ai essayé de passer null, mon compte, et le compte de service que nous avons l'intention d'utiliser pour le PSCredential, tous avec les mêmes résultats. – 101chris
Les cmdlets que vous obtenez dans ces sessions d'accès distant sont personnalisées en fonction des rôles RBAC auxquels le compte de connexion appartient. Vous ne disposez pas de toutes les cmdlets, ou vous pouvez obtenir des cmdlets mais manquer certains paramètres de ces cmdlets si vous n'appartenez pas aux rôles RBAC appropriés pour exécuter ces cmdlets. – mjolinor