GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — PowerShell Core configuration by iSazonov · Pull Request #111 · PowerShell/PowerShell-RFC

Conversation

@iSazonov

@iSazonov Ilya (iSazonov) commented Jan 25, 2018

Copy link
Copy Markdown
Contributor

No description provided.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
This was referenced Jan 25, 2018
Add description of PowerShell Core configuration settings PowerShell/PowerShell#5947
Closed
Set local pipeline thread stack size PowerShell/PowerShell#5927
Closed
@markekraus

Mark Kraus (markekraus) commented Jan 25, 2018 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

Somewhere in here powershell.config.json should have a JSON Schema... though.. since JSON schema is still in draft... I'm torn on whether to fight for that or not.

https://tools.ietf.org/html/draft-handrews-json-schema-00

KevinMarquette and rjmholt reacted with thumbs up emoji
All reactions
  • 👍 2 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov

Ilya (iSazonov) commented Jan 25, 2018

Copy link
Copy Markdown
Contributor Author

Actually the RFC describe the schema implicitly.
Current API implementation uses string typed approach - we can secure without strong scheme check.
So we'd need the scheme explicitly only if we'd introduce configuration cmdlets like Test-PSConfig, Get-PSConfig, Set-PSConfig.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@markekraus

Mark Kraus (markekraus) commented Jan 25, 2018 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

Ilya (@iSazonov) that's not what I meant... I meant that the JSON file should have a publicly available schema. The JSON Schema defines all the object properties, their acceptable types, etc. This schema can then be linked in the powershell.config.json with the $schema property. Then in editors like VSCode you can have auto completion and selections available. This schema would require updating when new settings are made available in powershell.config.json.

More info http://json-schema.org

iSazonov, michaeltlombardi, and Jaykul reacted with thumbs up emoji
All reactions
  • 👍 3 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov

Ilya (iSazonov) commented Feb 21, 2018

Copy link
Copy Markdown
Contributor Author

Steve Lee (@SteveL-MSFT) Time is over. Could we continue?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@SteveL-MSFT
Steve Lee (SteveL-MSFT) requested review from Hemant Mahawar (HemantMahawar), Travis Plunk (TravisEz13) and Joey Aiello (joeyaiello) February 23, 2018 01:36
@SteveL-MSFT Steve Lee (SteveL-MSFT) added the Review - Committee label Feb 23, 2018
TravisEz13
Travis Plunk (TravisEz13) reviewed Feb 23, 2018
View reviewed changes
Comment thread 1-Draft/RFCnnnn-PowerShell-Configuration.md
File -> Application-Wide | $apphome\powershell.config.json | $apphome/powershell.config.json
File -> User-Wide | %APPDATA%\powershell.config.json | ~/powershell.config.json
File -> Computer-Wide | %ProgramFiles%\PowerShell\powershell.config.json | /opt/Microsoft/powershell/powershell.config.json
GPO -> User Config | HKCU\Software\PowerShellCore | See `Comment A` below

@TravisEz13 Travis Plunk (TravisEz13) Feb 23, 2018

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regular setting should be deployed via GPP not GPO

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@TravisEz13 Travis Plunk (TravisEz13) Feb 23, 2018

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GPP is for setting the user can change.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@iSazonov Ilya (iSazonov) Feb 23, 2018

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're talking about values in the registry. In this case, the user can change any value if it has permissions (mainly in HKCU). (Of course then this value will be overwritten by GPO or GPP)

I don't see the point of distinguishing between regular settings and policies by name. What is the criterion? We are able to set the value in the registry using GPP in the Policy branch (even in HKLM) and thereby assign the policy.

The only question is who, how and for what set/changes the settings. System administrators or security administrators will most often use GPOs to set mandatory standard values that are less likely to GPP to set recommended values.

This document tries to describe all the ways that can be to provide maximum flexibility and also how to get an effective value based on priority.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@TravisEz13 Travis Plunk (TravisEz13) Feb 23, 2018

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GPP has the ability to not overwrite if the user changes the registry.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@TravisEz13 Travis Plunk (TravisEz13) Feb 23, 2018

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, GPO implies that the setting is policy, which this setting is not. It is a preference.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@daxian-dbw Dongbo Wang (daxian-dbw) mentioned this pull request Mar 9, 2018
Support Experimental Features in PowerShell #114
Merged
JamesWTruher
James Truher (JamesWTruher) reviewed Mar 28, 2018
View reviewed changes
Comment thread 1-Draft/RFCnnnn-PowerShell-Configuration.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

JamesWTruher
James Truher (JamesWTruher) reviewed Mar 28, 2018
View reviewed changes
Comment thread 1-Draft/RFCnnnn-PowerShell-Configuration.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

@SteveL-MSFT Steve Lee (SteveL-MSFT) removed the Review - Committee label Mar 29, 2018
@SteveL-MSFT

Steve Lee (SteveL-MSFT) commented Mar 29, 2018

Copy link
Copy Markdown
Member

Removing Review - Committee as there's additional comments now

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov Ilya (iSazonov) mentioned this pull request Nov 16, 2018
Fix race condition to access powershell.config.json PowerShell/PowerShell#8249
Merged
7 of 11 tasks
rjmholt
Rob Holt (rjmholt) reviewed Nov 16, 2018
View reviewed changes

@rjmholt Rob Holt (rjmholt) left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One point I would be interested in addressing is that PowerShell will modify a powershell.config.json file at runtime. That works well until there are more than one PowerShell process running, which have no business sharing state.

I feel like it might be worth discussing those config fields which are settable and working out whether they should be system globals or process-specific. Execution policy is one example.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-Draft/RFCnnnn-PowerShell-Configuration.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread 1-Draft/RFCnnnn-PowerShell-Configuration.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread 1-Draft/RFCnnnn-PowerShell-Configuration.md

## Specification

`PowerShell Core` is configured using the following schemes:

@rjmholt Rob Holt (rjmholt) Nov 16, 2018

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would use bold for key terms, rather than backticks.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-Draft/RFCnnnn-PowerShell-Configuration.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread 1-Draft/RFCnnnn-PowerShell-Configuration.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

@TravisEz13

Travis Plunk (TravisEz13) commented Nov 19, 2018

Copy link
Copy Markdown
Member

Ilya (@iSazonov) Can you update this for how -settingfile should work. I'm not sure how it works currently fits in properly with this spec.

iSazonov reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Ilya (iSazonov) added 3 commits November 21, 2018 10:50
@iSazonov
PowerShell Core configuration
ad06465
@iSazonov
Fix typo.
b1b1df5
@iSazonov
Address feedbacks
a209f4d
@iSazonov

Ilya (iSazonov) commented Nov 21, 2018

Copy link
Copy Markdown
Contributor Author

Travis Plunk (@TravisEz13) I added a comment about -settingfile.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

TravisEz13
Travis Plunk (TravisEz13) reviewed Nov 26, 2018
View reviewed changes
Comment thread 1-Draft/RFCnnnn-PowerShell-Configuration.md

#### Parameter `-settingsfile`

With `-settingsfile` parameter users can assign custom settings from the config file and overwrite user-wide and application-wide settings. Only users with elevated rights can overwrite computer-wide and user policy settings.

@TravisEz13 Travis Plunk (TravisEz13) Nov 26, 2018

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When we are in lockdown mode, even elevated users should not be able to overwrite computer-wide settings

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@iSazonov Ilya (iSazonov) Nov 27, 2018

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only users with elevated rights can overwrite computer-wide and user policy settings.

I do not know how to formulate it right at the same time for Windows (GPO) and for Unix (only files).
In fact, the administrator always has the ability to change any setting.
Maybe remove the sentence at all?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@felixfbecker

Felix Becker (felixfbecker) commented Nov 26, 2018

Copy link
Copy Markdown

I find it a bit inconsistent that this config file is using JSON while other PowerShell config files like module manifests use .psd1. Why choose JSON here?
And if JSON is chosen, I find it weird that properties are PascalCase. I realise that is the convention for PowerShell code and C#, but JSON is JavaScript Object Notation, and the convention is camelCase.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

TravisEz13
Travis Plunk (TravisEz13) reviewed Nov 26, 2018
View reviewed changes
Comment thread 1-Draft/RFCnnnn-PowerShell-Configuration.md
| | ModuleLogging | ModuleNames | String
| | ProtectedEventLogging | EncryptionCertificate | DWORD
| | ScriptBlockLogging | EnableScriptBlockInvocationLogging | DWORD
| | ScriptBlockLogging | EnableScriptBlockLogging | DWORD

@TravisEz13 Travis Plunk (TravisEz13) Nov 26, 2018

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can ScriptBlockLogging\* and ProtectedEventLogging\* also be configured via policy?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@iSazonov Ilya (iSazonov) Nov 27, 2018

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If logging settings refers to security then this make sense.
(Here I meant that all the settings listed can be either policy or regular)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@TravisEz13 Travis Plunk (TravisEz13) Nov 27, 2018

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These setting plus execution policy are Security related.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@TravisEz13 Travis Plunk (TravisEz13) Nov 27, 2018

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ModuleLogging also..

Transcription would not be set system wide, it would need to be per user or it's better to use scriptblock logging. IMHO.

cc Paul Higinbotham (@PaulHigin)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@rjmholt

Rob Holt (rjmholt) commented Nov 27, 2018

Copy link
Copy Markdown
Contributor

Felix Becker (@felixfbecker) I think JSON was chosen for the file to be portable outside of PowerShell. JSON has very strong and widespread tooling and if your configuration is broken and you can't start PowerShell, a PSD1 parser will be harder to come by. In the time since PowerShell modules were conceived, JSON has risen to dominance as a widespread, simple, well-supported and relatively safe way to encode this kind of simple structured data.

On the convention note, JSON doesn't seem to have an agreed convention and PascalCase allows a lower representational gap between the JSON file and the internal classes/settings it represents.

vexx32 and iSazonov reacted with thumbs up emoji
All reactions
  • 👍 2 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov

Ilya (iSazonov) commented Nov 27, 2018

Copy link
Copy Markdown
Contributor Author

Travis Plunk (@TravisEz13) Dongbo Wang (@daxian-dbw) What security setting can be in the config that we need to worry about? Or for simplicity, we should consider all settings as security?

I suggest the algorithm:

  • at startup
    • PowerShell Core has explicit defaults for all config settings (secure by default that allow avoid the need to crash at startup)
    • PowerShell Core tries to read the config and get settings
    • if any error then keep "current settings" that is defaults at the time and logging a warning (The logging will allow us to get feedback if users see something strange in the logs.).
  • at runtime
    • PowerShell Core tries to read the config async every n-minutes (5?) (Windows applies GPO every 90 minutes by default and we could implement a callback but seems . )
    • if any error then keep "current settings" and logging a warning

I suggest open the config with options "For Read" and "Share.ReadWrite". Latest allow us avoid a trouble (keeping current settings) if file already locked by another process for write long time. The above algorithm allows us to do it safely because no need to crash.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@rjmholt Rob Holt (rjmholt) mentioned this pull request Nov 27, 2018
Utils.DefaultPowerShellAppBase gives the wrong directory for $PSHOME when downloading nuget package PowerShell/PowerShell#8323
Closed
@rjmholt

Rob Holt (rjmholt) commented Nov 27, 2018 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Another thing that might be worth addressing in this is path handling in the config file. Since JSON is a static asset, writing a redistributable config file that works on all platforms is not possible if all paths are taken as literal.

Should PowerShell do any kind of handling for paths here? And what about environment or automatic variables?

I can imagine a desire for something like:

{
    "PSModulePath": "${env:windir}\\System32\\WindowsPowerShell\\v1.0\\Modules"
}

I can also imagine wanting to write something like:

{
    "PSModulePath": "$HOME/PowerShell/Modules<sep>$PSHOME/Modules"
}

and have it work on Windows, Linux and macOS with <sep> being the right path separator, $HOME and $PSHOME resolving properly, and the / in the paths working on Windows.

Finally, another question is, should we handle relative paths at all? Possibly as relative to the config file itself?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@TravisEz13

Travis Plunk (TravisEz13) commented Nov 27, 2018

Copy link
Copy Markdown
Member

Ilya (@iSazonov) Secure by default is difficult to achieve. We would have to generate a unique encryption key and setup protected event logging. We would need to store that configuration somewhere. What happens if we cannot store that? How do we know if we have already setup a default? Using a hardcoded default would be insecure. How do we secure the key we generate?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov

Ilya (iSazonov) commented Nov 28, 2018

Copy link
Copy Markdown
Contributor Author

Using a hardcoded default would be insecure. How do we secure the key we generate?

Travis Plunk (@TravisEz13) Under "secure by default" I meant that we hardcode the secure defaults internally in code.

not possible if all paths are taken as literal.

Rob Holt (@rjmholt) We can process literal paths in PowerShell (LiteralPath parameter). I don't see problems.
As for env variables and relative paths I don't know.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@rjmholt

Rob Holt (rjmholt) commented Nov 28, 2018

Copy link
Copy Markdown
Contributor

We can process literal paths in PowerShell (LiteralPath parameter).

By "literal" I mean, interpreting the path verbatim as .NET would, rather then resolving it in PowerShell. As far as I know, we currently just pass the paths straight to .NET APIs, but to get a cross-platform config we'd want to do /-\ conversion etc etc.

And thinking on it more, it might be worth having a short whitelist of variables like $HOME and $PSHOME that we guarantee usage of.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov

Ilya (iSazonov) commented Nov 28, 2018

Copy link
Copy Markdown
Contributor Author

we currently just pass the paths straight to .NET APIs, but to get a cross-platform config we'd want to do /-\ conversion etc etc.

Currently .Net Core does the normalization on Windows. Sample https://source.dot.net/#System.Private.CoreLib/shared/System/IO/Path.Windows.cs,220

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@rjmholt

Rob Holt (rjmholt) commented Nov 28, 2018

Copy link
Copy Markdown
Contributor

Currently .Net Core does the normalization on Windows. Sample https://source.dot.net/#System.Private.CoreLib/shared/System/IO/Path.Windows.cs,220

Absolutely, but in PowerShellEditorServices I've seen bugs where a \ in *nix isn't treated like a path separator. That's all I mean there.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@joeyaiello

Joey Aiello (joeyaiello) commented Mar 20, 2019

Copy link
Copy Markdown
Contributor

Hey Ilya (@iSazonov), we would love to take a hard look at an updated version of this. Would you mind giving it a read to make sure it makes sense with what's happened in the last year, as well as to fix the broken table you have near the beginning? Thanks!

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@joeyaiello Joey Aiello (joeyaiello) added the Review - Waiting on Author label Mar 20, 2019
Ilya (iSazonov) added 2 commits March 21, 2019 15:19
@iSazonov
Fix table
5092fe4
@iSazonov
Add Configuration defaults
6885504
@iSazonov

Ilya (iSazonov) commented Mar 21, 2019

Copy link
Copy Markdown
Contributor Author

Joey Aiello (@joeyaiello) Table was fixed. I added new section about defaults. I set out my vision. Your team can make changes to speed up the work if necessary.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@TravisEz13 Travis Plunk (TravisEz13) mentioned this pull request Apr 7, 2019
PS7 should also respect the old Windows PowerShell GPO registry settings PowerShell/PowerShell#9309
Closed
@iSazonov Ilya (iSazonov) mentioned this pull request May 12, 2019
How to maintain PowerShell in an Enterprise environment? PowerShell/PowerShell#9565
Closed
@joeyaiello

Joey Aiello (joeyaiello) commented Feb 25, 2020

Copy link
Copy Markdown
Contributor

Ilya (@iSazonov) is any of this one still relevant now that RFC0041 has been merged? If so, can you scope it to those changes? If not, can you close this PR?

Sorry, I know we've dragged our feet on this one, but I'm fairly certain a lot of this thinking served as the basis for RFC0041. Thanks for going through this exercise to help guide that one.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov

Ilya (iSazonov) commented Feb 26, 2020

Copy link
Copy Markdown
Contributor Author

Joey Aiello (@joeyaiello) Please look this https://github.com/PowerShell/PowerShell-RFC/blob/master/4-Experimental-Accepted/RFC0041-Policy.md#acknowledgement
I am not sure that I understand that is "a slightly different purpose" of the RFC0041 and that was rejected in the PR but this says that RFC0041 does not cover all from the PR.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@joeyaiello

Joey Aiello (joeyaiello) commented Mar 3, 2020

Copy link
Copy Markdown
Contributor

I'm not sure the underlying motivation of the PR matters so much as the implementation as it exists.

Is there an aspect of this RFC that you'd still like to offer forward that wasn't in RFC0041?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov

Ilya (iSazonov) commented Mar 23, 2020

Copy link
Copy Markdown
Contributor Author

Joey Aiello (@joeyaiello) After reviewing RFC0041 and the PR I find 2 gaps:

  1. GPP (group policy preferences). I think it is important for Enterprises. But this was rejected by MSFT team so I leave this to your team.
  2. Issue Some cmdlets and config require writing to $PSHOME\SessionConfig folder PowerShell#9278 should be addressed in new RFC and code
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov Ilya (iSazonov) closed this Mar 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@joeyaiello Joey Aiello (joeyaiello) Awaiting requested review from joeyaiello
@HemantMahawar Hemant Mahawar (HemantMahawar) Awaiting requested review from HemantMahawar
3 more reviewers
@rjmholt Rob Holt (rjmholt) rjmholt left review comments
@JamesWTruher James Truher (JamesWTruher) JamesWTruher left review comments
@TravisEz13 Travis Plunk (TravisEz13) TravisEz13 left review comments
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

Review - Waiting on Author

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

8 participants

@iSazonov @markekraus @SteveL-MSFT @TravisEz13 @felixfbecker @rjmholt @joeyaiello @JamesWTruher
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.