Jump to content

sc.exe und auth


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...