Benutzer mit den meisten Antworten
Server remote über powershell(v2) abfragen

Frage
-
Hallo ich möchte server remote über powershell abfragen
mein system ist xp sp2 normaler user account (psv2)
die remote server sind 2003ee
es existiert ein admin account
zum doing :
ich möchte lokal von meiner xp kiste die server remote per powershell abfragen
ich möchte das ereignissanzeige abfragen
lokale abfrage
klappt ja auch
- Variablen setzen
$remoteuser = get-credential
$user = $env:Username
Get-EventLog -logname system | Where-Object {$_.EventID -eq 6005}
leider ist der get befehl NUR lokal und nicht remote!!
remote abfrage
dann bräuchte ich den ??
get-wmiobject -class Win32_NTLogEvent -computername EGEER01AS233.edom.ad.corp| Where-Object {$_.EventID -eq 6005}
brauche ich dann auch $remoteuser = get-credential ??
ich habe zwar wmi credential auf dem remote server doch leider klapp es nicht!
kann mir bitte jemand weiterhelfen
und kann ich bei dem wmi befehl auch eine server.txt einbauen, wenn ja wie?
danke
Antworten
-
Hi Phobos,
besorge Dir in jedem Fall ein PowerShell Buch, mit dem Du Dir die Grundlagen erarbeitest. Wir können hier im Forum nicht alle Deine Fragen abarbeiten. Danach könnten wir dann nämlich auch ein Buch draus machen. ;-)
Also: Wenn Du die Abfrage lokal absetzen möchtest und WinRM nicht auf den Zielsystemen installieren möchtest, dann lassen wir WinRM ab jetzt weg.
Zur WMI-Abfrage: Du hast in Deinem Statement schlichtweg nur "admin" verwendet und nicht etwa eine Übergabe der Credentials erwirkt.
Also würde ein Script wie folgt aussehen:
$remoteuser = get-credential domäne\admin Gwmi -ComputerName xyz -Class win32_computersystem -Credential $remoteuser | Where-Object {$_.EventID -eq 6005}
Viele Grüße
Fabian
http://blogs.technet.com/deds- Als Antwort vorgeschlagen Fabian Müller [MSFT]Microsoft employee Donnerstag, 10. Dezember 2009 13:21
- Als Antwort markiert Andrei TalmaciuModerator Montag, 14. Dezember 2009 09:23
Alle Antworten
-
Hi,
als allererstes möchte ich dich auf meinen Thread verweisen : http://social.technet.microsoft.com/Forums/de-DE/powershell_de/thread/eda2c200-5415-4362-998e-dba5c91cd9bd ;-)
Hier kannst du alle Komponenten runterladen, die für den Remotezugriff mit der PS 2.0 benötigt werden : http://support.microsoft.com/default.aspx/kb/968929
Und hier eine kleine Einführung zu den Thema: http://www.computerperformance.co.uk/powershell/powershell_remote.htm
Gruß
Martin -
puh aller anfang is schwer zumal wie ich finde die dokus nicht sehr gut sind!!
also ersteinmal grundsätzliche frage
ich habe ja bereits die v2 Version
um remote anfragen zu machen brauche ich da noch extra die WINRm?
und welche Credentials brauche ich um remote fragen zu stellen -
ich habe nun folgendes probiert OHNE erfolg
$remoteuser = get-credential
get-wmiobject -class Win32_NTLogEvent -computername EGEER01AS23(reicht der dns name oder brauche ich fqdn??)
bei wmi habe ich 2 domänen account die auf wmi vollzugriff haben
fehlermeldung
Get-WmiObject : Zugriff verweigert (Ausnahme von HRESULT: 0x80070005 (E_ACCESSD
ENIED))
kann mir jemand sagen warum?!
danke
-
Hallo Phobos,
hast Du die oben verlinkten Artikel befolgt? Kannst Du eine PSSession remote ausführen?
Du benötigst nicht unbedingt die WMI Remote Abfrage, denn mit der PowerShell V2 läßt sich über die Remote Session alles direkt abfragen.
Beschreib doch noch einmal ganz genau wie Du vorgegangen bist.
Bezüglich WMI: Bist Du lokaler Administrator auf der Remote Maschine bzw. hast Du die korrekten Credentials übergeben?
Viele Grüße
Fabian
http://blogs.technet.com/deds -
Hi Fabian,
also ich bin "normaler Hptbenuzter" auf meinen xp client
und wolte per wmi auf den remote server zugreifen
mit $remoteuser = get-credential =es erscheint ein logon Fenster
ich hab auf dem remote server (wmi credentials unter computer-management mit voll zugriff auf wmi vergeben) und der selbe account ist auch lokaler admin auf dem remote server!
und übergeb ich die credentials mit $remoteuser = get-credential?? -
Hi Phobos,
Du ziehst Dir zwar die Credentials in eine Variable - aber ich kann im WMI-Statement von Dir oben keine Übergabe dieser Credentials an das WMI-Query sehen. Ich vermute da liegt das Problem. Schau Dir einmal ein "get-help Get-WMIObject -full" an, dort ist der Parameter "-Credential <PSCredential>" relevant.
Die Frage zu PSSession und WinRM läßt sich leicht beantworten, wenn Du die Suchmaschine Deiner Wahl benutzt ;-). Ich denke, das müssen wir hier nicht auch noch auseinander nehmen :-) :
http://www.bing.com/search?q=PowerShell+V2+PSSession&form=QBLH&filt=all
Heraus kommt dann bei der Suche beispielsweise:
http://powershell.com/cs/blogs/tobias/archive/2008/11/09/powershell-v2-remoting-overview.aspx
http://blogs.msdn.com/powershell/archive/2007/10/30/winrm-exe.aspx
Viele Grüße
Fabian
http://blogs.technet.com/deds -
nochma Hi,
ich wollte ebenmeine PSv2 Enable-PSRemoting -force ->Fehlermeldung
Enable-PSSessionConfiguration : Windows PowerShell remoting features are not enabled or not supported on this machine.
This may be because you do not have the correct version of WS-Management installed or this version of Windows does not
support remoting currently.was is das Problem?!
-
Hi Phobos,
die Links mußt Du Dir schon anschauen, dort steht nämlich alles drin... ;-)
Du brauchst kein WMI - Du verbindest Dich direkt mit dem Remote System per WinRM in einer PSSession.
Natürlich kannst Du auch WMI nutzen, es stehen also beide Varianten zu Deiner Verfügung.
Viele Grüße
Fabian
http://blogs.technet.com/deds -
das habe ich getan, nur als newbie sind diese beiden links alles andere wie hilfreich!
frage wo bitte ist der unterschied!!Get-WmiObject -ComputerName EGEER01AS23 -Class win32_computersystem -Credential i-brandt
mit dem credential geht die abfrage
wenn ich aber$remoteuser = get-credential /domäne/admin
Get-WmiObject -ComputerName EGEER01AS23 -Class win32_computersystem
machen bekomme ich einen zugriffsberechtigung Fehler?
?? -
Hi Phobos,
noch einmal der Hinweis: Wir müssen unterscheiden zwischen den remote WMI Abfragen und der PowerShell V2 / WinRM.
Machst Du WinRM, dann brauchst Du die WMI-Abfrage nicht oder Du nutzt sie direkt auf dem Zielsystem mittels einer PS Remote Session (PSSession).
Möchtest Du die WMI-Abfrage direkt remote nutzen, dann mußt Du die eingelesenen Credentials natürlich auch der WMI-Abfrage übergeben ;-):
Get-WmiObject -ComputerName EGEER01AS23 -Class win32_computersystem -Credential $remoteuser
Viele Grüße
Fabian
http://blogs.technet.com/deds -
ahhhh ich verstehe die Übergabe findet mit $remoteuser statt!!
ich hab früher noch nie gescriptet aber das habe ich nun verstanden danke fabian
ez nur noch der unterschied
zwischen wmi (wo ich natürlich auf der remote kiste die entsprechenden credatials brauche)
und
pssession / wimrm
aber ich möchte auf keinem remotesystem die ps installieren, das soll ALLES von meiner lokales xp kiste aus gehen
-
@ fabian,
nochmal zu WMI
Gwmi -ComputerName xyz -Class win32_computersystem -Credential admin| Where-Object {$_.EventID -eq 6005}
ich bekomme eine loginmaske ich klopf meine credentials rein
und nichts passiert?
nun bekomme ich keine credatials fehlermeldung mehr und auch kein rpc!!
dafür passiert nichts
hast du ne idee?
danke -
Hi Phobos,
besorge Dir in jedem Fall ein PowerShell Buch, mit dem Du Dir die Grundlagen erarbeitest. Wir können hier im Forum nicht alle Deine Fragen abarbeiten. Danach könnten wir dann nämlich auch ein Buch draus machen. ;-)
Also: Wenn Du die Abfrage lokal absetzen möchtest und WinRM nicht auf den Zielsystemen installieren möchtest, dann lassen wir WinRM ab jetzt weg.
Zur WMI-Abfrage: Du hast in Deinem Statement schlichtweg nur "admin" verwendet und nicht etwa eine Übergabe der Credentials erwirkt.
Also würde ein Script wie folgt aussehen:
$remoteuser = get-credential domäne\admin Gwmi -ComputerName xyz -Class win32_computersystem -Credential $remoteuser | Where-Object {$_.EventID -eq 6005}
Viele Grüße
Fabian
http://blogs.technet.com/deds- Als Antwort vorgeschlagen Fabian Müller [MSFT]Microsoft employee Donnerstag, 10. Dezember 2009 13:21
- Als Antwort markiert Andrei TalmaciuModerator Montag, 14. Dezember 2009 09:23
-
das werde ich
doch das habe ich!!
sonst würde ja KEIN Loginfenster erscheinenPS H:\> Gwmi -ComputerName xyz -Class win32_computersystem -Credential domäne/admin | Where-Object {$_.EventID -eq 6005}
doch nach dem Login fenster passiert NICHTS mehr?!
nach ein paa Sekunden erscheint eine Zeile tiefer der Promt in der PS wieder
-
Hi,
das liegt daran, daß es keine Eigenschaft "EventID" bei Deiner Abfrage gibt. Führe einmal die Abfrage ohne das "| Where-Object [...]" aus und Du wirst die Eigenschaften sehen, die Du abfragen kannst in dieser Klasse. "EventID" ist nicht dabei. Willst Du alle Eigenschaften der Klasse sehen, nimmst Du ein:
PS H:\> Gwmi -ComputerName xyz -Class win32_computersystem -Credential domäne\admin | format-list *
Außerdem sollte es ein Backslah zwischen Domäne und Benutzer ein, also "domäne\admin" und nicht "domäne/admin".
Wenn es Dir aber nicht nur um ein Beispiel, sondern um die konkrete Abfrage des Eventlogs geht, dann kannst Du anstatt "Get-WMIObject" besser "Get-Eventlog" nutzen. Ein "Get-Help Get-Eventlog -full" gibt Dir eine Menge Varianten für die Abfragen.
Viele Grüße
Fabian
http://blogs.technet.com/deds -
@ Fabian abschliessende frage,
gwmi -ComputerName xxx -Credential admin -Class win32_operatingsystem -property lastbootuptime=LastBootUpTime : 20091203141216.263250+060 (wmi ausgabeformat)
#umrechnung
[management.managementDateTimeConverter]::ToDateTime("20091203141216.263250+060")=Donnerstag, 3. Dezember 2009 14:12:16
wie kann ich das in ein script automatisieren?
besten dank
- Bearbeitet -Phobos- Donnerstag, 10. Dezember 2009 14:38
-
Hi,
Du weist das Ergebnis einer Variablen zu und liest dann die Eigenschaft "lastbootuptime" aus:
$variable = gwmi -ComputerName EGEER01AS23 -Credential svc-wugmon -Class win32_operatingsystem -property lastbootuptime
$ergebnis = [management.managementDateTimeConverter]::ToDateTime($variable.lastbootuptime)
write $ergebnis
Viele Grüße
Fabian
http://blogs.technet.com/deds