michasurma 10 Geschrieben 30. Januar 2008 Melden Geschrieben 30. Januar 2008 Hallo Gemeinde, folgender Teil meines scripts funktioniert wunderbar solange User/Pass des Host UND Zielrechners gleich sind. :status for /F %%I IN (listen\server.txt) DO ( echo *********************************** echo Server %%I apps\sc.exe \\%%I query AgentServer | apps\qgrep.exe STATE ) echo *********************************** goto ende Leider unterstützt sc keine Authentifizierung in der Form -user oder -password Was für Alternativen gäbe es hier? PERL wäre eine mit Win32 API, nur leider sind meine PERL Kenntnisse eher beschränkt. Vielen Dank für einen kleinen Tipp oder gar Script das eben diese AUTH vornimmt. Micha
Zearom 10 Geschrieben 30. Januar 2008 Melden Geschrieben 30. Januar 2008 naja du könntest die SC.exe in eine getrennte bat schieben und mit dem Runas befehl die Identität des Batch-Aufrufs ändern. die Infos für SC übergibst du dann halt auch über Parameter.
olc 18 Geschrieben 30. Januar 2008 Melden Geschrieben 30. Januar 2008 Hallo, eine andere Möglichkeit wäre auch, zu dem zu überwachenden System mittels "net use" eine IPC$ Connection aufzubauen. Voraussetzung dafür ist jedoch, daß zu dem System noch eine anderen Verbindungen existieren - diese müßten sonst vorher gelöst werden. :status for /F %%I IN (listen\server.txt) DO ( echo *********************************** echo Server %%I net use \\%%I\IPC$ /USER:<User> <Kennwort> apps\sc.exe \\%%I query AgentServer | apps\qgrep.exe STATE net use \\%%I\IPC$ /DELETE ) echo *********************************** goto ende Ansonsten kannst Du beispielsweise auch über die PowerShell (oder direkt über WMI) die Abfrage mit anderen Credentials starten, siehe http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.windows.powershell&tid=002c1640-46c1-490e-854d-0a0ee06abc22&cat=&lang=&cr=&sloc=&p=1 Das WMI-Statement müßte dann irgendwie so aussehen: Get-WmiObject -Query "select * from Win32_Service where ServiceName='AgentServer' and State='stopped'" -ComputerName $Computer -Credential $Credentials --> geklaut bei http://www.windowsitpro.com/Files/50/97539/listing_01.txt Mit ein wenig Arbeit sollte es möglich sein, die beiden Statements anzupassen und zusammenzubringen. Gruß olc
Sunny61 833 Geschrieben 30. Januar 2008 Melden Geschrieben 30. Januar 2008 Eine weitere Alternative ist die PSEXEC.EXE von MS. Account und PW mitgeben und gut ist. ;)
olc 18 Geschrieben 31. Januar 2008 Melden Geschrieben 31. Januar 2008 Hallo, die Sache hat mir irgendwie keine Ruhe gelassen - wäre doch gelacht, wenn das nicht einfacher ginge. Mittels WMI / WMIC kannst Du das tatsächlich recht schnell so lösen: wmic /NODE:@"C:\computerliste.txt" /USER:"DOMAIN\user" /PASSWORD:"kennwort" SERVICE WHERE Name="AgentServer" GET SystemName, State In der Computerliste stehen Deine zu überwachenden Systeme mit NetBIOS oder DNS Namen. Die Abfrage kannst Du problemlos auch in Deine bestehende Batch-Datei übernehmen. Die oben - in meinem ersten Beitrag genannte - PowerShell Variante würde in einem Script nicht laufen, da die Credentials während des Funktionsaufrufs (-Credential) interaktiv abgefragt werden. Viele Grüße olc
michasurma 10 Geschrieben 6. Februar 2008 Autor Melden Geschrieben 6. Februar 2008 Danke, olc's Lösung gefällt mir am besten und hat sehr gut funktioniert. Danke auch an die anderen Schreiber, alles notiert, man weiss ja nie :)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden