Ich habe eine Powershell-Funktion erstellt, um Sitzungsanmeldungen remote auf einem Server zu aktivieren oder zu deaktivieren. Es ist im Grunde das Powershell-Äquivalent von "Anmeldung/Aktivierung ändern".Ausnahme beim Aufrufen von "Put" mit "0" -Argument (en): "" auf Win32_TerminalServiceSetting
Es funktioniert auf den meisten Maschinen, aber aus irgendeinem Grund Ich verstehe nicht, für einige ist es die folgende Fehlermeldung zurück:
Exception : System.Management.Automation.MethodInvocationException: Exception calling "Put" with "0" argument(s): "" ---> System.IO.FileNotFoundException
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Management.ManagementObject.Put(PutOptions options)
at System.Management.ManagementObject.Put()
at Put(Object , Object[])
at System.Management.Automation.MethodInformation.Invoke(Object target, Object[] arguments)
at System.Management.Automation.DotNetAdapter.AuxiliaryMethodInvoke(Object target, Object[] arguments, MethodInformation methodInformation, Object[]
originalArguments)
--- End of inner exception stack trace ---
at System.Management.Automation.DotNetAdapter.AuxiliaryMethodInvoke(Object target, Object[] arguments, MethodInformation methodInformation, Object[]
originalArguments)
at System.Management.Automation.DotNetAdapter.MethodInvokeDotNet(String methodName, Object target, MethodInformation[] methodInformation,
PSMethodInvocationConstraints invocationConstraints, Object[] arguments)
at System.Management.Automation.DotNetAdapter.MethodInvoke(PSMethod method, PSMethodInvocationConstraints invocationConstraints, Object[] arguments)
at System.Management.Automation.Adapter.BaseMethodInvoke(PSMethod method, PSMethodInvocationConstraints invocationConstraints, Object[] arguments)
at System.Management.Automation.PSMethod.Invoke(PSMethodInvocationConstraints invocationConstraints, Object[] arguments)
at System.Management.Automation.PSMethod.Invoke(Object[] arguments)
at System.Management.Automation.Language.PSInvokeMemberBinder.InvokeAdaptedMember(Object obj, String methodName, Object[] args)
at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
at System.Management.Automation.Interpreter.DynamicInstruction`2.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
TargetObject :
CategoryInfo : NotSpecified: (:) [], MethodInvocationException
FullyQualifiedErrorId : DotNetMethodException
ErrorDetails :
InvocationInfo : System.Management.Automation.InvocationInfo
ScriptStackTrace : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : {}
Der Fehler-Stack-Trace hilft mir nicht.
Ich verwende denselben Code mit demselben lokalen Administrator auf allen Computern. Hier
ist der eigentliche Code-Schnipsel:
$TSConnector = Get-WmiObject -Class Win32_TerminalServiceSetting -Namespace "root/cimv2/terminalservices" -Authentication PacketPrivacy
$TSConnector.Logons = 0
$TSConnector.Put()
Jede Idee?
Konnte nicht auf mehreren Server 2012R2-2016 Hosts reproduzieren, bitte teilen Sie ein bisschen mehr Details über den fehlgeschlagenen Host. Vielleicht wurde es überhaupt nicht für Terminaldienste aktiviert oder der Dienst wird gestoppt? –
Sie können auf etwas @GrigorySergeev sein. Auf allen Servern läuft 2008R2, aber ich habe bemerkt, dass ihre Konfiguration des Remotedesktop-Sitzungshosts etwas anders ist: Bei den Geräten, die einwandfrei funktionieren, ist Citrix ICA 3.0 installiert, während auf den fehlerhaften Servern nur RDP 7.1 installiert ist. – geoced
Nun, keiner meiner Testpersonen hat ICA, funktioniert aber gut. Windows-Updates müssen neu gestartet werden? .. –