What is "Powerful Computer Manager"?
Powerful Computer Manager is the super-simple-but-powerful program to automatizate tasks in groups of computers (In a Active Directory site, or not) in a unattended way. It inteed to be a simple SSMS alternative, that inventarizes computers and install/remove software in it, tweak system of run arbitrary commands.
You only have to write simple cooks that are small yaml text files, create groups of computers and assign cooks to this groups, and will be run in the destination computers
Disclaimer
I'm using this program in the company I work with 12 computers with Windows 8.1/10 with various software (MSI,EXE,...) and tweaking services, and it works right
It's not error proof, then, I don't have any responsability if something crashes, but you can open a Issue and will see it
Roadmap
- Complete translation English and Spanish
- Somewhat more security in API 1
- Stabilize all
- I created a simple GUI in EasyGUI to be easy used, but if I have time, maybe will do a webUI more dynamic and visually better (Without needing to install php/apache/nginx, using python)
Requirements
Server
For server you can use Linux or Windows, and in theory any environment that can run Python 3 can work as server
- Python3 with:
- Falcon
- Waitress-serve
- Yaml Python3 deps can be installed it using pip install command (pip install waitress falcon pyyaml)
- For controlling the program, you have to start control.pyw using Python3. It doesn't need to be started in server, but it has to be in that folder (Or with configpcm.ini file). It uses easygui of python3 (pip install easygui)
Clients
-
Windows:
- Windows 7 SP1 absolute minimal, but its only officially tested in 8.1 and 10, Windows 7 is being old now.
- It needs Powershell 5.0+ (Not PWCore versions), lower versions doesnt guaranteed to work, not tested. In Windows 7 and 8.1, you have to update Powershell. (With Powershell 3.0/4.0, some commands like Get-Package doesn't work) You can update from here: https://docs.microsoft.com/en-us/powershell/scripting/setup/installing-windows-powershell?view=powershell-6#upgrading-existing-windows-powershell (Download link: https://www.microsoft.com/en-us/download/details.aspx?id=54616)
-
Linux:
- Not supported yet, but when Windows be stable, I will try to do it in some way
-
Clients may have to be queried by DNS requests. If you don't have a domain (Samba or Windows AD), you may have to have a DNS server with local machines
Instalation. Example installing Server and using a GPO of Active Directory/Task Schedule to make it work in clients
-
Copy this folder to a folder in your server
-
Install dependencies
-
Open sysopt.py file and change values if needed
-
Start the server: Start api.py using loadserver.bat (Windows) o loadserver.sh (Linux) file. You can do in systemd way, or a cron, or in a terminal of windows server,...
-
Go to "client" folder and copy "configpcm_example.ini" to "configpcm.ini" and change their values to yours. Change lang value for having client gui translated to your lang. Here you will see:
- server=X -> Its where server app is running and port by default is :3333. You can change in loadserver file. You can use an IP like 192.168.1.200:3333.
- resources=\XX -> UNC/Path where software are. When you write cooks, you will do come "REPOTOLOCAL|somefile.msi", well, this folder is where it will copy files. It has be readable by clients.
-
For clients to work, they have to run "client\client.ps1" every 30 mins/1 hour or so, I did using Active Directory and a Task Scheduled GPO (Copying client.ps1 and configpcm.ini files from Client to SysVol\DomainName\Scripts)
- User: SYSTEM (Or NT\SYSTEM)
- Command: powershell.exe
- Args: -executionpolicy bypass -windowstyle hidden -noninteractive -nologo -file "\SERVER\SysVol\DOMAINNAME\scripts\client.ps1"
Note: client.ps1 has to have controlpcm.ini file with it and has to be readable and executable by clients
-
If you don't have Active Directory, you can do the Task Scheduled task in every computer without problems, and using another Shared folder, it will work right.
-
For use of param "-startup 1" for cooks that has to be run without users, you will have to create a Task Scheduled GPO when workstation startsup/powers off with param -startup 1, like:
- Args: -executionpolicy bypass -windowstyle hidden -noninteractive -nologo -file "\SERVER\SysVol\DOMAINNAME\scripts\client.ps1" -startup 1
-
Start control.pyw to setup password and start adding computers, groups and cooks. You can use doc/example_cooks for examples. If anyone wants, I will setup a git repo for cooks.