示例#1
0
        internal PathInfo SetLocation(string path, ProviderRuntime runtime)
        {
            if (path == null)
            {
                throw new PSArgumentException("Path is null", "SetLocationPathNull", ErrorCategory.InvalidArgument);
            }

            ProviderInfo pinfo;

            path = Globber.GetProviderSpecificPath(path, runtime, out pinfo);
            var provider          = _sessionState.Provider.GetInstance(pinfo);
            var containerProvider = CmdletProvider.As <ContainerCmdletProvider>(provider);
            var itemIntrinsics    = new ItemCmdletProviderIntrinsics(_sessionState);

            if (!itemIntrinsics.Exists(path, runtime) ||
                !itemIntrinsics.IsContainer(containerProvider, path, runtime))
            {
                throw new PSArgumentException("The path does not exist or is not a container",
                                              "SetLocationInvalidPath", ErrorCategory.InvalidArgument);
            }

            if (provider is FileSystemProvider)
            {
                // TODO: really? I think PS doesn't do this
                System.Environment.CurrentDirectory = path;
            }

            var curDrive = runtime.PSDriveInfo;

            curDrive.CurrentLocation         = path;
            _sessionStateGlobal.CurrentDrive = curDrive;
            return(new PathInfo(curDrive, path, _sessionState));
        }
示例#2
0
 internal ProviderIntrinsics(SessionStateInternal sessionState)
 {
     using (ProviderIntrinsics.tracer.TraceConstructor((object)this))
     {
         this.item               = sessionState != null ? new ItemCmdletProviderIntrinsics(sessionState) : throw ProviderIntrinsics.tracer.NewArgumentNullException(nameof(sessionState));
         this.childItem          = new ChildItemCmdletProviderIntrinsics(sessionState);
         this.content            = new ContentCmdletProviderIntrinsics(sessionState);
         this.property           = new PropertyCmdletProviderIntrinsics(sessionState);
         this.securityDescriptor = new SecurityDescriptorCmdletProviderIntrinsics(sessionState);
     }
 }
示例#3
0
 internal ProviderIntrinsics(Cmdlet cmdlet)
 {
     using (ProviderIntrinsics.tracer.TraceConstructor((object)this))
     {
         this.cmdlet             = cmdlet != null ? (InternalCommand)cmdlet : throw ProviderIntrinsics.tracer.NewArgumentNullException(nameof(cmdlet));
         this.item               = new ItemCmdletProviderIntrinsics(cmdlet);
         this.childItem          = new ChildItemCmdletProviderIntrinsics(cmdlet);
         this.content            = new ContentCmdletProviderIntrinsics(cmdlet);
         this.property           = new PropertyCmdletProviderIntrinsics(cmdlet);
         this.securityDescriptor = new SecurityDescriptorCmdletProviderIntrinsics(cmdlet);
     }
 }
示例#4
0
 internal ProviderIntrinsics(SessionStateInternal sessionState)
 {
     if (sessionState == null)
     {
         throw PSTraceSource.NewArgumentNullException("sessionState");
     }
     this.item = new ItemCmdletProviderIntrinsics(sessionState);
     this.childItem = new ChildItemCmdletProviderIntrinsics(sessionState);
     this.content = new ContentCmdletProviderIntrinsics(sessionState);
     this.property = new PropertyCmdletProviderIntrinsics(sessionState);
     this.securityDescriptor = new SecurityDescriptorCmdletProviderIntrinsics(sessionState);
 }
示例#5
0
 internal ProviderIntrinsics(SessionStateInternal sessionState)
 {
     if (sessionState == null)
     {
         throw PSTraceSource.NewArgumentNullException("sessionState");
     }
     this.item               = new ItemCmdletProviderIntrinsics(sessionState);
     this.childItem          = new ChildItemCmdletProviderIntrinsics(sessionState);
     this.content            = new ContentCmdletProviderIntrinsics(sessionState);
     this.property           = new PropertyCmdletProviderIntrinsics(sessionState);
     this.securityDescriptor = new SecurityDescriptorCmdletProviderIntrinsics(sessionState);
 }
        /// <summary>
        /// Constructs a facade over the "real" session state API.
        /// </summary>
        /// <param name="sessionState">
        /// An instance of the cmdlet.
        /// </param>
        internal ProviderIntrinsics(SessionStateInternal sessionState)
        {
            if (sessionState == null)
            {
                throw PSTraceSource.NewArgumentNullException(nameof(sessionState));
            }

            Item               = new ItemCmdletProviderIntrinsics(sessionState);
            ChildItem          = new ChildItemCmdletProviderIntrinsics(sessionState);
            Content            = new ContentCmdletProviderIntrinsics(sessionState);
            Property           = new PropertyCmdletProviderIntrinsics(sessionState);
            SecurityDescriptor = new SecurityDescriptorCmdletProviderIntrinsics(sessionState);
        }
示例#7
0
 internal ProviderIntrinsics(Cmdlet cmdlet)
 {
     if (cmdlet == null)
     {
         throw PSTraceSource.NewArgumentNullException("cmdlet");
     }
     this.cmdlet = cmdlet;
     this.item = new ItemCmdletProviderIntrinsics(cmdlet);
     this.childItem = new ChildItemCmdletProviderIntrinsics(cmdlet);
     this.content = new ContentCmdletProviderIntrinsics(cmdlet);
     this.property = new PropertyCmdletProviderIntrinsics(cmdlet);
     this.securityDescriptor = new SecurityDescriptorCmdletProviderIntrinsics(cmdlet);
 }
示例#8
0
 internal ProviderIntrinsics(Cmdlet cmdlet)
 {
     if (cmdlet == null)
     {
         throw PSTraceSource.NewArgumentNullException("cmdlet");
     }
     this.cmdlet             = cmdlet;
     this.item               = new ItemCmdletProviderIntrinsics(cmdlet);
     this.childItem          = new ChildItemCmdletProviderIntrinsics(cmdlet);
     this.content            = new ContentCmdletProviderIntrinsics(cmdlet);
     this.property           = new PropertyCmdletProviderIntrinsics(cmdlet);
     this.securityDescriptor = new SecurityDescriptorCmdletProviderIntrinsics(cmdlet);
 }
        /// <summary>
        /// Constructs a facade over the "real" session state API.
        /// </summary>
        /// <param name="cmdlet">
        /// An instance of the cmdlet.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// If <paramref name="cmdlet"/> is null.
        /// </exception>
        internal ProviderIntrinsics(Cmdlet cmdlet)
        {
            if (cmdlet == null)
            {
                throw PSTraceSource.NewArgumentNullException(nameof(cmdlet));
            }

            _cmdlet            = cmdlet;
            Item               = new ItemCmdletProviderIntrinsics(cmdlet);
            ChildItem          = new ChildItemCmdletProviderIntrinsics(cmdlet);
            Content            = new ContentCmdletProviderIntrinsics(cmdlet);
            Property           = new PropertyCmdletProviderIntrinsics(cmdlet);
            SecurityDescriptor = new SecurityDescriptorCmdletProviderIntrinsics(cmdlet);
        }
示例#10
0
        internal ProviderIntrinsics(Cmdlet cmdlet)
        {
            if (cmdlet == null)
            {
                throw new NullReferenceException("Cmdlet can't be null.");
            }

            _cmdlet            = cmdlet;
            ChildItem          = new ChildItemCmdletProviderIntrinsics(cmdlet);
            Content            = new ContentCmdletProviderIntrinsics(cmdlet);
            Item               = new ItemCmdletProviderIntrinsics(cmdlet);
            Property           = new PropertyCmdletProviderIntrinsics(cmdlet);
            SecurityDescriptor = new SecurityDescriptorCmdletProviderIntrinsics(cmdlet);
        }
示例#11
0
        internal ProviderIntrinsics(Cmdlet cmdlet)
        {
            if (cmdlet == null)
            {
                throw new NullReferenceException("Cmdlet can't be null.");
            }

            _cmdlet = cmdlet;
            ChildItem = new ChildItemCmdletProviderIntrinsics(_cmdlet);
            Content = new ContentCmdletProviderIntrinsics(_cmdlet);
            Item = new ItemCmdletProviderIntrinsics(_cmdlet);
            Property = new PropertyCmdletProviderIntrinsics(_cmdlet);
            SecurityDescriptor = new SecurityDescriptorCmdletProviderIntrinsics(_cmdlet);
        }
        } // ProviderIntrinsics internal

        /// <summary>
        /// Constructs a facade over the "real" session state API
        /// </summary>
        ///
        /// <param name="sessionState">
        /// An instance of the cmdlet.
        /// </param>
        ///
        internal ProviderIntrinsics(SessionStateInternal sessionState)
        {
            if (sessionState == null)
            {
                throw PSTraceSource.NewArgumentNullException("sessionState");
            }

            Item      = new ItemCmdletProviderIntrinsics(sessionState);
            ChildItem = new ChildItemCmdletProviderIntrinsics(sessionState);
            Content   = new ContentCmdletProviderIntrinsics(sessionState);
            Property  = new PropertyCmdletProviderIntrinsics(sessionState);
#if SUPPORTS_IMULTIVALUEPROPERTYCMDLETPROVIDER
            this.propertyValue = new PropertyValueCmdletProviderIntrinsics(sessionState);
#endif
            SecurityDescriptor = new SecurityDescriptorCmdletProviderIntrinsics(sessionState);

#if RELATIONSHIP_SUPPORTED
            // 2004/11/24-JeffJon - Relationships have been removed from the Exchange release
            this.relationship = new RelationshipProviderIntrinsics(sessionState);
#endif
        } // ProviderIntrinsics internal
        } // ProviderIntrinsics internal

        /// <summary>
        /// Constructs a facade over the "real" session state API
        /// </summary>
        ///
        /// <param name="sessionState">
        /// An instance of the cmdlet.
        /// </param>
        ///
        internal ProviderIntrinsics(SessionStateInternal sessionState)
        {
            if (sessionState == null)
            {
                throw PSTraceSource.NewArgumentNullException("sessionState");
            }

            Item = new ItemCmdletProviderIntrinsics(sessionState);
            ChildItem = new ChildItemCmdletProviderIntrinsics(sessionState);
            Content = new ContentCmdletProviderIntrinsics(sessionState);
            Property = new PropertyCmdletProviderIntrinsics(sessionState);
#if SUPPORTS_IMULTIVALUEPROPERTYCMDLETPROVIDER
            this.propertyValue = new PropertyValueCmdletProviderIntrinsics(sessionState);
#endif
            SecurityDescriptor = new SecurityDescriptorCmdletProviderIntrinsics(sessionState);

#if RELATIONSHIP_SUPPORTED
    // 2004/11/24-JeffJon - Relationships have been removed from the Exchange release
            this.relationship = new RelationshipProviderIntrinsics(sessionState);
#endif
        } // ProviderIntrinsics internal
示例#14
0
        internal PathInfo SetLocation(string path, ProviderRuntime runtime)
        {
            if (path == null)
            {
                throw new PSArgumentException("Path is null", "SetLocationPathNull", ErrorCategory.InvalidArgument);
            }

            ProviderInfo pinfo;
            path = Globber.GetProviderSpecificPath(path, runtime, out pinfo);
            var provider = _sessionState.Provider.GetInstance(pinfo);
            var containerProvider = CmdletProvider.As<ContainerCmdletProvider>(provider);
            var itemIntrinsics = new ItemCmdletProviderIntrinsics(_sessionState);

            if (!itemIntrinsics.Exists(path, runtime) ||
                !itemIntrinsics.IsContainer(containerProvider, path, runtime))
            {
                throw new PSArgumentException("The path does not exist or is not a container",
                    "SetLocationInvalidPath", ErrorCategory.InvalidArgument);
            }

            if (provider is FileSystemProvider)
            {
                // TODO: really? I think PS doesn't do this
                System.Environment.CurrentDirectory = path;
            }

            var curDrive = runtime.PSDriveInfo;
            curDrive.CurrentLocation = path;
            _sessionStateGlobal.CurrentDrive = curDrive;
            return new PathInfo(curDrive, path, _sessionState);
        }