Commit Graph

4709 Commits

Author SHA1 Message Date
Dongbo Wang
dd0fbd63a1 Fix $LinuxInfo to be a Hashtable instead of an array of Hashtable's. (#3276)
Get-Content /etc/os-release returns an array of strings, which get feeded to ConvertFrom-StringData. Therefore, $LinuxInfo is actually an array of Hashtable instances before this change. Property access on $LinuxInfo like $LinuxInfo.ID happens to work because powershell supports accessing a property or calling a method on a collection of object, but it's inefficient.
After this fix, $LinuxInfo will be a Hashtable, and it's efficient to access its members.
2017-03-07 16:23:18 -08:00
Travis Plunk
5d97bc558a update build.psm1 to support packaging for opensuse 13.2 (#3274) 2017-03-07 15:03:38 -08:00
Dongbo Wang
60583b1b73 Fix a CMS test that fails in nightly build.
Add a certificate that cannot be used to encrypt data to verify an error condition.
2017-03-07 13:39:15 -08:00
Ilya
6198b9b943 Rename "generated" files (#3275)
1. GetEvent_Types_Ps1Xml.generated.cs -> GetEvent_Types_Ps1Xml.cs
2. TypesV3_Ps1Xml.generated.cs -> TypesV3_Ps1Xml.cs
2017-03-07 12:51:28 -08:00
jeffbi
97be759cc7 Do not reject Windows' reserved device names on non-Windows platforms. (#3252) 2017-03-07 10:29:20 -08:00
Travis Plunk
e734d44199 Add OpenSUSE 13.2 build support (#3254) 2017-03-06 17:30:14 -08:00
Steve Lee
45be249be8 Update README.md to add the section of Community Dashboard (#3256) 2017-03-06 17:28:42 -08:00
Paul Higinbotham
ba62cf1ea2 Fixed typos that caused test to fail. (#3268) 2017-03-06 17:26:38 -08:00
Andrew
1d1cffd0c5 Auto-mounted file system drives correctly created when mounted inside a module (#3034)
Fixes #2442
2017-03-06 16:26:06 -08:00
Paul Allen
39c0f58b6e Update psrp client nuget for linux/mac
Adds ntml over spnego for authentication between windows and centos7.3
and ubuntu 16.04.
Fixes a number of problems that stopped connection to
exchange/office365.
2017-03-06 16:12:42 -08:00
Staffan Gustafsson
b4049879d4 Adding Parent extended property to System.Diagnostics.Process (#2850) 2017-03-06 15:21:39 -08:00
James Truher [MSFT]
c6bd000e6d Add additional tests for Clear-Content to improve coverage (#3157)
Coverage has improved to more than 85% for Clear-Content
2017-03-06 13:57:09 -08:00
Kevin Marquette
f29b99ec6a Add PassThru support to Start-PSPester (#3205) 2017-03-06 13:13:34 -08:00
Lee303
b043b444db adds parameter sets to web cmdlets to allow for standard and non-stan… (#3142)
* adds parameter sets to web cmdlets to allow for standard and non-standard method verbs

* add CoreCLI implementation

* Adds CM alias and notnullempty for CustomMethod parameter

* Add tests for Invoke-[WebRequest|RestMethod] CustomMethod parameter

* Fix webcmdlet tests - incorrect parameter name
2017-03-06 11:41:14 -08:00
Keith Hill
4a0afd85cb Update VSCode install/debug instructions. (#3262) 2017-03-06 09:19:25 -08:00
Steve Lee
a2687bfb59 Allow profile directory creation failures for Service Account scenarios (#3244)
XDG profile directory creation can fail for accounts that do not have home directories.

The module analysis was trying to persist it's cache in an XDG profile directory.
The cache is less critical than it once was, so it's reasonable to not cache if there is no good place to do so.

Fixes #3011
2017-03-05 22:05:10 -08:00
Nicholas Willard
df0a390c2c Update Copyright notice to remove year (#3204) 2017-03-04 23:47:14 -08:00
Steve Lee
402ffeceb1 Update issue-management.md (#3253) 2017-03-04 22:51:21 -08:00
probonopd
669a34a27b Do not download from external sources (#3211)
This commit removes the external dependencies of the AppImage generation script by instead
downloading them from a known (and owned by Microsoft) location:
psgithub.file.core.windows.net.
2017-03-03 10:37:16 -08:00
Kyle Sferrazza
ca874e966b Add Arch Linux installation information (#3215) 2017-03-01 17:38:24 -08:00
PetSerAl
c490e36a58 Remove System.Array type data (#3231)
* Rename Types_Ps1Xml.generated.cs
* Remove <auto-generated> header from Types_Ps1Xml.cs
* Remove System.Array type data
* Update `Get-TypeData` tests
2017-03-01 12:58:03 -08:00
Dongbo Wang
fc30ae1d87 Port CmsMessage cmdlets and Get-PfxCertificate to powershell core (#3224) 2017-03-01 10:51:19 -08:00
Steve Lee
99d696f31f Fix Test-Modulemanifest to normalize paths correctly before validating (#3097)
Changed hard coded Windows directory separator and resolved path so the slashes are correct.
Throw if resolving file path returns more than one result

Fixes #2610
2017-03-01 10:36:02 -08:00
Paul Higinbotham
b4cb5e95a2 Implementation for Invoke-Command step-in remote debugging (#3015)
These changes provide the ability to debug remote running scripts started with the Invoke-Command cmdlet. The design is event based and provides new public events that allow subscribers to be notified when an Invoke-Command remote session is ready for debugging. Since Invoke-Command allows running scripts on multiple targets at once (fan-out) the notification event is raised for each remote session as it becomes ready for debugging. The subscriber to these events will be a script debugger implementation (such as PowerShell console, ISE, or VSCode) and will handle all debugging details such as simultaneously debugging multiple remote sessions at once in separate windows.

But these changes also include an internal implementation which is used by default if host debuggers don't want to handle the debugging details. This internal implementation is what PowerShell console, ISE uses so they can have this new behavior without having to modify their debugger implementations. The internal implementation serializes each remote session of Invoke-Command so that they can be debugged one at a time. The remote session debugger is "pushed" onto the internal debugger stack so that debugging transitions to the remote session. Existing debugging commands work so that the "quit" debugging command will stop the current remote session script from running and allow the next remote session to be debugged. Similarly the "continue" debugging command allows the script to continue running outside step mode and again go to the next remote session for debugging. The "stepout" debugging command steps out of all Invoke-Command remote sessions and lets the script continue to run for each remote session in parallel as they are normally run.

The purpose of Invoke-Command step-in remote debugging is allow seamless debugging of a local script that calls Invoke-Command on remote targets. But there is also a new Invoke-Command "-RemoteDebug" parameter that lets you Invoke-Command on the command line and have it drop directly into the debugger.

An example from the PowerShell command line looks like this:
```
PS C:\> C:\TestICM.ps1
Entering debug mode. Use h or ? for help.

Hit Command breakpoint on 'Invoke-Command'

At C:\TestICM.ps1:2 char:1
+ Invoke-Command -cn $computerName,paulhig-3 -File c:\LinuxScript.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[DBG]: PS C:\>> list

    1:  $computerName = "localhost"
    2:* Invoke-Command -cn $computerName,paulhig-3 -File c:\LinuxScript.ps1
    3:  "Test Complete!"

[DBG]: PS C:\>> stepin
At line:1 char:1
+ Write-Output "Running script on Linux!"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[paulhig-3]:[DBG]: [Process:14072]: [Runspace5]: PS C:\Users\paulhi\Documents>
```

Notice that the debugger "stepin" command transitioned from local script debugging to debugging the remote session on computer "paulhig-3", as can be seen by the change in the debugger prompt.

You can also do this from the command line to drop directly into the debugger
```
Invoke-Command -cn localhost -Script  $scriptblock -RemoteDebug
```

These changes also remove an old behavior that was incompatible with this new step-in feature. Previously if a remote session running script hit a break point it would stop in the debugger and go to the "disconnected session" state. This was to allow the user to reconnect using Enter-PSSession and then interactively debug the remote session script. This behavior has been removed and now the user needs to attach a debugger using the newer Debug-Runspace cmdlet.
2017-03-01 10:28:25 -08:00
Raghu Shantha [MSFT]
875ea100e3 Updated docker release images to pull powershell package from Microsoft Repo (#3219) 2017-02-28 17:17:04 -08:00
Paul Higinbotham
136213d6b4 Fix for race bug in WSMan command plugin instance close operation (#3203) 2017-02-27 15:15:58 -08:00
Jason Shirk
8cf7989b53 Change NestedModule to NestedModules in error message (#3214) 2017-02-27 15:11:12 -08:00
PetSerAl
ae37a9fafe Fix powershell to not crash on converting recursive array to bool (#3208) 2017-02-27 10:54:07 -08:00
Staffan Gustafsson
e3b59e0f51 Moving Import-PowerShellDatafile from script to cmdlet (#2750) 2017-02-26 16:50:28 -08:00
Steve Lee
c74b2a7670 return HTTP response for error status as part of exception (#3201) 2017-02-24 22:29:11 -08:00
Dongbo Wang
21c8a90cc1 Update a comment in Credential.cs to make it accurate (#3194) 2017-02-24 16:55:50 -08:00
Mike Richmond
254afcba04 Add instructions for installation on Nano Server (Fixes #3151) (#3195) 2017-02-24 15:38:29 -08:00
Kitt Holland
d69193e49c Prettier formatting for ConvertTo-Json output. #2736 (#2787)
* Prettier formatting for ConvertTo-Json output. #2736

This change standardizes JSON output to example given, as well as
codemaid and online lint tools.

Sample object used for testing:

@{
foo = @{
first = 'a'
second = 'bbbbbbbb'
}
barbarbarbar = @{
first = 'a'
second = 'bbbbbbbb'
NestedArray = @(
'Test3'
'Test4'
'Test5'
3
4
)
NestedObject = @{
MoreObject = 'AnotherObject'
TestBool = $true
}
}
array = @(
'Thing1'
'Thing2'
)
dan = 15
} | ConvertTo-Json

* Updated CoreCLR implementation to use NewtonSoft Indented Formatting

I did not change the FullCLR behavior, I was not sure if you meant to
revert my changes or to leave it as is in the current pull request.

* Added tests that validate pretty Json output.

Not sure if there is a better thought on how to implement these. The
first two fail against current master, but succeed once this PR is
applied. Third test is successful prior and post this PR.

* Moved tests and removed extraneous file.

Moved pretty/compressed json tests from standalone file into the
existing ConvertTo-Json test file.

* Updated tests for cross-platform support
2017-02-24 14:40:11 -08:00
Dongbo Wang
b614906f40 Update the PR template to remove links (#3193) 2017-02-23 16:40:20 -08:00
Jeffrey Snover
e80fe743d2 add a timeout to test-connection (#2492) 2017-02-23 13:29:18 -08:00
Dongbo Wang
a1edf8fba6 Define roles and their responsibilities in a PR (#3168) 2017-02-23 13:13:06 -08:00
Dongbo Wang
8b8d20d56b Work around the hang issue that happens when running class basic parsing tests (#3191) 2017-02-23 13:05:09 -08:00
James Truher [MSFT]
9e27f4a64c Implement -version parameter in console host (address part of https:/… (#3115)
* Implement -version parameter in console host (address part of https://github.com/PowerShell/PowerShell/issues/1084)

This does not support providing a specific version to run, but
like most other *nix commands, -version will now return the version
of the PowerShell Engine. 'powershell' is prepended to the output to
match other *nix commands. We are using gitcommitid which includes more
info about the build.
2017-02-23 09:36:50 -08:00
Dongbo Wang
16ff1978e1 Fix casting single element array to generic collection (#3170) 2017-02-22 23:10:06 -08:00
jeffbi
a557c03570 Provide additional tests for the *-Job cmdlets (#3110) 2017-02-22 08:46:27 -08:00
Steve Lee
152de40852 Merge pull request #2082 from andschwa/appimage
Generate AppImage
2017-02-21 10:41:24 -08:00
noahleigh
69841d5c57 Fixed broken link in create-powershell-scripts.md (#3171)
* Changed broken link to a working blog post

"run-ps" isn't a linkable document, so I changed the "Running PowerShell Scripts Is as Easy as 1-2-3" to link to an external article on Windows IT Pro with the same name.
2017-02-19 17:02:29 -08:00
Ilya
e10cbff354 Add ShouldProcess to New-FileCatalog and Test-FileCatalog (#3074)
* Add ShouldProcess to New-FileCatalog and Test-FileCatalog

Close #3068

Add support `-WhatIf` and `-Confirm` to `New-FileCatalog` and add a
test.
`Test-FileCatalog` has a common code base with `New-FileCatalog` so it
automatically get the same. I believe that adding a separate test in
this case doesn't make sense.

* Fiz after code review

Remove  _ShouldProcess
Add var in test
2017-02-17 16:32:58 -08:00
Ilya
88c8be75f2 Get-ComputerInfo - fix typo in property name (#3167) 2017-02-17 13:10:51 -08:00
Andrew Schwartzmeyer
db93f411da Add Third Party Notices for AppImage
This license specifically covers the additional libraries that
are bundled inside the AppImage archive.
2017-02-17 11:09:36 -08:00
Andrew Schwartzmeyer
8185fd9350 Add AppImage to CI 2017-02-17 11:09:36 -08:00
probonopd
0c1b11724e Add AppImage documentation 2017-02-17 11:09:36 -08:00
probonopd
0e9d85084f Add AppImage tooling
* Use icon from local repository
  https://github.com/PowerShell/PowerShell/pull/2027#discussion_r75960616

* Use the deb that has been generated in this build

* Copyright and license
  https://github.com/PowerShell/PowerShell/pull/2027#discussion_r75960505

* MIT License for appimage.sh
  https://github.com/PowerShell/PowerShell/pull/2027#discussion_r75960505

* Full text of the MIT License is in license_thirdparty_proprietary.txt

* Clarify license and clean up unused code
  https://github.com/PowerShell/PowerShell/pull/2027#discussion_r76104601

* Mark appimage.sh as executable
2017-02-17 11:07:10 -08:00
Dongbo Wang
5a8fa57278 Fix PSModuleInfo.CaptureLocals to not do ValidateAttribute check when capturing variables from the caller's scope (#3149)
Fix PSModuleInfo.CaptureLocals to not do ValidateAttribute check when capturing variables from the caller's scope
2017-02-16 21:25:23 -08:00
Paul Higinbotham
c266c8ebca Fix for duplicate types in TypeTable (#3141)
When a TypeTable is created it includes the types from type files provided along with references to the type files. When the InitialSessionState (ISS) object processes these types it reads the type files again and ends up with duplicate type entries. PowerShell V5.1 ISS type processing was re-written to improve performance and no longer removes duplicate types, so that this scenario (runspace ISS reuse) results in errors causing a regression.

The fix is to copy only type data when a TypeTable is passed to the ISS.
2017-02-16 16:28:29 -08:00