none
Excel oeffnen mit PowerShell als Administrator RRS feed

  • Frage

  • Liebes Forum

    Ich möchte eigentlich nur Excel öffnen mit PowerShell und das Ganze als Administrator. Wenn ich PowerShell nicht als Administrator öffne, funktioniert es ohne Probleme (es ist ein Teil eines grösseren Projekts, dass man als Administrator ausführen muss).

    Das ganze Script sieht so aus:

    $dateipfad = "C:\Users\Cédric\Desktop\Daten\test.xlsx"
    $tabelle = "Tabelle1"
    [int]$zeile = 2
    [int]$spalte = 2
    $excelanzeigen = $false 
    $Excel = New-Object -ComObject Excel.Application # Excel starten
    $Excel.Visible = $excelanzeigen
    $Workbook = $Excel.Workbooks.Open($dateipfad)
    $Table =$workbook.Worksheets.Item($tabelle)
    $User_Name = $Table.Cells.Item($zeile,$spalte).Text
    $Excel.Quit() #Excel beenden
    [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
    $User_Name

    Die Zeile die Streikt ist folgende:

    $Excel = New-Object -ComObject Excel.Application

    Die Fehlermeldung:

    PS C:\WINDOWS\system32> $Excel = New-Object -ComObject Excel.Application
    New-Object : Die COM-Klassenfactory für die Komponente mit CLSID {00000000-0000-0000-0000-000000000000} 
    konnte aufgrund des folgenden Fehlers nicht abgerufen werden: 80040154 Klasse nicht registriert (Ausnahme 
    von HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
    In Zeile:1 Zeichen:10
    + $Excel = New-Object -ComObject Excel.Application
    +          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ResourceUnavailable: (:) [New-Object], COMException
        + FullyQualifiedErrorId : NoCOMClassIdentified,Microsoft.PowerShell.Commands.NewObjectCommand

    Ich habe schon versucht, das Script als Administrator mit der 32bit Version von PowerShell auszuführen, gleicher Fehler.

    Wie gesagt, als normaler User funktioniert es ohne Probleme... An was könnte das liegen, bzw habt ihr eine Lösung?

    LG Cedric

     
    • Bearbeitet Cedric75 Mittwoch, 5. Juni 2019 13:55
    Mittwoch, 5. Juni 2019 13:55

Antworten

  • Dann lass die Daten doch in einer CSV mit Headern bearbeiten.
    Excel kann die Daten dann als CSV spechern und den Script benötigt Excel gar nicht.
    • Als Antwort markiert Cedric75 Mittwoch, 12. Juni 2019 05:53
    Dienstag, 11. Juni 2019 09:43

Alle Antworten

  • Also eigentlich sollte das funktionieren, ich würde hier auf ein Problem/eine Besonderheit mit der Installation tippen. Kannst du Excel manuell als Admin starten?



    Blog: http://www.bytecookie.de

    Powershell Code Manager: Link
    (u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.

    Mittwoch, 5. Juni 2019 14:22
    Moderator
  • Die CLSID 0000... deutet auf eine fehlende Registrierung hin.
    Dies heißt, dass Excel/Office "per User" installiert ist und nicht per "All Users".
    Mittwoch, 5. Juni 2019 14:25
  • Habe ich gemacht, ohne erfolg...
    Mittwoch, 5. Juni 2019 14:28
  • Aber als nicht-Admin funktioniert es ja...
    Mittwoch, 5. Juni 2019 14:28
  • Dann ist die Frage, welcher Admin zum Zeitpunkt der Installation aktiv war (lokal, remote, roaming-profile) so dass die Registrierung in HKLM\Classes bzw. \WOW64Node nicht durchgeführt wurde.

    Die CLSID von Excel ist nicht "{000...000}", die aber bei nicht vorhandener Registrierung zurückgegeben wird.

    Mittwoch, 5. Juni 2019 18:05
  • Nur mal aus Neugier - was soll der Code denn eigentlich machen? Wenn ich das nicht falsch verstanden habe, liest Du nur eine einzelne Zelle aus, richtig? ... und warum zwingend als Admin?  ... oder ist das nur ein Beispiel?

    Wenn es wirklich nur um's Auslesen geht, könntest Du Dir mal das Modul ImportExcel von Doug Finke ansehen. Da brauchst Du dann nicht mal ein installiertes Excel.  ;-)


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    Mittwoch, 5. Juni 2019 19:58
  • Viele Dank für die Antworten!

    Dieser Code oben ist nur der Anfang, eine einfache Version um das Script danach zu erweitern. Es geht darum, mehrere Zeilen auszulesen, wie viele genau ist noch unbekannt. 

    Es geht aber darum, per PowerShell eine Securepoint-Firewall-Konfiguration zu automatisieren. Dazu füllt man ein Excel mit den Daten aus, klickt auf das Script und dieses konfiguriert die FW. Um eine Verbindung mit der FW herzustellen, muss man aber den Netzwerkadapter mit der Standard-IP konfigurieren. Das macht auch das Script und dazu braucht man Admin-Rechte.

    Das Modul von Doug werde ich mir aber genauer anschauen, vielen Dank!

    Dienstag, 11. Juni 2019 06:27
  • Hmmm ... ok ... klingt ein bissl verworren für mich ... warum muss denn Excel bereits als Admin gestartet werden? Es sollte doch ausreichen, die Aktionen mit Adminrechten zu starten, die das explizit verlangen  - wie die Netzwerkkonfiguration?

    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    Dienstag, 11. Juni 2019 07:44
  • Aber wenn ich das Script mit Admin starte, hat ja das ganze Script Admin... Oder nicht? (PS newby)

    Und das Excel muss nicht als Admin gestartet werden, das war nur ein Lösungsvorschlag von Denniver Reining.

    Dienstag, 11. Juni 2019 07:59
  • Ah - ok  ... das hatte ich wohl missverstanden. ;-)

    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    Dienstag, 11. Juni 2019 08:02
  • Netzwerkadapter mit der Standard-IP konfigurieren. Das macht auch das Script und dazu braucht man Admin-Rechte.
    Nein, braucht man nicht. Netzwerkkonfigurations-Operatoren (S-1-5-32-566) reicht dafür.

    Greetings/Grüße, Martin - https://mvp.microsoft.com/en-us/PublicProfile/5000017 Mal ein gutes Buch über GPOs lesen? - http://www.amazon.de/Windows-Server-2012--8-Gruppenrichtlinien/dp/3866456956 Good or bad GPOs? My blog - http://evilgpo.blogspot.com And if IT bothers me? Coke bottle design refreshment - http://sdrv.ms/14t35cq

    Dienstag, 11. Juni 2019 08:51
  • > Excel muss nicht als Admin gestartet werden, das war nur ein Lösungsvorschlag von Denniver Reining.

    Nein, ich wollte nur das du rausfindest ob du -manuell / per Icon gestartet- Excel als Admin problemlos ausführen kannst. Alles spricht hier dafür das Excel nicht richtig installiert ist.


    Blog: http://www.bytecookie.de

    Powershell Code Manager: Link
    (u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.

    Dienstag, 11. Juni 2019 09:24
    Moderator
  • Dann lass die Daten doch in einer CSV mit Headern bearbeiten.
    Excel kann die Daten dann als CSV spechern und den Script benötigt Excel gar nicht.
    • Als Antwort markiert Cedric75 Mittwoch, 12. Juni 2019 05:53
    Dienstag, 11. Juni 2019 09:43
  • Nein, braucht man nicht. Netzwerkkonfigurations-Operatoren (S-1-5-32-566) reicht dafür.

    Danke für die Info, wusste ich nicht :)
    Dienstag, 11. Juni 2019 12:03
  • es gäbe auch ein Modul das Exceldateien wie CSV-Dateien öffnen kann:

    ImportExcel

    Mittwoch, 19. Juni 2019 14:55