diff --git a/README.md b/README.md index 55be2ece7f1d..53351b22bf78 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,43 @@ -## Microsoft Open Source Code of Conduct +# Microsoft Open Source Code of Conduct This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. [![Build status](https://ci.appveyor.com/api/projects/status/onshefxnc4g4pv87/branch/staging?svg=true)](https://ci.appveyor.com/project/PowerShell/powershell-docs/branch/staging) -# PowerShell Documentation +## PowerShell Documentation -Welcome to the PowerShell-Docs repository, housing the official Windows PowerShell documentation. +Welcome to the PowerShell-Docs repository, housing the official PowerShell documentation. ## Repository Structure -Each folder in this repo publishes to [MSDN](https://msdn.microsoft.com/en-us/powershell). The folders correspond to the following PowerShell assets: -* [/dsc/](https://msdn.microsoft.com/en-us/powershell/dsc/) is for the Desired State Configuration feature -* [/gallery/](https://msdn.microsoft.com/powershell/gallery) is for the [PowerShell Gallery](https://www.powershellgallery.com/) -* [/jea/](https://msdn.microsoft.com/powershell/jea/) is for the Just Enough Administration feature -* [/reference/](https://msdn.microsoft.com/powershell/reference/) is for PowerShell module reference across versions 3.0, 4.0, 5.0, 5.1, and 6.0 - * This content will be retrieved by the `Get-Help` cmdlet in the future -* [/scripting/](https://msdn.microsoft.com/en-us/powershell/scripting/) is general PowerShell reference content -* [/wmf](https://msdn.microsoft.com/en-us/powershell/wmf/readme) contains release notes for the Windows Management Framework, the package used to distribute new versions of PowerShell to previous versions of Windows. + +Each folder in this repo publishes to [Microsoft Docs](https://docs.microsoft.com/powershell). The folders +correspond to the following PowerShell assets: + +- [/dsc/](https://docs.microsoft.com/powershell/dsc/) is for the Desired State Configuration feature +- [/gallery/](https://docs.microsoft.com/powershell/gallery) is for the [PowerShell Gallery](https://www.powershellgallery.com/) +- [/jea/](https://docs.microsoft.com/powershell/jea/) is for the Just Enough Administration feature +- [/reference/](https://docs.microsoft.com/powershell/scripting/) is for PowerShell conceptual topics + and module reference across versions 3.0, 4.0, 5.0, 5.1, and 6.0 + - This content will be retrieved by the `Get-Help` cmdlet in the future +- [/wmf](https://docs.microsoft.com/powershell/wmf/readme) contains release notes for the Windows + Management Framework, the package used to distribute new versions of PowerShell to previous versions of Windows. ## Contributing -We actively merge contributions into this repository via [pull request](https://help.github.com/articles/using-pull-requests/) into the *staging* branch. -Please note that before you submit a pull request you must [sign a Contribution License Agreement](https://cla.microsoft.com/) to ensure that the community is free to use your submissions. +We actively merge contributions into this repository via [pull request](https://help.github.com/articles/using-pull-requests/) +into the *staging* branch. +Please note that before you submit a pull request you must [sign a Contribution License Agreement](https://cla.microsoft.com/) +to ensure that the community is free to use your submissions. + For more information on contributing, read our [contributions guide](CONTRIBUTING.md). There is a draft [style guide](./STYLE.md) to review before making contributions. -Please use the Issue and Pull Request templates to help keep documentation consistent across versions. +Please use the Issue and Pull Request templates to help keep documentation consistent across versions. ## Licenses -There are two license files for this project. +There are two license files for this project. The MIT License applies to the code contained in this repo. -The Creative Commons license applies to the documentation. +The Creative Commons license applies to the documentation. diff --git a/dsc/TOC.md b/dsc/TOC.md deleted file mode 100644 index abd927c7a952..000000000000 --- a/dsc/TOC.md +++ /dev/null @@ -1,205 +0,0 @@ -# [Overview](overview.md) - -## [Desired State Configuration Overview for Decision Makers](decisionMaker.md) - -## [Desired State Configuration Overview for Engineers](DscForEngineers.md) - -## [DSC quick start](quickStart.md) - -# [Configurations](configurations.md) - -## [Enacting configurations](enactingConfigurations.md) - -## [Separating configuration and environment data](separatingEnvData.md) - -## [Using resources with multiple versions](sxsResource.md) - -## [Running DSC with user credentials](runAsUser.md) - -## [Specifying cross-node dependencies](crossNodeDependencies.md) - -## [Configuration data](configData.md) - -### [Credential options in configuration data](configDataCredentials.md) - -## [Nesting configurations](compositeConfigs.md) - -## [Securing the configuration MOF file](secureMOF.md) - -## [Partial Configurations](partialConfigs.md) - -## [Writing help for DSC configurations](configHelp.md) - -## [Configure a virtual machine at initial boot-up by using DSC](bootstrapDsc.md) - -### [DSCAutomationHostEnabled registry key](DSCAutomationHostEnabled.md) - -# [Resources](resources.md) - -## [Built-in resources](builtInResource.md) - -### [Archive Resource](archiveResource.md) - -### [Environment Resource](environmentResource.md) - -### [File Resource](fileResource.md) - -### [Group Resource](groupResource.md) - -### [GroupSet Resource](groupSetResource.md) - -### [Log Resource](logResource.md) - -### [Package Resource](packageResource.md) - -### [ProcessSet Resource](processSetResource.md) - -### [Registry Resource](registryResource.md) - -### [Script Resource](scriptResource.md) - -### [Service Resource](serviceResource.md) - -### [ServiceSet Resource](serviceSetResource.md) - -### [User Resource](userResource.md) - -### [WaitForAllResource](waitForAllResource.md) - -### [WaitForAnyResource](waitForAnyResource.md) - -### [WaitForSomeResource](waitForSomeResource.md) - -### [WindowsFeature Resource](windowsfeatureResource.md) - -### [WindowsFeatureSet Resource](windowsFeatureSetResource.md) - -### [WindowsOptionalFeature Resource](windowsOptionalFeatureResource.md) - -### [WindowsOptionalFeatureSet Resource](windowsOptionalFeatureSetResource.md) - -### [WindowsPackageCab Resource](windowsPackageCabResource.md) - -### [WindowsProcess Resource](windowsProcessResource.md) - -## [Authoring custom resources](authoringResource.md) - -### [MOF-based custom resources](authoringResourceMOF.md) - -#### [MOF-based resource in C#](authoringResourceMofCS.md) - -### [Class-based custom resouces](authoringResourceClass.md) - -### [Composite resources](authoringResourceComposite.md) - -### [Writing a single-instance DSC resource (best practice)](singleInstance.md) - -### [Resource authoring checklist](resourceAuthoringChecklist.md) - -## [Debugging DSC resources](debugResource.md) - -## [Calling DSC resource methods directly](directCallResource.md) - -# Local Configuration Manager - -## [Configuring the Local Configuration Manager (LCM)](metaConfig.md) - -## [Configuring the LCM in PowerShell 4.0](metaConfig4.md) - -# The DSC pull model - -## [DSC Pull Service](pullServer.md) - -## [Setting up a DSC SMB pull server](pullServerSMB.md) - -## [Setting up a pull client](pullClient.md) - -### [Setting up a pull client using configuration names](pullClientConfigNames.md) - -### [Setting up a pull client using configuration ID](pullClientConfigID.md) - -## [Using a DSC report server](reportServer.md) - -## [Pull server best practices](secureServer.md) - -# [DSC examples](dscExamples.md) - -## [Building a CI/CD pipeline with DSC, Pester, and Visual Studio Team Services](dscCiCd.md) - -## [Separating configuration and environment data](separatingEnvData.md) - -# [Troubleshooting DSC](troubleshooting.md) - -# [Using DSC on Nano Server](nanoDsc.md) - -# DSC on Linux - -## [Getting started with DSC for Linux](lnxGettingStarted.md) - -## [Built-in resources for Linux](lnxBuiltInResources.md) - -### [nxArchive Resource](lnxArchiveResource.md) - -### [nxEnvironment Resource](lnxEnvironmentResource.md) - -### [nxFile Resource](lnxFileResource.md) - -### [nxFileLine Resource](lnxFileLineResource.md) - -### [nxGroup Resource](lnxGroupResource.md) - -### [nxPackage Resource](lnxPackageResource.md) - -### [nxService Resource](lnxServiceResource.md) - -### [nxSshAuthorizedKeys Resource](lnxSshAuthorizedKeysResource.md) - -### [nxUser Resource](lnxUserResource.md) - -# [Using DSC on Microsoft Azure](azureDsc.md) - -# DSC MOF Reference - -## [MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager.md) - -### [ApplyConfiguration method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-applyconfiguration.md) - -### [DisableDebugConfiguration method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-disabledebugconfiguration.md) - -### [EnableDebugConfiguration method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-enabledebugconfiguration.md) - -### [GetConfiguration method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-getconfiguration.md) - -### [GetConfigurationResultOutput method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-getconfigurationresultoutput.md) - -### [GetConfigurationStatus method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-getconfigurationstatus.md) - -### [GetMetaConfiguration method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-getmetaconfiguration.md) - -### [PerformRequiredConfigurationChecks method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-performrequiredconfigurationchecks.md) - -### [RemoveConfiguration method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-removeconfiguration.md) - -### [ResourceGet method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-resourceget.md) - -### [ResourceSet method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-resourceset.md) - -### [ResourceTest method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-resourcetest.md) - -### [RollBack method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-rollback.md) - -### [SendConfiguration method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-sendconfiguration.md) - -### [SendConfigurationApply method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-sendconfigurationapply.md) - -### [SendConfigurationApplyAsync method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-sendconfigurationapplyasync.md) - -### [SendMetaConfigurationApply method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-sendmetaconfigurationapply.md) - -### [StopConfiguration method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-stopconfiguration.md) - -### [TestConfiguration method of the MSFT_DSCLocalConfigurationManager class](msft-dsclocalconfigurationmanager-testconfiguration.md) - -# More Resources - -## [Whitepapers](whitepapers.md) diff --git a/dsc/TOC.yml b/dsc/TOC.yml new file mode 100644 index 000000000000..63bf81b6710b --- /dev/null +++ b/dsc/TOC.yml @@ -0,0 +1,221 @@ +- name: Overview + href: overview.md + items: + - name: Desired State Configuration Overview for Decision Makers + href: decisionMaker.md + - name: Desired State Configuration Overview for Engineers + href: DscForEngineers.md + - name: DSC quick start + href: quickStart.md +- name: Configurations + href: configurations.md + items: + - name: Enacting configurations + href: enactingConfigurations.md + - name: Separating configuration and environment data + href: separatingEnvData.md + - name: Using resources with multiple versions + href: sxsResource.md + - name: Running DSC with user credentials + href: runAsUser.md + - name: Specifying cross-node dependencies + href: crossNodeDependencies.md + - name: Configuration data + href: configData.md + items: + - name: Credential options in configuration data + href: configDataCredentials.md + - name: Nesting configurations + href: compositeConfigs.md + - name: Securing the configuration MOF file + href: secureMOF.md + - name: Partial Configurations + href: partialConfigs.md + - name: Writing help for DSC configurations + href: configHelp.md + - name: Configure a virtual machine at initial boot-up by using DSC + href: bootstrapDsc.md + items: + - name: DSCAutomationHostEnabled registry key + href: DSCAutomationHostEnabled.md +- name: Resources + href: resources.md + items: + - name: Built-in resources + href: builtInResource.md + items: + - name: Archive Resource + href: archiveResource.md + - name: Environment Resource + href: environmentResource.md + - name: File Resource + href: fileResource.md + - name: Group Resource + href: groupResource.md + - name: GroupSet Resource + href: groupSetResource.md + - name: Log Resource + href: logResource.md + - name: Package Resource + href: packageResource.md + - name: ProcessSet Resource + href: processSetResource.md + - name: Registry Resource + href: registryResource.md + - name: Script Resource + href: scriptResource.md + - name: Service Resource + href: serviceResource.md + - name: ServiceSet Resource + href: serviceSetResource.md + - name: User Resource + href: userResource.md + - name: WaitForAllResource + href: waitForAllResource.md + - name: WaitForAnyResource + href: waitForAnyResource.md + - name: WaitForSomeResource + href: waitForSomeResource.md + - name: WindowsFeature Resource + href: windowsfeatureResource.md + - name: WindowsFeatureSet Resource + href: windowsFeatureSetResource.md + - name: WindowsOptionalFeature Resource + href: windowsOptionalFeatureResource.md + - name: WindowsOptionalFeatureSet Resource + href: windowsOptionalFeatureSetResource.md + - name: WindowsPackageCab Resource + href: windowsPackageCabResource.md + - name: WindowsProcess Resource + href: windowsProcessResource.md + - name: Authoring custom resources + href: authoringResource.md + items: + - name: MOF-based custom resources + href: authoringResourceMOF.md + items: + - name: MOF-based resource in C# + href: authoringResourceMofCS.md + - name: Class-based custom resouces + href: authoringResourceClass.md + - name: Composite resources + href: authoringResourceComposite.md + - name: Writing a single-instance DSC resource (best practice) + href: singleInstance.md + - name: Resource authoring checklist + href: resourceAuthoringChecklist.md + - name: Debugging DSC resources + href: debugResource.md + - name: Calling DSC resource methods directly + href: directCallResource.md +- name: Local Configuration Manager + items: + - name: Configuring the Local Configuration Manager (LCM) + href: metaConfig.md + - name: Configuring the LCM in PowerShell 4.0 + href: metaConfig4.md +- name: The DSC pull model + items: + - name: DSC Pull Service + href: pullServer.md + - name: Setting up a DSC SMB pull server + href: pullServerSMB.md + - name: Setting up a pull client + href: pullClient.md + items: + - name: Setting up a pull client using configuration names + href: pullClientConfigNames.md + - name: Setting up a pull client using configuration ID + href: pullClientConfigID.md + - name: Using a DSC report server + href: reportServer.md + - name: Pull server best practices + href: secureServer.md +- name: DSC examples + href: dscExamples.md + items: + - name: Building a CI/CD pipeline with DSC, Pester, and Visual Studio Team Services + href: dscCiCd.md + - name: Separating configuration and environment data + href: separatingEnvData.md +- name: Troubleshooting DSC + href: troubleshooting.md +- name: Using DSC on Nano Server + href: nanoDsc.md +- name: DSC on Linux + items: + - name: Getting started with DSC for Linux + href: lnxGettingStarted.md + - name: Built-in resources for Linux + href: lnxBuiltInResources.md + items: + - name: nxArchive Resource + href: lnxArchiveResource.md + - name: nxEnvironment Resource + href: lnxEnvironmentResource.md + - name: nxFile Resource + href: lnxFileResource.md + - name: nxFileLine Resource + href: lnxFileLineResource.md + - name: nxGroup Resource + href: lnxGroupResource.md + - name: nxPackage Resource + href: lnxPackageResource.md + - name: nxService Resource + href: lnxServiceResource.md + - name: nxSshAuthorizedKeys Resource + href: lnxSshAuthorizedKeysResource.md + - name: nxUser Resource + href: lnxUserResource.md +- name: Using DSC on Microsoft Azure + href: azureDsc.md + items: + - name: DSC Extension History + href: azureDscexthistory.md +- name: DSC MOF Reference + items: + - name: MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager.md + items: + - name: ApplyConfiguration method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-applyconfiguration.md + - name: DisableDebugConfiguration method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-disabledebugconfiguration.md + - name: EnableDebugConfiguration method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-enabledebugconfiguration.md + - name: GetConfiguration method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-getconfiguration.md + - name: GetConfigurationResultOutput method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-getconfigurationresultoutput.md + - name: GetConfigurationStatus method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-getconfigurationstatus.md + - name: GetMetaConfiguration method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-getmetaconfiguration.md + - name: PerformRequiredConfigurationChecks method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-performrequiredconfigurationchecks.md + - name: RemoveConfiguration method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-removeconfiguration.md + - name: ResourceGet method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-resourceget.md + - name: ResourceSet method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-resourceset.md + - name: ResourceTest method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-resourcetest.md + - name: RollBack method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-rollback.md + - name: SendConfiguration method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-sendconfiguration.md + - name: SendConfigurationApply method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-sendconfigurationapply.md + - name: SendConfigurationApplyAsync method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-sendconfigurationapplyasync.md + - name: SendMetaConfigurationApply method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-sendmetaconfigurationapply.md + - name: StopConfiguration method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-stopconfiguration.md + - name: TestConfiguration method of the MSFT_DSCLocalConfigurationManager class + href: msft-dsclocalconfigurationmanager-testconfiguration.md +- name: More Resources + items: + - name: Whitepapers + href: whitepapers.md diff --git a/dsc/authoringResourceClass.md b/dsc/authoringResourceClass.md index 9b0fe40312a9..4162cff328e8 100644 --- a/dsc/authoringResourceClass.md +++ b/dsc/authoringResourceClass.md @@ -65,7 +65,7 @@ Notice that the properties are modified by attributes. The meaning of the attrib - **DscProperty(NotConfigurable)**: The property is read-only. Properties marked with this attribute cannot be set by a configuration, but are populated by the **Get()** method when present. - **DscProperty()**: The property is configurable, but it is not required. -The **$Path** and **$SourcePath** properties are both strings. The **$CreationTime** is a [DateTime](https://technet.microsoft.com/en-us/library/system.datetime.aspx) property. The **$Ensure** property is an enumeration type, defined as follows. +The **$Path** and **$SourcePath** properties are both strings. The **$CreationTime** is a [DateTime](https://technet.microsoft.com/library/system.datetime.aspx) property. The **$Ensure** property is an enumeration type, defined as follows. ```powershell enum Ensure diff --git a/dsc/authoringResourceMofCS.md b/dsc/authoringResourceMofCS.md index 71a937078713..ebe1c42bc785 100644 --- a/dsc/authoringResourceMofCS.md +++ b/dsc/authoringResourceMofCS.md @@ -9,7 +9,7 @@ title: Authoring a DSC resource in C# > Applies To: Windows PowerShell 4.0, Windows PowerShell 5.0 -Typically, a Windows PowerShell Desired State Configuration (DSC) custom resource is implemented in a PowerShell script. However, you can also implement the functionality of a DSC custom resource by writing cmdlets in C#. For an introduction on writing cmdlets in C#, see [Writing a Windows PowerShell Cmdlet](https://technet.microsoft.com/en-us/library/dd878294.aspx). +Typically, a Windows PowerShell Desired State Configuration (DSC) custom resource is implemented in a PowerShell script. However, you can also implement the functionality of a DSC custom resource by writing cmdlets in C#. For an introduction on writing cmdlets in C#, see [Writing a Windows PowerShell Cmdlet](https://technet.microsoft.com/library/dd878294.aspx). Aside from implementing the resource in C# as cmdlets, the process of creating the MOF schema, creating the folder structure, importing and using your custom DSC resource are the same as described in [Writing a custom DSC resource with MOF](authoringResourceMOF.md). @@ -277,5 +277,5 @@ $env: psmodulepath (folder) #### Concepts [Writing a custom DSC resource with MOF](authoringResourceMOF.md) #### Other Resources -[Writing a Windows PowerShell Cmdlet](https://msdn.microsoft.com/en-us/library/dd878294.aspx) +[Writing a Windows PowerShell Cmdlet](https://msdn.microsoft.com/library/dd878294.aspx) diff --git a/dsc/authoringResourceMofDesigner.md b/dsc/authoringResourceMofDesigner.md index 16d205f1f9f9..964c0de9d655 100644 --- a/dsc/authoringResourceMofDesigner.md +++ b/dsc/authoringResourceMofDesigner.md @@ -11,7 +11,7 @@ title: Using the Resource Designer tool The Resource Designer tool is a set of cmdlets exposed by the **xDscResourceDesigner** module that make creating Windows PowerShell Desired State Configuration (DSC) resources easier. The cmdlets in this resource help create the MOF schema, the script module, and the directory structure for your new resource. For more information about DSC resources, see [Build Custom Windows PowerShell Desired State Configuration Resources](authoringResource.md). In this topic, we will create a DSC resource that manages Active Directory users. -Use the [Install-Module](https://technet.microsoft.com/en-us/library/dn807162.aspx) cmdlet to install the **xDscResourceDesigner** module. +Use the [Install-Module](https://technet.microsoft.com/library/dn807162.aspx) cmdlet to install the **xDscResourceDesigner** module. >**Note**: **Install-Module** is included in the **PowerShellGet** module, which is included in PowerShell 5.0. You can download the **PowerShellGet** module for PowerShell 3.0 and 4.0 at [PackageManagement PowerShell Modules Preview](https://www.microsoft.com/en-us/download/details.aspx?id=49186). diff --git a/dsc/azureDsc.md b/dsc/azureDsc.md index 28e88a4e9ee7..d630fdfb1f3c 100644 --- a/dsc/azureDsc.md +++ b/dsc/azureDsc.md @@ -8,23 +8,24 @@ title: Using DSC on Microsoft Azure # Using DSC on Microsoft Azure Desired State Configuration (DSC) is supported in Microsoft Azure through the -[Azure Desired State Configuration extension handler](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-extensions-dsc-overview) and through -[Azure Automation DSC](https://docs.microsoft.com/azure/automation/automation-dsc-overview). +[Azure Desired State Configuration extension handler](/azure/virtual-machines/virtual-machines-windows-extensions-dsc-overview) and through +[Azure Automation DSC](/azure/automation/automation-dsc-overview). ## Azure Desired State Configuration extension handler The Azure DSC extension allows VMs hosted in Microsoft Azure to be managed with DSC. For more information, see the following topics: -- [Azure Desired State Configuration extension handler](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-extensions-dsc-overview) -- [Windows VMSS and Desired State Configuration with Azure Resource Manager templates](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-extensions-dsc-template) -- [Passing credentials to the Azure DSC extension handler](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-extensions-dsc-credentials) +- [Azure Desired State Configuration extension handler](/azure/virtual-machines/virtual-machines-windows-extensions-dsc-overview) +- [Windows VMSS and Desired State Configuration with Azure Resource Manager templates](/azure/virtual-machines/virtual-machines-windows-extensions-dsc-template) +- [Passing credentials to the Azure DSC extension handler](/azure/virtual-machines/virtual-machines-windows-extensions-dsc-credentials) +- [Azure Desired State Configuration extension history](azureDscexthistory.md) ## Azure Automation DSC -The [Azure Automation service](https://azure.microsoft.com/services/automation/) allows you to manage DSC configurations, resources, and managed nodes from within Azure. For +The [Azure Automation service](/services/automation/) allows you to manage DSC configurations, resources, and managed nodes from within Azure. For more information, see the following topics: -- [Azure Automation DSC](https://docs.microsoft.com/azure/automation/automation-dsc-overview) -- [Getting started with Azure Automation DSC](https://docs.microsoft.com/azure/automation/automation-dsc-getting-started) -- [Onboarding machines for management by Azure Automation DSC](https://docs.microsoft.com/azure/automation/automation-dsc-onboarding) +- [Azure Automation DSC](/azure/automation/automation-dsc-overview) +- [Getting started with Azure Automation DSC](/azure/automation/automation-dsc-getting-started) +- [Onboarding machines for management by Azure Automation DSC](/azure/automation/automation-dsc-onboarding) diff --git a/dsc/azureDscexthistory.md b/dsc/azureDscexthistory.md new file mode 100644 index 000000000000..a38dab48aa19 --- /dev/null +++ b/dsc/azureDscexthistory.md @@ -0,0 +1,251 @@ +--- +description: Learn about the version history for the Desired State Configuration (DSC) extension in Azure. +ms.date: 2018-03-14 +ms.topic: conceptual +keywords: dsc, powershell, azure, extension +title: Azure DSC Extension Version History +author: DCtheGeek +ms.author: dacoulte +--- +# Azure Desired State Configuration extension version history + +The Azure Desired State Configuration (DSC) VM Extension is updated as-needed to support enhancements and new capabilities delivered by Azure, Windows Server, and the Windows Management Framework (WMF) that includes Windows PowerShell. + +This article will provide information about each version of the Azure DSC VM Extension, what it environments it supports, and comments and remarks on new features or changes. + +## Latest Versions + +### Version 2.75 + +- **Release date:** + - March 5, 2018 +- **OS support:** + - Windows Server 2016 + - Windows Server 2012 R2 + - Windows Server 2012 + - Windows Server 2008 R2 SP1 + - Windows Client 7/8.1/10 + - Nano Server +- **WMF support:** + - WMF 5.1 + - WMF 5.0 RTM + - WMF 4.0 Update + - WMF 4.0 +- **Environment:** + - Azure +- **Remarks:** This version uses DSC as included in Windows Server 2016; for other Windows OSes, it installs the [Windows Management Framework 5.1](https://blogs.msdn.microsoft.com/powershell/2016/12/06/wmf-5-1-releasing-january-2017/) (installing WMF requires a reboot). For Nano, DSC role is installed on the VM. +- **New features:** + - After Github's recent move to TLS 1.2, you can't onboard a VM to Azure Automation DSC using DIY Resource Manager templates available on Azure Marketplace or use DSC extension to get any config hosted on Github. You will see an error similar to the following while deploying the extension: + + ```json + { + "code": "DeploymentFailed", + "message": "At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug for usage details.", + "details": [{ + "code": "Conflict", + "message": "{ + \"status\": \"Failed\", + \"error\": { + \"code\": \"ResourceDeploymentFailure\", + \"message\": \"The resource operation completed with terminal provisioning state 'Failed'.\", + \"details\": [ { + \"code\": \"VMExtensionProvisioningError\", + \"message\": \"VM has reported a failure when processing extension 'Microsoft.Powershell.DSC'. + Error message: \\\"The DSC Extension failed to execute: Error downloading + https://github.com/Azure/azure-quickstart-templates/raw/master/dsc-extension-azure-automation-pullserver/UpdateLCMforAAPull.zip + after 29 attempts: The request was aborted: Could not create SSL/TLS secure channel..\\nMore information about the failure can + be found in the logs located under 'C:\\\\WindowsAzure\\\\Logs\\\\Plugins\\\\Microsoft.Powershell.DSC\\\\2.74.0.0' on the VM.\\\".\" + } ] + } + }" + }] + } + ``` + + - In the new extension version, TLS 1.2 is now enforced. While deploying the extension if you already had the AutoUpgradeMinorVersion = true in the Resource Manager template, then the extension will get autoupgraded to 2.75. For manual updates, specify `TypeHandlerVersion = 2.75` in your Resource Manager template. + +### Version 2.19 + +- **Release date:** + - June 3, 2016 +- **OS support:** + - Windows Server 2016 Technical Preview + - Windows Server 2012 R2 + - Windows Server 2012 + - Windows Server 2008 R2 SP1 +- **WMF support:** + - WMF 5.0 RTM + - WMF 4.0 Update + - WMF 4.0 +- **Environment:** + - Azure + - Azure China + - Azure Government +- **Remarks:** This version uses DSC as included in Windows Server 2016 Technical Preview; for other OSes, it installs the [Windows Management Framework 5.0 RTM](https://blogs.msdn.microsoft.com/powershell/2015/12/16/windows-management-framework-wmf-5-0-rtm-is-now-available/) (installing WMF requires a reboot). +- **New features:** + - The DSC Extension is now on boarded to Azure China. This version primarily contains fixes for running the Extension on Azure China. + +## Supported Versions + +> [!WARNING] +> Versions 2.4 through 2.13 use WMF 5.0 Public Preview whose signing certificates expired in August 2016. For more information about this issue, see [blog post](https://blogs.msdn.microsoft.com/powershell/2016/05/24/azure-dsc-extension-versions-2-4-up-to-2-13-will-retire-in-august/). + +### Version 2.70 - 2.72 + +- **Release date:** November 13, 2017 +- **OS support:** Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1, Windows Client 7/8.1/10, Nano Server +- **WMF support:** WMF 5.1, WMF 5.0 RTM, WMF 4.0 Update, WMF 4.0 +- **Environment:** Azure +- **Remarks:** This version uses DSC as included in Windows Server 2016; for other Windows OSes, it installs the [Windows Management Framework 5.1](https://blogs.msdn.microsoft.com/powershell/2016/12/06/wmf-5-1-releasing-january-2017/) (installing WMF requires a reboot). For Nano, DSC role is installed on the VM. +- **New features:** + - Bug fixes & improvements that simplifies using DSC Azure Automation through the portal UI as well as Resource Manager template. For more information, see [Default Configuration Script](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/extensions-dsc-overview#default-configuration-script) in the DSC Extension documentation. + +### Version 2.26 + +- **Release date:** June 9, 2017 +- **OS support:** Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1, Windows Client 7/8.1/10, Nano Server +- **WMF support:** WMF 5.1, WMF 5.0 RTM, WMF 4.0 Update, WMF 4.0 +- **Environment:** Azure +- **Remarks:** This version uses DSC as included in Windows Server 2016; for other Windows OSes, it installs the [Windows Management Framework 5.1](https://blogs.msdn.microsoft.com/powershell/2016/12/06/wmf-5-1-releasing-january-2017/) (installing WMF requires a reboot). For Nano, DSC role is installed on the VM. +- **New features:** + - Telemetry improvements. + +### Version 2.25 + +- **Release date:** June 2, 2017 +- **OS support:** Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1, Windows Client 7/8.1/10, Nano Server +- **WMF support:** WMF 5.1, WMF 5.0 RTM, WMF 4.0 Update, WMF 4.0 +- **Environment:** Azure +- **Remarks:** This version uses DSC as included in Windows Server 2016; for other Windows OSes, it installs the [Windows Management Framework 5.1](https://blogs.msdn.microsoft.com/powershell/2016/12/06/wmf-5-1-releasing-january-2017/) (installing WMF requires a reboot). For Nano, DSC role is installed on the VM. +- **New features:** + - Several bug fixes and other minor improvements were added. + +### Version 2.24 + +- **Release date:** April 13, 2017 +- **OS support:** Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1, Nano Server +- **WMF support:** WMF 5.1, WMF 5.0 RTM, WMF 4.0 Update, WMF 4.0 +- **Environment:** Azure +- **Remarks:** This version uses DSC as included in Windows Server 2016; for other Windows OSes, it installs the [Windows Management Framework 5.1](https://blogs.msdn.microsoft.com/powershell/2016/12/06/wmf-5-1-releasing-january-2017/) (installing WMF requires a reboot). For Nano, DSC role is installed on the VM. +- **New features:** + - Exposes VM UUID & DSC Agent ID as extension metadata. Other minor improvements were added. + +### Version 2.23 + +- **Release date:** March 15, 2017 +- **OS support:** Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1, Nano Server +- **WMF support:** WMF 5.1, WMF 5.0 RTM, WMF 4.0 Update, WMF 4.0 +- **Environment:** Azure +- **Remarks:** This version uses DSC as included in Windows Server 2016; for other Windows OSes, it installs the [Windows Management Framework 5.1](https://blogs.msdn.microsoft.com/powershell/2016/12/06/wmf-5-1-releasing-january-2017/) (installing WMF requires a reboot). For Nano, DSC role is installed on the VM. +- **New features:** + - Lots of bug fixes and other improvements were added. + +### Version 2.22 + +- **Release date:** February 8, 2017 +- **OS support:** Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1, Nano Server +- **WMF support:** WMF 5.1, WMF 5.0 RTM, WMF 4.0 Update, WMF 4.0 +- **Environment:** Azure +- **Remarks:** This version uses DSC as included in Windows Server 2016; for other Windows OSes, it installs the [Windows Management Framework 5.1](https://blogs.msdn.microsoft.com/powershell/2016/12/06/wmf-5-1-releasing-january-2017/) (installing WMF requires a reboot). For Nano, DSC role is installed on the VM. +- **New features:** + - The DSC Extension now has support for WMF 5.1. + - Minor other improvements were added. + +### Version 2.21 + +- **Release date:** December 2, 2016 +- **OS support:** Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1, Nano Server +- **WMF support:** WMF 5.1 Preview, WMF 5.0 RTM, WMF 4.0 Update, WMF 4.0 +- **Environment:** Azure +- **Remarks:** This version uses DSC as included in Windows Server 2016; for other Windows OSes, it installs the [Windows Management Framework 5.0 RTM](https://blogs.msdn.microsoft.com/powershell/2015/12/16/windows-management-framework-wmf-5-0-rtm-is-now-available/) (installing WMF requires a reboot). For Nano, DSC role is installed on the VM. +- **New features:** + - The DSC Extension is now available on Nano Server. This version primarily contains code changes for running the Extension on Nano server. + - Minor other improvements were added. + +### Version 2.20 + +- **Release date:** August 2, 2016 +- **OS support:** Windows Server 2016 Technical Preview, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1 +- **WMF support:** WMF 5.1 Preview, WMF 5.0 RTM, WMF 4.0 Update, WMF 4.0 +- **Environment:** Azure +- **Remarks:** This version uses DSC as included in Windows Server 2016 Technical Preview; for other Windows OSes, it installs the [Windows Management Framework 5.0 RTM](https://blogs.msdn.microsoft.com/powershell/2015/12/16/windows-management-framework-wmf-5-0-rtm-is-now-available/) (installing WMF requires a reboot). +- **New features:** + - Support for WMF 5.1 Preview. When first published, this version was an optional upgrade and you had to specify Wmfversion = ‘5.1PP’ in Resource Manager templates to install WMF 5.1 preview. Wmfversion = ‘latest’ still installs the [WMF 5.0 RTM](https://blogs.msdn.microsoft.com/powershell/2015/12/16/windows-management-framework-wmf-5-0-rtm-is-now-available/). For more information on WMF 5.1 preview, see [this blog]( https://blogs.msdn.microsoft.com/powershell/2016/07/16/announcing-windows-management-framework-wmf-5-1-preview/). + - Minor other fixes and improvements were added. + +### Version 2.19 + +- **Release date:** June 3, 2016 +- **OS support:** Windows Server 2016 Technical Preview, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1 +- **WMF support:** WMF 5.0 RTM, WMF 4.0 Update, WMF 4.0 +- **Environment:** Azure, Azure China, Azure Government +- **Remarks:** This version uses DSC as included in Windows Server 2016 Technical Preview; for other Windows OSes, it installs the [Windows Management Framework 5.0 RTM](https://blogs.msdn.microsoft.com/powershell/2015/12/16/windows-management-framework-wmf-5-0-rtm-is-now-available/) (installing WMF requires a reboot). +- **New features:** + - The DSC Extension is now on boarded to Azure China. This version primarily contains fixes for running the Extension on Azure China. + +### Version 2.18 + +- **Release date:** June 3, 2016 +- **OS support:** Windows Server 2016 Technical Preview, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1 +- **WMF support:** WMF 5.0 RTM, WMF 4.0 Update, WMF 4.0 +- **Environment:** Azure +- **Remarks:** This version uses DSC as included in Windows Server 2016 Technical Preview; for other Windows OSes, it installs the [Windows Management Framework 5.0 RTM](https://blogs.msdn.microsoft.com/powershell/2015/12/16/windows-management-framework-wmf-5-0-rtm-is-now-available/) (installing WMF requires a reboot). +- **New features:** + - Make telemetry non-blocking when an error occurs during telemetry hotfix download (known Azure DNS issue) or during install. + - Fix for the intermittent issue where extension stops processing configuration after a reboot. This was causing the DSC Extension to remain in ‘transitioning’ state. + - Minor other fixes and improvements were added. + +### Version 2.17 + +- **Release date:** April 26, 2016 +- **OS support:** Windows Server 2016 Technical Preview, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1 +- **WMF support:** WMF 5.0 RTM, WMF 4.0 Update, WMF 4.0 +- **Environment:** Azure +- **Remarks:** This version uses DSC as included in Windows Server 2016 Technical Preview; for other Windows OSes, it installs the [Windows Management Framework 5.0 RTM](https://blogs.msdn.microsoft.com/powershell/2015/12/16/windows-management-framework-wmf-5-0-rtm-is-now-available/) (installing WMF requires a reboot). +- **New features:** + - Support for WMF 4.0 Update. For more information on WMF 4.0 Update, see [this blog](https://blogs.msdn.microsoft.com/powershell/2016/01/19/windows-management-framework-wmf-4-0-update-now-available-for-windows-server-2012-windows-server-2008-r2-sp1-and-windows-7-sp1/). + - Retry logic on errors that occur during the DSC Extension install or while applying a DSC configuration post extension install. As a part of this change, the extension will retry the installation if a previous install failed or re-enact a DSC configuration that had previously failed, for a maximum three times until it reaches the completion state (Success/Error) or if a new request comes. If the extension fails due to invalid user settings/user input, it does not retry. In this case, the extension needs to be invoked again with a new request and correct user settings. Note: The DSC Extension is dependent on the Azure VM agent for the retries. Azure VM agent invokes the extension with the last failed request until it reaches a success or error state. + +### Version 2.16 + +- **Release date:** April 21, 2016 +- **OS support:** Windows Server 2016 Technical Preview, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1 +- **WMF support:** WMF 5.0 RTM, WMF 4.0 +- **Environment:** Azure +- **Remarks:** This version uses DSC as included in Windows Server 2016 Technical Preview; for other Windows OSes, it installs the [Windows Management Framework 5.0 RTM](https://blogs.msdn.microsoft.com/powershell/2015/12/16/windows-management-framework-wmf-5-0-rtm-is-now-available/) (installing WMF requires a reboot). +- **New features:** + - Improvement in Error Handling and other minor bug fixes. + - New property in DSC Extension settings. ‘ForcePullAndApply’ in AdvancedOptions is added to enable the DSC Extension enact DSC configurations when the refresh mode is Pull (as opposed to the default Push mode). For more information, please refer to [this blog](https://blogs.msdn.microsoft.com/powershell/2016/02/26/arm-dsc-extension-settings/) to get more information on the DSC Extension settings. + +### Version 2.15 + +- **Release date:** March 14, 2016 +- **OS support:** Windows Server 2016 Technical Preview, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1 +- **WMF support:** WMF 5.0 RTM, WMF 4.0 +- **Environment:** Azure +- **Remarks:** This version uses DSC as included in Windows Server 2016 Technical Preview; for other Windows OSes, it installs the [Windows Management Framework 5.0 RTM](https://blogs.msdn.microsoft.com/powershell/2015/12/16/windows-management-framework-wmf-5-0-rtm-is-now-available/) (installing WMF requires a reboot). +- **New features:** + - In extension version 2.14, changes to install WMF RTM were included. While upgrading from extension version 2.13.2.0 to 2.14.0.0, you may notice that some DSC cmdlets fail or your configuration fails with an error – ‘No Instance found with given property values’. For more information, see the [DSC release notes](https://msdn.microsoft.com/en-us/powershell/wmf/limitation_dsc). The workarounds for these issues have been added in 2.15 version. + - Unfortunately, if you have already installed version 2.14 and are running into one of the above two issues, you will need to perform these steps manually. In an elevated PowerShell session: + - `Remove-Item -Path $env:SystemRoot\system32\Configuration\DSCEngineCache.mof` + - `mofcomp $env:windir\system32\wbem\DscCoreConfProv.mof` + +### Version 2.14 + +- **Release date:** February 25, 2016 +- **OS support:** Windows Server 2016 Technical Preview, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1 +- **WMF support:** WMF 5.0 RTM, WMF 4.0 +- **Environment:** Azure +- **Remarks:** This version uses DSC as included in Windows Server 2016 Technical Preview; for other Windows OSes, it installs the [Windows Management Framework 5.0 RTM](https://blogs.msdn.microsoft.com/powershell/2015/12/16/windows-management-framework-wmf-5-0-rtm-is-now-available/) (installing WMF requires a reboot). +- **New features:** + - Uses WMF RTM. + - Enables data collection in order to improve the quality of the DSC Extension. For more information, see [the blog](https://blogs.msdn.microsoft.com/powershell/2016/02/02/azure-dsc-extension-data-collection-2/). + - Provides an updated settings format for the extension in a Resource Manager template. For more information, see [the blog](https://blogs.msdn.microsoft.com/powershell/2016/02/26/arm-dsc-extension-settings/). + - Bug fixes and other enhancements. + +## Next steps + +- For more information about PowerShell DSC, go to the [PowerShell documentation center](overview.md). +- Examine the [Resource Manager template for the DSC extension](/azure/virtual-machines/windows/extensions-dsc-template). +- For more functionality that you can manage by using PowerShell DSC, and for more DSC resources, browse the [PowerShell gallery](https://www.powershellgallery.com/packages?q=DscResource&x=0&y=0). +- For details about passing sensitive parameters into configurations, see [Manage credentials securely with the DSC extension handler](/azure/virtual-machines/windows/extensions-dsc-credentials). \ No newline at end of file diff --git a/dsc/bootstrapDsc.md b/dsc/bootstrapDsc.md index d59e1b218145..6dae236762e5 100644 --- a/dsc/bootstrapDsc.md +++ b/dsc/bootstrapDsc.md @@ -18,8 +18,8 @@ For information on how to configure new virtual machines at initial boot-up in P To run these examples, you will need: - A bootable VHD to work with. You can download an ISO with an evaluation copy of Windows Server 2016 at - [TechNet Evaluation Center](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2016). You can find instructions on how to create a VHD - from an ISO image at [Creating Bootable Virtual Hard Disks](https://technet.microsoft.com/en-us/library/gg318049.aspx). + [TechNet Evaluation Center](https://www.microsoft.com/evalcenter/evaluate-windows-server-2016). You can find instructions on how to create a VHD + from an ISO image at [Creating Bootable Virtual Hard Disks](https://technet.microsoft.com/library/gg318049.aspx). - A host computer that has Hyper-V enabled. For information, see [Hyper-V overview](https://technet.microsoft.com/library/hh831531.aspx). By using DSC, you can automate software installation and configuration for a computer at initial boot-up. diff --git a/dsc/configDataCredentials.md b/dsc/configDataCredentials.md index 2ab781b0faae..d1b358e83920 100644 --- a/dsc/configDataCredentials.md +++ b/dsc/configDataCredentials.md @@ -158,7 +158,7 @@ Group [String] #ResourceName } ``` -This example uses a [Group](https://msdn.microsoft.com/en-us/powershell/dsc/groupresource) resource +This example uses a [Group](https://msdn.microsoft.com/powershell/dsc/groupresource) resource from the `PSDesiredStateConfiguration` built-in DSC resource module. It can create local groups and add or remove members. It accepts both the `Credential` property and the automatic `PsDscRunAsCredential` property. @@ -238,7 +238,7 @@ This example has two issues: The first error message has a URL with documentation. This link explains how to encrypt passwords -using a [ConfigurationData](https://msdn.microsoft.com/en-us/powershell/dsc/configdata) +using a [ConfigurationData](https://msdn.microsoft.com/powershell/dsc/configdata) structure and a certificate. For more information on certificates and DSC [read this post](http://aka.ms/certs4dsc). diff --git a/dsc/configHelp.md b/dsc/configHelp.md index c4b84abf93f1..b2856a4c5b7c 100644 --- a/dsc/configHelp.md +++ b/dsc/configHelp.md @@ -10,8 +10,8 @@ title: Writing help for DSC configurations >Applies To: Windows Windows PowerShell 5.0 You can use comment-based help in DSC configurations. Users can access the help by calling the configuration function with `-?`, or by using the -[Get-Help](https://technet.microsoft.com/en-us/library/hh849696.aspx) cmdlet. For more information about PowerShell comment-based help, see -[about_Comment_Based_Help](https://technet.microsoft.com/en-us/library/hh847834.aspx). +[Get-Help](https://technet.microsoft.com/library/hh849696.aspx) cmdlet. For more information about PowerShell comment-based help, see +[about_Comment_Based_Help](https://technet.microsoft.com/library/hh847834.aspx). The following example shows a script that contains a configuration and comment-based help for it: diff --git a/dsc/configurations.md b/dsc/configurations.md index 8e374a7ba176..0aa4ee6ecde8 100644 --- a/dsc/configurations.md +++ b/dsc/configurations.md @@ -60,7 +60,7 @@ Configuration MyDscConfiguration { } } } -MyDscConfiguration -ComputerName +MyDscConfiguration -ComputerName $ComputerName ``` @@ -146,14 +146,14 @@ Configuration DependsOnExample { If you ran the previous examples, you might have noticed that you were warned that you were using a resource without explicitly importing it. Today, DSC ships with 12 resources as part of the PSDesiredStateConfiguration module. Other resources in external modules must be placed in `$env:PSModulePath` in order to be recognized by the LCM. -A new cmdlet, [Get-DscResource](https://technet.microsoft.com/en-us/library/dn521625.aspx), +A new cmdlet, [Get-DscResource](https://technet.microsoft.com/library/dn521625.aspx), can be used to determine what resources are installed on the system and available for use by the LCM. -Once these modules have been placed in `$env:PSModulePath` and are properly recognized by [Get-DscResource](https://technet.microsoft.com/en-us/library/dn521625.aspx), +Once these modules have been placed in `$env:PSModulePath` and are properly recognized by [Get-DscResource](https://technet.microsoft.com/library/dn521625.aspx), they still need to be loaded within your configuration. **Import-DscResource** is a dynamic keyword that can only be recognized within a **Configuration** block (i.e. it is not a cmdlet). **Import-DscResource** supports two parameters: - **ModuleName** is the recommended way of using **Import-DscResource**. It accepts the name of the module that contains the resources to be imported (as well as a string array of module names). -- **Name** is the name of the resource to import. This is not the friendly name returned as "Name" by [Get-DscResource](https://technet.microsoft.com/en-us/library/dn521625.aspx), but the class name used when defining the resource schema (returned as **ResourceType** by [Get-DscResource](https://technet.microsoft.com/en-us/library/dn521625.aspx)). +- **Name** is the name of the resource to import. This is not the friendly name returned as "Name" by [Get-DscResource](https://technet.microsoft.com/library/dn521625.aspx), but the class name used when defining the resource schema (returned as **ResourceType** by [Get-DscResource](https://technet.microsoft.com/library/dn521625.aspx)). ## See Also * [Windows PowerShell Desired State Configuration Overview](overview.md) diff --git a/dsc/debugResource.md b/dsc/debugResource.md index 56b723e4508d..3d7a79764c41 100644 --- a/dsc/debugResource.md +++ b/dsc/debugResource.md @@ -12,10 +12,10 @@ title: Debugging DSC resources In PowerShell 5.0, a new feature was introduced in Desired State Configuraiton (DSC) that allows you to debug a DSC resource as a configuration is being applied. ## Enabling DSC debugging -Before you can debug a resource, you have to enable debugging by calling the [Enable-DscDebug](https://technet.microsoft.com/en-us/library/mt517870.aspx) cmdlet. +Before you can debug a resource, you have to enable debugging by calling the [Enable-DscDebug](https://technet.microsoft.com/library/mt517870.aspx) cmdlet. This cmdlet takes a mandatory parameter, **BreakAll**. -You can verify that debugging has been enabled by looking at the result of a call to [Get-DscLocalConfigurationManager](https://technet.microsoft.com/en-us/library/dn407378.aspx). +You can verify that debugging has been enabled by looking at the result of a call to [Get-DscLocalConfigurationManager](https://technet.microsoft.com/library/dn407378.aspx). The following PowerShell output shows the result of enabling debugging: @@ -57,7 +57,7 @@ Configuration PSWebAccess } PSWebAccess ``` -After compiling the configuration, start it by calling [Start-DscConfiguration](https://technet.microsoft.com/en-us/library/dn521623.aspx). +After compiling the configuration, start it by calling [Start-DscConfiguration](https://technet.microsoft.com/library/dn521623.aspx). The configuration will stop when the Local Configuration Manager (LCM) calls into the first resource in the configuration. If you use the `-Verbose` and `-Wait` parameters, the output displays the lines you need to enter to start debugging. @@ -101,7 +101,7 @@ Remember that every line in the resource script (or class) is set as a break poi ## Disabling DSC debugging -After calling [Enable-DscDebug](https://technet.microsoft.com/en-us/library/mt517870.aspx), all calls to [Start-DscConfiguration](https://technet.microsoft.com/en-us/library/dn521623.aspx) +After calling [Enable-DscDebug](https://technet.microsoft.com/library/mt517870.aspx), all calls to [Start-DscConfiguration](https://technet.microsoft.com/library/dn521623.aspx) will result in the configuration breaking into the debugger. To allow configurations to run normally, you must disable debugging by calling the [Disable-DscDebug](https://technet.microsoft.com/en-us/library/mt517872.aspx) cmdlet. diff --git a/dsc/decisionMaker.md b/dsc/decisionMaker.md index 0ccd3492ed9f..9c1288e71c63 100644 --- a/dsc/decisionMaker.md +++ b/dsc/decisionMaker.md @@ -13,7 +13,7 @@ This document describes the business benefits of using PowerShell Desired State Windows PowerShell Desired State Configuration (DSC) is a configuration management platform built into Windows that is based on open standards. DSC is flexible enough to function reliably and consistently in each stage of the deployment lifecycle (development, test, pre-production, production), as well as during scale-out. -DSC centers around "[configurations](https://msdn.microsoft.com/en-us/powershell/dsc/configurations)". +DSC centers around "[configurations](https://msdn.microsoft.com/powershell/dsc/configurations)". A configuration is an easy-to-read document that describes an environment made up of computers ("nodes") with specific characteristics. These characteristics can be as simple as ensuring a specific Windows feature is enabled or as complex as deploying SharePoint. @@ -41,13 +41,13 @@ DSC was designed with DevOps in mind. Having a single configuration define an environment means that developers can encode their requirements into a configuration, check that configuration into source control, and operations teams can easily deploy code without having to go through error-prone manual processes. -Configurations are also [data-driven](https://msdn.microsoft.com/en-us/powershell/dsc/configdata), +Configurations are also [data-driven](https://msdn.microsoft.com/powershell/dsc/configdata), which makes it easier for ops teams to identify and change environments without developer intervention. ## Desired State Configuration On- and Off-Premises DSC can be used to manage both on-premises and off-premises deployments. -For on-premises solutions, DSC has a [pull server](https://msdn.microsoft.com/en-us/powershell/dsc/pullserver) +For on-premises solutions, DSC has a [pull server](https://msdn.microsoft.com/powershell/dsc/pullserver) that can be used to centralize management of machines and report on their status. For cloud solutions, DSC is usable wherever Windows is usable. There are also specific offerings from Azure built on Desired State Configuration, diff --git a/dsc/directCallResource.md b/dsc/directCallResource.md index 755d03c2f7b6..2ff3dcd07e65 100644 --- a/dsc/directCallResource.md +++ b/dsc/directCallResource.md @@ -9,7 +9,7 @@ title: Calling DSC resource methods directly >Applies To: Windows PowerShell 5.0 -You can use the [Invoke-DscResource](https://technet.microsoft.com/en-us/library/mt517869.aspx) cmdlet to directly call the functions or methods of a DSC resource (The **Get-TargetResource**, +You can use the [Invoke-DscResource](https://technet.microsoft.com/library/mt517869.aspx) cmdlet to directly call the functions or methods of a DSC resource (The **Get-TargetResource**, **Set-TargetResource**, and **Test-TargetResource** functions of a MOF-based resource, or the **Get**, **Set**, and **Test** methods of a class-based resource). This can be used by third-parties that want to use DSC resources, or as a helpful tool while developing resources. diff --git a/dsc/docfx.json b/dsc/docfx.json index 8d4d435b0573..df4d40711b9b 100644 --- a/dsc/docfx.json +++ b/dsc/docfx.json @@ -10,7 +10,7 @@ } ], "globalMetadata": { - "breadcrumb_path":"bread/toc.json", + "breadcrumb_path":"~/bread/toc.yml", "uhfHeaderId": "MSDocsHeader-Powershell", "layout": "conceptual", "ROBOTS": "INDEX, FOLLOW", diff --git a/dsc/enactingConfigurations.md b/dsc/enactingConfigurations.md index ad90ea1563b5..c76141a8da53 100644 --- a/dsc/enactingConfigurations.md +++ b/dsc/enactingConfigurations.md @@ -17,10 +17,10 @@ push mode and pull mode. ![Push mode](images/pushModel.png "How push mode works") Push mode refers to a user actively applying a configuration to a target node -by calling the [Start-DscConfiguration](https://technet.microsoft.com/en-us/library/dn521623.aspx) cmdlet. +by calling the [Start-DscConfiguration](https://technet.microsoft.com/library/dn521623.aspx) cmdlet. After creating and compiling a configuration, you can enact it in push mode -by calling the [Start-DscConfiguration](https://technet.microsoft.com/en-us/library/dn521623.aspx) cmdlet, +by calling the [Start-DscConfiguration](https://technet.microsoft.com/library/dn521623.aspx) cmdlet, setting the -Path parameter of the cmdlet to the path where the configuration MOF is located. For example, if the configuration MOF is located at `C:\DSC\Configurations\localhost.mof`, you would apply it to the local machine with the following command: @@ -53,7 +53,7 @@ For information about configuring the LCM, see [Configuring the Local Configuration Manager](metaConfig.md). The recommended solution for hosting a Pull Service, is the DSC cloud service, -[Azure Automation](https://azure.microsoft.com/en-us/services/automation/). +[Azure Automation](https://azure.microsoft.com/services/automation/). This is hosted solution provides graphical management, reporting, and centralized administration. diff --git a/dsc/gettingStarted.md b/dsc/gettingStarted.md index b9f2608ecb1b..43d9bee666eb 100644 --- a/dsc/gettingStarted.md +++ b/dsc/gettingStarted.md @@ -12,7 +12,7 @@ This guide describes how to begin creating PowerShell Desired State Configuratio ## Create a Configuration ## -[**Configurations**](https://msdn.microsoft.com/en-us/powershell/dsc/configurations) are documents that describe an environment. Environments consist of "**nodes**", which are commonly virtual or physical machines. +[**Configurations**](https://msdn.microsoft.com/powershell/dsc/configurations) are documents that describe an environment. Environments consist of "**nodes**", which are commonly virtual or physical machines. Configurations can come in a variety of forms. The easiest way to create a new configuration is to create a .ps1 (PowerShell script) file. To do this, open your editor of choice. The PowerShell ISE is a good choice, since it understands DSC natively. Save the following as a PS1: @@ -40,9 +40,9 @@ The next line is an import statement, similar to importing a module. It will be "Node" defines the machine name this configuration will act on. Although this configuration is edited locally, configurations can reach out to remote nodes and configure them. -Nodes can be machine names or IP addresses. You can have multiple nodes in a single configuration document. Using [configuration data](https://msdn.microsoft.com/en-us/powershell/dsc/configdata), you can also have the same configuration apply to multiple nodes. In this case, the node is "localhost" - which means the local computer. +Nodes can be machine names or IP addresses. You can have multiple nodes in a single configuration document. Using [configuration data](https://msdn.microsoft.com/powershell/dsc/configdata), you can also have the same configuration apply to multiple nodes. In this case, the node is "localhost" - which means the local computer. -The next item is a [**resource**](https://msdn.microsoft.com/en-us/powershell/dsc/resources). Resources are building blocks of configurations. Each resource is a module that defines the implementation logic of a single aspect of a machine. You can view every resource on your machine by running **Get-DscResource** in PowerShell. Resources must be present on the local machine and imported before they can be used in a configuration with **Import-DscResource** which is on the second line of this configuration. +The next item is a [**resource**](https://msdn.microsoft.com/powershell/dsc/resources). Resources are building blocks of configurations. Each resource is a module that defines the implementation logic of a single aspect of a machine. You can view every resource on your machine by running **Get-DscResource** in PowerShell. Resources must be present on the local machine and imported before they can be used in a configuration with **Import-DscResource** which is on the second line of this configuration. **Enacting a Configuration** diff --git a/dsc/lnxFileResource.md b/dsc/lnxFileResource.md index 3ef39b207ff6..41c6d705eecd 100644 --- a/dsc/lnxFileResource.md +++ b/dsc/lnxFileResource.md @@ -72,7 +72,7 @@ nxFile resolvConf ``` -Step 2: Read the file contents in the PowerShell script with [Get-Content](https://technet.microsoft.com/en-us/library/hh849787.aspx) after setting the __$OFS__ property to use the Linux line-break character. +Step 2: Read the file contents in the PowerShell script with [Get-Content](https://technet.microsoft.com/library/hh849787.aspx) after setting the __$OFS__ property to use the Linux line-break character. ``` diff --git a/dsc/msft-dsclocalconfigurationmanager-resourceget.md b/dsc/msft-dsclocalconfigurationmanager-resourceget.md index 3476d34f39dc..ee6f42e37741 100644 --- a/dsc/msft-dsclocalconfigurationmanager-resourceget.md +++ b/dsc/msft-dsclocalconfigurationmanager-resourceget.md @@ -32,7 +32,7 @@ The name of the module that contains the resource to call. *resourceProperty* \[in\] Specifies the resource property name and its value in a hash table as key and value, respectively. Use the -[Get-DscResource](https://technet.microsoft.com/en-us/library/dn521625.aspx) cmdlet to discover resource properties and their types. +[Get-DscResource](https://technet.microsoft.com/library/dn521625.aspx) cmdlet to discover resource properties and their types. *configurations* \[out\] On return, contains an embedded instance of the configurations. diff --git a/dsc/msft-dsclocalconfigurationmanager-resourceset.md b/dsc/msft-dsclocalconfigurationmanager-resourceset.md index 48daddbc27ff..c98ecec19533 100644 --- a/dsc/msft-dsclocalconfigurationmanager-resourceset.md +++ b/dsc/msft-dsclocalconfigurationmanager-resourceset.md @@ -32,7 +32,7 @@ The name of the module that contains the resource to call. *resourceProperty* \[in\] Specifies the resource property name and its value in a hash table as key and value, respectively. Use the -[Get-DscResource](https://technet.microsoft.com/en-us/library/dn521625.aspx) cmdlet to discover resource properties and their types. +[Get-DscResource](https://technet.microsoft.com/library/dn521625.aspx) cmdlet to discover resource properties and their types. *RebootRequired* \[out\] On return, this property is set to **true** if the target node needs to be rebooted. diff --git a/dsc/msft-dsclocalconfigurationmanager-resourcetest.md b/dsc/msft-dsclocalconfigurationmanager-resourcetest.md index fb0375f263fd..044cdf19ef57 100644 --- a/dsc/msft-dsclocalconfigurationmanager-resourcetest.md +++ b/dsc/msft-dsclocalconfigurationmanager-resourcetest.md @@ -32,7 +32,7 @@ The name of the module that contains the resource to call. *resourceProperty* \[in\] Specifies the resource property name and its value in a hash table as key and value, respectively. Use the -[Get-DscResource](https://technet.microsoft.com/en-us/library/dn521625.aspx) cmdlet to discover resource properties and their types. +[Get-DscResource](https://technet.microsoft.com/library/dn521625.aspx) cmdlet to discover resource properties and their types. *InDesiredState* \[out\] On return, this property is set to **true** if the target node is in the desired state. diff --git a/dsc/nanoDsc.md b/dsc/nanoDsc.md index 07ff9160b5fd..71079674ff88 100644 --- a/dsc/nanoDsc.md +++ b/dsc/nanoDsc.md @@ -18,7 +18,7 @@ New-NanoServerImage -Edition Standard -DeploymentType Guest -MediaPath f:\ -Base ``` For information about installing and using Nano Server, as well as how to manage Nano Server with PowerShell Remoting, see -[Getting Started with Nano Server](https://technet.microsoft.com/en-us/library/mt126167.aspx). +[Getting Started with Nano Server](https://technet.microsoft.com/library/mt126167.aspx). ## DSC features available on Nano Server @@ -32,8 +32,8 @@ For information about installing and using Nano Server, as well as how to manage * Both push and pull modes * All DSC cmdlets that exist on a full version of Windows Server, including the following: - * [Get-DscLocalConfigurationManager](https://technet.microsoft.com/en-us/library/dn407378.aspx) - * [Set-DscLocalConfigurationManager](https://technet.microsoft.com/en-us/library/dn521621.aspx) + * [Get-DscLocalConfigurationManager](https://technet.microsoft.com/library/dn407378.aspx) + * [Set-DscLocalConfigurationManager](https://technet.microsoft.com/library/dn521621.aspx) * [Enable-DscDebug](https://technet.microsoft.com/en-us/library/mt517870.aspx) * [Disable-DscDebug](https://technet.microsoft.com/en-us/library/mt517872.aspx) * [Start-DscConfiguration](https://technet.microsoft.com/en-us/library/dn521623.aspx) @@ -125,5 +125,5 @@ Due to a limited sets of Windows APIs and CLR libraries available on Nano Server Complete end-to-end testing before deploying any DSC custom resources to a production environment. ## See Also -- [Getting Started with Nano Server](https://technet.microsoft.com/en-us/library/mt126167.aspx) +- [Getting Started with Nano Server](https://technet.microsoft.com/library/mt126167.aspx) diff --git a/dsc/partialConfigs.md b/dsc/partialConfigs.md index e75790fb5821..1019e931bed6 100644 --- a/dsc/partialConfigs.md +++ b/dsc/partialConfigs.md @@ -22,11 +22,11 @@ You can use partial configurations in push mode, pull mode, or a combination of ## Partial configurations in push mode To use partial configurations in push mode, you configure the LCM on the target node to receive the partial configurations. Each partial configuration must be pushed to the target by using the Publish-DSCConfiguration cmdlet. The target node then combines the partial configuration into a single configuration, and you can apply the configuration by -calling the [Start-DscConfiguration](https://technet.microsoft.com/en-us/library/dn521623.aspx) cmdlet. +calling the [Start-DscConfiguration](https://technet.microsoft.com/library/dn521623.aspx) cmdlet. ### Configuring the LCM for push-mode partial configurations To configure the LCM for partial configurations in push mode, you create a **DSCLocalConfigurationManager** configuration with one **PartialConfiguration** block for each partial -configuration. For more information about configuring the LCM, see [Windows Configuring the Local Configuration Manager](https://technet.microsoft.com/en-us/library/mt421188.aspx). +configuration. For more information about configuring the LCM, see [Windows Configuring the Local Configuration Manager](https://technet.microsoft.com/library/mt421188.aspx). The following example shows an LCM configuration that expects two partial configurations—one that deploys the OS, and one that deploys and configures SharePoint. ```powershell @@ -59,7 +59,7 @@ The **RefreshMode** for each partial configuration is set to "Push". The names o ### Publishing and starting push-mode partial configurations -You then call [Publish-DSCConfiguration](https://msdn.microsoft.com/en-us/powershell/reference/5.1/psdesiredstateconfiguration/publish-dscconfiguration) for each configuration, passing the folders that contain the configuration +You then call [Publish-DSCConfiguration](https://msdn.microsoft.com/powershell/reference/5.1/psdesiredstateconfiguration/publish-dscconfiguration) for each configuration, passing the folders that contain the configuration documents as the **Path** parameters. `Publish-DSCConfiguration`places the configuration MOF files to the target nodes. After publishing both configurations, you can call `Start-DSCConfiguration –UseExisting` on the target node. @@ -106,7 +106,7 @@ Id Name PSJobTypeName State HasMoreData Location 17 Job17 Configuratio... Running True TestVM Start-DscConfiguration... ``` ->**Note:** The user running the [Publish-DSCConfiguration](https://msdn.microsoft.com/en-us/powershell/reference/5.1/psdesiredstateconfiguration/publish-dscconfiguration) +>**Note:** The user running the [Publish-DSCConfiguration](https://msdn.microsoft.com/powershell/reference/5.1/psdesiredstateconfiguration/publish-dscconfiguration) >cmdlet must have administrator privileges on the target node. ## Partial configurations in pull mode @@ -415,5 +415,5 @@ SharePointConfig **Concepts** [Windows PowerShell Desired State Configuration Pull Servers](pullServer.md) -[Windows Configuring the Local Configuration Manager](https://technet.microsoft.com/en-us/library/mt421188.aspx) +[Windows Configuring the Local Configuration Manager](https://technet.microsoft.com/library/mt421188.aspx) diff --git a/dsc/pullServerSMB.md b/dsc/pullServerSMB.md index 46164c051d97..a1c2327d078f 100644 --- a/dsc/pullServerSMB.md +++ b/dsc/pullServerSMB.md @@ -9,7 +9,7 @@ title: Setting up a DSC SMB pull server >Applies To: Windows PowerShell 4.0, Windows PowerShell 5.0 -A DSC [SMB](https://technet.microsoft.com/en-us/library/hh831795.aspx) pull server is a computer hosting SMB file shares that make DSC configuration files and DSC resources +A DSC [SMB](https://technet.microsoft.com/library/hh831795.aspx) pull server is a computer hosting SMB file shares that make DSC configuration files and DSC resources available to target nodes when those nodes ask for them. To use an SMB pull server for DSC, you have to: @@ -22,7 +22,7 @@ There are a number of ways to set up an SMB file share, but let's look at how yo ### Install the xSmbShare resource -Call the [Install-Module](https://technet.microsoft.com/en-us/library/dn807162.aspx) cmdlet to install the **xSmbShare** module. +Call the [Install-Module](https://technet.microsoft.com/library/dn807162.aspx) cmdlet to install the **xSmbShare** module. >**Note**: **Install-Module** is included in the **PowerShellGet** module, which is included in PowerShell 5.0. You can download the **PowerShellGet** module for PowerShell 3.0 and 4.0 >at [PackageManagement PowerShell Modules Preview](https://www.microsoft.com/en-us/download/details.aspx?id=49186). The **xSmbShare** contains the DSC resource **xSmbShare**, which can be used to create an SMB file share. diff --git a/dsc/reportServer.md b/dsc/reportServer.md index 225ca13f683f..5b4ff9851fa0 100644 --- a/dsc/reportServer.md +++ b/dsc/reportServer.md @@ -98,7 +98,7 @@ PullClientConfig Reports sent to the pull server are entered into a database on the server. The reports are available through calls to the web service. To retrieve reports for a specific node, send an HTTP request to the report web service in the following form: `http://CONTOSO-REPORT:8080/PSDSCReportServer.svc/Nodes(AgentId= 'MyNodeAgentId')/Reports` -where `MyNodeAgentId` is the AgentId of the node for which you want to get reports. You can get the AgentID for a node by calling [Get-DscLocalConfigurationManager](https://technet.microsoft.com/en-us/library/dn407378.aspx) +where `MyNodeAgentId` is the AgentId of the node for which you want to get reports. You can get the AgentID for a node by calling [Get-DscLocalConfigurationManager](https://technet.microsoft.com/library/dn407378.aspx) on that node. The reports are returned as an array of JSON objects. diff --git a/dsc/runAsUser.md b/dsc/runAsUser.md index 0161d5880579..bf3b665c1e53 100644 --- a/dsc/runAsUser.md +++ b/dsc/runAsUser.md @@ -14,8 +14,8 @@ By default, DSC runs each resource as the system account. There are times when running as a user is necessary, such as installing MSI packages in a specific user context, setting a user's registry keys, accessing a user's specific local directory, or accessing a network share. -Every DSC resource has a **PsDscRunAsCredential** property that can be set to any user credentials (a [PSCredential](https://msdn.microsoft.com/en-us/library/ms572524(v=VS.85).aspx) object). -The credential can be hard-coded as the value of the property in the configuration, or you can set the value to [Get-Credential](https://technet.microsoft.com/en-us/library/hh849815.aspx), +Every DSC resource has a **PsDscRunAsCredential** property that can be set to any user credentials (a [PSCredential](https://msdn.microsoft.com/library/ms572524(v=VS.85).aspx) object). +The credential can be hard-coded as the value of the property in the configuration, or you can set the value to [Get-Credential](https://technet.microsoft.com/library/hh849815.aspx), which will prompt the user for a credential when the configuration is compiled (for information about compiling configurations, see [Configurations](configurations.md). >**Note:** In PowerShell 5.0, using the **PsDscRunAsCredential** property in configurations calling composite resources was not supported. diff --git a/dsc/scriptResource.md b/dsc/scriptResource.md index c10a1e8ca73e..b539033a76b0 100644 --- a/dsc/scriptResource.md +++ b/dsc/scriptResource.md @@ -38,9 +38,9 @@ Script [string] #ResourceName | Property | Description | |---|---| -| GetScript| Provides a block of Windows PowerShell script that runs when you invoke the [Get-DscConfiguration](https://technet.microsoft.com/en-us/library/dn407379.aspx) cmdlet. This block must return a hashtable. The hashtable must only contain one key **Result** and the value must be of type **String**.| -| SetScript| Provides a block of Windows PowerShell script. When you invoke the [Start-DscConfiguration](https://technet.microsoft.com/en-us/library/dn521623.aspx) cmdlet, the **TestScript** block runs first. If the **TestScript** block returns **$false**, the **SetScript** block will run. If the **TestScript** block returns **$true**, the **SetScript** block will not run.| -| TestScript| Provides a block of Windows PowerShell script. When you invoke the [Start-DscConfiguration](https://technet.microsoft.com/en-us/library/dn521623.aspx) cmdlet, this block runs. If it returns **$false**, the SetScript block will run. If it returns **$true**, the SetScript block will not run. The **TestScript** block also runs when you invoke the [Test-DscConfiguration](https://technet.microsoft.com/en-us/library/dn407382.aspx) cmdlet. However, in this case, the **SetScript** block will not run, no matter what value the TestScript block returns. The **TestScript** block must return True if the actual configuration matches the current desired state configuration, and False if it does not match. (The current desired state configuration is the last configuration enacted on the node that is using DSC.)| +| GetScript| Provides a block of Windows PowerShell script that runs when you invoke the [Get-DscConfiguration](https://technet.microsoft.com/library/dn407379.aspx) cmdlet. This block must return a hashtable. The hashtable must only contain one key **Result** and the value must be of type **String**.| +| SetScript| Provides a block of Windows PowerShell script. When you invoke the [Start-DscConfiguration](https://technet.microsoft.com/library/dn521623.aspx) cmdlet, the **TestScript** block runs first. If the **TestScript** block returns **$false**, the **SetScript** block will run. If the **TestScript** block returns **$true**, the **SetScript** block will not run.| +| TestScript| Provides a block of Windows PowerShell script. When you invoke the [Start-DscConfiguration](https://technet.microsoft.com/library/dn521623.aspx) cmdlet, this block runs. If it returns **$false**, the SetScript block will run. If it returns **$true**, the SetScript block will not run. The **TestScript** block also runs when you invoke the [Test-DscConfiguration](https://technet.microsoft.com/en-us/library/dn407382.aspx) cmdlet. However, in this case, the **SetScript** block will not run, no matter what value the TestScript block returns. The **TestScript** block must return True if the actual configuration matches the current desired state configuration, and False if it does not match. (The current desired state configuration is the last configuration enacted on the node that is using DSC.)| | Credential| Indicates the credentials to use for running this script, if credentials are required.| | DependsOn| Indicates that the configuration of another resource must run before this resource is configured. For example, if the ID of the resource configuration script block that you want to run first is **ResourceName** and its type is **ResourceType**, the syntax for using this property is `DependsOn = "[ResourceType]ResourceName"`. diff --git a/dsc/secureMOF.md b/dsc/secureMOF.md index 3e3505500462..5bd05edf22a6 100644 --- a/dsc/secureMOF.md +++ b/dsc/secureMOF.md @@ -25,7 +25,7 @@ using the pull service protocol if certificates are not managed, to ensure configurations downloaded by the target node can be decrypted and read by the system before they are applied (for example, the pull service available in Windows Server). -Nodes registered to [Azure Automation DSC](https://docs.microsoft.com/en-us/azure/automation/automation-dsc-overview) +Nodes registered to [Azure Automation DSC](https://docs.microsoft.com/azure/automation/automation-dsc-overview) will automatically have certificates installed and managed by the service with no administrative overhead required. @@ -280,7 +280,7 @@ configuration CredentialEncryptionExample ## Setting up decryption -Before [`Start-DscConfiguration`](https://technet.microsoft.com/en-us/library/dn521623.aspx) can work, you have to tell the Local Configuration Manager on each target node which certificate to use to decrypt the credentials, using the CertificateID resource to verify the certificate’s thumbprint. This example function will find the appropriate local certificate (you might have to customize it so it will find the exact certificate you want to use): +Before [`Start-DscConfiguration`](https://technet.microsoft.com/library/dn521623.aspx) can work, you have to tell the Local Configuration Manager on each target node which certificate to use to decrypt the credentials, using the CertificateID resource to verify the certificate’s thumbprint. This example function will find the appropriate local certificate (you might have to customize it so it will find the exact certificate you want to use): ```powershell # Get the certificate that works for encryption @@ -329,7 +329,7 @@ configuration CredentialEncryptionExample At this point, you can run the configuration, which will output two files: - * A *.meta.mof file that configures the Local Configuration Manager to decrypt the credentials using the certificate that is stored on the local machine store and identified by its thumbprint. [`Set-DscLocalConfigurationManager`](https://technet.microsoft.com/en-us/library/dn521621.aspx) applies the *.meta.mof file. + * A *.meta.mof file that configures the Local Configuration Manager to decrypt the credentials using the certificate that is stored on the local machine store and identified by its thumbprint. [`Set-DscLocalConfigurationManager`](https://technet.microsoft.com/library/dn521621.aspx) applies the *.meta.mof file. * A MOF file that actually applies the configuration. Start-DscConfiguration applies the configuration. These commands will accomplish those steps: diff --git a/dsc/secureServer.md b/dsc/secureServer.md index fd07448a0b2b..94f31ad0dfad 100644 --- a/dsc/secureServer.md +++ b/dsc/secureServer.md @@ -24,7 +24,7 @@ This document is designed to provide official guidance for anyone planning for a service that should take only minutes to deploy. Although this document will offer technical how-to guidance that can be used in a deployment, the value of this document is as a reference for best practices and what to think about before deploying. Readers should have basic familiarity with DSC, and the terms used to describe the components that are included in a DSC deployment. For more information, -see the [Windows PowerShell Desired State Configuration Overview](https://technet.microsoft.com/en-us/library/dn249912.aspx) topic. +see the [Windows PowerShell Desired State Configuration Overview](https://technet.microsoft.com/library/dn249912.aspx) topic. As DSC is expected to evolve at cloud cadence, the underlying technology including pull server is also expected to evolve and to introduce new capabilities. This document includes a version table in the appendix that provides references to previous releases and references to future looking solutions to encourage forward-looking designs. @@ -52,8 +52,8 @@ The pull server role can be deployed as either a Web Server instance or an SMB f for target nodes to report back confirmation of success or failure as configurations are applied. This functionality is useful in environments where there are a large number of target nodes. After configuring a target node (also referred to as a client) to point to the pull server the latest configuration data and any required scripts are downloaded and applied. This can happen as a one-time deployment or as a re-occurring job which also makes the pull server an important asset for managing change at scale. For more information, see -[Windows PowerShell Desired State Configuration Pull Servers](https://technet.microsoft.com/en-us/library/dn249913.aspx) and -[Push and Pull Configuration Modes](https://technet.microsoft.com/en-us/library/dn249913.aspx). +[Windows PowerShell Desired State Configuration Pull Servers](https://technet.microsoft.com/library/dn249913.aspx) and +[Push and Pull Configuration Modes](https://technet.microsoft.com/library/dn249913.aspx). ## Configuration planning diff --git a/dsc/separatingEnvData.md b/dsc/separatingEnvData.md index 67bbb51e1128..2b60d8c35f45 100644 --- a/dsc/separatingEnvData.md +++ b/dsc/separatingEnvData.md @@ -148,7 +148,7 @@ Configuration MyWebApp Import-DscResource -Module xSqlPs Import-DscResource -Module xWebAdministration - Node $AllNodes.Where{$_.Role -contains "MSSQL"}.Nodename + Node $AllNodes.Where{$_.Role -contains "MSSQL"}.NodeName { # Install prerequisites WindowsFeature installdotNet35 diff --git a/dsc/serviceSetResource.md b/dsc/serviceSetResource.md index 37693ebf36f3..152e0d3cc56f 100644 --- a/dsc/serviceSetResource.md +++ b/dsc/serviceSetResource.md @@ -35,7 +35,7 @@ Service [string] #ResourceName | Property | Description | |---|---| -| Name| Indicates the service names. Note that sometimes this is different from the display names. You can get a list of the services and their current state with the [Get-Service](https://technet.microsoft.com/en-us/library/hh849804.aspx) cmdlet.| +| Name| Indicates the service names. Note that sometimes this is different from the display names. You can get a list of the services and their current state with the [Get-Service](https://technet.microsoft.com/library/hh849804.aspx) cmdlet.| | StartupType| Indicates the startup type for the service. The values that are allowed for this property are: **Automatic**, **Disabled**, and **Manual**| | BuiltInAccount| Indicates the sign-in account to use for the services. The values that are allowed for this property are: **LocalService**, **LocalSystem**, and **NetworkService**.| | State| Indicates the state you want to ensure for the services: **Stopped** or **Running**.| diff --git a/dsc/sxsResource.md b/dsc/sxsResource.md index 05529c9e8497..4e9f168abf30 100644 --- a/dsc/sxsResource.md +++ b/dsc/sxsResource.md @@ -14,7 +14,7 @@ that are contained in the same module folder. ## Installing multiple resource versions side-by-side -You can use the **MinimumVersion**, **MaximumVersion**, and **RequiredVersion** parameters of the [Install-Module](https://technet.microsoft.com/en-us/library/dn807162.aspx) cmdlet to specify +You can use the **MinimumVersion**, **MaximumVersion**, and **RequiredVersion** parameters of the [Install-Module](https://technet.microsoft.com/library/dn807162.aspx) cmdlet to specify which version of a module to install. Calling **Install-Module** without specifying a version installs the most recent version. For example, there are multiple versions of the **xFailOverCluster** module, each of which contains an **xCluster** resouce. The result of calling **Install-Module** without specifying the diff --git a/dsc/troubleshooting.md b/dsc/troubleshooting.md index 56281c9f3f67..5f966182a8c6 100644 --- a/dsc/troubleshooting.md +++ b/dsc/troubleshooting.md @@ -17,7 +17,7 @@ Windows PowerShell Desired State Configuration (DSC) depends on WinRM. WinRM is ## Using Get-DscConfigurationStatus -The [Get-DscConfigurationStatus](https://technet.microsoft.com/en-us/library/mt517868.aspx) cmdlet gets information about configuration status from a target node. +The [Get-DscConfigurationStatus](https://technet.microsoft.com/library/mt517868.aspx) cmdlet gets information about configuration status from a target node. A rich object is returned that includes high-level information about whether or not the configuration run was successful or not. You can dig into the object to discover details about the configuration run such as: * All of the resources that failed @@ -626,5 +626,5 @@ onlyProperty PSComputerName * [Build Custom Windows PowerShell Desired State Configuration Resources](authoringResource.md) ### Other Resources -* [Windows PowerShell Desired State Configuration Cmdlets](https://technet.microsoft.com/en-us/library/dn521624(v=wps.630).aspx) +* [Windows PowerShell Desired State Configuration Cmdlets](https://technet.microsoft.com/library/dn521624(v=wps.630).aspx) diff --git a/dsc/waitForAllResource.md b/dsc/waitForAllResource.md index d242f4ea8e11..08db36b4128e 100644 --- a/dsc/waitForAllResource.md +++ b/dsc/waitForAllResource.md @@ -33,7 +33,7 @@ WaitForAll [string] #ResourceName | Property | Description | |---|---| -| ResourceName| The resource name to depend on.| +| ResourceName| The resource name to depend on. If this resource belongs to a different configuration, format the name as "[__ResourceType__]__ResourceName__::[__ConfigurationName__]::[__ConfigurationName__]"| | NodeName| The target nodes of the resource to depend on.| | RetryIntervalSec| The number of seconds before retrying. Minimum is 1.| | RetryCount| The maximum number of times to retry.| diff --git a/dsc/waitForAnyResource.md b/dsc/waitForAnyResource.md index 08aced75cc0a..b51ae339a515 100644 --- a/dsc/waitForAnyResource.md +++ b/dsc/waitForAnyResource.md @@ -33,7 +33,7 @@ WaitForAny [string] #ResourceName | Property | Description | |---|---| -| ResourceName| The resource name to depend on.| +| ResourceName| The resource name to depend on. If this resource belongs to a different configuration, format the name as "[__ResourceType__]__ResourceName__::[__ConfigurationName__]::[__ConfigurationName__]"| | NodeName| The target nodes of the resource to depend on.| | RetryIntervalSec| The number of seconds before retrying. Minimum is 1.| | RetryCount| The maximum number of times to retry.| diff --git a/dsc/waitForSomeResource.md b/dsc/waitForSomeResource.md index 46505c636f0d..3bc306134964 100644 --- a/dsc/waitForSomeResource.md +++ b/dsc/waitForSomeResource.md @@ -38,12 +38,12 @@ WaitForSome [String] #ResourceName |---|---| | NodeCount| The minimum number of nodes that must be in the desired state for this resource to succeed.| | NodeName| The target nodes of the resource to depend on.| -| ResourceName| The resource name to depend on.| +| ResourceName| The resource name to depend on. If this resource belongs to a different configuration, format the name as "[__ResourceType__]__ResourceName__::[__ConfigurationName__]::[__ConfigurationName__]"| | RetryIntervalSec| The number of seconds before retrying. Minimum is 1.| | RetryCount| The maximum number of times to retry.| | ThrottleLimit| Number of machines to connect simultaneously. Default is new-cimsession default.| | DependsOn | Indicates that the configuration of another resource must run before this resource is configured. For example, if the ID of the resource configuration script block that you want to run first is __ResourceName__ and its type is __ResourceType__, the syntax for using this property is `DependsOn = "[ResourceType]ResourceName"`.| -| PsDscRunAsCredential | See [Using DSC with User Credentials](https://docs.microsoft.com/en-us/powershell/dsc/runasuser) | +| PsDscRunAsCredential | See [Using DSC with User Credentials](https://docs.microsoft.com/powershell/dsc/runasuser) | ## Example diff --git a/gallery/TOC.md b/gallery/TOC.md deleted file mode 100644 index 57ec5223eb1c..000000000000 --- a/gallery/TOC.md +++ /dev/null @@ -1,67 +0,0 @@ -# [Overview](readme.md) -## Gallery -### [Getting started](psgallery/psgallery_gettingstarted.md) -### [Health Status](psgallery/psgallery_status.md) -### [Gallery FAQs](psgallery/psgallery_faqs.md) -### [Gallery Items tab](psgallery/psgallery_items_tab.md) -### [Gallery search syntax](psgallery/psgallery_search_syntax.md) -### [Items with Compatible PSEditions](psgallery/psgallery_pseditions.md) -### [FileList view](psgallery/psgallery_filelist_feature.md) -### [Deploy to Azure Automation](psgallery/psgallery_deploy_to_azure_automation.md) -### [Creating a PowerShellGallery Account](psgallery/psgallery_creating_an_account.md) -### [Creating and publishing items](psgallery/Creating-and-Publishing-an-item.md) -### [Publishing guidelines and best practices](psgallery/psgallery-PublishingGuidelines.md) -### [Item manifest and Gallery UI](psgallery/psgallery_ItemManifestAffectingUI.md) -### [Unlisting items](psgallery/psgallery_unlist_items.md) -### [Deleting items](psgallery/Deleting-Items.md) -### [Managing item owners](psgallery/Managing-Item-Owners.md) -### [Report Abuse](psgallery/psgallery_report_abuse.md) -### [Dispute resolution](psgallery/psgallery_dispute_resolution.md) -### [Contacting item owners](psgallery/psgallery_contacting_item_owners.md) -### [Contacting administrators](psgallery/psgallery_contacting_administrators.md) -### [Providing Feedback via Social Media or Comments](psgallery/psgallery-SocialMediaFeedback.md) -### [Require License Acceptance on Items details](psgallery/psgallery_requires_license_acceptance.md) -### [Require License Acceptance on Deploy to Azure Automation](psgallery/psgallery_deploy_to_azure_automation_requireLicenseAcceptance.md) - -# [PowerShellGet](psget/overview.md) -## [Get PowerShellGet Module](psget/get_psget_module.md) - -## Module -### [Find Modules](psget/module/psget_find-module.md) -### [Find DSC Resources](psget/module/psget_find-dscresource.md) -### [Find Role Capabilities](psget/module/psget_find-rolecapability.md) -### [Find Commands](psget/module/psget_find-command.md) -### [Save](psget/module/psget_save-module.md) -### [Install](psget/module/psget_install-module.md) -### [Update](psget/module/psget_update-module.md) -### [Uninstall](psget/module/psget_uninstall-module.md) -### [Get installed modules](psget/module/psget_get-installedmodule.md) -### [Update module manifest](psget/module/psget_update-modulemanifest.md) -### [Publish](psget/module/psget_publish-module.md) -### [Modules with PSEditions](psget/module/modulewithpseditionsupport.md) -### [Modules Requiring License Acceptance](psget/module/RequireLicenseAcceptance.md) -### [Prerelease Versions](psget/module/PreReleaseModule.md) -### [Troubleshooting](psget/psget_cmdlets_troubleshooting.md) - -## Script -### [Find](psget/script/psget_find-script.md) -### [Save](psget/script/psget_save-script.md) -### [Install](psget/script/psget_install-script.md) -### [Update](psget/script/psget_update-script.md) -### [Uninstall](psget/script/psget_uninstall-script.md) -### [Get installed scipts](psget/script/psget_get-installedscript.md) -### [Create script file with metadata](psget/script/psget_new-scriptfileinfo.md) -### [Test script file metadata](psget/script/psget_test-scriptfileinfo.md) -### [Update script file metadata](psget/script/psget_update-scriptfileinfo.md) -### [Publish](psget/script/psget_publish-script.md) -### [Scripts with PSEditions](psget/script/scriptwithpseditionsupport.md) -### [Require License Acceptance for Scripts](psget/script/script_RequireLicenseAcceptance.md) -### [Prerelease Versions](psget/script/PreReleaseScript.md) -## Repository management -### [Bootstrapping NuGet provider and NuGet.exe](psget/repository/bootstrapping_nuget_proivder_and_exe.md) -### [Registering repository](psget/repository/psget_register-psrepository.md) -### [Listing registered repository](psget/repository/psget_get-psrepository.md) -### [Modifying registered repository](psget/repository/psget_set-psrepository.md) -### [Unregistering repository](psget/repository/psget_unregister-psrepository.md) - -## [PackageManagement cmdlets](psget/oneget/PackageManagement_cmdlets.md) diff --git a/gallery/TOC.yml b/gallery/TOC.yml new file mode 100644 index 000000000000..cd9234e172e7 --- /dev/null +++ b/gallery/TOC.yml @@ -0,0 +1,128 @@ +- name: Overview + href: readme.md + items: + - name: Gallery + items: + - name: Getting started + href: psgallery/psgallery_gettingstarted.md + - name: Health Status + href: psgallery/psgallery_status.md + - name: Gallery FAQs + href: psgallery/psgallery_faqs.md + - name: Gallery Items tab + href: psgallery/psgallery_items_tab.md + - name: Gallery search syntax + href: psgallery/psgallery_search_syntax.md + - name: Items with Compatible PSEditions + href: psgallery/psgallery_pseditions.md + - name: FileList view + href: psgallery/psgallery_filelist_feature.md + - name: Deploy to Azure Automation + href: psgallery/psgallery_deploy_to_azure_automation.md + - name: Creating a PowerShellGallery Account + href: psgallery/psgallery_creating_an_account.md + - name: Creating and publishing items + href: psgallery/Creating-and-Publishing-an-item.md + - name: Publishing guidelines and best practices + href: psgallery/psgallery-PublishingGuidelines.md + - name: Item manifest and Gallery UI + href: psgallery/psgallery_ItemManifestAffectingUI.md + - name: Unlisting items + href: psgallery/psgallery_unlist_items.md + - name: Deleting items + href: psgallery/Deleting-Items.md + - name: Managing item owners + href: psgallery/Managing-Item-Owners.md + - name: Report Abuse + href: psgallery/psgallery_report_abuse.md + - name: Dispute resolution + href: psgallery/psgallery_dispute_resolution.md + - name: Contacting item owners + href: psgallery/psgallery_contacting_item_owners.md + - name: Contacting administrators + href: psgallery/psgallery_contacting_administrators.md + - name: Providing Feedback via Social Media or Comments + href: psgallery/psgallery-SocialMediaFeedback.md + - name: Require License Acceptance on Items details + href: psgallery/psgallery_requires_license_acceptance.md + - name: Require License Acceptance on Deploy to Azure Automation + href: psgallery/psgallery_deploy_to_azure_automation_requireLicenseAcceptance.md +- name: PowerShellGet + href: psget/overview.md + items: + - name: Get PowerShellGet Module + href: psget/get_psget_module.md + - name: Module + items: + - name: Find Modules + href: psget/module/psget_find-module.md + - name: Find DSC Resources + href: psget/module/psget_find-dscresource.md + - name: Find Role Capabilities + href: psget/module/psget_find-rolecapability.md + - name: Find Commands + href: psget/module/psget_find-command.md + - name: Save + href: psget/module/psget_save-module.md + - name: Install + href: psget/module/psget_install-module.md + - name: Update + href: psget/module/psget_update-module.md + - name: Uninstall + href: psget/module/psget_uninstall-module.md + - name: Get installed modules + href: psget/module/psget_get-installedmodule.md + - name: Update module manifest + href: psget/module/psget_update-modulemanifest.md + - name: Publish + href: psget/module/psget_publish-module.md + - name: Modules with PSEditions + href: psget/module/modulewithpseditionsupport.md + - name: Modules Requiring License Acceptance + href: psget/module/RequireLicenseAcceptance.md + - name: Prerelease Versions + href: psget/module/PreReleaseModule.md + - name: Troubleshooting + href: psget/psget_cmdlets_troubleshooting.md + - name: Script + items: + - name: Find + href: psget/script/psget_find-script.md + - name: Save + href: psget/script/psget_save-script.md + - name: Install + href: psget/script/psget_install-script.md + - name: Update + href: psget/script/psget_update-script.md + - name: Uninstall + href: psget/script/psget_uninstall-script.md + - name: Get installed scipts + href: psget/script/psget_get-installedscript.md + - name: Create script file with metadata + href: psget/script/psget_new-scriptfileinfo.md + - name: Test script file metadata + href: psget/script/psget_test-scriptfileinfo.md + - name: Update script file metadata + href: psget/script/psget_update-scriptfileinfo.md + - name: Publish + href: psget/script/psget_publish-script.md + - name: Scripts with PSEditions + href: psget/script/scriptwithpseditionsupport.md + - name: Require License Acceptance for Scripts + href: psget/script/script_RequireLicenseAcceptance.md + - name: Prerelease Versions + href: psget/script/PreReleaseScript.md + - name: Repository management + items: + - name: Bootstrapping NuGet provider and NuGet.exe + href: psget/repository/bootstrapping_nuget_proivder_and_exe.md + - name: Registering repository + href: psget/repository/psget_register-psrepository.md + - name: Listing registered repository + href: psget/repository/psget_get-psrepository.md + - name: Modifying registered repository + href: psget/repository/psget_set-psrepository.md + - name: Unregistering repository + href: psget/repository/psget_unregister-psrepository.md + - name: PackageManagement cmdlets + href: psget/oneget/PackageManagement_cmdlets.md diff --git a/gallery/docfx.json b/gallery/docfx.json index 7015d17719f4..af03c10b1955 100644 --- a/gallery/docfx.json +++ b/gallery/docfx.json @@ -10,7 +10,7 @@ } ], "globalMetadata": { - "breadcrumb_path": "/powershell/gallery/bread/toc.json", + "breadcrumb_path": "/powershell/gallery/bread/toc.yml", "ROBOTS": "INDEX, FOLLOW", "uhfHeaderId": "MSDocsHeader-Powershell", "ms.prod": "powershell", diff --git a/gallery/psgallery/psgallery-PublishingGuidelines.md b/gallery/psgallery/psgallery-PublishingGuidelines.md index 3b4ef655273a..6a836ecd0412 100644 --- a/gallery/psgallery/psgallery-PublishingGuidelines.md +++ b/gallery/psgallery/psgallery-PublishingGuidelines.md @@ -19,7 +19,7 @@ improving your code with feedback from initial reviewers and [Powershell Script versioning your module, documentation, tests & examples for how to use what you have shared. Much of this documentation follows the guidelines for publishing [High Quality DSC Resource Modules](https://github.com/PowerShell/DscResources/blob/master/HighQualityModuleGuidelines.md). -For the mechanics of publishing an item to the PowerShell Gallery, see [Creating and Publishing an Item](https://msdn.microsoft.com/en-us/powershell/gallery/psgallery/creating-and-publishing-an-item). +For the mechanics of publishing an item to the PowerShell Gallery, see [Creating and Publishing an Item](https://msdn.microsoft.com/powershell/gallery/psgallery/creating-and-publishing-an-item). Feedback on these guidelines is welcomed. If you do have feedback, please open issues in our [Github documentation repository](https://github.com/powershell/powershell-docs/). @@ -71,7 +71,7 @@ There are several articles available in MSDN on how to provide documentation wit * Guidelines for providing help are in [How to Write Cmdlet Help](https://go.microsoft.com/fwlink/?LinkID=123415) * Creating cmdlet help, which is the best approach for any PowerShell script, function, or cmdlet. For information about how to create cmdlet help, start with [How to Write Cmdlet Help](https://go.microsoft.com/fwlink/?LinkID=123415) in the MSDN library. - To add help within a script, see [About Comment Based Help](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/about/about_comment_based_help). + To add help within a script, see [About Comment Based Help](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/about/about_comment_based_help). * Many modules also include documentation in text format, such as MarkDown files. This can be particularly helpful when there is a project site in Github, where Markdown is a heavily used format. The best practice is to use [Github-flavored Markdown](https://help.github.com/categories/writing-on-github/) diff --git a/gallery/psgallery/psgallery_ItemManifestAffectingUI.md b/gallery/psgallery/psgallery_ItemManifestAffectingUI.md index 48317c8ab72d..1444d79b9d14 100644 --- a/gallery/psgallery/psgallery_ItemManifestAffectingUI.md +++ b/gallery/psgallery/psgallery_ItemManifestAffectingUI.md @@ -4,8 +4,8 @@ This topic provides publishers with summary information on how to modify the man This content is organized by where the change will appear, starting with the center section, then the navigation area on the left. There is a detail section covering tags, which identifies important tags, as well as some of the more commonly used tags. There are two topics that provide manifest examples: -* For modules, see [Update Module Manifest](https://docs.microsoft.com/en-us/powershell/gallery/psget/module/psget_update-modulemanifest) -* For scripts, see [Create Script File with Metadata](https://docs.microsoft.com/en-us/powershell/gallery/psget/script/psget_new-scriptfileinfo) +* For modules, see [Update Module Manifest](https://docs.microsoft.com/powershell/gallery/psget/module/psget_update-modulemanifest) +* For scripts, see [Create Script File with Metadata](https://docs.microsoft.com/powershell/gallery/psget/script/psget_new-scriptfileinfo) ## PowerShell Gallery Feature Elements Controlled by the Manifest diff --git a/gallery/psgallery/psgallery_creating_an_account.md b/gallery/psgallery/psgallery_creating_an_account.md index f935914ff11b..4bbd1cee6704 100644 --- a/gallery/psgallery/psgallery_creating_an_account.md +++ b/gallery/psgallery/psgallery_creating_an_account.md @@ -22,7 +22,7 @@ Once you have logged in, you will be prompted to create a username for the Power Review the Terms of Use and Privacy Policy that are linked in, enter a username, and then click Register. Note: This account name cannot be changed once it is created. -See [Managing Item Owners](https://msdn.microsoft.com/en-us/powershell/gallery/psgallery/managing-item-owners) for additional +See [Managing Item Owners](https://msdn.microsoft.com/powershell/gallery/psgallery/managing-item-owners) for additional details related to this. ## Recommended Practices for PowerShell Gallery Accounts @@ -36,6 +36,6 @@ In many cases that account is not regularly monitored. A best practice in that case is to use Outlook Forwarding to send email to another account, typically one within the organization, that will be monitored by the item owner(s). If there are multiple owners associated with an item, all communications that come from the PowerShell Gallery will go to all owners. -See [Managing Item Owners](https://msdn.microsoft.com/en-us/powershell/gallery/psgallery/managing-item-owners) for additional +See [Managing Item Owners](https://msdn.microsoft.com/powershell/gallery/psgallery/managing-item-owners) for additional details on adding owners to an item. diff --git a/gallery/psgallery/psgallery_deploy_to_azure_automation.md b/gallery/psgallery/psgallery_deploy_to_azure_automation.md index e09fa0e59d5c..b5aef7c1e2b6 100644 --- a/gallery/psgallery/psgallery_deploy_to_azure_automation.md +++ b/gallery/psgallery/psgallery_deploy_to_azure_automation.md @@ -22,5 +22,5 @@ If you deploy a module, it will appear in the Modules section of Azure Automatio The Deploy to Azure Automation button can be disabled by adding the AzureAutomationNotSupported tag to the item metadata. -To learn more about Azure Automation, see the Azure Automation website [Azure Automation website](http://azure.microsoft.com/en-us/services/automation/). +To learn more about Azure Automation, see the Azure Automation website [Azure Automation website](http://azure.microsoft.com/services/automation/). diff --git a/gallery/psgallery/psgallery_deploy_to_azure_automation_requireLicenseAcceptance.md b/gallery/psgallery/psgallery_deploy_to_azure_automation_requireLicenseAcceptance.md index 40be4c70cd95..a3b6bc784a5f 100644 --- a/gallery/psgallery/psgallery_deploy_to_azure_automation_requireLicenseAcceptance.md +++ b/gallery/psgallery/psgallery_deploy_to_azure_automation_requireLicenseAcceptance.md @@ -18,5 +18,5 @@ If the module being deployed to Azure Automation requires license acceptance, po ## More details ### [Require License Acceptance in PowerShellGet](../psget/module/RequireLicenseAcceptance.md) ### [Require License Acceptance in PowerShell Gallery](psgallery_requires_license_acceptance.md) -### [Azure Automation website](http://azure.microsoft.com/en-us/services/automation/) +### [Azure Automation website](http://azure.microsoft.com/services/automation/) diff --git a/gallery/psgallery/psgallery_faqs.md b/gallery/psgallery/psgallery_faqs.md index 3a10e673191a..92f45ba68e49 100644 --- a/gallery/psgallery/psgallery_faqs.md +++ b/gallery/psgallery/psgallery_faqs.md @@ -14,7 +14,7 @@ A PowerShell module is a reusable package containing some PowerShell functionali ## What is a PowerShell script? -A PowerShell script is a series of commands that are stored in a .ps1 file to enable reuse and sharing. PowerShell workflows are also PowerShell scripts, which outline a set of tasks and provide sequencing for those tasks. For more information, please visit [Getting Started with PowerShell Workflow](https://technet.microsoft.com/en-us/library/jj134242.aspx). +A PowerShell script is a series of commands that are stored in a .ps1 file to enable reuse and sharing. PowerShell workflows are also PowerShell scripts, which outline a set of tasks and provide sequencing for those tasks. For more information, please visit [Getting Started with PowerShell Workflow](https://technet.microsoft.com/library/jj134242.aspx). ## How are PowerShell Scripts different from PowerShell Modules? @@ -44,7 +44,7 @@ This error can occur for the following reasons: ## Why can't I sign in with my personal account, but I could sign in yesterday? -Please be aware that your gallery account does not accommodate changes to your primary email alias. For more information, see [Microsoft Email Aliases](https://windows.microsoft.com/en-us/windows/outlook/add-alias-account). +Please be aware that your gallery account does not accommodate changes to your primary email alias. For more information, see [Microsoft Email Aliases](https://windows.microsoft.com/windows/outlook/add-alias-account). ## Why don't I see all the gallery items when I select all the Category checkboxes on the Items tab? @@ -152,7 +152,7 @@ Therefore, **PowerShellGet** requires one of the following operating systems: - Windows Server 2012 R2 - Windows Server 2008 R2 SP1 -**PowerShellGet** also requires .NET Framework 4.5 or above. You can install .NET Framework 4.5 or above from [here](https://msdn.microsoft.com/en-us/library/5a4x27ek.aspx). +**PowerShellGet** also requires .NET Framework 4.5 or above. You can install .NET Framework 4.5 or above from [here](https://msdn.microsoft.com/library/5a4x27ek.aspx). ## Is it possible to reserve names for items that will be published in future? diff --git a/gallery/psgallery/psgallery_gettingstarted.md b/gallery/psgallery/psgallery_gettingstarted.md index 6d34e3c0135e..bdd01c506835 100644 --- a/gallery/psgallery/psgallery_gettingstarted.md +++ b/gallery/psgallery/psgallery_gettingstarted.md @@ -188,7 +188,7 @@ dependencies will deploy all the dependencies to Azure Automation. The **AzureAutomationNotSupported** tag to your item metadata. To learn more about Azure Automation, see the [Azure Automation -website](http://azure.microsoft.com/en-us/services/automation/). +website](http://azure.microsoft.com/services/automation/). ## Updating items from the PowerShell Gallery diff --git a/gallery/psget/get_psget_module.md b/gallery/psget/get_psget_module.md index 0deace43e386..c61229b1f836 100644 --- a/gallery/psget/get_psget_module.md +++ b/gallery/psget/get_psget_module.md @@ -10,9 +10,9 @@ Get PowerShellGet Module ======================== ### PowerShellGet is an in-box module in the following releases -- [Windows 10](https://www.microsoft.com/en-us/windows/get-windows-10) or newer -- [Windows Server 2016](https://technet.microsoft.com/en-us/windows-server-docs/get-started/windows-server-2016) or newer -- [Windows Management Framework (WMF) 5.0](https://www.microsoft.com/en-us/download/details.aspx?id=50395) or newer +- [Windows 10](https://www.microsoft.com/windows/get-windows-10) or newer +- [Windows Server 2016](https://technet.microsoft.com/windows-server-docs/get-started/windows-server-2016) or newer +- [Windows Management Framework (WMF) 5.0](https://www.microsoft.com/download/details.aspx?id=50395) or newer - [PowerShell 6](https://github.com/PowerShell/PowerShell/releases) ### Get PowerShellGet module for PowerShell versions 3.0 and 4.0 diff --git a/gallery/psget/module/modulewithpseditionsupport.md b/gallery/psget/module/modulewithpseditionsupport.md index fe0473688050..66f785cdaca0 100644 --- a/gallery/psget/module/modulewithpseditionsupport.md +++ b/gallery/psget/module/modulewithpseditionsupport.md @@ -220,8 +220,8 @@ Mode LastWriteTime Length Name -a---- 7/5/2016 1:35 PM 0 MyCoreClrRM.dl ``` -## PowerShell Gallery users can find the list of modules supported on a specific PowerShell Edition using tags PSEdition_Desktop and PSEditon_Core. -Modules without PSEdition_Desktop and PSEditon_Core tags are considered to work fine on PowerShell Desktop editions. +## PowerShell Gallery users can find the list of modules supported on a specific PowerShell Edition using tags PSEdition_Desktop and PSEdition_Core. +Modules without PSEdition_Desktop and PSEdition_Core tags are considered to work fine on PowerShell Desktop editions. ```powershell diff --git a/gallery/psget/module/psget_find-dscresource.md b/gallery/psget/module/psget_find-dscresource.md index b4ba5e77e5c9..dcb78e64d43f 100644 --- a/gallery/psget/module/psget_find-dscresource.md +++ b/gallery/psget/module/psget_find-dscresource.md @@ -12,7 +12,7 @@ Finds DSC Resources in modules. ## Description -The Find-DscResource cmdlet finds [Desired State Configuration (DSC)](https://msdn.microsoft.com/en-us/PowerShell/dsc/overview) resources contained in modules that match the specified criteria from registered repositories. +The Find-DscResource cmdlet finds [Desired State Configuration (DSC)](https://msdn.microsoft.com/PowerShell/dsc/overview) resources contained in modules that match the specified criteria from registered repositories. For each module that this cmdlet finds, Find-DscResource returns a PSGetDscResourceInfo object that you can pipe to Install-Module to install the modules containing the resources that this cmdlet returns. DSC is a new management platform in Windows PowerShell that enables deploying and managing configuration data for software services and managing the environment in which these services run. diff --git a/gallery/psget/oneget/PackageManagement_cmdlets.md b/gallery/psget/oneget/PackageManagement_cmdlets.md index b745f52b3db1..d7669e932c2b 100644 --- a/gallery/psget/oneget/PackageManagement_cmdlets.md +++ b/gallery/psget/oneget/PackageManagement_cmdlets.md @@ -28,7 +28,7 @@ PS C:\> Install-Module PackageManagement –Force ``` In this case, you will have to re-enter PowerShell session to switch to the new version of PackageManagement. -## [Find-Package Cmdlet](https://technet.microsoft.com/en-us/library/dn890709.aspx) +## [Find-Package Cmdlet](https://technet.microsoft.com/library/dn890709.aspx) This cmdlet allows discovery of software packages in available package sources using loaded package providers. ```powershell # Find all available Windows PowerShell module packages from galleries registered @@ -48,7 +48,7 @@ Find-Package -Name jquery –Provider NuGet -Source http://www.nuget.org/api/v2/ Find-Package -Name jquery –Provider NuGet –RequiredVersion 2.1.4 -Source nuget.org ``` -## [Find-PackageProvider Cmdlet](https://technet.microsoft.com/en-us/library/mt676544.aspx) +## [Find-PackageProvider Cmdlet](https://technet.microsoft.com/library/mt676544.aspx) The Find-PackageProvider cmdlet finds matching PackageManagement providers that are available in package sources registered with PowerShellGet. These are package providers available for installation with the Install-PackageProvider cmdlet. By default, this includes modules available in the PowerShell Gallery with the 'PackageManagement' and 'Provider' Tags. Find-PackageProvider also finds matching PackageManagement providers that are available in the PackageManagement azure blob store where we use the PackageManagement boostrapper provider for finding and installing them. @@ -69,7 +69,7 @@ Install-PackageProvider -Source C:\sharedfolder\Providers\ -Name nuget -force ``` -## [Get-Package Cmdlet](https://technet.microsoft.com/en-us/library/dn890704.aspx) +## [Get-Package Cmdlet](https://technet.microsoft.com/library/dn890704.aspx) This cmdlet returns a list of all software packages that have been installed using PackageManagement. ```powershell # Get all the packages installed by Programs provider diff --git a/gallery/readme.md b/gallery/readme.md index 7967e56c48ae..98712101151f 100644 --- a/gallery/readme.md +++ b/gallery/readme.md @@ -61,7 +61,7 @@ Therefore, **PowerShellGet** requires one of the following operating systems: - Windows Server 2012 R2 - Windows Server 2008 R2 SP1 -**PowerShellGet** also requires .NET Framework 4.5 or above. You can install .NET Framework 4.5 or above from [here](https://msdn.microsoft.com/en-us/library/5a4x27ek.aspx). +**PowerShellGet** also requires .NET Framework 4.5 or above. You can install .NET Framework 4.5 or above from [here](https://msdn.microsoft.com/library/5a4x27ek.aspx). ## Got a question? Have feedback? diff --git a/jea/TOC.MD b/jea/TOC.MD deleted file mode 100644 index 2af6fcc53fec..000000000000 --- a/jea/TOC.MD +++ /dev/null @@ -1,11 +0,0 @@ - -# [Overview](overview.md) - -# Deploy JEA -## [Prerequisites](prerequisites.md) -## [Role Capabilities](role-capabilities.md) -## [Session Configurations](session-configurations.md) -## [Registering JEA](register-jea.md) -## [Using JEA](using-jea.md) -## [Security Considerations](security-considerations.md) -## [Audit and Report on JEA](audit-and-report.md) diff --git a/jea/TOC.yml b/jea/TOC.yml new file mode 100644 index 000000000000..58213d9786a5 --- /dev/null +++ b/jea/TOC.yml @@ -0,0 +1,18 @@ +- name: Overview + href: overview.md +- name: Deploy JEA + items: + - name: Prerequisites + href: prerequisites.md + - name: Role Capabilities + href: role-capabilities.md + - name: Session Configurations + href: session-configurations.md + - name: Registering JEA + href: register-jea.md + - name: Using JEA + href: using-jea.md + - name: Security Considerations + href: security-considerations.md + - name: Audit and Report on JEA + href: audit-and-report.md diff --git a/jea/audit-and-report.md b/jea/audit-and-report.md index 6e862da62911..b40f9e6d888c 100644 --- a/jea/audit-and-report.md +++ b/jea/audit-and-report.md @@ -17,7 +17,7 @@ This topic describes the various ways you can audit a JEA endpoint. ## Find registered JEA sessions on a machine -To check which JEA sessions are registered on a machine, use the [Get-PSSessionConfiguration](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/get-pssessionconfiguration) cmdlet. +To check which JEA sessions are registered on a machine, use the [Get-PSSessionConfiguration](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/get-pssessionconfiguration) cmdlet. ```powershell # Filter for sessions that are configured as 'RestrictedRemoteServer' to find JEA-like session configurations diff --git a/jea/docfx.json b/jea/docfx.json index 431b86b21360..653e62d53740 100644 --- a/jea/docfx.json +++ b/jea/docfx.json @@ -10,7 +10,7 @@ } ], "globalMetadata": { - "breadcrumb_path": "bread/toc.json", + "breadcrumb_path": "bread/toc.yml", "uhfHeaderId": "MSDocsHeader-Powershell", "ROBOTS": "INDEX, FOLLOW", "ms.prod": "powershell", diff --git a/jea/prerequisites.md b/jea/prerequisites.md index 213859ca92c0..5d79f3f89ed2 100644 --- a/jea/prerequisites.md +++ b/jea/prerequisites.md @@ -68,7 +68,7 @@ Windows 10 users should install the latest feature updates to obtain the current ## Enable PowerShell Remoting PowerShell Remoting provides the foundation on which JEA is built. -It is therefore necessary to ensure PowerShell Remoting is enabled and [properly secured](https://msdn.microsoft.com/en-us/powershell/scripting/setup/winrmsecurity) on your system before you can use JEA. +It is therefore necessary to ensure PowerShell Remoting is enabled and [properly secured](https://msdn.microsoft.com/powershell/scripting/setup/winrmsecurity) on your system before you can use JEA. PowerShell Remoting is enabled by default on Windows Server 2012, 2012 R2, and 2016. You can enable PowerShell Remoting by running the following command in an elevated PowerShell window. @@ -105,6 +105,6 @@ You can also enable system-wide PowerShell transcription through Group Policy. ## See also -- [Additional information about PowerShell Remoting and WinRM security](https://msdn.microsoft.com/en-us/powershell/scripting/setup/winrmsecurity) +- [Additional information about PowerShell Remoting and WinRM security](https://msdn.microsoft.com/powershell/scripting/setup/winrmsecurity) - [*PowerShell ♥ the Blue Team* blog post on security](https://blogs.msdn.microsoft.com/powershell/2015/06/09/powershell-the-blue-team/) diff --git a/jea/register-jea.md b/jea/register-jea.md index a3af555c3371..044b30f9b16b 100644 --- a/jea/register-jea.md +++ b/jea/register-jea.md @@ -15,7 +15,7 @@ This process applies the session configuration information to the system and mak ## Single machine configuration -For small environments, you can deploy JEA by registering the session configuration file using the [Register-PSSessionConfiguration](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/register-pssessionconfiguration) cmdlet. +For small environments, you can deploy JEA by registering the session configuration file using the [Register-PSSessionConfiguration](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/register-pssessionconfiguration) cmdlet. Before you begin, ensure that the following prerequisites have been met: - One or more roles has been created and placed in the 'RoleCapabilities' folder of a valid PowerShell module. @@ -24,7 +24,7 @@ Before you begin, ensure that the following prerequisites have been met: You will also need to select a name for your JEA endpoint. The name of the JEA endpoint will be required when users want to connect to the system using JEA. -You can use the [Get-PSSessionConfiguration](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/get-pssessionconfiguration) cmdlet to check the names of existing endpoints on the system. +You can use the [Get-PSSessionConfiguration](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/get-pssessionconfiguration) cmdlet to check the names of existing endpoints on the system. Endpoints that start with 'microsoft' are typically shipped with Windows. The 'microsoft.powershell' endpoint is the default endpoint used when connecting to a remote PowerShell endpoint. diff --git a/jea/role-capabilities.md b/jea/role-capabilities.md index c290f0501e76..43d8de9110f6 100644 --- a/jea/role-capabilities.md +++ b/jea/role-capabilities.md @@ -82,7 +82,7 @@ VisibleCmdlets = @{ Name = 'Restart-Service'; Parameters = @{ Name = 'Name'; Val ``` > [!NOTE] -> The [common PowerShell parameters](https://technet.microsoft.com/en-us/library/hh847884.aspx) are always allowed, even if you restrict the available parameters. +> The [common PowerShell parameters](https://technet.microsoft.com/library/hh847884.aspx) are always allowed, even if you restrict the available parameters. > You should not explicitly list them in the Parameters field. The table below describes the various ways you can customize a visible cmdlet or function. @@ -107,7 +107,7 @@ You cannot apply both a ValidatePattern and ValidateSet to the same cmdlet or fu If you do, the ValidatePattern will override the ValidateSet. -For more information about ValidatePattern, check out [this *Hey, Scripting Guy!* post](https://blogs.technet.microsoft.com/heyscriptingguy/2011/01/11/validate-powershell-parameters-before-running-the-script/) and the [PowerShell Regular Expressions](https://technet.microsoft.com/en-us/library/hh847880.aspx) reference content. +For more information about ValidatePattern, check out [this *Hey, Scripting Guy!* post](https://blogs.technet.microsoft.com/heyscriptingguy/2011/01/11/validate-powershell-parameters-before-running-the-script/) and the [PowerShell Regular Expressions](https://technet.microsoft.com/library/hh847880.aspx) reference content. ### Allowing external commands and PowerShell scripts @@ -124,7 +124,7 @@ Many executables allow you to both read the current state and then change it jus For example, consider the role of a file server admin who wants to check which network shares are hosted by the local machine. One way to check is to use `net share`. However, allowing net.exe is very dangerous becuase the admin could just as easily use the command to gain admin privileges with `net group Administrators unprivilegedjeauser /add`. -A better approach is to allow [Get-SmbShare](https://technet.microsoft.com/en-us/library/jj635704.aspx) which achieves the same result but has a much more limited scope. +A better approach is to allow [Get-SmbShare](https://technet.microsoft.com/library/jj635704.aspx) which achieves the same result but has a much more limited scope. When making external commands available to users in a JEA session, always specify the complete path to the executable to ensure a similarly named (and potentially malicous) program placed elsewhere on the system does not get executed instead. diff --git a/jea/security-considerations.md b/jea/security-considerations.md index f7ac8cdd6733..c022390772d1 100644 --- a/jea/security-considerations.md +++ b/jea/security-considerations.md @@ -92,7 +92,7 @@ New-PSSessionConfigurationFile -Path '.\jea.pssc' -SessionType RestrictedRemoteS Register-PSSessionConfiguration -Path '.\jea.pssc' -Name 'MyJEAEndpoint' ``` -You can audit user permissions with the [Get-PSSessionConfiguration](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/get-pssessionconfiguration) cmdlet. +You can audit user permissions with the [Get-PSSessionConfiguration](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/get-pssessionconfiguration) cmdlet. ```powershell PS C:\> Get-PSSessionConfiguration -Name 'MyJEAEndpoint' | Select-Object Permission diff --git a/jea/session-configurations.md b/jea/session-configurations.md index 8f584190e47a..7f58c99564ff 100644 --- a/jea/session-configurations.md +++ b/jea/session-configurations.md @@ -34,7 +34,7 @@ New-PSSessionConfigurationFile -SessionType RestrictedRemoteServer -Path .\MyJEA You can open the session configuration file in any text editor. The `-SessionType RestrictedRemoteServer` field indicates that the session configuration will be used by JEA for secure management. -Sessions configured this way will operate in [NoLanguage mode](https://technet.microsoft.com/en-us/library/dn433292.aspx) and only have the following 8 default commands (and aliases) available: +Sessions configured this way will operate in [NoLanguage mode](https://technet.microsoft.com/library/dn433292.aspx) and only have the following 8 default commands (and aliases) available: - Clear-Host (cls, clear) - Exit-PSSession (exsn, exit) @@ -124,7 +124,7 @@ Standard users should have no access to the folder, and a limited set of securit ### User drive If your connecting users will need to copy files to/from the JEA endpoint in order to run a command, you can enable the user drive in the session configuration file. -The user drive is a [PSDrive](https://msdn.microsoft.com/en-us/powershell/scripting/getting-started/cookbooks/managing-windows-powershell-drives) that is mapped to a unique folder for each connecting user. +The user drive is a [PSDrive](https://msdn.microsoft.com/powershell/scripting/getting-started/cookbooks/managing-windows-powershell-drives) that is mapped to a unique folder for each connecting user. This folder serves as a space for them to copy files to/from the system, without giving them access to the full file system or exposing the FileSystem provider. The user drive contents are persistent across sessions to accommodate situations where network connectivity may be interrupted. diff --git a/jea/using-jea.md b/jea/using-jea.md index 449a6b62c72e..4721a16086c5 100644 --- a/jea/using-jea.md +++ b/jea/using-jea.md @@ -22,7 +22,7 @@ To use JEA interactively, you will need: - The name of the JEA endpoint registered on that computer - Credentials for the computer that have access to the JEA endpoint -With that information in hand, you can start a JEA session using [New-PSSession](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/New-PSSession) or [Enter-PSSession](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/enter-pssession). +With that information in hand, you can start a JEA session using [New-PSSession](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/New-PSSession) or [Enter-PSSession](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/enter-pssession). ```powershell $nonAdminCred = Get-Credential @@ -103,7 +103,7 @@ Import-PSSession -Session $jeasession -Prefix 'JEA' -CommandName $filteredComman ``` You can also persist the proxied cmdlets from implicit remoting using [Export-PSSession](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.utility/Export-PSSession). -For more information about implicit remoting, check out the help documentation for [Import-PSSession](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.utility/import-pssession) and [Import-Module](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/import-module). +For more information about implicit remoting, check out the help documentation for [Import-PSSession](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.utility/import-pssession) and [Import-Module](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/import-module). ## Using JEA programatically diff --git a/reference/3.0/Microsoft.PowerShell.Utility/New-Alias.md b/reference/3.0/Microsoft.PowerShell.Utility/New-Alias.md index 80344bd879db..29c311560aef 100644 --- a/reference/3.0/Microsoft.PowerShell.Utility/New-Alias.md +++ b/reference/3.0/Microsoft.PowerShell.Utility/New-Alias.md @@ -91,26 +91,27 @@ Accept wildcard characters: False ``` ### -Option -Sets the value of the Options property of the alias. - +Specifies the value of the **Options** property of the alias. Valid values are: -- None: Sets no options. ("None" is the default.) -- ReadOnly: Can be deleted. Cannot be not changed, except by using the Force parameter. -- Constant: Cannot be deleted or changed. -- Private: The alias is available only in the current scope. -- AllScope: The alias is copied to any new scopes that are created. +- None: The alias has no constraints (default value) +- ReadOnly: The alias can be deleted but cannot be changed except by using the **Force** parameter +- Constant: The alias cannot be deleted or changed +- Private: The alias is available only in the current scope +- AllScope: The alias is copied to any new scopes that are created +- Unspecified: The option is not specified -To see the Options property of all aliases in the session, type "get-alias | format-table -property name, options -autosize". +To see the **Options** property of all aliases in the session, type `Get-Alias | Format-Table -Property Name, Options -AutoSize`. ```yaml Type: ScopedItemOptions Parameter Sets: (All) -Aliases: +Aliases: +Accepted values: None, ReadOnly, Constant, Private, AllScope, Unspecified Required: False Position: Named -Default value: "None" +Default value: [System.Management.Automation.ScopedItemOptions]::None Accept pipeline input: False Accept wildcard characters: False ``` diff --git a/reference/4.0/Microsoft.PowerShell.Utility/New-Alias.md b/reference/4.0/Microsoft.PowerShell.Utility/New-Alias.md index 650f386771af..bcbcd7f35a49 100644 --- a/reference/4.0/Microsoft.PowerShell.Utility/New-Alias.md +++ b/reference/4.0/Microsoft.PowerShell.Utility/New-Alias.md @@ -96,26 +96,27 @@ Accept wildcard characters: False ``` ### -Option -Sets the value of the Options property of the alias. - +Specifies the value of the **Options** property of the alias. Valid values are: -- None: Sets no options. ("None" is the default.) -- ReadOnly: Can be deleted. Cannot be not changed, except by using the Force parameter. -- Constant: Cannot be deleted or changed. -- Private: The alias is available only in the current scope. -- AllScope: The alias is copied to any new scopes that are created. +- None: The alias has no constraints (default value) +- ReadOnly: The alias can be deleted but cannot be changed except by using the **Force** parameter +- Constant: The alias cannot be deleted or changed +- Private: The alias is available only in the current scope +- AllScope: The alias is copied to any new scopes that are created +- Unspecified: The option is not specified -To see the Options property of all aliases in the session, type "get-alias | format-table -property name, options -autosize". +To see the **Options** property of all aliases in the session, type `Get-Alias | Format-Table -Property Name, Options -AutoSize`. ```yaml Type: ScopedItemOptions Parameter Sets: (All) -Aliases: +Aliases: +Accepted values: None, ReadOnly, Constant, Private, AllScope, Unspecified Required: False Position: Named -Default value: "None" +Default value: [System.Management.Automation.ScopedItemOptions]::None Accept pipeline input: False Accept wildcard characters: False ``` diff --git a/reference/5.0/Microsoft.PowerShell.Management/Test-Connection.md b/reference/5.0/Microsoft.PowerShell.Management/Test-Connection.md index 07a5fc5c2513..fae7289283e2 100644 --- a/reference/5.0/Microsoft.PowerShell.Management/Test-Connection.md +++ b/reference/5.0/Microsoft.PowerShell.Management/Test-Connection.md @@ -238,7 +238,7 @@ Aliases: Required: False Position: Named -Default value: None +Default value: 4 Accept pipeline input: False Accept wildcard characters: False ``` diff --git a/reference/5.0/Microsoft.PowerShell.Utility/Get-Runspace.md b/reference/5.0/Microsoft.PowerShell.Utility/Get-Runspace.md index ab90a6d68f3a..55cc83cc80b7 100644 --- a/reference/5.0/Microsoft.PowerShell.Utility/Get-Runspace.md +++ b/reference/5.0/Microsoft.PowerShell.Utility/Get-Runspace.md @@ -99,6 +99,9 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ## OUTPUTS +### System.Management.Automation.Runspaces.Runspace +You can pipe the results of a `Get-Runspace` command to `Debug-Runspace`. + ## NOTES ## RELATED LINKS diff --git a/reference/5.0/Microsoft.PowerShell.Utility/New-Alias.md b/reference/5.0/Microsoft.PowerShell.Utility/New-Alias.md index c96916bc965e..3d93812e7e0c 100644 --- a/reference/5.0/Microsoft.PowerShell.Utility/New-Alias.md +++ b/reference/5.0/Microsoft.PowerShell.Utility/New-Alias.md @@ -111,33 +111,27 @@ Accept wildcard characters: False ``` ### -Option -Specifies that the cmdlet sets the value of the **Options** property of the alias. -The acceptable values for this parameter are: +Specifies the value of the **Options** property of the alias. +Valid values are: + +- None: The alias has no constraints (default value) +- ReadOnly: The alias can be deleted but cannot be changed except by using the **Force** parameter +- Constant: The alias cannot be deleted or changed +- Private: The alias is available only in the current scope +- AllScope: The alias is copied to any new scopes that are created +- Unspecified: The option is not specified -- None. -Sets no options. -(None is the default.) -- ReadOnly. -Can be deleted. -Cannot be not changed, except by using the *Force* parameter. -- Constant. -Cannot be deleted or changed. -- Private. -The alias is available only in the current scope. -- AllScope. -The alias is copied to any new scopes that are created. - -To see the Options property of all aliases in the session, type `Get-Alias | Format-Table -Property name, options -autosize`. +To see the **Options** property of all aliases in the session, type `Get-Alias | Format-Table -Property Name, Options -AutoSize`. ```yaml Type: ScopedItemOptions Parameter Sets: (All) -Aliases: +Aliases: Accepted values: None, ReadOnly, Constant, Private, AllScope, Unspecified Required: False Position: Named -Default value: None +Default value: [System.Management.Automation.ScopedItemOptions]::None Accept pipeline input: False Accept wildcard characters: False ``` diff --git a/reference/5.1/Microsoft.PowerShell.Core/Out-Null.md b/reference/5.1/Microsoft.PowerShell.Core/Out-Null.md index 9eddffae6e78..43d17ed48e63 100644 --- a/reference/5.1/Microsoft.PowerShell.Core/Out-Null.md +++ b/reference/5.1/Microsoft.PowerShell.Core/Out-Null.md @@ -21,7 +21,9 @@ Out-Null [-InputObject ] [] ## DESCRIPTION The **Out-Null** cmdlet sends its output to NULL, in effect, removing it from the pipeline and -preventing the output to be displayed at the screen. +preventing the output to be displayed at the screen. Ihis only affects the standard output stream. +Other output streams, like the Error stream are not affected. Exceptions will be displayed. This +makes it easier to test your command for any errors. ## EXAMPLES diff --git a/reference/5.1/Microsoft.PowerShell.Management/Get-WmiObject.md b/reference/5.1/Microsoft.PowerShell.Management/Get-WmiObject.md index e4db58e8e935..644c54d425cb 100644 --- a/reference/5.1/Microsoft.PowerShell.Management/Get-WmiObject.md +++ b/reference/5.1/Microsoft.PowerShell.Management/Get-WmiObject.md @@ -54,7 +54,7 @@ Get-WmiObject [-Amended] [-AsJob] [-Impersonation ] [-Authen ``` ## DESCRIPTION -Starting in Windows PowerShell 3.0, this cmdlet has been superseded by Get-CimInstancehttp://technet.microsoft.com/library/jj590758(v=wps.630).aspx. +Starting in Windows PowerShell 3.0, this cmdlet has been superseded by [Get-CimInstance](http://technet.microsoft.com/library/jj590758(v=wps.630).aspx). The **Get-WmiObject** cmdlet gets instances of Windows Management Instrumentation (WMI) classes or information about the available WMI classes. To specify a remote computer, use the *ComputerName* parameter. diff --git a/reference/5.1/Microsoft.PowerShell.Management/Register-WmiEvent.md b/reference/5.1/Microsoft.PowerShell.Management/Register-WmiEvent.md index 5da0e9254df1..18c84ea98caf 100644 --- a/reference/5.1/Microsoft.PowerShell.Management/Register-WmiEvent.md +++ b/reference/5.1/Microsoft.PowerShell.Management/Register-WmiEvent.md @@ -58,7 +58,7 @@ This class raises an event whenever a process starts. ### Example 2: Subscribe to creation events for a process ``` -PS C:\> Register-WmiEvent -Auery "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'" -SourceIdentifier "WMIProcess" -MessageData "Test 01" -TimeOut 500 +PS C:\> Register-WmiEvent -Query "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'" -SourceIdentifier "WMIProcess" -MessageData "Test 01" -TimeOut 500 ``` This command uses a query to subscribe to Win32_process instance creation events. diff --git a/reference/5.1/Microsoft.PowerShell.Management/Test-Connection.md b/reference/5.1/Microsoft.PowerShell.Management/Test-Connection.md index 1535a2d06f93..1b5bb763a4d2 100644 --- a/reference/5.1/Microsoft.PowerShell.Management/Test-Connection.md +++ b/reference/5.1/Microsoft.PowerShell.Management/Test-Connection.md @@ -200,7 +200,7 @@ Aliases: Required: False Position: Named -Default value: None +Default value: 4 Accept pipeline input: False Accept wildcard characters: False ``` diff --git a/reference/5.1/Microsoft.PowerShell.Utility/Get-Runspace.md b/reference/5.1/Microsoft.PowerShell.Utility/Get-Runspace.md index 7e0602696d6d..d85cc0639db3 100644 --- a/reference/5.1/Microsoft.PowerShell.Utility/Get-Runspace.md +++ b/reference/5.1/Microsoft.PowerShell.Utility/Get-Runspace.md @@ -141,8 +141,8 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ## OUTPUTS -### System.Management.Automation.Runspaces.RunspaceBase -You can pipe the results of a **Get-Runspace** command to **Debug-Runspace**. +### System.Management.Automation.Runspaces.Runspace +You can pipe the results of a `Get-Runspace` command to `Debug-Runspace`. ## NOTES diff --git a/reference/5.1/Microsoft.PowerShell.Utility/New-Alias.md b/reference/5.1/Microsoft.PowerShell.Utility/New-Alias.md index c19ea8f02d86..3d93812e7e0c 100644 --- a/reference/5.1/Microsoft.PowerShell.Utility/New-Alias.md +++ b/reference/5.1/Microsoft.PowerShell.Utility/New-Alias.md @@ -111,33 +111,27 @@ Accept wildcard characters: False ``` ### -Option -Specifies that the cmdlet sets the value of the **Options** property of the alias. -The acceptable values for this parameter are: +Specifies the value of the **Options** property of the alias. +Valid values are: + +- None: The alias has no constraints (default value) +- ReadOnly: The alias can be deleted but cannot be changed except by using the **Force** parameter +- Constant: The alias cannot be deleted or changed +- Private: The alias is available only in the current scope +- AllScope: The alias is copied to any new scopes that are created +- Unspecified: The option is not specified -- None. -Sets no options. -(None is the default.) -- ReadOnly. -Can be deleted. -Cannot be not changed, except by using the *Force* parameter. -- Constant. -Cannot be deleted or changed. -- Private. -The alias is available only in the current scope. -- AllScope. -The alias is copied to any new scopes that are created. - -To see the **Options****** property of all aliases in the session, type `Get-Alias | Format-Table -Property name, options -autosize`. +To see the **Options** property of all aliases in the session, type `Get-Alias | Format-Table -Property Name, Options -AutoSize`. ```yaml Type: ScopedItemOptions Parameter Sets: (All) -Aliases: +Aliases: Accepted values: None, ReadOnly, Constant, Private, AllScope, Unspecified Required: False Position: Named -Default value: None +Default value: [System.Management.Automation.ScopedItemOptions]::None Accept pipeline input: False Accept wildcard characters: False ``` diff --git a/reference/6/Microsoft.PowerShell.Management/Debug-Process.md b/reference/6/Microsoft.PowerShell.Management/Debug-Process.md index 72bfa665b4a9..4fed7e9c75b1 100644 --- a/reference/6/Microsoft.PowerShell.Management/Debug-Process.md +++ b/reference/6/Microsoft.PowerShell.Management/Debug-Process.md @@ -90,17 +90,7 @@ Then, it uses a pipeline operator (|) to send the process ID to the **Debug-Proc For more information about the $PID automatic variable, see about_Automatic_Variables. -### Example 7: Attach a debugger to the specified process on multiple computers -``` -PS C:\> Get-Process -ComputerName "Server01", "Server02" -Name "MyApp" | Debug-Process -``` - -This command attaches a debugger to the MyApp processes on the Server01 and Server02 computers. - -The command uses the **Get-Process** cmdlet to get the MyApp processes on the Server01 and Server02 computers. -It uses a pipeline operator to send the processes to the Debug-Process cmdlet, which attaches the debuggers. - -### Example 8: Attach a debugger to a process that uses the InputObject parameter +### Example 7: Attach a debugger to a process that uses the InputObject parameter ``` PS C:\> $P = Get-Process "Windows PowerShell" PS C:\> Debug-Process -InputObject $P diff --git a/reference/6/Microsoft.PowerShell.Management/Stop-Computer.md b/reference/6/Microsoft.PowerShell.Management/Stop-Computer.md index a828ac7c7255..0fd61ff51301 100644 --- a/reference/6/Microsoft.PowerShell.Management/Stop-Computer.md +++ b/reference/6/Microsoft.PowerShell.Management/Stop-Computer.md @@ -67,7 +67,7 @@ Because *AsJob* creates the job on the local computer and automatically returns ### Example 4: Shut down a remote computer ``` -PS C:\> Stop-Computer -CompupterName "Server01" -Impersonation anonymous -Authentication PacketIntegrity +PS C:\> Stop-Computer -ComputerName "Server01" -Impersonation Anonymous -Authentication PacketIntegrity ``` This command stops the Server01 remote computer. diff --git a/reference/6/Microsoft.PowerShell.Management/Test-Connection.md b/reference/6/Microsoft.PowerShell.Management/Test-Connection.md index 24030991762f..8acd339e20a9 100644 --- a/reference/6/Microsoft.PowerShell.Management/Test-Connection.md +++ b/reference/6/Microsoft.PowerShell.Management/Test-Connection.md @@ -201,7 +201,7 @@ Aliases: Required: False Position: Named -Default value: None +Default value: 4 Accept pipeline input: False Accept wildcard characters: False ``` diff --git a/reference/6/Microsoft.PowerShell.Utility/Get-Runspace.md b/reference/6/Microsoft.PowerShell.Utility/Get-Runspace.md index af62074b689d..0caaae55a725 100644 --- a/reference/6/Microsoft.PowerShell.Utility/Get-Runspace.md +++ b/reference/6/Microsoft.PowerShell.Utility/Get-Runspace.md @@ -96,6 +96,9 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable ## OUTPUTS +### System.Management.Automation.Runspaces.Runspace +You can pipe the results of a `Get-Runspace` command to `Debug-Runspace`. + ## NOTES ## RELATED LINKS diff --git a/reference/6/Microsoft.PowerShell.Utility/Invoke-RestMethod.md b/reference/6/Microsoft.PowerShell.Utility/Invoke-RestMethod.md index 709e18b58428..5c2087d17fd5 100644 --- a/reference/6/Microsoft.PowerShell.Utility/Invoke-RestMethod.md +++ b/reference/6/Microsoft.PowerShell.Utility/Invoke-RestMethod.md @@ -115,7 +115,7 @@ $Body = @{ earliest_time = "-2d@d" latest_time = "-1d@d" } -Invoke-RestMethod -Method 'Post' -Uri $url -Credential $Cred -Body $body -SkipCertificateCheck -OutFile output.csv +Invoke-RestMethod -Method 'Post' -Uri $url -Credential $Cred -Body $body -OutFile output.csv ``` In the above example, a user runs `Invoke-RestMethod` to perform a POST request on an intranet website in the user's organization. @@ -874,4 +874,4 @@ Some features may not be available on all platforms. [ConvertFrom-Json](ConvertFrom-Json.md) -[Invoke-WebRequest](Invoke-WebRequest.md) \ No newline at end of file +[Invoke-WebRequest](Invoke-WebRequest.md) diff --git a/reference/6/Microsoft.PowerShell.Utility/New-Alias.md b/reference/6/Microsoft.PowerShell.Utility/New-Alias.md index cd08bd0cceb4..9709a59d774a 100644 --- a/reference/6/Microsoft.PowerShell.Utility/New-Alias.md +++ b/reference/6/Microsoft.PowerShell.Utility/New-Alias.md @@ -96,23 +96,17 @@ Accept wildcard characters: False ``` ### -Option -Specifies that the cmdlet sets the value of the **Options** property of the alias. -The acceptable values for this parameter are: +Specifies the value of the **Options** property of the alias. +Valid values are: + +- None: The alias has no constraints (default value) +- ReadOnly: The alias can be deleted but cannot be changed except by using the **Force** parameter +- Constant: The alias cannot be deleted or changed +- Private: The alias is available only in the current scope +- AllScope: The alias is copied to any new scopes that are created +- Unspecified: The option is not specified -- None. -Sets no options. -(None is the default.) -- ReadOnly. -Can be deleted. -Cannot be not changed, except by using the *Force* parameter. -- Constant. -Cannot be deleted or changed. -- Private. -The alias is available only in the current scope. -- AllScope. -The alias is copied to any new scopes that are created. - -To see the **Options****** property of all aliases in the session, type `Get-Alias | Format-Table -Property name, options -autosize`. +To see the **Options** property of all aliases in the session, type `Get-Alias | Format-Table -Property Name, Options -AutoSize`. ```yaml Type: ScopedItemOptions @@ -122,7 +116,7 @@ Accepted values: None, ReadOnly, Constant, Private, AllScope, Unspecified Required: False Position: Named -Default value: None +Default value: [System.Management.Automation.ScopedItemOptions]::None Accept pipeline input: False Accept wildcard characters: False ``` diff --git a/reference/6/PackageManagement/Install-PackageProvider.md b/reference/6/PackageManagement/Install-PackageProvider.md index cfbdf744c59e..f7cb0dae1ba2 100644 --- a/reference/6/PackageManagement/Install-PackageProvider.md +++ b/reference/6/PackageManagement/Install-PackageProvider.md @@ -33,7 +33,7 @@ Install-PackageProvider [-Scope ] [-InputObject] [- ## DESCRIPTION The **Install-PackageProvider** cmdlet installs matching Package Management providers that are available in package sources registered with **PowerShellGet**. By default, this includes modules available in the Windows PowerShell Gallery with the **PackageManagement**. -The ** PowerShellGet** Package Management provider is used for finding providers in these repositories. +The **PowerShellGet** Package Management provider is used for finding providers in these repositories. This cmdlet also installs matching Package Management providers that are available using the Package Management bootstrapping application. diff --git a/reference/docfx.json b/reference/docfx.json index ffb21c5245ab..5b366ceaf4b9 100644 --- a/reference/docfx.json +++ b/reference/docfx.json @@ -49,7 +49,7 @@ "overwrite": [], "externalReference": [], "globalMetadata": { - "breadcrumb_path": "/powershell/bread-pscore/toc.json", + "breadcrumb_path": "/powershell/bread-pscore/toc.yml", "uhfHeaderId": "MSDocsHeader-Powershell", "apiPlatform": "powershell", "ms.devlang": "powershell", diff --git a/reference/docs-conceptual/core-powershell/Running-Remote-Commands.md b/reference/docs-conceptual/core-powershell/Running-Remote-Commands.md index 121d608858a2..57ad3e1cf086 100644 --- a/reference/docs-conceptual/core-powershell/Running-Remote-Commands.md +++ b/reference/docs-conceptual/core-powershell/Running-Remote-Commands.md @@ -45,10 +45,10 @@ Get-Command | where { $_.parameters.keys -contains "ComputerName" -and $_.parame ## Windows PowerShell Remoting Windows PowerShell remoting, which uses the WS-Management protocol, lets you run any Windows PowerShell command on one or many remote computers. It lets you establish persistent connections, start 1:1 interactive sessions, and run scripts on multiple computers. -To use Windows PowerShell remoting, the remote computer must be configured for remote management. For more information, including instructions, see [About Remote Requirements](https://technet.microsoft.com/en-us/library/dd315349.aspx). +To use Windows PowerShell remoting, the remote computer must be configured for remote management. For more information, including instructions, see [About Remote Requirements](https://technet.microsoft.com/library/dd315349.aspx). -After you have configured Windows PowerShell remoting, many remoting strategies are available to you. The remainder of this document lists just a few of them. For more information, see [About Remote](https://technet.microsoft.com/en-us/library/dd347744.aspx) and -[About Remote FAQ](https://technet.microsoft.com/en-us/library/dd347744.aspx). +After you have configured Windows PowerShell remoting, many remoting strategies are available to you. The remainder of this document lists just a few of them. For more information, see [About Remote](https://technet.microsoft.com/library/dd347744.aspx) and +[About Remote FAQ](https://technet.microsoft.com/library/dd347744.aspx). ### Start an Interactive Session To start an interactive session with a single remote computer, use the [Enter-PSSession](https://go.microsoft.com/fwlink/?LinkId=821477) cmdlet. diff --git a/reference/docs-conceptual/core-powershell/ise/How-to-Debug-Scripts-in-Windows-PowerShell-ISE.md b/reference/docs-conceptual/core-powershell/ise/How-to-Debug-Scripts-in-Windows-PowerShell-ISE.md index b6f21e2b1963..546b2414246b 100644 --- a/reference/docs-conceptual/core-powershell/ise/How-to-Debug-Scripts-in-Windows-PowerShell-ISE.md +++ b/reference/docs-conceptual/core-powershell/ise/How-to-Debug-Scripts-in-Windows-PowerShell-ISE.md @@ -38,7 +38,7 @@ Displays all breakpoints in the current Windows PowerShell session. On the **Debug** menu, click **List Breakpoints**. The following script is an example of how you can list all breakpoints from the Console Pane by using the [Get-PSBreakpoint](https://technet.microsoft.com/library/0bf48936-00ab-411c-b5e0-9b10a812a3c6) cmdlet. ``` PowerShell -# This command lists all breakpoints in the current session. +# This command lists all breakpoints in the current session. Get-PSBreakpoint ``` @@ -83,7 +83,7 @@ Disable-PSBreakpoint -Id 0 Disabling a breakpoint does not remove it; it turns it off until it is enabled. To disable all breakpoints in the current session, on the **Debug** menu, click **Disable all Breakpoints**. The following script is an example of how you can disable all breakpoints from the Console Pane by using the [Disable-PSBreakpoint](https://technet.microsoft.com/library/d4974e9b-0aaa-4e20-b87f-f599a413e4e8) cmdlet. ``` PowerShell -# This command disables all breakpoints in the current session. +# This command disables all breakpoints in the current session. # You can abbreviate this command as: "gbp | dbp". Get-PSBreakpoint | Disable-PSBreakpoint ``` @@ -100,13 +100,13 @@ Enable-PSBreakpoint -Id 0, 1, 5 To enable all breakpoints defined in the current session, on the **Debug** menu, click **Enable all Breakpoints**. The following script is an example of how you can enable all breakpoints from the Console Pane by using the [Enable-PSBreakpoint](https://technet.microsoft.com/library/739e1091-3b3f-405f-a428-bec7543e5df0) cmdlet. ``` PowerShell -# This command enables all breakpoints in the current session. +# This command enables all breakpoints in the current session. # You can abbreviate the command by using their aliases: "gbp | ebp". Get-PSBreakpoint | Enable-PSBreakpoint ``` ## How to manage a debugging session -Before you start debugging, you must set one or more breakpoints. You cannot set a breakpoint unless the script that you want to debug is saved. For directions on of how to set a breakpoint, see [How to manage breakpoints](#how-to-manage-breakpoints) or [Set-PSBreakpoint](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/set-psbreakpoint). After you start debugging, you cannot edit a script until you stop debugging. A script that has one or more breakpoints set is automatically saved before it is run. +Before you start debugging, you must set one or more breakpoints. You cannot set a breakpoint unless the script that you want to debug is saved. For directions on of how to set a breakpoint, see [How to manage breakpoints](#how-to-manage-breakpoints) or [Set-PSBreakpoint](https://docs.microsoft.com/powershell/module/microsoft.powershell.utility/set-psbreakpoint). After you start debugging, you cannot edit a script until you stop debugging. A script that has one or more breakpoints set is automatically saved before it is run. ### To start debugging Press **F5** or, on the toolbar, click the **Run Script** icon, or on the **Debug** menu click **Run/Continue**. The script runs until it encounters the first breakpoint. It pauses operation there and highlights the line on which it paused. @@ -175,5 +175,4 @@ C:\ps-test\MyScript.ps1 ``` ## See Also -- [Using the Windows PowerShell ISE](Using-the-Windows-PowerShell-ISE.md) - +- [Exploring the Windows PowerShell ISE](../../getting-started/fundamental/exploring-the-windows-powershell-ise.md) diff --git a/reference/docs-conceptual/core-powershell/ise/How-to-Write-and-Run-Scripts-in-the-Windows-PowerShell-ISE.md b/reference/docs-conceptual/core-powershell/ise/How-to-Write-and-Run-Scripts-in-the-Windows-PowerShell-ISE.md index 1a01a1330e3d..76bdd90afc6d 100644 --- a/reference/docs-conceptual/core-powershell/ise/How-to-Write-and-Run-Scripts-in-the-Windows-PowerShell-ISE.md +++ b/reference/docs-conceptual/core-powershell/ise/How-to-Write-and-Run-Scripts-in-the-Windows-PowerShell-ISE.md @@ -12,7 +12,7 @@ This topic describes how to create, edit, run, and save scripts in the Script Pa You can open and edit Windows PowerShell files in the Script Pane. Specific file types of interest in Windows PowerShell are script files (.ps1), script data files (.psd1), and script module files (.psm1). These file types are syntax colored in the Script Pane editor. Other common file types you may open in the Script Pane are configuration files (.ps1xml), XML files, and text files. > [!NOTE] -> The Windows PowerShell execution policy determines whether you can run scripts and load Windows PowerShell profiles and configuration files. The default execution policy, Restricted, prevents all scripts from running, and prevents loading profiles. To change the execution policy to allow profiles to load and be used, see [Set-ExecutionPolicy[PSITPro5_Security]](https://technet.microsoft.com/en-us/library/5690a0e1-495b-4e63-8280-65ead7bf01ab) and [about_Signing [v4]](https://technet.microsoft.com/en-us/library/fcbdd3b9-0b9f-4734-b5c7-e0dcc304fa1d). +> The Windows PowerShell execution policy determines whether you can run scripts and load Windows PowerShell profiles and configuration files. The default execution policy, Restricted, prevents all scripts from running, and prevents loading profiles. To change the execution policy to allow profiles to load and be used, see [Set-ExecutionPolicy[PSITPro5_Security]](https://technet.microsoft.com/library/5690a0e1-495b-4e63-8280-65ead7bf01ab) and [about_Signing [v4]](https://technet.microsoft.com/library/fcbdd3b9-0b9f-4734-b5c7-e0dcc304fa1d). ### To create a new script file On the toolbar, click **New** , or on the **File** menu, click **New**. The created file appears in a new file tab under the current PowerShell tab. Remember that the PowerShell tabs are only visible when there are more than one. By default a file of type script (.ps1) is created, but it can be saved with a new name and extension. Multiple script files can be created in the same PowerShell tab. @@ -135,5 +135,4 @@ Windows PowerShell ISE supports the following encoding options: ASCII, BigEndian Windows PowerShell ISE does not change the encoding of scripts that were created by in other editors, even when you use the Save or Save As commands in Windows PowerShell ISE. ## See Also -- [Using the Windows PowerShell ISE](Using-the-Windows-PowerShell-ISE.md) - +- [Exploring the Windows PowerShell ISE](../../getting-started/fundamental/exploring-the-windows-powershell-ise.md) diff --git a/reference/docs-conceptual/core-powershell/ise/The-ISESnippetObject.md b/reference/docs-conceptual/core-powershell/ise/The-ISESnippetObject.md index 61ab44b6391a..98457bbd2e56 100644 --- a/reference/docs-conceptual/core-powershell/ise/The-ISESnippetObject.md +++ b/reference/docs-conceptual/core-powershell/ise/The-ISESnippetObject.md @@ -6,12 +6,12 @@ ms.assetid: 98bc8113-c3cd-4201-bdb9-9d9bdb7e266c --- # The ISESnippetObject - An **ISESnippet** object is an instance of the Microsoft.PowerShell.Host.ISE.ISESnippet class. The members of the **$psISE.CurrentPowerShellTab.Snippets** collection are all examples of **ISESnippet** objects. The easiest way to create a snippet is to use the [New-IseSnippet[PSITPro5_ISE]](https://technet.microsoft.com/en-us/library/0a6339a3-2683-4a8e-8929-90ad9a95c3e0) cmdlet. + An **ISESnippet** object is an instance of the Microsoft.PowerShell.Host.ISE.ISESnippet class. The members of the **$psISE.CurrentPowerShellTab.Snippets** collection are all examples of **ISESnippet** objects. The easiest way to create a snippet is to use the [New-IseSnippet[PSITPro5_ISE]](https://technet.microsoft.com/library/0a6339a3-2683-4a8e-8929-90ad9a95c3e0) cmdlet. ## Properties ### Author - Supported in Windows PowerShell ISE 3.0 and later, and not present in earlier versions. + Supported in Windows PowerShell ISE 3.0 and later, and not present in earlier versions. The read-only property that gets the name of the author of the snippet. @@ -22,7 +22,7 @@ $psISE.CurrentPowerShellTab.Snippets.Item(0).Author ``` ### CodeFragment - Supported in Windows PowerShell ISE 3.0 and later, and not present in earlier versions. + Supported in Windows PowerShell ISE 3.0 and later, and not present in earlier versions. The read-only property that gets the code fragment to be inserted into the editor. @@ -33,7 +33,7 @@ $psISE.CurrentPowerShellTab.Snippets.Item(0).CodeFragment ``` ### Shortcut - Supported in Windows PowerShell ISE 3.0 and later, and not present in earlier versions. + Supported in Windows PowerShell ISE 3.0 and later, and not present in earlier versions. The read-only property that gets the Windows keyboard shortcut for the menu item. @@ -45,9 +45,6 @@ $psISE.CurrentPowerShellTab.AddOnsMenu.Submenus[0].Shortcut ``` ## See Also -- [The ISESnippetCollection Object](The-ISESnippetCollection-Object.md) -- [The Windows PowerShell ISE Scripting Object Model](The-Windows-PowerShell-ISE-Scripting-Object-Model.md) -- [Windows PowerShell ISE Object Model Reference](Windows-PowerShell-ISE-Object-Model-Reference.md) +- [The ISESnippetCollection Object](The-ISESnippetCollection-Object.md) +- [Purpose of the Windows PowerShell ISE Scripting Object Model](purpose-of-the-windows-powershell-ise-scripting-object-model.md) - [The ISE Object Model Hierarchy](The-ISE-Object-Model-Hierarchy.md) - - diff --git a/reference/docs-conceptual/core-powershell/web-access/authorization-rules-and-security-features-of-windows-powershell-web-access.md b/reference/docs-conceptual/core-powershell/web-access/authorization-rules-and-security-features-of-windows-powershell-web-access.md index 1b3b83df805e..bdd08dfd4872 100644 --- a/reference/docs-conceptual/core-powershell/web-access/authorization-rules-and-security-features-of-windows-powershell-web-access.md +++ b/reference/docs-conceptual/core-powershell/web-access/authorization-rules-and-security-features-of-windows-powershell-web-access.md @@ -47,7 +47,7 @@ run the [Get-Credential](https://msdn.microsoft.com/powershell/reference/5.1/mic Windows PowerShell Web Access authentication rules are whitelist rules. Each rule is a definition of an allowed connection between -users, target computers, and particular Windows PowerShell [session configurations](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/about/about_session_configurations) +users, target computers, and particular Windows PowerShell [session configurations](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/about/about_session_configurations) (also referred to as endpoints or _runspaces_) on specified target computers. For an explanation on **runspaces** see [Beginning Use of PowerShell Runspaces](https://blogs.technet.microsoft.com/heyscriptingguy/2015/11/26/beginning-use-of-powershell-runspaces-part-1/) @@ -173,7 +173,7 @@ This layer offers the same security mechanisms that would evaluate connection attempts if users tried to create a remote Windows PowerShell session to a target computer from within Windows PowerShell -by running the [Enter-PSSession](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/Enter-PSSession) or [New-PSSession](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/new-pssession) cmdlets. +by running the [Enter-PSSession](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/Enter-PSSession) or [New-PSSession](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/new-pssession) cmdlets. By default, Windows PowerShell Web Access uses the primary user name and password diff --git a/reference/docs-conceptual/core-powershell/web-access/cmdlets/add-pswaauthorizationrule.md b/reference/docs-conceptual/core-powershell/web-access/cmdlets/add-pswaauthorizationrule.md index db2631637612..0404c3b209c8 100644 --- a/reference/docs-conceptual/core-powershell/web-access/cmdlets/add-pswaauthorizationrule.md +++ b/reference/docs-conceptual/core-powershell/web-access/cmdlets/add-pswaauthorizationrule.md @@ -209,7 +209,7 @@ This cmdlet supports the common parameters: -OutBuffer, and -OutVariable. For more information, see -[about_CommonParameters](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/about/about_commonparameters). +[about_CommonParameters](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/about/about_commonparameters). ## INPUTS @@ -240,7 +240,7 @@ can run. Defining a restricted runspace can prevent users from accessing other computers that are not in the allowed Windows PowerShell® runspace, thus offering a more secure connection. For more information on session configurations, see -[about_Session_Configurations](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/about/about_session_configurations) +[about_Session_Configurations](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/about/about_session_configurations) or the [Install and Use Windows PowerShell Web Access](../install-and-use-windows-powershell-web-access.md). ```PowerShell diff --git a/reference/docs-conceptual/core-powershell/web-access/install-and-use-windows-powershell-web-access.md b/reference/docs-conceptual/core-powershell/web-access/install-and-use-windows-powershell-web-access.md index 2f91a7a3c5a6..9d92011f73fd 100644 --- a/reference/docs-conceptual/core-powershell/web-access/install-and-use-windows-powershell-web-access.md +++ b/reference/docs-conceptual/core-powershell/web-access/install-and-use-windows-powershell-web-access.md @@ -43,7 +43,7 @@ process: Before you install and configure Windows PowerShell Web Access, we recommend that you read this entire guide, which includes instructions about how to install, secure, and uninstall Windows PowerShell Web Access. -The [Use the Web-based Windows PowerShell Console](https://technet.microsoft.com/en-us/library/hh831417(v=ws.11).aspx) +The [Use the Web-based Windows PowerShell Console](https://technet.microsoft.com/library/hh831417(v=ws.11).aspx) topic describes how users sign in to the web-based console, and covers limitations and differences between the web-based Windows PowerShell console and the **powershell.exe** console. End users of the web-based @@ -334,7 +334,7 @@ security, see configurations: Verify that session configurations that you want to use in your rules already exist. If they have not yet been created, use instructions for creating session configurations in -[about_Session_Configuration_Files](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_session_configurations). +[about_Session_Configuration_Files](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_session_configurations). 3. Type the following, and then press **Enter**. @@ -528,7 +528,7 @@ For more detail about Windows PowerShell Web Access authorization rules and secu 2. ![Security Note](images/SecurityNote.jpeg) Optional step for restricting user access by using session configurations: - Verify that session configurations that you want to use in your rules already exist. If they have not yet been created, use instructions for creating session configurations in [about_Session_Configuration_Files](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_session_configurations). + Verify that session configurations that you want to use in your rules already exist. If they have not yet been created, use instructions for creating session configurations in [about_Session_Configuration_Files](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_session_configurations). 3. Type the following, and then press **Enter**. diff --git a/reference/docs-conceptual/core-powershell/web-access/troubleshooting-access-problems-in-windows-powershell-web-access.md b/reference/docs-conceptual/core-powershell/web-access/troubleshooting-access-problems-in-windows-powershell-web-access.md index eb787391bdac..0c6eb0de1351 100644 --- a/reference/docs-conceptual/core-powershell/web-access/troubleshooting-access-problems-in-windows-powershell-web-access.md +++ b/reference/docs-conceptual/core-powershell/web-access/troubleshooting-access-problems-in-windows-powershell-web-access.md @@ -33,7 +33,7 @@ Failure could occur because of any of the following. Verify remote management is enabled on the computer to which the user is trying to connect. - For more information, see [How to Configure Your Computer for Remoting](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_remote_requirements#how-to-configure-your-computer-for-remoting). + For more information, see [How to Configure Your Computer for Remoting](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_remote_requirements#how-to-configure-your-computer-for-remoting). ## Internal Server Error @@ -156,7 +156,7 @@ Both domain and numerical (with colons) IPv6 addresses are supported as the target computer name on the Windows PowerShell Web Access sign-in page, but not in authorization rules. -For more information about IPv6 addresses, see [How IPv6 Works](https://technet.microsoft.com/en-us/library/cc781672(v=ws.10).aspx). +For more information about IPv6 addresses, see [How IPv6 Works](https://technet.microsoft.com/library/cc781672(v=ws.10).aspx). ## See Also diff --git a/reference/docs-conceptual/core-powershell/web-access/use-the-web-based-windows-powershell-console.md b/reference/docs-conceptual/core-powershell/web-access/use-the-web-based-windows-powershell-console.md index 19fe4665e0b7..ffc1b1a85622 100644 --- a/reference/docs-conceptual/core-powershell/web-access/use-the-web-based-windows-powershell-console.md +++ b/reference/docs-conceptual/core-powershell/web-access/use-the-web-based-windows-powershell-console.md @@ -72,7 +72,7 @@ the name or IP address of the remote computer that you want to manage. You must be an authorized user on the remote computer, and it must be configured to allow remote management. For more information about configuring your computer to allow remote -management, see [Enable and Use Remote Commands in Windows PowerShell](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/enable-psremoting). +management, see [Enable and Use Remote Commands in Windows PowerShell](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/enable-psremoting). The simplest method of configuring your computer to allow remote management is to run the **Enable-PSRemoting -force** cmdlet on the computer, @@ -91,7 +91,7 @@ rights (**Run as Administrator**). > - If the destination computer is the gateway server, you can specify `localhost` in the Computer name field > - If the destination computer is the gateway server, and the gateway server is in a workgroup, you must use `\` in the user name filed. You can use `localhost` in the Computer name field. -1. The **Optional Connection Settings** section relates to the authorization requirements of the remote computer that you want to manage. For more information about the parameters that are equivalent to optional connection settings, see the [Enter-PSSession](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/enter-pssession) cmdlet help. +1. The **Optional Connection Settings** section relates to the authorization requirements of the remote computer that you want to manage. For more information about the parameters that are equivalent to optional connection settings, see the [Enter-PSSession](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/enter-pssession) cmdlet help. Typically, the credentials you use to pass through the Windows PowerShell Web Access gateway are the same that are recognized by the remote computer that you want to manage. However, if you want to use different credentials to manage the remote computer that you specified in step 2, expand the **Optional Connection Settings** section, and provide the alternate credentials. Otherwise, skip to step 6. diff --git a/reference/docs-conceptual/core-powershell/workflows-guide.md b/reference/docs-conceptual/core-powershell/workflows-guide.md index 4cb0829afc16..db31d36ccc0b 100644 --- a/reference/docs-conceptual/core-powershell/workflows-guide.md +++ b/reference/docs-conceptual/core-powershell/workflows-guide.md @@ -10,9 +10,9 @@ This section contains the help topics for the **PSWorkflow** module, which inclu ## Help Topics [Workflow Cmdlets](http://go.microsoft.com/fwlink/?LinkID=245865) -[about_Workflows](https://technet.microsoft.com/en-us/library/f2897bdd-1b9d-4679-8b19-09840bd40a22) +[about_Workflows](https://technet.microsoft.com/library/f2897bdd-1b9d-4679-8b19-09840bd40a22) -[about_WorkflowCommonParameters](https://technet.microsoft.com/en-us/library/119f968e-618e-439c-b76c-cdd17e6df27c) +[about_WorkflowCommonParameters](https://technet.microsoft.com/library/119f968e-618e-439c-b76c-cdd17e6df27c) [about_ActivityCommonParameters](https://technet.microsoft.com/en-us/library/8ca60664-37c6-4257-a723-e3c41dd10122) diff --git a/reference/docs-conceptual/getting-started/cookbooks/Managing-Services.md b/reference/docs-conceptual/getting-started/cookbooks/Managing-Services.md index d7daadb8f0a7..6d744846d026 100644 --- a/reference/docs-conceptual/getting-started/cookbooks/Managing-Services.md +++ b/reference/docs-conceptual/getting-started/cookbooks/Managing-Services.md @@ -134,11 +134,11 @@ The Set-Service cmdlet changes the properties of a service on a local or remote To use Set-Service on Windows Vista and later versions of Windows, open Windows PowerShell with the "Run as administrator" option. -For more information, see [Set-Service [m2]](https://technet.microsoft.com/en-us/library/b71e29ed-372b-4e32-a4b7-5eb6216e56c3) +For more information, see [Set-Service [m2]](https://technet.microsoft.com/library/b71e29ed-372b-4e32-a4b7-5eb6216e56c3) ## See Also - [Get-Service [m2]](https://technet.microsoft.com/en-us/library/0a09cb22-0a1c-4a79-9851-4e53075f9cf6) -- [Set-Service [m2]](https://technet.microsoft.com/en-us/library/b71e29ed-372b-4e32-a4b7-5eb6216e56c3) +- [Set-Service [m2]](https://technet.microsoft.com/library/b71e29ed-372b-4e32-a4b7-5eb6216e56c3) - [Restart-Service [m2]](https://technet.microsoft.com/en-us/library/45acf50d-2277-4523-baf7-ce7ced977d0f) - [Suspend-Service [m2]](https://technet.microsoft.com/en-us/library/c8492b87-0e21-4faf-8054-3c83c2ec2826) diff --git a/reference/docs-conceptual/getting-started/fundamental/Getting-Detailed-Help-Information.md b/reference/docs-conceptual/getting-started/fundamental/Getting-Detailed-Help-Information.md index efd6f8619cc7..976f9cce878a 100644 --- a/reference/docs-conceptual/getting-started/fundamental/Getting-Detailed-Help-Information.md +++ b/reference/docs-conceptual/getting-started/fundamental/Getting-Detailed-Help-Information.md @@ -11,7 +11,7 @@ Windows PowerShell includes detailed Help topics that explain Windows PowerShell You can display these Help topics at the command prompt or view the most recently updated versions of these topics in the Microsoft TechNet Library. Many programs that host Windows PowerShell, such as Windows PowerShell Integrated Scripting Environment, provide additional Help features, such as context-sensitive Help and compiled Help file (.chm). ## Getting Help for Cmdlets -To get Help about Windows PowerShell cmdlets, use the [Get-Help [m2]](https://technet.microsoft.com/en-us/library/2d7fe1b4-0025-4580-a911-d81922dd6cd2) cmdlet. For example, to get Help for the [Get-ChildItem [m2]](https://technet.microsoft.com/en-us/library/4b270d63-c995-45b8-b5b4-3f8887efbfcc) cmdlet, type: +To get Help about Windows PowerShell cmdlets, use the [Get-Help [m2]](https://technet.microsoft.com/library/2d7fe1b4-0025-4580-a911-d81922dd6cd2) cmdlet. For example, to get Help for the [Get-ChildItem [m2]](https://technet.microsoft.com/library/4b270d63-c995-45b8-b5b4-3f8887efbfcc) cmdlet, type: ``` get-help get-childitem @@ -167,5 +167,5 @@ For information about how to provide online support for your Help topics, see [a - [about_Functions [m2]](https://technet.microsoft.com/en-us/library/61d40692-5300-4de9-a9b5-bae31815e105) - [about_Scripts](https://technet.microsoft.com/en-us/library/7dc08334-dcfe-450b-b949-0554855623af) - [about_Comment_Based_Help](https://technet.microsoft.com/en-us/library/99a81ccc-21a0-49ec-a1b3-9efe2b4c0bbf) -- [Get-Help [m2]](https://technet.microsoft.com/en-us/library/2d7fe1b4-0025-4580-a911-d81922dd6cd2) +- [Get-Help [m2]](https://technet.microsoft.com/library/2d7fe1b4-0025-4580-a911-d81922dd6cd2) diff --git a/reference/docs-conceptual/setup/Accessibility-in-Windows-PowerShell-ISE.md b/reference/docs-conceptual/setup/Accessibility-in-Windows-PowerShell-ISE.md index 0ee46477fc2e..f4472e0d1349 100644 --- a/reference/docs-conceptual/setup/Accessibility-in-Windows-PowerShell-ISE.md +++ b/reference/docs-conceptual/setup/Accessibility-in-Windows-PowerShell-ISE.md @@ -18,7 +18,7 @@ This topic describes the accessibility features of Windows PowerShell Integrated Microsoft is committed to making its products and services easier for everyone to use. The following topics provide information about the features, products, and services that make Windows PowerShell ISE more accessible for people with disabilities. -Windows PowerShell ISE supports high contrast mode. For the visually impaired, breakpoint information is available through the cmdlets for managing breakpoints, such as [Get-PSBreakpoint](https://technet.microsoft.com/en-us/library/0bf48936-00ab-411c-b5e0-9b10a812a3c6) and [Set-PSBreakpoint](https://technet.microsoft.com/en-us/library/6afd5d2c-a285-4796-8607-3cbf49471420). For more information please see 'How to manage breakpoints' in [How to Debug Scripts in the Windows PowerShell ISE](../core-powershell/ise/How-to-Debug-Scripts-in-Windows-PowerShell-ISE.md). In addition to accessibility features and utilities in Microsoft Windows, the following features make Windows PowerShell ISE more accessible for people with disabilities: +Windows PowerShell ISE supports high contrast mode. For the visually impaired, breakpoint information is available through the cmdlets for managing breakpoints, such as [Get-PSBreakpoint](https://technet.microsoft.com/library/0bf48936-00ab-411c-b5e0-9b10a812a3c6) and [Set-PSBreakpoint](https://technet.microsoft.com/library/6afd5d2c-a285-4796-8607-3cbf49471420). For more information please see 'How to manage breakpoints' in [How to Debug Scripts in the Windows PowerShell ISE](../core-powershell/ise/How-to-Debug-Scripts-in-Windows-PowerShell-ISE.md). In addition to accessibility features and utilities in Microsoft Windows, the following features make Windows PowerShell ISE more accessible for people with disabilities: - Keyboard Shortcuts diff --git a/reference/docs-conceptual/setup/Installing-PowerShell-Core-on-macOS-and-Linux.md b/reference/docs-conceptual/setup/Installing-PowerShell-Core-on-macOS-and-Linux.md index cca391afb143..e96a186c56da 100644 --- a/reference/docs-conceptual/setup/Installing-PowerShell-Core-on-macOS-and-Linux.md +++ b/reference/docs-conceptual/setup/Installing-PowerShell-Core-on-macOS-and-Linux.md @@ -387,10 +387,21 @@ sudo yum remove powershell ## OpenSUSE 42.2 -> **Note:** When installing PowerShell Core, OpenSUSE may report that nothing provides `libcurl`. -`libcurl` should already be installed on supported versions of OpenSUSE. -Run `zypper search libcurl` to confirm. -The error will present 2 'solutions'. Choose 'Solution 2' to continue installing PowerShell Core. +> **Note:** When installing PowerShell Core, `zypper` may report the following error: +> +> ```text +> Problem: nothing provides libcurl needed by powershell-6.0.1-1.rhel.7.x86_64 +> Solution 1: do not install powershell-6.0.1-1.rhel.7.x86_64 +> Solution 2: break powershell-6.0.1-1.rhel.7.x86_64 by ignoring some of its dependencies +> ``` +> +> In this case, verify that a compatible `libcurl` library is present by checking that the following command shows the `libcurl4` package as installed: +> +> ```sh +> zypper search --file-list --match-exact '/usr/lib64/libcurl.so.4' +> ``` +> +> Then choose the `break powershell-6.0.1-1.rhel.7.x86_64 by ignoring some of its dependencies` solution when installing the `powershell` package. ### Installation via Package Repository (preferred) - OpenSUSE 42.2 @@ -403,9 +414,6 @@ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc # Add the Microsoft Product feed curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/zypp/repos.d/microsoft.repo -# Update the list of products -sudo zypper update - # Install PowerShell sudo zypper install powershell diff --git a/reference/docs-conceptual/setup/WinRMSecurity.md b/reference/docs-conceptual/setup/WinRMSecurity.md index 0142c1cf6ce9..1fd49b0a514d 100644 --- a/reference/docs-conceptual/setup/WinRMSecurity.md +++ b/reference/docs-conceptual/setup/WinRMSecurity.md @@ -11,9 +11,9 @@ recommendations, and best practices when using PowerShell Remoting. ## What is PowerShell Remoting? -PowerShell Remoting uses [Windows Remote Management (WinRM)](https://msdn.microsoft.com/en-us/library/windows/desktop/aa384426.aspx), which is the Microsoft implementation of the +PowerShell Remoting uses [Windows Remote Management (WinRM)](https://msdn.microsoft.com/library/windows/desktop/aa384426.aspx), which is the Microsoft implementation of the [Web Services for Management (WS-Management)](http://www.dmtf.org/sites/default/files/standards/documents/DSP0226_1.2.0.pdf) protocol, to allow users to run PowerShell commands on remote -computers. You can find more information about using PowerShell Remoting at [Running Remote Commands](https://technet.microsoft.com/en-us/library/dd819505.aspx). +computers. You can find more information about using PowerShell Remoting at [Running Remote Commands](https://technet.microsoft.com/library/dd819505.aspx). PowerShell Remoting is not the same as using the **ComputerName** parameter of a cmdlet to run it on a remote computer, which uses Remote Procedure Call (RPC) as its underlying protocol. @@ -36,7 +36,7 @@ Remoting connections only from within the same subnet. You have to explicitly ch ## Process isolation -PowerShell Remoting uses [Windows Remote Management (WinRM)](https://msdn.microsoft.com/en-us/library/windows/desktop/aa384426) for communication between computers. +PowerShell Remoting uses [Windows Remote Management (WinRM)](https://msdn.microsoft.com/library/windows/desktop/aa384426) for communication between computers. WinRM runs as a service under the Network Service account, and spawns isolated processes running as user accounts to host PowerShell instances. An instance of PowerShell running as one user has no access to a process running an instance of PowerShell as another user. @@ -56,11 +56,11 @@ Regardless of the transport protocol used (HTTP or HTTPS), PowerShell Remoting a Authentication confirms the identity of the client to the server - and ideally - the server to the client. When a client connects to a domain server using its computer name (i.e.: server01, or server01.contoso.com), the default authentication protocol is -[Kerberos](https://msdn.microsoft.com/en-us/library/windows/desktop/aa378747.aspx). +[Kerberos](https://msdn.microsoft.com/library/windows/desktop/aa378747.aspx). Kerberos guarantees both the user identity and server identity without sending any sort of reusable credential. When a client connects to a domain server using its IP address, or connects to a workgroup server, Kerberos authentication is not possible. In that case, PowerShell -Remoting relies on the [NTLM authentication protocol](https://msdn.microsoft.com/en-us/library/windows/desktop/aa378749.aspx). The NTLM authentication +Remoting relies on the [NTLM authentication protocol](https://msdn.microsoft.com/library/windows/desktop/aa378749.aspx). The NTLM authentication protocol guarantees the user identity without sending any sort of delegable credential. To prove user identity, the NTLM protocol requires that both the client and server compute a session key from the user's password without ever exchanging the password itself. The server typically does not know the user's password, so it communicates with the domain controller, which does know the user's password and calculates the session key for the server. diff --git a/reference/docs-conceptual/whats-new/What-s-New-in-PowerShell-Core-60.md b/reference/docs-conceptual/whats-new/What-s-New-in-PowerShell-Core-60.md index 28c7d295acc8..4d2aa7836132 100644 --- a/reference/docs-conceptual/whats-new/What-s-New-in-PowerShell-Core-60.md +++ b/reference/docs-conceptual/whats-new/What-s-New-in-PowerShell-Core-60.md @@ -384,7 +384,7 @@ We also plan on exposing this telemetry data and the insights we glean from the You can find out more about how we use this data in this [blog post][telemetry-blog]. [github]: https://github.com/PowerShell/PowerShell -[.NET Core 2.0]: https://docs.microsoft.com/en-us/dotnet/core/ +[.NET Core 2.0]: https://docs.microsoft.com/dotnet/core/ [.NET Standard]: https://docs.microsoft.com/en-us/dotnet/standard/net-standard [os_log]: https://developer.apple.com/documentation/os/logging [Syslog]: https://en.wikipedia.org/wiki/Syslog @@ -397,7 +397,7 @@ You can find out more about how we use this data in this [blog post][telemetry-b [.NET Blog]: https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard [YouTube]: https://www.youtube.com/watch?v=YI4MurjfMn8&list=PLRAdsfhKI4OWx321A_pr-7HhRNk7wOLLY [FAQ]: https://github.com/dotnet/standard/blob/master/docs/faq.md -[CDXML]: https://msdn.microsoft.com/en-us/library/jj542525(v=vs.85).aspx +[CDXML]: https://msdn.microsoft.com/library/jj542525(v=vs.85).aspx [docker-hub]: https://hub.docker.com/r/microsoft/powershell/ [docker]: https://github.com/PowerShell/PowerShell/tree/master/docker [windowspsmodulepath]: https://www.powershellgallery.com/packages/WindowsPSModulePath/ diff --git a/reference/docs-conceptual/whats-new/What-s-New-in-the-PowerShell-50-ISE.md b/reference/docs-conceptual/whats-new/What-s-New-in-the-PowerShell-50-ISE.md index 9d0b5a397fe0..018a95a6cf8f 100644 --- a/reference/docs-conceptual/whats-new/What-s-New-in-the-PowerShell-50-ISE.md +++ b/reference/docs-conceptual/whats-new/What-s-New-in-the-PowerShell-50-ISE.md @@ -11,7 +11,7 @@ This topic explains the new and updated features that have been introduced in ve ## Feature description The Windows PowerShell ISE is a host application that enables you to write, run, and test scripts and modules in a graphical and intuitive environment. Key features such as syntax-coloring, tab completion, visual debugging, Unicode compliance, and context-sensitive Help provide a rich scripting experience. -For an overview of Windows PowerShell ISE, see [Windows PowerShell Integrated Scripting Environment overview](https://technet.microsoft.com/en-us/library/3c1892c2-bf84-4cb6-af26-1f453be9e671). +For an overview of Windows PowerShell ISE, see [Windows PowerShell Integrated Scripting Environment overview](https://technet.microsoft.com/library/3c1892c2-bf84-4cb6-af26-1f453be9e671). ## New and changed functionality in Windows PowerShell ISE The following table lists the new and changed features for this release of Windows PowerShell ISE in Windows PowerShell. @@ -218,7 +218,7 @@ Show-Command is new Windows PowerShell ISE 3.0. ## See also For more information about using Windows PowerShell ISE in Windows PowerShell, see the following links. -- [Using the Windows PowerShell Integrated Scripting Environment](../core-powershell/ise/Using-the-Windows-PowerShell-ISE.md) +- [Exploring the Windows PowerShell Integrated Scripting Environment](../getting-started/fundamental/exploring-the-windows-powershell-ise.md) - [ISE on the TechNet Wiki](http://social.technet.microsoft.com/wiki/search/searchresults.aspx?q=ISE) - [Script Center](http://technet.microsoft.com/scriptcenter/default) diff --git a/wmf/5.0/dsc_directaccess.md b/wmf/5.0/dsc_directaccess.md index a7e2771c75b2..9688e83d2d1c 100644 --- a/wmf/5.0/dsc_directaccess.md +++ b/wmf/5.0/dsc_directaccess.md @@ -8,7 +8,7 @@ keywords: wmf,powershell,setup # Direct access to DSC resource methods -The [Invoke-DscResource](https://technet.microsoft.com/en-us/library/mt517869.aspx) cmdlet has been added to allow direct access to DSC resources and their methods (Get, Set or Test). It can be used by third-parties that want to take advantage of +The [Invoke-DscResource](https://technet.microsoft.com/library/mt517869.aspx) cmdlet has been added to allow direct access to DSC resources and their methods (Get, Set or Test). It can be used by third-parties that want to take advantage of DSC resources. For more information, see [Calling DSC resource methods directly](https://msdn.microsoft.com/powershell/dsc/directcallresource). diff --git a/wmf/5.0/dsc_encryptedmof.md b/wmf/5.0/dsc_encryptedmof.md index 15c6e8f4a660..3c9aa45a65ff 100644 --- a/wmf/5.0/dsc_encryptedmof.md +++ b/wmf/5.0/dsc_encryptedmof.md @@ -9,12 +9,12 @@ keywords: wmf,powershell,setup Configuration documents contain sensitive information. In previous versions of DSC you were required to distribute and manage certificates in order to secure credentials within a configuration. For many, this was a significant management burden and even with all of the work it took to do this you were still left with some configuration information that was not and could not be secured. -That is no longer the case because **all configuration MOFs are secured by default**. No certificates or meta-configuration settings are needed. Any time a configuration MOF is saved to disk by the Local Configuration Manager (LCM) on a target node, it is encrypted. The MOFs are encrypted using [DPAPI](https://msdn.microsoft.com/en-us/library/ms995355.aspx). **Note:** MOFs generated by a configuration script are not encrypted. +That is no longer the case because **all configuration MOFs are secured by default**. No certificates or meta-configuration settings are needed. Any time a configuration MOF is saved to disk by the Local Configuration Manager (LCM) on a target node, it is encrypted. The MOFs are encrypted using [DPAPI](https://msdn.microsoft.com/library/ms995355.aspx). **Note:** MOFs generated by a configuration script are not encrypted. **Example:** Encryption in push mode ![MOF Encryption](../images/MOF_Encryption.jpg) -If you are already using the certificate method for encrypting passwords or if you need additional security for your passwords, the [existing method of certificate based encryption](https://msdn.microsoft.com/en-us/powershell/dsc/securemof) will continue to work. The result will be a MOF document that is fully encrypted using the DPAPIs and additionally have passwords encrypted within it. +If you are already using the certificate method for encrypting passwords or if you need additional security for your passwords, the [existing method of certificate based encryption](https://msdn.microsoft.com/powershell/dsc/securemof) will continue to work. The result will be a MOF document that is fully encrypted using the DPAPIs and additionally have passwords encrypted within it. This encryption only applies to configuration MOF documents (pending.mof, current.mof, previous.mof and partial MOFs). Meta-configuration MOFs are still saved in plain text since they less likely contain secrets. diff --git a/wmf/5.0/feedback_formathex.md b/wmf/5.0/feedback_formathex.md index d5ecae294ea2..16dd6c32a895 100644 --- a/wmf/5.0/feedback_formathex.md +++ b/wmf/5.0/feedback_formathex.md @@ -7,7 +7,7 @@ keywords: wmf,powershell,setup # Format-Hex **Format-Hex** lets you view text or binary data in hexadecimal format; -see [Format-Hex](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.utility/format-hex) +see [Format-Hex](https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.utility/format-hex) ## Example 1 View the contents of a string in hexadecimal format. diff --git a/wmf/5.0/limitation_dsc.md b/wmf/5.0/limitation_dsc.md index 96ae6f1076fc..4f77f3d407d6 100644 --- a/wmf/5.0/limitation_dsc.md +++ b/wmf/5.0/limitation_dsc.md @@ -12,7 +12,7 @@ Breaking Change: Certificates used to encrypt/decrypt passwords in DSC configura In WMF 4.0 and WMF 5.0 Preview releases, DSC would not allow passwords in the configuration to be of length more than 121 characters. DSC was forcing to use short passwords even if lengthy and strong password was desired. This breaking change allows passwords to be of arbitrary length in the DSC configuration. -**Resolution:** Re-create the certificate with Data Encipherment or Key Encipherment Key usage, and Document Encryption Enhanced Key usage (1.3.6.1.4.1.311.80.1). Technet article has more information. +**Resolution:** Re-create the certificate with Data Encipherment or Key Encipherment Key usage, and Document Encryption Enhanced Key usage (1.3.6.1.4.1.311.80.1). Technet article has more information. DSC cmdlets may fail after installing WMF 5.0 RTM diff --git a/wmf/5.0/networkswitch_overview.md b/wmf/5.0/networkswitch_overview.md index 2819d4b1507e..89bbb6efc0c9 100644 --- a/wmf/5.0/networkswitch_overview.md +++ b/wmf/5.0/networkswitch_overview.md @@ -16,7 +16,7 @@ The **Get-NetworkSwitchEthernetPort** cmdlet now returns the following additiona ## Fundamental network switch management with Windows PowerShell -The Network Switch cmdlets, introduced in WMF 5.0, enable you to apply switch, virtual LAN (VLAN), and basic Layer 2 network switch port configuration to Windows Server 2012 R2 logo-certified network switches. Microsoft remains committed to supporting the [Datacenter Abstraction](http://technet.microsoft.com/en-us/cloud/dal.aspx) Layer (DAL) vision, and to show value for our customers and partners in this space. Using these cmdlets you can perform: +The Network Switch cmdlets, introduced in WMF 5.0, enable you to apply switch, virtual LAN (VLAN), and basic Layer 2 network switch port configuration to Windows Server 2012 R2 logo-certified network switches. Microsoft remains committed to supporting the [Datacenter Abstraction](http://technet.microsoft.com/cloud/dal.aspx) Layer (DAL) vision, and to show value for our customers and partners in this space. Using these cmdlets you can perform: - Global switch configuration, such as: - Set host name diff --git a/wmf/5.0/oneget_cmdlets.md b/wmf/5.0/oneget_cmdlets.md index 06f92fd279d1..9d0499eac80f 100644 --- a/wmf/5.0/oneget_cmdlets.md +++ b/wmf/5.0/oneget_cmdlets.md @@ -27,7 +27,7 @@ PS C:\> Install-Module PackageManagement –Force ``` In this case, you will have to re-enter PowerShell session to switch to the new version of PackageManagement. -## [Find-Package Cmdlet](https://technet.microsoft.com/en-us/library/dn890709.aspx) +## [Find-Package Cmdlet](https://technet.microsoft.com/library/dn890709.aspx) This cmdlet allows discovery of software packages in available package sources using loaded package providers. ```powershell # Find all available Windows PowerShell module packages from galleries registered @@ -47,7 +47,7 @@ Find-Package -Name jquery –Provider NuGet -Source http://www.nuget.org/api/v2/ Find-Package -Name jquery –Provider NuGet –RequiredVersion 2.1.4 -Source nuget.org ``` -## [Find-PackageProvider Cmdlet](https://technet.microsoft.com/en-us/library/mt676544.aspx) +## [Find-PackageProvider Cmdlet](https://technet.microsoft.com/library/mt676544.aspx) The Find-PackageProvider cmdlet finds matching PackageManagement providers that are available in package sources registered with PowerShellGet. These are package providers available for installation with the Install-PackageProvider cmdlet. By default, this includes modules available in the PowerShell Gallery with the 'PackageManagement' and 'Provider' Tags. Find-PackageProvider also finds matching PackageManagement providers that are available in the PackageManagement azure blob store where we use the PackageManagement boostrapper provider for finding and installing them. @@ -62,7 +62,7 @@ Find-PackageProvider -Name "Nuget" -AllVersions Find-PackageProvider -Name "Gistprovider" -Source "PSGallery" ``` -## [Get-Package Cmdlet](https://technet.microsoft.com/en-us/library/dn890704.aspx) +## [Get-Package Cmdlet](https://technet.microsoft.com/library/dn890704.aspx) This cmdlet returns a list of all software packages that have been installed using PackageManagement. ```powershell # Get all the packages installed by Programs provider diff --git a/wmf/5.0/psget_modulecmdlets.md b/wmf/5.0/psget_modulecmdlets.md index 3869eb2cdbf6..4f1cc76b59e7 100644 --- a/wmf/5.0/psget_modulecmdlets.md +++ b/wmf/5.0/psget_modulecmdlets.md @@ -7,9 +7,9 @@ keywords: wmf,powershell,setup # PowerShellGet Cmdlets for Module Management -- [Find-DscResource](https://technet.microsoft.com/en-us/library/mt654006.aspx) -- [Find-Module](https://technet.microsoft.com/en-us/library/dn807167.aspx) -- [Find-Script](https://technet.microsoft.com/en-us/library/mt654001.aspx) +- [Find-DscResource](https://technet.microsoft.com/library/mt654006.aspx) +- [Find-Module](https://technet.microsoft.com/library/dn807167.aspx) +- [Find-Script](https://technet.microsoft.com/library/mt654001.aspx) - [Get-InstalledModule](https://technet.microsoft.com/en-us/library/mt653990.aspx) - [Get-InstalledScript](https://technet.microsoft.com/en-us/library/mt653994.aspx) - [Get-PSRepository](https://technet.microsoft.com/en-us/library/dn807170.aspx) diff --git a/wmf/5.0/requirements.md b/wmf/5.0/requirements.md index d16ab1ba6f08..5c79c5b53299 100644 --- a/wmf/5.0/requirements.md +++ b/wmf/5.0/requirements.md @@ -14,9 +14,9 @@ keywords: wmf,powershell,setup |------------------------|--------------|------------------|----------------------| --------------| | Windows Server 2012 R2 | | | [Win8.1AndW2K12R2-KB3134758-x64.msu](http://go.microsoft.com/fwlink/?LinkId=717507) | | Windows Server 2012 | | | [W2K12-KB3134759-x64.msu](http://go.microsoft.com/fwlink/?LinkId=717506) | - | Windows Server 2008 R2 SP1 | All, except IA64 | [WMF 4.0](http://www.microsoft.com/en-us/download/details.aspx?id=40855) and [.NET Framework 4.5 or above](https://msdn.microsoft.com/en-us/library/5a4x27ek.aspx) are installed| [Win7AndW2K8R2-KB3134760-x64.msu](http://go.microsoft.com/fwlink/?LinkId=717504)| + | Windows Server 2008 R2 SP1 | All, except IA64 | [WMF 4.0](http://www.microsoft.com/en-us/download/details.aspx?id=40855) and [.NET Framework 4.5 or above](https://msdn.microsoft.com/library/5a4x27ek.aspx) are installed| [Win7AndW2K8R2-KB3134760-x64.msu](http://go.microsoft.com/fwlink/?LinkId=717504)| | Windows 8.1 | Pro, Enterprise | | **x64:** [Win8.1AndW2K12R2-KB3134758-x64.msu](http://go.microsoft.com/fwlink/?LinkId=717507)
**x86:** [Win8.1-KB3134758-x86.msu](http://go.microsoft.com/fwlink/?LinkID=717963)| - | Windows 7 SP1 | All | [WMF 4.0](http://www.microsoft.com/en-us/download/details.aspx?id=40855) and [.NET Framework 4.5 or above](https://msdn.microsoft.com/en-us/library/5a4x27ek.aspx) are installed | **x64:** [Win7AndW2K8R2-KB3134760-x64.msu](http://go.microsoft.com/fwlink/?LinkId=717504)
**x86:** [Win7-KB3134760-x86.msu](http://go.microsoft.com/fwlink/?LinkID=717962)| + | Windows 7 SP1 | All | [WMF 4.0](http://www.microsoft.com/en-us/download/details.aspx?id=40855) and [.NET Framework 4.5 or above](https://msdn.microsoft.com/library/5a4x27ek.aspx) are installed | **x64:** [Win7AndW2K8R2-KB3134760-x64.msu](http://go.microsoft.com/fwlink/?LinkId=717504)
**x86:** [Win7-KB3134760-x86.msu](http://go.microsoft.com/fwlink/?LinkID=717962)| # Installation Instructions @@ -44,7 +44,7 @@ keywords: wmf,powershell,setup Ensure following prerequisites have been met: - Latest service pack is installed. - [WMF 4.0](http://www.microsoft.com/en-us/download/details.aspx?id=40855) is installed. -- [.NET Framework 4.5 or above](https://msdn.microsoft.com/en-us/library/5a4x27ek.aspx) is installed. +- [.NET Framework 4.5 or above](https://msdn.microsoft.com/library/5a4x27ek.aspx) is installed. **WMF 4.0 Dependency** diff --git a/wmf/5.1/release-notes.md b/wmf/5.1/release-notes.md index 0f9eca3ae334..6c9cda0dbdcc 100644 --- a/wmf/5.1/release-notes.md +++ b/wmf/5.1/release-notes.md @@ -20,7 +20,7 @@ WMF 5.1 can be installed on Windows 7, Windows 8.1, Windows Server 2008 R2, 2012 **Important notes:** -- **WMF 5.1 requires the .NET Framework 4.5.2** (or above). Installation will succeed, but key features will fail if .NET 4.5.2 (or above) is not installed. Instructions are available in the [Install and Configure WMF 5.1 ](https://msdn.microsoft.com/en-us/powershell/wmf/5.1/install-configure) topic. +- **WMF 5.1 requires the .NET Framework 4.5.2** (or above). Installation will succeed, but key features will fail if .NET 4.5.2 (or above) is not installed. Instructions are available in the [Install and Configure WMF 5.1 ](https://msdn.microsoft.com/powershell/wmf/5.1/install-configure) topic. - WMF 5.1 Preview must be uninstalled before installing WMF 5.1 RTM. - WMF 5.1 may be installed directly over WMF 5.0 or WMF 4.0. - It is __not required__ to install WMF 4.0 prior to installing WMF 5.1 on Windows 7 and Windows Server 2008 R2. That was an issue for the WMF 5.1 Preview release, and has been resolved. diff --git a/wmf/5.1/scenarios-features.md b/wmf/5.1/scenarios-features.md index 6108cb718889..8af864281e6f 100644 --- a/wmf/5.1/scenarios-features.md +++ b/wmf/5.1/scenarios-features.md @@ -24,7 +24,7 @@ Starting with version 5.1, PowerShell is available in different editions which d ## Catalog Cmdlets -Two new cmdlets have been added in the [Microsoft.PowerShell.Security](https://technet.microsoft.com/en-us/library/hh847877.aspx) module; these generate and validate Windows catalog files. +Two new cmdlets have been added in the [Microsoft.PowerShell.Security](https://technet.microsoft.com/library/hh847877.aspx) module; these generate and validate Windows catalog files. ###New-FileCatalog -------------------------------- @@ -67,7 +67,7 @@ Test-FileCatalog [-CatalogFilePath] [[-Path] ] [-Detailed] [- This cmdlet compares all the files hashes and their relative paths found in *catalog* with ones on *disk*. If it detects any mismatch between file hashes and paths it returns the status as *ValidationFailed*. Users can retrieve all this information by using the *-Detailed* parameter. -It also displays signing status of catalog in *Signature* property which is equivalent to calling [Get-AuthenticodeSignature](https://technet.microsoft.com/en-us/library/hh849805.aspx) cmdlet on the catalog file. +It also displays signing status of catalog in *Signature* property which is equivalent to calling [Get-AuthenticodeSignature](https://technet.microsoft.com/library/hh849805.aspx) cmdlet on the catalog file. Users can also skip any file during validation by using the *-FilesToSkip* parameter. diff --git a/wmf/TOC.md b/wmf/TOC.md deleted file mode 100644 index 82501f4ce8ea..000000000000 --- a/wmf/TOC.md +++ /dev/null @@ -1,97 +0,0 @@ -# [Windows Management Framework (WMF) Overview](README.md) - -# [WMF 5.1](5.1/release-notes.md) -## [New Scenarios and Features](5.1/scenarios-features.md) -### [Improvements in Desired State Configuration (DSC)](5.1/DSC-improvements.md) -### [Improvements in the PowerShell Console](5.1/console-improvements.md) -### [Improvements in the PowerShell Engine](5.1/engine-improvements.md) -### [Improvements in Package Management](5.1/package-management-improvements.md) -### [Improvements in JEA](5.1/jea-improvements.md) -### [Catalog cmdlets](5.1/catalog-cmdlets.md) -### [Bugs Fixed in WMF 5.1](5.1/bugfixes.md) -## [Install and Configure](5.1/install-configure.md) -## [Known Issues](5.1/known-issues.md) -## [Compatibility](5.1/Compatibility.md) -## [Product Compatibility](5.1/productincompat.md) - -# [WMF 5.0](5.0/releasenotes.md) -## [Installation Details](5.0/requirements.md) -## [Known Issues and Limitations](5.0/limitation_overview.md) -### [Desired State Configuration (DSC) Known Issues](5.0/limitation_dsc.md) -## [Product Compatibility Status](5.0/productincompat.md) -## [Scenarios Enabled by WMF 5.0]() -### [Just Enough Administration (JEA)](5.0/jea_overview.md) -#### [Creating and Connecting to a JEA Endpoint](5.0/jea_endpoint.md) -#### [Reporting on JEA](5.0/jea_report.md) -### [Creating Custom Types using PowerShell Classes](5.0/class_overview.md) -#### [Define Custom Types](5.0/class_newtype.md) -#### [Declare Base Class](5.0/class_base.md) -#### [Declare Implemented Interface](5.0/class_interface.md) -#### [Call Base Class Constructor](5.0/class_baseconstructor.md) -#### [Call Base Class Method](5.0/class_basemethod.md) -### [Improvements in PowerShell Script Debugging](5.0/debug_overview.md) -### [Improvements in Desired State Configuration (DSC)](5.0/dsc_improvements.md) -#### [Configurations]() -##### [Specifying Cross Node Dependencies](5.0/dsc_waitfor.md) -##### [Encrypted MOFs](5.0/dsc_encryptedmof.md) -##### [Help Support for DSC Configuration](5.0/dsc_confighelp.md) -##### [Authoring Improvements using PowerShell ISE](5.0/dsc_authoring.md) -##### [Allowance for Identical Duplicate Resources in a Configuration](5.0/dsc_identicalduplicate.md) -##### [Import-DscResource Keyword Supports -ModuleVersion Parameter](5.0/dsc_importdscresource.md) -##### [WOW64 Support for Configuration Keyword](5.0/dsc_wow64.md) -#### [Resources]() -##### [Class-based DSC Resources](5.0/dsc_classbasedresource.md) -##### [DSC Resource Script Debugging](5.0/dsc_resourcedebugging.md) -##### [Automatic RunAs Support for DSC Resources](5.0/dsc_runas.md) -##### [Side-By-Side Versioning Support for DSC Resources](5.0/dsc_sxsresource.md) -##### [New In-box Resources](5.0/dsc_newresources.md) -#### [Local Configuration Manager]() -##### [Configure Node with Multiple Configuration Fragments](5.0/dsc_partialconfig.md) -###### [Support for Mixed RefreshModes](5.0/dsc_partialconfig_mixedmode.md) -##### [Configure DSC Engine with New Attribute](5.0/dsc_metaconfiguration.md) -##### [Detailed Information about LCM State](5.0/dsc_lcmstate.md) -##### [Frequencies for RefreshMode and ConfigurationMode need not be Multiple of Each Other](5.0/dsc_freqnomultiple.md) -##### [Additional Value for RefreshMode Property](5.0/dsc_refreshmode.md) -#### [Cmdlets]() -##### [Details about Configuration Status](5.0/dsc_getconfigurationstatus.md) -##### [Test-DscConfiguration Cmdlet Supports Reference Configurations](5.0/dsc_testconfiguration.md) -##### [Direct Access to DSC Resource Methods](5.0/dsc_directaccess.md) -##### [Deliver Configuration Document without Applying](5.0/dsc_publishconfig.md) -##### [Remove DSC Documents](5.0/dsc_removeconfigdoc.md) -##### [Unified and Consistent State and Status Representation](5.0/dsc_statestatus.md) -##### [Set-DscLocalConfigurationManager Cmdlet Supports -Force Parameter](5.0/dsc_setdsclcm.md) -#### [Pull Mode]() -##### [On-demand PULL of DSC Configurations](5.0/dsc_updateconfig.md) -##### [Separation of Node and Configuration IDs](5.0/dsc_nodeid.md) -##### [Separation of Configuration, Resource, and Report Repositories](5.0/dsc_repository.md) -##### [Report Configuration Status to Central Location](5.0/dsc_reporting.md) -### [Audit PowerShell Usage using Transcript and Logging](5.0/audit_overview.md) -#### [Enhanced Transcription Options](5.0/audit_transcript.md) -#### [Script Tracing and Logging](5.0/audit_script.md) -#### [Cryptographic Message Syntax (CMS) Cmdlets](5.0/audit_cms.md) -### [Software Discovery, Install, and Inventory with PackageManagement](5.0/oneget_overview.md) -#### [PackageManagement Cmdlets](5.0/oneget_cmdlets.md) -### [PowerShell Module Discovery, Install, and Inventory with PowerShellGet](5.0/psget_module_overview.md) -#### [Register a PowerShell Repository](5.0/psget_psrepository.md) -#### [Side-by-Side Version Support on PowerShell 5.0 or Newer](5.0/psget_modulesxsinstall.md) -#### [Installation of Module Dependencies](5.0/psget_moduledependency.md) -#### [PowerShellGet Cmdlets for Module Management](5.0/psget_modulecmdlets.md) -### [PowerShell Script Discovery, Install, and Management with PowerShellGet](5.0/psget_script_overview.md) -#### [PowerShellGet Cmdlets for Script Management](5.0/psget_scriptcmdlets.md) -### [New and Updated Cmdlets based on Community Feedback](5.0/feedback_cmdlets.md) -#### [Symbolic Links using Item Cmdlets](5.0/feedback_symbolic.md) -#### [Archive Cmdlets](5.0/feedback_archive.md) -#### [Clipboard Cmdlets](5.0/feedback_clipboard.md) -#### [Convert-String](5.0/feedback_convertstring.md) -#### [Extract and Parse Structured Objects out of String](5.0/feedback_convertfromString.md) -#### [Format-Hex](5.0/feedback_formathex.md) -#### [NoNewLine Parameter](5.0/feedback_nonewline.md) -#### [New-TemporaryFile](5.0/feedback_tempfile.md) -#### [New-Guid](5.0/feedback_newguid.md) -#### [Get-ChildItem has -Depth Parameter](5.0/feedback_getchilditem.md) -#### [Updates to FileInfo object](5.0/feedback_fileinfo.md) -#### [Modules Support for Declaring Version Ranges (1.*, etc)](5.0/feedback_moduleversionranges.md) -### [Information Stream](5.0/informationstream_overview.md) -### [Generate PowerShell Cmdlets based on OData Endpoint](5.0/odata_overview.md) -### [Network Switch Management with PowerShell](5.0/networkswitch_overview.md) -### [Software Inventory Logging (SIL)](5.0/sil_overview.md) diff --git a/wmf/TOC.yml b/wmf/TOC.yml new file mode 100644 index 000000000000..1f2bdbad2282 --- /dev/null +++ b/wmf/TOC.yml @@ -0,0 +1,209 @@ +- name: Windows Management Framework (WMF) Overview + href: README.md +- name: WMF 5.1 + href: 5.1/release-notes.md + items: + - name: New Scenarios and Features + href: 5.1/scenarios-features.md + items: + - name: Improvements in Desired State Configuration (DSC) + href: 5.1/DSC-improvements.md + - name: Improvements in the PowerShell Console + href: 5.1/console-improvements.md + - name: Improvements in the PowerShell Engine + href: 5.1/engine-improvements.md + - name: Improvements in Package Management + href: 5.1/package-management-improvements.md + - name: Improvements in JEA + href: 5.1/jea-improvements.md + - name: Catalog cmdlets + href: 5.1/catalog-cmdlets.md + - name: Bugs Fixed in WMF 5.1 + href: 5.1/bugfixes.md + - name: Install and Configure + href: 5.1/install-configure.md + - name: Known Issues + href: 5.1/known-issues.md + - name: Compatibility + href: 5.1/Compatibility.md + - name: Product Compatibility + href: 5.1/productincompat.md +- name: WMF 5.0 + href: 5.0/releasenotes.md + items: + - name: Installation Details + href: 5.0/requirements.md + - name: Known Issues and Limitations + href: 5.0/limitation_overview.md + items: + - name: Desired State Configuration (DSC) Known Issues + href: 5.0/limitation_dsc.md + - name: Product Compatibility Status + href: 5.0/productincompat.md + - name: Scenarios Enabled by WMF 5.0 + href: '' + items: + - name: Just Enough Administration (JEA) + href: 5.0/jea_overview.md + items: + - name: Creating and Connecting to a JEA Endpoint + href: 5.0/jea_endpoint.md + - name: Reporting on JEA + href: 5.0/jea_report.md + - name: Creating Custom Types using PowerShell Classes + href: 5.0/class_overview.md + items: + - name: Define Custom Types + href: 5.0/class_newtype.md + - name: Declare Base Class + href: 5.0/class_base.md + - name: Declare Implemented Interface + href: 5.0/class_interface.md + - name: Call Base Class Constructor + href: 5.0/class_baseconstructor.md + - name: Call Base Class Method + href: 5.0/class_basemethod.md + - name: Improvements in PowerShell Script Debugging + href: 5.0/debug_overview.md + - name: Improvements in Desired State Configuration (DSC) + href: 5.0/dsc_improvements.md + items: + - name: Configurations + href: '' + items: + - name: Specifying Cross Node Dependencies + href: 5.0/dsc_waitfor.md + - name: Encrypted MOFs + href: 5.0/dsc_encryptedmof.md + - name: Help Support for DSC Configuration + href: 5.0/dsc_confighelp.md + - name: Authoring Improvements using PowerShell ISE + href: 5.0/dsc_authoring.md + - name: Allowance for Identical Duplicate Resources in a Configuration + href: 5.0/dsc_identicalduplicate.md + - name: Import-DscResource Keyword Supports -ModuleVersion Parameter + href: 5.0/dsc_importdscresource.md + - name: WOW64 Support for Configuration Keyword + href: 5.0/dsc_wow64.md + - name: Resources + href: '' + items: + - name: Class-based DSC Resources + href: 5.0/dsc_classbasedresource.md + - name: DSC Resource Script Debugging + href: 5.0/dsc_resourcedebugging.md + - name: Automatic RunAs Support for DSC Resources + href: 5.0/dsc_runas.md + - name: Side-By-Side Versioning Support for DSC Resources + href: 5.0/dsc_sxsresource.md + - name: New In-box Resources + href: 5.0/dsc_newresources.md + - name: Local Configuration Manager + href: '' + items: + - name: Configure Node with Multiple Configuration Fragments + href: 5.0/dsc_partialconfig.md + items: + - name: Support for Mixed RefreshModes + href: 5.0/dsc_partialconfig_mixedmode.md + - name: Configure DSC Engine with New Attribute + href: 5.0/dsc_metaconfiguration.md + - name: Detailed Information about LCM State + href: 5.0/dsc_lcmstate.md + - name: Frequencies for RefreshMode and ConfigurationMode need not be Multiple of Each Other + href: 5.0/dsc_freqnomultiple.md + - name: Additional Value for RefreshMode Property + href: 5.0/dsc_refreshmode.md + - name: Cmdlets + href: '' + items: + - name: Details about Configuration Status + href: 5.0/dsc_getconfigurationstatus.md + - name: Test-DscConfiguration Cmdlet Supports Reference Configurations + href: 5.0/dsc_testconfiguration.md + - name: Direct Access to DSC Resource Methods + href: 5.0/dsc_directaccess.md + - name: Deliver Configuration Document without Applying + href: 5.0/dsc_publishconfig.md + - name: Remove DSC Documents + href: 5.0/dsc_removeconfigdoc.md + - name: Unified and Consistent State and Status Representation + href: 5.0/dsc_statestatus.md + - name: Set-DscLocalConfigurationManager Cmdlet Supports -Force Parameter + href: 5.0/dsc_setdsclcm.md + - name: Pull Mode + href: '' + items: + - name: On-demand PULL of DSC Configurations + href: 5.0/dsc_updateconfig.md + - name: Separation of Node and Configuration IDs + href: 5.0/dsc_nodeid.md + - name: Separation of Configuration, Resource, and Report Repositories + href: 5.0/dsc_repository.md + - name: Report Configuration Status to Central Location + href: 5.0/dsc_reporting.md + - name: Audit PowerShell Usage using Transcript and Logging + href: 5.0/audit_overview.md + items: + - name: Enhanced Transcription Options + href: 5.0/audit_transcript.md + - name: Script Tracing and Logging + href: 5.0/audit_script.md + - name: Cryptographic Message Syntax (CMS) Cmdlets + href: 5.0/audit_cms.md + - name: Software Discovery, Install, and Inventory with PackageManagement + href: 5.0/oneget_overview.md + items: + - name: PackageManagement Cmdlets + href: 5.0/oneget_cmdlets.md + - name: PowerShell Module Discovery, Install, and Inventory with PowerShellGet + href: 5.0/psget_module_overview.md + items: + - name: Register a PowerShell Repository + href: 5.0/psget_psrepository.md + - name: Side-by-Side Version Support on PowerShell 5.0 or Newer + href: 5.0/psget_modulesxsinstall.md + - name: Installation of Module Dependencies + href: 5.0/psget_moduledependency.md + - name: PowerShellGet Cmdlets for Module Management + href: 5.0/psget_modulecmdlets.md + - name: PowerShell Script Discovery, Install, and Management with PowerShellGet + href: 5.0/psget_script_overview.md + items: + - name: PowerShellGet Cmdlets for Script Management + href: 5.0/psget_scriptcmdlets.md + - name: New and Updated Cmdlets based on Community Feedback + href: 5.0/feedback_cmdlets.md + items: + - name: Symbolic Links using Item Cmdlets + href: 5.0/feedback_symbolic.md + - name: Archive Cmdlets + href: 5.0/feedback_archive.md + - name: Clipboard Cmdlets + href: 5.0/feedback_clipboard.md + - name: Convert-String + href: 5.0/feedback_convertstring.md + - name: Extract and Parse Structured Objects out of String + href: 5.0/feedback_convertfromString.md + - name: Format-Hex + href: 5.0/feedback_formathex.md + - name: NoNewLine Parameter + href: 5.0/feedback_nonewline.md + - name: New-TemporaryFile + href: 5.0/feedback_tempfile.md + - name: New-Guid + href: 5.0/feedback_newguid.md + - name: Get-ChildItem has -Depth Parameter + href: 5.0/feedback_getchilditem.md + - name: Updates to FileInfo object + href: 5.0/feedback_fileinfo.md + - name: Modules Support for Declaring Version Ranges (1.*, etc) + href: 5.0/feedback_moduleversionranges.md + - name: Information Stream + href: 5.0/informationstream_overview.md + - name: Generate PowerShell Cmdlets based on OData Endpoint + href: 5.0/odata_overview.md + - name: Network Switch Management with PowerShell + href: 5.0/networkswitch_overview.md + - name: Software Inventory Logging (SIL) + href: 5.0/sil_overview.md diff --git a/wmf/docfx.json b/wmf/docfx.json index baf309eb2474..9b954f0507d8 100644 --- a/wmf/docfx.json +++ b/wmf/docfx.json @@ -10,7 +10,7 @@ } ], "globalMetadata": { - "breadcrumb_path": "/powershell/wmf/bread/toc.json", + "breadcrumb_path": "/powershell/wmf/bread/toc.yml", "uhfHeaderId": "MSDocsHeader-Powershell", "ROBOTS": "INDEX, FOLLOW", "ms.prod": "powershell",