2013-02-06 17 views
5

Czy istnieje sposób instalacji aplikacji ClickOnce bez pytania użytkownika? Mówię o "Run/Do not Run", którego użytkownik uzyskuje po pierwszym uruchomieniu aplikacji.Jak zainstalować aplikację ClickOnce bez pytania użytkownika?

Wygląda na to, że istnieją pewne wskazówki: here, ale uważam, że chodzi o pominięcie monitu "Podniesienie" (UAC) i zabezpieczeń, a nie o początkowy ekran "Uruchom/Nie pracuj".

Mogę tylko znaleźć informacje o tym, jak w trybie cichym aktualizować aplikację, która została zainstalowana w przeszłości, ale nic o cichej instalacji aplikacji po raz pierwszy.

Znalazłem również this post który wydaje się być związane, ale znowu, nie wiem, czy mówimy o tym samym wierszu użytkownika ...

Odpowiedz

2

Nie ma sposobu, aby zainstalować aplikację ClickOnce bez monitowania użytkownika. jeśli chcesz, aby użytkownik mógł kliknąć go dwukrotnie, a po prostu instaluje się bez weryfikacji użytkownika, nie używaj ClickOnce. Szczerze mówiąc, z mojego doświadczenia wynika, że ​​tylko złośliwe oprogramowanie i pakiety przesyłane za pomocą SMS-a w instalacji środowiskowej przedsiębiorstwa nie wymagają żadnych sugestii dla użytkownika.

+0

Dzięki Robin, to właśnie to pokazują moje badania. To jest rzeczywiście pakiet, który ma zostać wdrożony w moim środowisku korporacyjnym. To jest coś, co chcę, aby moi pracownicy działali przez cały czas, więc preferowana była cicha instalacja. – Joe

+0

Cicha instalacja jest również pomocna dla administratorów sieci do napisania skryptu, który ma zostać wdrożony dla użytkowników. – Mike

+0

To nie jest sprawiedliwe dla -1 mojej odpowiedzi, gdy jest dokładna, tylko dlatego, że nie podoba ci się odpowiedź. – RobinDotNet

6

Jest to możliwe, aby uniknąć "Run"/"nie działają" szybka, choć wciąż masz problem faktycznie kopiowanie plików przez do użytkownika, co zwykle wymaga od niego uruchomienia aplikacji za pomocą linku. Możesz jednak uruchomić go za pomocą skryptu logowania lub czegoś podobnego. Prawdopodobnie rozwiązałeś ten problem, jak to jest w twoim pytaniu, które masz. Drugie pytanie, które łączyłeś z tematem, ale to naprawdę nie prowadzi cię do końca.

Wiem, że można pominąć monit "Uruchom"/"Nie uruchamiaj", ponieważ właśnie zrobiłem to z powodzeniem z ClickOnce, które wdrażamy jako niestandardową powłokę na kioskach. Kluczowe jest to, że ClickOnce musi być podpisany przez zaufanego wydawcę. Nawet autopodpisanie jest w porządku, jeśli masz odpowiednie pliki skonfigurowane na komputerze klienta.

Administratorzy sieci powinni więc wypchnąć zasadę grupy, która ufa certyfikatowi podpisywania kodu używanemu do podpisywania aplikacji. Nie ma informacji o tym, jak to zrobić w witrynie TechNet tutaj: http://technet.microsoft.com/en-us/library/cc770315(v=WS.10).aspx, reprodukowana tu krótko:

  1. Open Group Policy Management Console.

  2. Znajdź istniejący lub utwórz nowy obiekt zasad grupy, aby zawierał ustawienia certyfikatu. Upewnij się, że obiekt zasad grupy jest powiązany z domeną, lokacją lub jednostką organizacyjną, której użytkownicy mają wpływ na zasady.

  3. Kliknij prawym przyciskiem obiekt GPO, a następnie wybierz polecenie Edytuj. Edytor zarządzania zasadami grupy otwiera i wyświetla bieżącą zawartość obiektu polityki.

  4. W okienku nawigacji otwórz Konfiguracja komputera \ Ustawienia systemu Windows \ Ustawienia zabezpieczeń \ Zasady kluczy publicznych \ Zaufani wydawcy.

  5. Kliknij menu Akcja, a następnie kliknij polecenie Importuj.

  6. Postępuj zgodnie z instrukcjami Kreatora importu certyfikatów, aby znaleźć i zaimportować certyfikat.

  7. Jeśli certyfikat jest samopodpisany i nie można go powiązać z certyfikatem znajdującym się w magazynie certyfikatów zaufanych głównych urzędów certyfikacji, wówczas należy również skopiować certyfikat do tego sklepu. W okienku nawigacji kliknij opcję Zaufane główne urzędy certyfikacji, a następnie powtórz kroki 5 i 6, aby zainstalować kopię certyfikatu w tym sklepie.

1

oprócz MikeBazs Odpowiedź, chciałbym podać następujące „Obejście” co sprawia, że ​​instalacja Click-Po-Application „non-interactive” i „prawie milczy” (użytkownik widzi postępy -window podczas instalacji, nie wymaga kliknięcia i/lub możliwe)

Istnieje kilka „Zagadnienia” do rozważenia, ale jeśli po tej instrukcji, wynik powinien być co trzeba:

1.) Podpisz swoją aplikację: W Visual Studio możesz z łatwością podpisać swoją aplikację za pomocą własnego certyfikatu, który nie jest duży sprawa.

2.) Rozłóż certyfikat: W celu uniknięcia okno, czy należy zainstalować aplikację, trzeba rozpowszechniać swój certyfikat do następujących sklepach na dowolnym komputerze (Użyj do tego GPO): Trusted Publishers i Trusted Root Certification Authorities

Teraz użytkownicy mogą zainstalować aplikację za pomocą jednego kliknięcia - bez pytania bezpieczeństwa. Ale chcemy Zero kliknie:

3.) Utwórz skrypt powershell, znajduje się na serwerze, który wywołuje setup.exe swojej aplikacji:

if (-not (Test-Path env:APPInstalled)){ 
    Start-Process "\\server\share\Application\setup.exe" 

    # Set Flag for "Installed" 
    [Environment]::SetEnvironmentVariable("APPInstalled", "1", "User") 
} 

użyłem zmiennej o nazwie User-Environment APPInstalled aby ustalić, czy aplikacja wymaga instalacji.

Teraz użytkownicy mogą wykonywać ten skrypt, uzyskując tylko jedną instalację bez konieczności dalszego potwierdzania. Jednak aplikacja rozpoczyna się po instalacji.

4.) Zmodyfikuj kod źródłowy swojej aplikacji: Użyłem fałszywego pliku do wykrycia firstrun aplikacji. Jeśli jest to FIRSTRUN (tj zaraz po instalacji) po prostu go wyłączyć ponownie:

private void Form1_Load(object sender, EventArgs e) 
    { 
     //first run? That's a initial deployment, close application. 
     if (!File.Exists("C:\\some\\static\\path\\notfirstrun.dat")) 
     { 
      File.WriteAllText("C:\\some\\static\\path\\notfirstrun.dat", "1"); 
      Application.Exit(); 
     } 

Teraz użytkownicy mogą wykonać thaht skrypt, tylko coraz instalację raz bez dalszego potwierdzenia wymaganego i aplikacja nie "Auto-start" po konfiguracji.

Ale chcemy uniknąć „click”, a także:

Jeśli konfiguracja skryptu PowerShell w startup-Folder - to pojawia się, co jest brzydkie. Jeśli ustawimy go jako Login-Script, nie działa on w kontekście użytkownika, który jest wymagany dla Click-Once.

Jako obejście tego "problemu", można zawinąć go w skrypcie vbs, wywołując skrypt powershella.Zauważ, że ten jest wykonywany w kontekście użytkownika, dzięki czemu użytkownik potrzebuje uprawnień do wykonywania PowerShell skrypty:

Dim objShell 
Set objShell=CreateObject("WScript.Shell") 

strCMD="powershell.exe -sta -noProfile -NonInteractive -nologo -ExecutionPolicy Bypass -f \\server\share\scripts\install_App.ps1" 
objShell.Run strCMD,0,True 

Wreszcie pomocą GPO stworzyć „zadania” w „Task-Scheduler”, który prowadzi vbs -script 30 sekund po zalogowaniu, tylko jeśli użytkownik jest zalogowany.

Wszyscy użytkownicy zobaczą "postęp instalacji".

W skrócie:

  • Wpisz kod
  • rozpowszechniać certyfikat
  • spust instalacja ze skryptu PowerShell
  • oblewania że PowerShell skryptu wewnątrz inivisible skrypt VBS
  • wdrożyć skrypt vbs do każdego komputera, za pomocą harmonogramu zadań, aby upewnić się, że działa w kontekście użytkowników.
Powiązane problemy