pyrevitlabs / pyRevit

Rapid Application Development (RAD) Environment for Autodesk Revit®
http://wiki.pyrevitlabs.io
GNU General Public License v3.0
1.33k stars 338 forks source link

Silent Installer / pyRevit 4.7.3 #771

Closed JAMA-KB1989 closed 4 years ago

JAMA-KB1989 commented 4 years ago

Hello pyRevit,

We are trying to Silent Install pyRevit to our company but noticed that, it gets pushed and installed under a system account rather than a user account. We utilize SCCM (System Center Configuration Manager). Do you happen to have any installation guidelines for a silent install?

Thank you, Kevin

eirannejad commented 4 years ago

Take a look at the pyRevit for Teams page please. Hope this helps. I'm closing this issue since it is a question but please continue the discussion. I'll see the notifications

JAMA-KB1989 commented 4 years ago

Hello Ehsan,

My IT Department got back to me when I sent them to that page and they responded with: **_"Kevin,

I had already used the info to no avail. The page assumes the install is run from a command prompt by a user sitting at the workstation rather than being pushed out from a central location using a system account….."_**

Let me know if there is another way or option?

Thank you, Kevin

eirannejad commented 4 years ago

@JAMA-KB1989 Please direct them to this page

At the bottom of the page, it explains the seed config process. System account can seed the configuration file into the %programdata%. All users logging on this machine and loading pyRevit, will be using this seeded config file to configure pyRevit on the first run. The CLI also allows locking the seed file so users can not make changes.

A simple deployment workflow looks like this:

Later

eirannejad commented 4 years ago

Updated pyRevit for Teams page with the workflow above

JAMA-KB1989 commented 4 years ago

Hey Ehsan,

My IT team got back to me and said: "It isn’t the config files that are the problem. It is doing a “Push Install”, i.e. Microsoft System Center Configuration Manager (SCCM). The command line options “/exenoui /qn” won’t install pyRevit. (I’m assuming because it does so through a System account instead of a user account, but I’m not 100% sure.) So is it possible to install from SCCM and what are the command line options to do that?"

Any ideas? Kevin

eirannejad commented 4 years ago

Are we talking about the pyRevit CLI installer? I'm assuming both .Net Core (2.0.7) and .Net (4.7.1) are previously installed on the target machine?

JAMA-KB1989 commented 4 years ago

I think we have the .exe installer. Is there a different installer we should be utilizing for SCCM to work properly?

Both .Net core and Net are installed currently on all machines.

eirannejad commented 4 years ago

There are two exe installers. One is pyRevit for public version, and the other is the pyRevit CLI installer. For team deployments you will need the CLI

jgunstone commented 4 years ago

@JAMA-KB1989
i'd be interested to understand how you proceeded with IT roll-out?

the approach you describe is exactly the same as how our IT Team would like to do it:

We are trying to Silent Install pyRevit to our company but noticed that, it gets pushed and installed under a system account rather than a user account. We utilize SCCM (System Center Configuration Manager).

I'm responsible for developing and maintaining pyRevit extensions at my engineering LLP but the IT Team is responsible for roll-out to multiple-users. While i directed them to the pyRevit for Teams page @eirannejad shared above, they wanted to avoid having to understand the workings of the pyRevit-CLI and opted to make an installer using a .bat script that is deployed using SCCM. It simply copies the core pyRevit folder into the appropriate place within %programdata%. see attached.

image

this is the code inside the Install.bat file:

@Echo off
REM ****************************************
REM                PyRevit
REM ****************************************
REM This needs to be run in the SYSTEM context
REM This is PyRevit 4.7.4.

%~dp0dotnet-runtime-2.0.7-win-x64.exe /install /quiet /norestart

REM Delete existing files
If Exist "%ProgramData%\pyRevit\" Rmdir "%ProgramData%\pyRevit\" /s /q 
for /D %%i in (%ProgramData%\Autodesk\Revit\Addins\*.*) do del "%%i\pyRevit.addin"

REM Copy the new files
XCopy "%~dp0pyRevit\*" "%ProgramData%\pyRevit\" /y /s /i /q /h
for /D %%i in (%ProgramData%\Autodesk\Revit\Addins\*.*) do Copy "Y:\Revit\Addins\PyRevit\4.7\PyRevit.addin" "%%i\pyRevit.addin"

REM Add Certificate to remove pop when Revit loads the addin
certutil.exe -addstore TrustedPublisher "Y:\Revit\Addins\PyRevit\4.7\Certificate.cer"

currently we save our addin's on a centralised remote server and therefore don't need to maintain them up-to-date on a given users machine (a core function of the pyRevit-CLI).

@eirannejad the approach described above has worked in the past but @TonyBird1981 is upgrading the installer from pyRevit v4.7.4 --> v4.7.6 and has run into the issue described here #961. Does the above offer more info on the potential source of the problem?

Generally, I'd be keen to push for using the pyRevit-CLI - it would be great if there was more explicit guidance about how this approach could deploy and update using SCCM (which to my understanding is pretty ubiquitous for consultancies like ours who deploy automation tools using pyRevit).

thanks in advance