Benutzer mit den meisten Antworten
PS Script nur auf Server ausführbar

Frage
-
Moin
Ich habe einen PS Script geschrieben der über VPN auf eine DB Mysql zugreift und Daten ausliest, auf dem Server funktioniert dies. ( die Datei liegt auch auf dem Server und soll von da aufgerufen werden )
Rufe ich die Script Datei von einen Clienten übers Netzwerk auf , bekomme ich immer diese Fehler.
\\rma\ActivateOS\activate.ps1 : System.Management.Automation.MethodInvocationException: Ausnahme beim Aufrufen von
"Open" mit 0 Argument(en): "Unable to connect to any of the specified MySQL hosts." --->
MySql.Data.MySqlClient.MySqlException: Unable to connect to any of the specified MySQL hosts. --->
MySql.Data.MySqlClient.MySqlException: Timeout expired. The timeout period elapsed prior to completion of the
operation or the server is not responding.
bei MySql.Data.Common.StreamCreator.GetTcpStream(MySqlConnectionStringBuilder settings)
bei MySql.Data.MySqlClient.NativeDriver.Open()
--- Ende der internen Ausnahmestapelüberwachung ---
bei MySql.Data.MySqlClient.NativeDriver.Open()
bei MySql.Data.MySqlClient.Driver.Open()
bei MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
bei MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
bei MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
bei MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
bei MySql.Data.MySqlClient.MySqlPool.GetConnection()
bei MySql.Data.MySqlClient.MySqlConnection.Open()
bei CallSite.Target(Closure , CallSite , Object )
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Management.Automation.ExceptionHandlingOps.CheckActionPreference(FunctionContext funcContext, Exception
exception)
bei System.Management.Automation.Interpreter.ActionCallInstruction`2.Run(InterpretedFrame frame)
bei System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
bei System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
In Zeile:1 Zeichen:91
+ ... tionPolicy -Scope Process Bypass }; & '\\rma\ActivateOS\activate.ps1'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,activate.ps1vom Server aufgerufen funktioniert dies :
PS D:\ActivateOS> D:\ActivateOS\activate.ps1
Bitte geben Sie die Kundenbestellnummer ein!: 123456
Aktivierung mit Windows-Key NXXXX-RXXXX-HXXXX-GXXXX-8XXXX von Kunde : 123456
Ihre Windows Version wurde aktiviertWarum funktioniert dies von den Clients übers Netzwerk nicht???
MFG
- Bearbeitet Denniver ReiningMVP, Moderator Donnerstag, 17. Oktober 2019 13:59 Titel korrigert
Antworten
-
Lässt sich, ohne den Code zu sehen, nicht beantworten. Die Fehlermeldung sagt nur aus, dass er den angegebenen Server nicht erreichen kann. Nicht warum.
Da das Skript auf dem Server ausgeführt funktioniert und vom Client (per Freigabe??) nicht. Würde ich mal raten, das es daran liegt in welchem Kontext das Skript ausgeführt wird.
Wenn du das Skript von einem Client per Freigabe ausführst, wird das Skript unter dem User ausgeführt, den du auf dem Client für den Zugriff nutzt. Es könnten also sein, dass du in dem Skript auf Pfade des Servers zugreifst, die gibt es dann natürlich auf deinem Client nicht und das Skript weiß nicht, das du Pfade auf dem Quellserver meinst.
etc. etc. etc.
Normalerweise verwendet man Powershellboardmittel, um vom Client Remote Code auf einem Zielgerät auszuführen. Sowas wie invoke-command z.B.
Gruß- Bearbeitet marc-sysadmn Donnerstag, 17. Oktober 2019 14:16
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Montag, 21. Oktober 2019 13:21
- Als Antwort markiert Denniver ReiningMVP, Moderator Dienstag, 22. Oktober 2019 20:25
-
Da MySQL per TCP connection will, solltest du prüfen ob der Port 3306 für MySQL in der Firewall auch freigegeben ist.
Dies betrifft den Port auf dem Client als auch auf dem Server.- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Montag, 21. Oktober 2019 13:21
- Als Antwort markiert Denniver ReiningMVP, Moderator Dienstag, 22. Oktober 2019 20:25
Alle Antworten
-
Lässt sich, ohne den Code zu sehen, nicht beantworten. Die Fehlermeldung sagt nur aus, dass er den angegebenen Server nicht erreichen kann. Nicht warum.
Da das Skript auf dem Server ausgeführt funktioniert und vom Client (per Freigabe??) nicht. Würde ich mal raten, das es daran liegt in welchem Kontext das Skript ausgeführt wird.
Wenn du das Skript von einem Client per Freigabe ausführst, wird das Skript unter dem User ausgeführt, den du auf dem Client für den Zugriff nutzt. Es könnten also sein, dass du in dem Skript auf Pfade des Servers zugreifst, die gibt es dann natürlich auf deinem Client nicht und das Skript weiß nicht, das du Pfade auf dem Quellserver meinst.
etc. etc. etc.
Normalerweise verwendet man Powershellboardmittel, um vom Client Remote Code auf einem Zielgerät auszuführen. Sowas wie invoke-command z.B.
Gruß- Bearbeitet marc-sysadmn Donnerstag, 17. Oktober 2019 14:16
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Montag, 21. Oktober 2019 13:21
- Als Antwort markiert Denniver ReiningMVP, Moderator Dienstag, 22. Oktober 2019 20:25
-
Da MySQL per TCP connection will, solltest du prüfen ob der Port 3306 für MySQL in der Firewall auch freigegeben ist.
Dies betrifft den Port auf dem Client als auch auf dem Server.- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Montag, 21. Oktober 2019 13:21
- Als Antwort markiert Denniver ReiningMVP, Moderator Dienstag, 22. Oktober 2019 20:25