nathan-alden-sr / windows-10-tracking

PowerShell script that enables or disables various tracking components in Windows 10
Apache License 2.0
94 stars 2 forks source link

Collaborate with similar projects on GitHub? #6

Closed AdamJohanssen closed 8 years ago

AdamJohanssen commented 8 years ago

Hi Nathan,

Thanks a lot for these scripts. These came in handy when setting up a new machine with Windows 10.

As I was looking for this, I came across a bunch of projects on GitHub that are all trying to do similar things. I am wondering if there is any benefit to combining all these disparate projects under one roof. I know as an end user, it would be massively helpful for me. It would also help with documentation, perhaps allowing users to pick and choose what settings to apply. And perhaps a GUI tool that can leverage these scripts and make it even easier to end users to use/apply these changes (I think @piqus is working on this).

I am opening this issue with the intent of starting a discussion around that subject. I am not a developer myself but I am hoping there is some interest in this.

//cc

@W4RH4WK @WindowsLies @dfkt @10se1ucgo @Nummer @lordfiSh @hahndorf @Ugion @CHEF-KOCH @equk @Pwnadog @AeroXbird @windowslies2 @pragmatrix @ClubObsidian @link07 @brad-x @SeregaSPb @bmiller08 @circuitStatic @jaapbrasser @Battleroid @virtualmarc @sehams @MichiMunich @Haraguroicha @DiamondValve @ldepandis @Th3Shadowbroker @plitc @IMMORTAL-DEATH @tomchappelow @wallentx @Raptors06 @feskyde

Ugion commented 8 years ago

I would certainly be open to working with other devs, but I don't really work on my project.

10se1ucgo commented 8 years ago

Mine doesn't really use scripts for it's actions and things are usually done with the subprocess and PyWin32 modules in Python. As for collaboration, the projects are open source, so devs can easily borrow stuff from each other.

ghost commented 8 years ago

Beides the limited time I have for coding I would surely be willing to contribute to such a program as long as it remains open source and ads free.

IMMORTAL-DEATH commented 8 years ago

I would be up for working with other devs too but I think there is already a tool for this.

piotrkubisa commented 8 years ago

Yep I started doing something like this with @Cyberzwerg (first the tweak tool then the Plugger, but we have unexpected problem to cover some free time for development process. Well, I am currently doing my bests but, if there would be more attention from community then we will be able to ship it faster and better.

Our idea meets your suggestion which gives something like "package-manager" but in the github-way (just like SublimeText) with great UI based on Atom/Electron and React. Plus we do not stopped on Win10 - we plan developing a cross-OS application.

IMMORTAL-DEATH commented 8 years ago

I wouldn't have much time to work on it due to current projects at work but if it was open I would try my best. On 21 Sep 2015 19:29, "Piotr Kubisa" notifications@github.com wrote:

Yep I started doing something like this with @Cyberzwerg https://github.com/Cyberzwerg (first the tweak tool https://github.com/piqus/windows-tweak-tool then the Plugger https://github.com/Plugger-io/plugger, but we have unexpected problem to cover some free time for development process. Well, I am currently doing my bests but, if there would be more attention from community then we will be able to ship it faster and better.

Our idea meets your suggestion which gives something like "package-manager" but in the github-way (just like SublimeText https://packagecontrol.io/) with great UI based on Atom/Electron http://electron.atom.io/ and React. Plus we do not stopped on Win10.

— Reply to this email directly or view it on GitHub https://github.com/nathan-alden/windows-10-tracking/issues/6#issuecomment-142068652 .

ghost commented 8 years ago

It could be an interesting approach to built such a GUI by not implementing these functions into the program itself but by creating some kind of "environment" where scripts are called from. Alongside a standard set of scripts users could create, upload and share their own scripts, allowing the tool to grow in function without the need of maintaining these extra scripts as part of the main development.

piotrkubisa commented 8 years ago

It is great to hear that @IMMORTAL-DEATH! I really appreciate it.

piotrkubisa commented 8 years ago

@sehams It is exactly what I am going to develop! With the best user-experience on the progress of task(s) which were executed.

lordfiSh commented 8 years ago

migrated from Autoit to C# with my program, but since I just started C# its not that easy. If someone want to continue: https://github.com/lordfiSh/win10privacyfix2

Screenshot of 0.2

Sad thing is that serval big sites wrote about this tool, but I never finished it :/

bmiller08 commented 8 years ago

Would gladly contribute scripts, registry patches, etc to something like @sehams mentioned and @piqus appears to be interested in developing. As others have mentioned, I don't have a ton of time, but am interested.

piotrkubisa commented 8 years ago

It would be great to start from scratch with your support! I really apreciate any support, suggestion or idea which can unite our work and free time (even few minutes in the week) to build something better than XYZ or ZYX tool which ship useful and usable thingies but is not.. erm, fabulous.

@sehams, @bmiller08, @lordfiSh, @IMMORTAL-DEATH, @Ugion It is great hearing from you with such awesome news!

AdamJohanssen commented 8 years ago

I think it would be helpful to come up with a central repo for scripts that can be run from @piqus' tool. People can still have their own repos for additional customization's they need but for all the basics (in this case, Windows 10 related privacy fixes), I think have one repo with well documented scripts (with explanations, roll back instructions, etc.) would be ideal.

ghost commented 8 years ago

I created my script to remove some unneeded "modern applications" pre-installed on W10, and some features that I not make use of, as say, is a personal project. But if this script if used for something other project, feel free to do it, is under the WTFPL license :smile:

Sorry for my bad english, greetings from Argentina!

nathan-alden-sr commented 8 years ago

Hi, folks. Sorry I haven't replied earlier.

Unfortunately for me, I am too busy with other work to contribute much to this project. The reason I created these PowerShell scripts is because of a thread on Hacker News (https://news.ycombinator.com) mentioning the project that my scripts are based on. As an avid PowerShell user, it wasn't much work to convert over the core of the original work to PowerShell. I never expected this idea to become a movement of sorts, but I applaud everyone's efforts to try and put control of Windows back in the hands of its users.

You have my full support. Please use as many of my scripts as you want. As an architect, it would be cool to see the end result of your collective work be easily extensible; a GUI sitting on top of bare PowerShell scripts would satisfy the point-and-click crowd and the system administrator crowd. So much of Windows' functionality can now be accessed through PowerShell that it doesn't make much sense to code the features in a compiled programming language.

If anyone remembers the early Windows days, there was a program called Microsoft PowerToys that did similar things, albeit probably not privacy-related. Just an interesting bit of trivia for you younger developers. :)

nathan-alden-sr commented 8 years ago

About managing a project: My recommendation is for anyone interested in contributing to elect betweeen one and three "product managers" who can oversee all the feature requests and act as chief facilitators/coordinators for contributors. I don't have any experience in managing open-source projects, but it seems like that might be the way to go.

10se1ucgo commented 8 years ago

It does make sense to not use PowerShell, why trust proprietary software created by MS, if you're specifically aiming to block things MS does? Makes sense to use PowerShell for specific tasks (e.g. removing Metro apps) but everything else should be done as disconnected as possible. Sure, you can argue that the OS itself is a Microsoft OS and that we shouldn't trust anything, but it's the closest we can get.

ocdtrekkie commented 8 years ago

@10se1ucgo That is a somewhat useless suggestion, given that you're making changes to settings on a proprietary OS by Microsoft, which their OS can disregard at their leisure.

PowerShell makes the most sense because it's built into Windows. It is the most direct and best supported way to script these changes. The last thing I want is to install a bunch of software just to change some settings for me.

If you really want to prevent Microsoft from screwing with your blocks, you need a separate device, like a router, blocking the telemetry down the line.

ghost commented 8 years ago

Like most here, I'm happy to contribute what I can, but time is an issue these days!

AdamJohanssen commented 8 years ago

@10se1ucgo I think the problem is from an administrator/sys ops perspective, PowerShell is the go-to solution for maintaining Windows boxes. There are other ways of administering Windows, but with PowerShell being built-in, it makes too much sense not to use it.

10se1ucgo commented 8 years ago

@ocdtrekkie Looks like you didn't read my last point, where I specifically addressed that issue. Either way, you don't need to install anything, a small executable will do the trick. (Unfortunately, as I have to bundle everything with mine, including the GUI module and python27 runtime, the size comes out to be about ~6.7 MB when compressed)

@AdamJohanssen Yeah that makes more sense, thanks.

ocdtrekkie commented 8 years ago

@10se1ucgo It doesn't really address the concern. It just means you realized your comment made no sense. Microsoft has no reason to interfere with how PowerShell configures Windows settings, it'd be self-defeating for them to cripple PowerShell. If they want to disregard these settings, they'll just disregard them, not prevent your PowerShell from working right.

And a small executable is a small vulnerability. EVERY piece of software I put on one of my servers or desktops is a vulnerability. PowerShell is already there, so it doesn't increase my risk at all in using it.

ocdtrekkie commented 8 years ago

And to be clear, I'm not saying doing it with Python is bad, but that a lot of us would much rather it be done with PowerShell.

10se1ucgo commented 8 years ago

I don't have a problem with using PowerShell, I just think that alternatives are better. In fact, Python is not the best for this either. If I could port my thing to C++ I gladly would.

Also, if you're running this from a sysadmin perspective, chances are you're using Enterprise and you would need any of this stuff. That is, if you trust MS.

Though, I don't see why a PowerShell script is less of a liability than an executeable, as both PowerShell and Python can be extremely powerful and cause issues.

Either way, I don't really care/it doesn't matter, just a suggestion.

ocdtrekkie commented 8 years ago

@10se1ucgo A lot of businesses actually end up using OEM licensing rather than Enterprise licensing. Because when I buy a PC from Dell, it has a Windows Pro OEM license on it, and it'd be silly for me to spend money buying an Enterprise license just to replace the existing OEM license.

At a certain scale, larger enterprises do, in fact, do that, just because automating away worrying about license keys and stuff becomes worth it to them. But a ton of businesses with sensitive data aren't using Enterprise licenses, which is why Microsoft's unwillingness to let Pro users shut off telemetry is so infuriating.

nathan-alden-sr commented 8 years ago

@10se1ucgo Your comment makes an incorrect assumption. You are assuming that because some parts of Windows violate privacy that all parts of Windows violate privacy. It is possible--extremely likely, in my opinion--that PowerShell is a trustworthy component of Windows. If you are that worried about Windows, I suggest simply not using it. However, many of us either like Windows or have no choice but to use it due to project constraints. PowerShell is a ubiquitous tool that is very accessible, ships with Windows, and can perform most major and minor tasks in Windows, especially newer versions of Windows. It doesn't require compilation, can be used by those not proficient in software development, and is used by major vendors (Microsoft themselves and Amazon come to mind) for utility applications.

The reason I did this project in the first place is because your code required compilation in a language unfamiliar to me (and many others). I am a very proficient .NET developer and could've written the tool in Windows Forms/WPF or as a console application, but I chose PowerShell because I wanted to be able to automate the tasks.

lordfiSh commented 8 years ago

@nathan-alden well, commandline options (for automation) is possible with almost any language ;)

ocdtrekkie commented 8 years ago

@nathan-alden Being written in readable script and not a compiled binary is definitely a perk. I've seen horror stories from admins who are just told "run this script" and do so without looking at what it does. I read every script I run on a server line by line first.

nathan-alden-sr commented 8 years ago

@lordfiSh The beautiful thing about PowerShell is that it is a language and a console. :-D

10se1ucgo commented 8 years ago

Like I said, I don't care anymore, but

because your code required compilation in a language

My code is literally just a script, all it's compiled to is bytecode and interpreted.

Also, @ocdtrekkie it's open-source, what do you expect :P

ocdtrekkie commented 8 years ago

I'm not saying there's any harm in having multiple solutions. (Because I think having multiple tools to implement this is a good thing, fundamentally.)

But you kinda asked 'why PowerShell', and so we answered, that's all.

10se1ucgo commented 8 years ago

No, I asked "why _trust_ PowerShell"

I use it in my script as well, there is nothing wrong with it other than relying on it.

piotrkubisa commented 8 years ago

@AdamJohanssen Indeed, the example-script-repo with full documentation is a must!

I am going to start over with the new organization considering following structure of our github repos as I made in the https://github.com/TheScriptRunner (the name is temporary and it should change):

I am started inviting anybody listed here to this newly created github organization. I would greatly welcome adopting a a open-governance model (same which used the node.js foundation).

Probably, each of us have other idea "how to develop it" or "which tools are reliable to choose" for the script. It is great to discuss, but it is a good argument to persuade you to create a one platform to rule them all! :ring:

10se1ucgo commented 8 years ago

Neat.

Raptors06 commented 8 years ago

I like the idea. I don't have a ton of time currently with work projects currently ongoing, but what free time I do have, I'll be happy to do what I can.

On Mon, Sep 21, 2015 at 3:47 PM, 10se1ucgo notifications@github.com wrote:

Neat.

— Reply to this email directly or view it on GitHub https://github.com/nathan-alden/windows-10-tracking/issues/6#issuecomment-142103771 .

AdamJohanssen commented 8 years ago

@piqus Good start. Looking forward to contributing as best as I can.

piotrkubisa commented 8 years ago

I have spammed 38 persons with email invitation for the newly created repository. Sorry, if you are mad at me for that :blush: Also I checked twice, but if I did not add (skipped) someone, please tell me. I accept anyone who is less or more interested in colaborating to this idea (by ideas, by design, by code, by managing, by writing tests, by mockuping, etc. etc.).

Since repositories are empty, please help me choose the fancy name which you would love to see for platform which runs a scripts. Any suggestions are welcome! For brevity I especially made an issue for it: TheScriptRunner/desktop-app#1 Please, populate your ideas! :+1:

tholinka commented 8 years ago

I like this idea quite a bit, mine is just a list of a couple things to do, mainly for myself. Currently don't have a lot of time because of college, but I'm willing to help where I can.

danbosscher commented 8 years ago

I'm a bit tied up ATM but will have a look on the weekend - hit me up if you guys need servers for anything.

plitc commented 8 years ago

well, i don't like Windows, but sometimes you have a few Windows customers, so take the PowerShell script https://github.com/plitc/windows_10_privacy and do with it what you want: D

10se1ucgo commented 8 years ago

@plitc I think most of our programs/scripts already contain these, but thanks for it anyways.

plitc commented 8 years ago

small note, takes powershell - it is everywhere and fancy dialog box are also possible, you can see the source code and nothing must be compiled or requires other environments such as Python etc. - the distribution through Group Policy in Active Directory is also good ;)

ghost commented 8 years ago

I made a little quick and dirty mockup about what I got in mind. I think we should keep the GUI real simple and minimalistic. Let me know what you think. Pic 1 Pic2

I would also suggest using JavaSE or JavaFX as we can then easily code for multiple platforms as the only thing we need to support is the JVM. Our programm compatibility would rely on Java itself and nothing else. I think its too much of a hassle and too complicated to keep bugs tracked and maintain features if we depend on multiple other software to built our own on top of it. AGain, let me know what you think ;)

IMMORTAL-DEATH commented 8 years ago

I like the layout and it's a nice example of where we can go with it. :)

piotrkubisa commented 8 years ago

@sehams Neat mockups. Well, developing a nice looking GUI (like from many designs published on dribbble.com) is just impossible to do it with Java. Needs a lot of time, and tests are way harder than just create a website server bundled with Electron which works out of the box on any platform (atom editor, and many more apps are built on it). I vote on JavaScript with a node.js platform because it is just easy-peasy to do and many of us, knows it on various level but just (way better than ArnoldC or [put-other-language-name-here]). Additionally. today it is quite stable and have a lot features bundled with packages, just like maven.

Giving just a "native" look is nice (wxwidgets, gtk+, winjs, ... ), but we miss the point: do we only ship a sys-admin app or just something better - the cross-OS, cross-script-method. We, as devs (admins) are happy with it, erm, we don't care much how it looks but we love things which works properly without errors. But I know many people who are crazy about look and feel. I assigned myself to do dynamic mockup which can be used in "RTM" version (if you will accept it of course).

PS. It is difficult to mention what I mean exactly.. Sorry for that, I just have moment of my life when I am doing too many at the same time. PS.2. I have to be off for some days, because I have a lot things (tons of tons) to do connected with my priv-life. I am going to do my bests to jump on github and read the discussion threads and start bootstrapping the app.

ghost commented 8 years ago

@piqus I get what you mean exactly. I mentioned something similar in the name thread.

We care about functionality and robust product. End users want a pretty product that pleases the eye, and of course works :-)

piotrkubisa commented 8 years ago

@tomchappelow Indeed! You combined my message in two sentences :+1:

ghost commented 8 years ago

@tomchappelow @piqus Well, I think I know what you guys mean; The implementation and combination of functionality and design is what gives your software the final polish people are so turned on about. That's one fact OSX and iOS are so popular. I sometimes dont really want to believe it, as I'm more of a KISS principle programmer, but it's good you guys reminded me :P And I indeed know that even the littlest GUI modifications in java can cost you a big headache. I'll have a look into nodejs tomorrow, as I'm not familiar with it at all.

10se1ucgo commented 8 years ago

@sehams Here's a mockup written with wxPython

image gif

ghost commented 8 years ago

Anyone to fork my script? I'll discontinue it and I went back to Linux :smile: