Windows 10 Gets Core Console Host Enhancements (nivot.org)
x0n writes: As of Windows 10 TH2 (10.0.1058), the core console subsystem has support for a large number of ANSI and VT100 escape sequences. This is likely to prepare for full Open SSH server/client integration, which is already underway over on github. It looks like xterm is finally coming to Windows. OpenSSH was previously announced (last year) by the very forward-looking PowerShell team. The linked article provides some context, and explains that the console host isn't the same as either cmd.exe or powershell.exe, but there is a lot of overlap in functionality.
Is it just me, or is this actually news for nerds?
So let me get this straight. Windows is getting the kind of terminal support *nix has had for nearly 50 years? Wow, I mean, how fucking innovative of MS.
Fuck fuck fuck.
The world's burning. Moped Jesus spotted on I50. Details at 11.
I can only hope you can run a native version of Bash with a set of GNU or Posix versions of the toolset, and I can send Powershell to the shithole that horrible scripting language belongs.
The world's burning. Moped Jesus spotted on I50. Details at 11.
For those of us that have no choice but to manage Windows and *nix boxes, it's a pain in the ass to have to context switch between RDP and ssh'ing. This will make our job much easier. Between all the open source software, github, and stuff like this, I love the new MS. Of course our real servers will always run FreeBSD.
This, friends is how you break SSH security.
You use Windows to SSH , and Windows 10 "telemetries" to Microsoft, thereby given them access to the encrypted traffic. What do you call this strategy where you fool people into initiating secure communications on an insecure device?
Entia non sunt multiplicanda praeter necessitatem.
This is.
A lot of people clung to XP up to the end too. Some even pay to keep it supported by MS or third party. But all OS have a usable lifespan in normal home or corporate implementations.
Powershell has some great features and ideas. And whilst it can be great to script in, it is very long winded to just type and use in an adhoc fashion. Sure there's aliases but its still a bit tedious.
The other thing power shell needs is more social interaction and perhaps just a bit more fun. I guess it's still quite new and evolving. Bash is ancient relatively speaking.
I'd like to see stuff like figlet, write, wall, mutt natively in powershell so it becomes more of a destination than a mere dull workhorse of productivity.
Still running the general release 10240 build.
Allegedly there was some November update that was aborted.
I'd like to see stuff like figlet, write, wall, mutt natively in powershell so it becomes more of a destination than a mere dull workhorse of productivity.
Be patient - they have to get the keylogger working correctly first.
The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
DOSBox?
Microsoft stopped shipping MSDOS (via Windows Millennium Edition) a long time ago. If you've had 15 years to transition off DOS and Win16 applications that worked only via a compatibility mode of XP then I don't think you can blame MS for not giving your customers ample time to update.
Slashdot needs ones. Seriously, for a community that claims to hate FUD, the OSS types sure like spreading it when it is about the "right" groups. If you actually care about what kinds of things the telemetry communicates back at various settings, the information is all out there for you. No, SSH data isn't one of them. However I am going to imagine you don't, and this is just crap you want to fling at "the bad guys" because you can.
Also a thought for you: Your OS, by definition, has access to anything any program on the system is doing. What would stop it from looking in at any 3rd party SSH server you ran, if you think it does that?
Backwards compatibility isn't one of the important goals, and in some cases, incompatibility is the goal.
And yet the link you supplied to support this theory states that the AARD code only affected a particular beta version of the operating system. That situation was more about targeting tests than lack of backwards compatibility.
A lot of code that stopped working (for example in the change to Vista) was because the developers did things that were outside the published API and often specifically discouraged by the official documentation. Despite what a lot of people say, Microsoft does work hard to ensure backwards compatibility. I have been able to run programs written for Windows 3.1 on my Windows 7 system. It would probably work on the 32-bit version of Windows 10 too, but I haven't tested that.
I needed that functionality on Win 7, along with other tools.
Dropped Cygwin onto it, and it works pretty well.
http://cygwin.com/
I wouldn't trust Microsofts SSH implementation, it seems every new day reveals some surveillance feature. From disks that encrypt, but send off the password to Microsoft, to Telemetry that continues to send data to UK servers (which is in the grip of GCHQ mass surveillance), even if you opt out.
So what would their SSH server do? Backup passwords to Microsoft? Clone the stream to a UK server?
No but I wouldn't expect a company to indefinitely support a compatibility module for a technology that they haven't actively developed for over 2 decades. I don't hear anyone complaining in 2016 that OS X won't natively run Mac OS 7.1 applications from the early 90s.
isn't the same as either cmd.exe or powershell.exe, but there is a lot of overlap in functionality
Sorry, Major Tom, we have a long way to go
when we still have to apologize for their efforts.
It has been an interesting journey, Ground Control.
WARNING: Smartphones have side effects--most of them undocumented.
Pity there isn't a -1; Conspiracy Theory mod
Modding should really be happening along more than one dimension. With a nerd crowd you could easily have multiple scoring systems side-by-side. For example, a 543 might be 5 (insightful or informative), 4(funny), 3(mainstream v. conspiracy). Someone can have an insightful comment that is a bit conspiracy theorist--like most accurate comments about spying that would have been made pre-Snowden, for example.
I applaud them finally embracing a sensible remote shell strategy. I recall many heated debates where MS would say all sorts of nasty things about ssh.
However, I can't say that implementing decades old terminal function and ssh is 'forward looking'.
XML is like violence. If it doesn't solve the problem, use more.
I've been wanting Windows to get full Unix emulation, and even better, built in compiler support like a Unix box. I want to be able to test and run python scripts that will run on Unix vms on my box through pycharm without having to use a remote vm environment. Right now, it's easier to use a macbook pro. You'd think some monkey in marketing would have caught on to this fact.
Of course ntfs file permissions behave differently than Unix file permissions but I think that is reconcilable. I know there is cygwin but that's not the same, it's more effort with that, and a lot if things can't live in both worlds.
Sycraft-fu says that you are an idiotic, paranoid, conspiracy theorist for daring to state that Windows 10 contains spyware.
I've done a lot of neat stuff with powershell, for example I created a powershell script that gathered information about one system (using the Get-WmiObject Win32_SystemEnclosure to retrieve i.e. a computer's brand name, serial number, bios version, etc) and opened a TCP socket to feed that information to another system across the network that had a listening server which was also written in powershell.
But yeah, it totally violates the KISS principle. It's hard as fuck to look up certain information about the system because the way it's stored and retrieved is almost never intuitive (for example, you literally have to generate an XML file and then parse said file in order to get some stuff.)
It's also very hard to figure out how to do something you might not have done before, or have done very rarely, because the command names are so long that they're difficult to remember. There are shorter aliases, but they don't have any consistent naming (for example, Get-WmiObject can be shorthanded as gwmi, whereas a command like Add-PSSnapIn is shorthanded as asnp) making them also harder to remember.
I would much rather just have bash, and do that server stuff I did with tools like netcat, which although uses a separate binary, is FAR simpler than the method I used with powershell, while also having tools like dd to be able to manipulate binary blobs, and dummy block devices like /dev/zero, /dev/random, and even the ability to directly read/write to hard disks as if they were ordinary files.
If Microsoft did that, and had a good package manager for command line tools with the ability to add third-party repositories (like aptitude does) with options to compile from source (like portage does) I might actually consider using it for servers now and then. But because it doesn't, I only use it for servers either when an application requires it (as in, no Linux version available, but this is quite rare for applications meant for servers) or for active directory (also only occasionally needed.)
Sycraft-fu says that you are an idiotic, paranoid, conspiracy theorist for daring to state that Windows 10 contains spyware.
He's just practicing the latest version of denialism.
The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
I've done a lot of neat stuff with powershell, for example I created a powershell script that gathered information about one system (using the Get-WmiObject Win32_SystemEnclosure to retrieve i.e. a computer's brand name, serial number, bios version, etc) and opened a TCP socket to feed that information to another system across the network that had a listening server which was also written in powershell.
You work for Microsoft on Windows 10 then?
This. I'd love the ability to provision a Windows box, toss a SSH key on it and have it ready to be managed via Ansible.
On the development side, being able to Vagrant up a Windows box as easily as I do other boxes would be nice, and make life a -lot- easier when it comes to testing. If I need to create a Windows box to make sure a certain set of Registry settings works, it would be nice to create a base box, boot it, have Vagrant provision it, and have it ready to go. Then, when I want to prove my stuff works to another developer, I point them to the repository with my Vagrantfile and provisioning scripts.
Vagrant is a wonderful tool for testing in the UNIX environment. It (pretty much) guarantees that I will have the exact same environment for testing as the developer, and if their code works in a Vagrant box, it will work in mine. I'd love to have the same ease of use on the Windows side. The closest I can come to this is a WIM image and a directory full of MSI files.
Those who do not learn from Unix are doomed to re-invent it.... poorly.
Maybe next decade they will let more than 2-3 folks login via RDP at once without paying Citrix or MS buku bucks, but I don't want to go crazy here. They almost have all the features of LVM in their new storage model, now also... almost. Maybe in the 2020's they'll port over an ancient copy of ZFS.
Fuck MS they cannot be forgiven for previous skulduggery. I can see all the MS Powershell hipsters patting each other on the ass for this, but I could give a fuck what 20-40 year old features they are finally able to reproduce.... poorly.
It's also very hard to figure out how to do something you might not have done before, or have done very rarely, because the command names are so long that they're difficult to remember. There are shorter aliases, but they don't have any consistent naming
How can you complain that PS cmdlets are both too long to type and difficult to discover? They for the most part follow a very straightforward convention of [approved verb]-[specific noun]. Like Get-childitem, add-content, export-csv, etc. There is no rhyme or reason to the naming on Unix commands. Good luck discovering the utility you're looking for the first time without Google. And you really can set aliases quickly in PS so I see that method as being the best of both worlds. Complain all you want about ps performance or lateness on ssh or whatever, but it is incredibly easy when it comes to discovery.
The Daddy casts sleep on the Baby. The Baby resists!
What do you mean no rhyme or reason? The basic toolset; cat, sh, mv, rm, and so forth are mnemonics. The point being to make the commands as short as possible while retaining some semblance of meaning. For me Powershell's absurdly verbose naming scheme is as good a sign as any that Microsoft has never really understood CLI work.
The world's burning. Moped Jesus spotted on I50. Details at 11.
not flamebait; just the facts, ma'am.
The surprise is, MS servers want to collect data on this turd. Very dis turding...
WARNING: Smartphones have side effects--most of them undocumented.
Windows Is Dead.
Exactly! Using Windows 7 Pro at home and at work here.
Not sure why anyone would care ... the whole "Windows 10 experience" is such a horrific platform to try and do any work done on ... fixing the shell is a noble step indeed, but there are so many other show stoppers on that system, that its just a drop in the ocean.
Microsoft try very hard to retain backwards compatibility, and there are all kinds of nasty hacks for that purpose...
The problem is that many things in windows were just so poorly designed that improvements can't really be made without breaking compatibility, scroll up and look at the post about console windows for instance.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
Fifteen mentions of Windows on the front page. Is this how slashot is going to re-connect with the technology sector?
OpenSSH came out in 1999. We are now in 2016. Which means Windows in 17 years behind the curve. When OpenSSH was available for BSD Windows ME was the new hotness and Windows 2000 did not exist yet, never mind XP and 7.
What part of "Forward" am I missing?
The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
For me Powershell's absurdly verbose naming scheme is as good a sign as any that Microsoft has never really understood CLI work.
Once upon a time in a galaxy long long ago there was an operating system that had batch scripting and short terse commands like: DEL, DIR, TYPE, CD, ATTRIB, COPY, ECHO... It ran on machines that had 640K of memory because that ought to be enough for anyone...
I think Microsoft did actually understand at one time but somehow that was lost somewhere along the way...
We'll make great pets
They haven't. When I first tried to use PowerShell it frustrated me so much I wrote an entire article about it. Calling PowerShell a shell is a huge stretch: it's really just a strange and verbose scripting language.
When Windows NT first made an appearance all the Unix people were told your obsession with terminals is so outmoded that we haven't put support into NT.
I think the Unix guys are getting the last laugh...
LOL I did that in an IT shop that was primarily Microsoft driven. I was working Tier 2 tech support (also called Desktop Support) and because I wasn't a Tier 3 tech (system engineer they were called) I had to work within the limitations of what the systems already had installed. The actual system engineers were retarded though and didn't know how to manage active directory worth shit, so I ended up finding broken shit all the time and having to build workarounds for said broken shit.
This particular script was meant as part of a system to automate provisioning employee laptops, because their existing process was rather manual, and usually took about 30 minutes. After I wrote up a bunch of powershell scripts, I turned it into a 1 minute job. This is what the tech 3 guys should have been doing, and if so they could have come up with a more elegant solution. But then again, I found that they had a very narrow understanding of Microsoft infrastructure, of which I care little for myself as I'm mainly a network guy (speak of which, I was frustrated when they had all of about zero understanding of the OSI model, which when it came down to troubleshooting a problem with NTLM authentication, they blamed it on a wifi driver when it was obviously a session layer problem, and they had no fucking clue what "session layer" even means.)
But you know, they're Tech 3 and I'm only Tech 2, so they're right of course. Fortunately I don't work there anymore.
How can you complain that PS cmdlets are both too long to type and difficult to discover? They for the most part follow a very straightforward convention of [approved verb]-[specific noun]. Like Get-childitem, add-content, export-csv, etc.
Ok here's the problem: It's never clear when you need to get content or get object or get whatever other verb they want to use. There's so much different ways of retrieving information because the way its stored is never consistent. For example, if I want information about the CPU, that's a WMI object. If I want information about running processes, that's another type of object.
But bash? Everything can be treated as an ordinary file. EVERYTHING. All system objects that you want to examine can be grabbed using THE SAME COMMANDS, thus parsing those objects feels identical and very consistent. Once you are familiar with cat, dd, grep, sort, sed, and awk, that's it, you can manipulate any object you want however you want.
But with powershell, with a new object type comes a new command to learn along with its syntax and quirks.
Why would you use vi instead of vim?
Change is certain; progress is not obligatory.
Most applications seem to be running fine here?
If you want to see a few decades of disaster (or lack of) with backwards compatibility though... Just look at OS X.
Change is certain; progress is not obligatory.
If it is feature-ful enough to complete with the 3rd party terminal clients companies could save a lot of money when they migrate to windows 10.
The basic toolset; cat, sh, mv, rm, and so forth are mnemonics.
Funny you used those examples. Three out of the four of those work out of the box in PowerShell because MS included them as aliases. You can be as sleek and incomprehensible as you would like in PS. Nobody is stopping you.
For me Powershell's absurdly verbose naming scheme is as good a sign as any that Microsoft has never really understood CLI work.
Again... see comment re: aliases. New-Alias [alias] [cmdlet].
Having both the long name when you are trying to discover commands and shorter aliases for day to day work is convenient. I use PowerShell day in and day out at work, and there are lots of problems with it. The uniform naming convention is a strength, not handicap.
The Daddy casts sleep on the Baby. The Baby resists!
Hey, buddy, don't come crying to me when you come home one day and discover that Clippy has gone through your underwear and sock drawers, neatly folded and organized all the above, discarded the ones with holes in them, ordered replacements, and emailed you a recommendation for brands of non-chlorine bleach to get those nasty stains out of the crotch of your tighty-whities.
Are YOU using the TOOL, or is the TOOL using YOU? Think about it!
Windows will get a boost, and Linux gets generified?
Time for a new Political party in the US (or two!) One is off the rails Other cant pony up a leader.
And I can create Powershell like aliases in Bash. What precisely is your point? The naming scheme is terribly verbose.
The world's burning. Moped Jesus spotted on I50. Details at 11.
It is verbose so you can find new commands on your own, and so you know the general function of something by its name. If someone learns the help system (get-help) and command discovery (get-command), it is usually easy to find a command. All information retrieval commands start with Get. All commands that change settings start with Set.
Please tell me, because I have a lot to learn in *nix, how would I figure out to use chmod to change permissions if I was previously unaware of the command name? How do I discover the correct commands without asking someone online or offline? By the way, the command to change file permissions (or other system object permissions) in PS, set-acl, is really unwieldy. If I were having to use it a lot on the fly in the command line, I would probably end up writing a helper function to make it simpler to supply the user and permissions level.
The Daddy casts sleep on the Baby. The Baby resists!
If you are that unaware of the system, anything less than a book isnt going to help. It's a crap analogy.
The world's burning. Moped Jesus spotted on I50. Details at 11.
For example, if I want information about the CPU, that's a WMI object.
That's a perfect example of were MS dropped the ball. WMI is very powerful, very inconsistent, and very slow. You use Get-WMIObject because there is no PS native command to get that information like there should be. It's duct tape for your duct tape.
The Daddy casts sleep on the Baby. The Baby resists!
Is that to say all config files in Unix are consistent?
They're all consistent in that they're all just plain text. All you have to do is open it and you'll know what sed parameters you want to use to extract the value you want. For example, I wrote a script that does autodiscovery of your mythtv mysql username and password by pulling it directly from a config xml file, and I didn't even need to get a special xml parser to do it. That code looks like this:
DBUSER="$(awk -F '[]' '/UserName/{print $3}' $CONFIGXML)"
DBPASS="$(awk -F '[]' '/Password/{print $3}' $CONFIGXML)"
I didn't know how to do this before I wrote that, by the way, I just looked up the syntax for awk and got it to work. I tried parsing XML in a similar manner in powershell once, and could never figure it out and just gave up.
I'm not sure you chose the best examples...
Please tell me, because I have a lot to learn in *nix, how would I figure out to use chmod to change permissions if I was previously unaware of the command name?
You said "change permissions", so maybe try "ch[tab][tab]", where you'll find a bunch of commands that change things (attributes, permissions, group, password, virtual terminal, etc).
Though I've never got into the habit of using it, I believe the recommended way, via the shell at least, is to use "info". So, you would type "info", it'd bring up the default page, then you'd search for "permission" by typing "/" for search (which is a common idiom) then typing permission and hitting enter. The first entry on my system is for "File permissions: (coreutils)File permissions.". Hit enter on it. It gives some brief into and another menu. Select the "Symbolic Names", and then there's info on that and links to how to set, copy, change special bits, etc.
By the way, the command to change file permissions (or other system object permissions) in PS, set-acl...
How would you find that? I assume you'd start by typing "set-", but then what? Why would you think to type "acl" for file permissions?
And yes, I know what "acl" stands for, but that's no more clear to someone searching for the command than chmod. Even if you were looking for "acl", you'd still end up finding "chacl", which does the same job as chmod.
I'm not sure if the Powershell team could ever be considered 'forward looking' if all they ever manage to do is port more parts of *nix into Windows - I mean, thats all Microsoft does. "How can we make Windows 3.1 more like *nix?". At the same time they appear to pull in both directions "easier to use, touch interfaces, tiles-the-size-of-your-face" all the way over to "Windows version without GUI, poorly documented proprietary CLI with invisible dependencies".
I think if the Powershell team were forward looking in the slightest, they would have implemented SSH has the base of powershell, and created powershell commands into that environment, rather than deploying Powershell as it is, which is a bastardization of bash that duplicates the functionality of Open SSH with a stack of proprietary WMI instrument abstractions. In fact, I'd go a step further, Microsoft. Either fire the Powershell team, or ditch the Open SSH effort, because the two environments are not necessary, and I can only predict that it will expose more attack surface rather than providing a useful management interface.
Please tell me, because I have a lot to learn in *nix, how would I figure out to use chmod to change permissions if I was previously unaware of the command name?
apropos permission
apropos file
apropos change
Bingo Dictionary - Pragmatist, n. A myopic idealist.
Microsoft is the troll here, NOT ME! Will someone please boot the Microsoft shills off the site or something?
Are YOU using the TOOL, or is the TOOL using YOU? Think about it!
Please tell me, because I have a lot to learn in *nix, how would I figure out to use chmod to change permissions if I was previously unaware of the command name?
apropos permission apropos file apropos change
Thank you so much. This is immensely helpful.
The Daddy casts sleep on the Baby. The Baby resists!
That was funny, but the scary part is that you may be right about it.
Except that DOS was bought from someone else. Micro$oft simply did not change the commands.