Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Gmail Login-Script -Powershell- hat Probleme mit Methoden

Frage Entwicklung Batch & Shell

Mitglied: ITFrischling

ITFrischling (Level 1) - Jetzt verbinden

24.10.2013, aktualisiert 25.10.2013, 2584 Aufrufe, 12 Kommentare, 2 Danke

Hallo,

Seit 1.8.2013 beschäftige ich mich nun beruflich mit der IT. Ich hab eine Ausbildung zum Fachinformatiker - Systemintegration gestartet.
Soweit macht mir das auch viel Spaß und ich entwickle weitere Interessen. Eine Davon ist Powershell. Hier bin ich ein Einsteiger und probiere
im Moment nur aus und schaue mir Quellcodes an, welche ich dann versuche nachzuvollziehen. Und hier ist das Problem. Ich bin auf einen
Gmail-Login Script gestoßen und habe dort eine Passwort Abfrage eingefügt. Auf der Arbeit funktionierte das super. Daheim nicht mehr.

01.
$url = "http://gmail.com" 
02.
 
03.
$username="******.*****@gmail.com" 
04.
 
05.
$password=Read-Host -Prompt "Passwort eingeben" 
06.
 
07.
$ie = New-Object -com internetexplorer.application; 
08.
 
09.
$ie.visible = $true; 
10.
 
11.
$ie.navigate($url); 
12.
 
13.
while ($ie.Busy -eq $true) 
14.
 
15.
16.
 
17.
    Start-Sleep -Milliseconds 1000; 
18.
 
19.
20.
 
21.
$ie.Document.getElementById("email").value = $username 
22.
 
23.
$ie.Document.getElementByID("passwd").value=$password 
24.
 
25.
$ie.Document.getElementById("signin").Click(); 
Dies sind die Fehlermeldungen:
01.
Fehler beim Aufrufen der Methode, da [System.__ComObject] keine Methode mit dem Namen "getElementById" enthält. 
02.
In C:\PowerShellKram\GmailLogin.ps1:21 Zeichen:1 
03.
+ $ie.Document.getElementById("email").value = $username 
04.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
05.
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException 
06.
    + FullyQualifiedErrorId : MethodNotFound 
07.
  
08.
Fehler beim Aufrufen der Methode, da [System.__ComObject] keine Methode mit dem Namen "getElementByID" enthält. 
09.
In C:\PowerShellKram\GmailLogin.ps1:23 Zeichen:1 
10.
+ $ie.Document.getElementByID("passwd").value=$password 
11.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
12.
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException 
13.
    + FullyQualifiedErrorId : MethodNotFound 
14.
  
15.
Fehler beim Aufrufen der Methode, da [System.__ComObject] keine Methode mit dem Namen "getElementById" enthält. 
16.
In C:\PowerShellKram\GmailLogin.ps1:25 Zeichen:1 
17.
+ $ie.Document.getElementById("signin").Click(); 
18.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
19.
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException 
20.
    + FullyQualifiedErrorId : MethodNotFound

Meine Frage wäre nun: Was stimmt hier nicht mehr? Ich benutze Internet Explorer 10. Mein Betriebssystem ist Windows7 64Bit.


Ich bedanke mich schonmal für eure Bemühungen mir zu helfen.

mit freundlichen Grüßen

ITFrischling
Mitglied: colinardo
24.10.2013, aktualisiert um 21:08 Uhr
Hallo ITFrischling, Willkommen im Forum!
zuerst mal würde ich sagen das du dich für eine Methode entscheiden solltest, wie du deine Script-Zeilen beendest (mit Semikolon oder ohne). Ein Semikolon ist nicht nötig wenn du jeden Befehl in eine neue Zeile schreibst. Wenn du aber mehrere Befehle in eine Zeile schreiben willst kannst du dies jeweils getrennt mit einem Semikolon tun.

Dies ist in deinem Script aber nicht der Fehler, sondern dies könnte eine Eigenart des InternetExplorers sein wenn der ProtectedMode in der Internet-Zone aktiv ist, siehe dazu auch folgenden Beitrag.

Starte dein Script alternativ mal in einer Powershell mit Adminrechten, dann sollte es eigentlich laufen. Hier läuft es zumindest problemlos...

Grüße Uwe
Bitte warten ..
Mitglied: ITFrischling
24.10.2013 um 21:06 Uhr
Hey colinardo,

Ich hatte es mit den Adminrechten bereits versucht jedoch entstand auch dort der gleiche Fehler...Danke für deine Hilfe




mit freundlichen Grüßen

ITFrischling
Bitte warten ..
Mitglied: colinardo
24.10.2013, aktualisiert um 21:14 Uhr
Fahr mal ein Update auf Powershell 3.0 auf deinem Windows 7 ... dann sehen wir weiter.
Grüße Uwe
p.s. die Eingabe von
$PSVersionTable.PSVersion
in der Powershell zeigt dir die aktuell installierte Version an (PSVersion)
Bitte warten ..
Mitglied: ITFrischling
24.10.2013 um 21:24 Uhr
01.
Major  Minor  Build  Revision 
02.
-----      -----     -----     -------- 
03.
 3          0       -1         -1

Powershellversion 3.0 hatte ich bereits. Habe jetzt noch einmal die Benutzerkontesteuerung komplett heruntergefahren aber wieder der gleiche Fehler.
Bitte warten ..
Mitglied: colinardo
25.10.2013 um 00:16 Uhr
füge mal in Zeile 20 deines Scripts noch eine zusätzliche Pause ein.
sleep(2)
Die Fehlermeldungen sagen eigentlich aus das das COM-Objekt noch kein DOM erzeugt hat und damit auch die Methoden fehlschlagen.
Mir kommt das gerade in den Sinn weil ich vor kurzem ein ähnliches Phänomen mit dem IE bei der Programmierung mit AutoIT hatte, und da hat eine zusätzliche Pause die Lösung gebracht.

probier's mal aus...
Bitte warten ..
Mitglied: ITFrischling
25.10.2013 um 06:23 Uhr
Hey Ich habe es mal ausprobiert. Auch dies hat leider nicht geholfen. Das komische ist ja auf der Arbeit funktionierte es.
Bei mir Daheim startet er nur den IE und leitet mich auf Gmail. Danach passiert nichts mehr.

Grüße

ITFrischling
Bitte warten ..
Mitglied: ITFrischling
28.10.2013 um 09:56 Uhr
Ich habe noch ein paar updates gezogen... hat leider auch nicht geholfen.
Ergo wir sind immer noch bei null...



mit freundlichen Grüßen

ITFrischling
Bitte warten ..
Mitglied: colinardo
28.10.2013, aktualisiert 15.01.2014
OK, ändere mal die URL auf folgende:
https://accounts.google.com/ServiceLogin?service=mail
und dann machst du in den folgenden Zeilen aus dem großen "D" bei Document ein kleines "d". Bei einer dieser Zeilen war außerdem beim getElementById das letzte "D" groß geschrieben. Das kann zu diesen Fehlern führen ! Es sind ja im Grunde JavaScript-Funktionen und JavaScript ist ja bekanntlich Case-Sensitive.
Im ganzen sollte das Script dann folgendermaßen aussehen, dann sollte es funktionieren:
01.
$url = "https://accounts.google.com/ServiceLogin?service=mail" 
02.
$username="******.*****@gmail.com" 
03.
$password=Read-Host -Prompt "Passwort eingeben" 
04.
$ie = New-Object -com InternetExplorer.Application 
05.
$ie.visible = $true 
06.
$ie.navigate($url) 
07.
while ($ie.Busy -eq $true) 
08.
09.
    sleep(1) 
10.
11.
$ie.document.getElementById("Email").value = $username 
12.
$ie.document.getElementById("Passwd").value = $password 
13.
$ie.document.getElementById("signIn").click()
Wenn nicht, was ich nicht glauben kann, versuch das selbe mal mit einem VBS-Script umzusetzen:
01.
url = "https://accounts.google.com/ServiceLogin?service=mail" 
02.
username = "******.*****@gmail.com" 
03.
password=InputBox("Passwort eingeben:") 
04.
Set ie = CreateObject("internetexplorer.application") 
05.
ie.visible = True 
06.
ie.Navigate(url) 
07.
while ie.Busy 
08.
Wend 
09.
ie.document.getElementById("Email").value = username 
10.
ie.document.getElementById("Passwd").value = password 
11.
ie.document.getElementById("signIn").click()
Grüße Uwe
Bitte warten ..
Mitglied: ITFrischling
28.10.2013 um 10:28 Uhr
Hey,

Danke für diesen Rat...Ich werde es später direkt einmal umsetzen. Das komische ist, das Script läuft öffnet auch die URL aber dann trägt es nichts in die Eingabefelder ein und der Fehler kommt. Wie das jetzt mit dem Script läuft was du mir gegeben hast kann ich erst später sagen, da ich auf der Arbeit bin. Ich danke Dir und werde später "Meldung" machen.


mit freundlichen Grüßen

ITFrischling
Bitte warten ..
Mitglied: ITFrischling
28.10.2013 um 19:56 Uhr
Moin,

Ich habs jetzt mal getestet es hatte jedoch nichts mit groß/kleinschreibung zu tun.
Ich hab ein wenig geguckt was eigentlich benötigt wird um System. Comobject aufzulösen.
Man glaubt es kaum man braucht die Bibliothek von Visual Studio... Ergo Visual Studio express
runterladen. Und nun funktioniert es. Ich bedanke mich trotzdem VIELMALS bei Dir für die Hilfe.
Ich hoffe ich kann mit der Lösung hier helfen.


mit freundlichen Grüßen

ITFrischling
Bitte warten ..
Mitglied: colinardo
28.10.2013 um 20:19 Uhr
Kann nicht sein, denn hier geht es auf einem jungfrâulichen Windows 7 direkt ohne Zusätze .... Denke das hatte eventuell was mit deinem installierten .NET Framework zu tun, da Powershell darauf aufsetzt.
Naja, wenns jetzt geht weiterhin viel Erfolg beim lernen von Powershell

Grüße Uwe
Bitte warten ..
Mitglied: ITFrischling
29.10.2013 um 06:33 Uhr
Hm... Ist ja komisch.. naja gibt eben sehr komische Fehler egal in welchen Bereichen. Ich weis nur, dass es jetzt seitdem ich Visual Studio installiert habe funktioniert. .NET Framework hatte ich vorher schon da ich mir durchaus bewusst war, dass Powershell darauf aufsetzt. Naja ich bin mir sicher ich stoße noch oft genug auf lustige Fehler in meinem "IT-Leben" Danke für die Hilfe.


Viele Grüße

ITFrischling
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
Windows 10 und Windows SSB 2008 - Login Script greift nicht (21)

Frage von heisenberg4 zum Thema Windows Server ...

Batch & Shell
gelöst PowerShell Script Move-Item nach x Tagen (5)

Frage von lupolo zum Thema Batch & Shell ...

VB for Applications
Powershell Script aus VBA heraus ausführen (2)

Frage von mcnico1978 zum Thema VB for Applications ...

Batch & Shell
gelöst Powershell-Script als Admin über CMD ausführen (2)

Frage von Tobiased zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...