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

srvcheck über cmd als anderer Benutzer aufrufen

Frage Entwicklung Java

Mitglied: seejay

seejay (Level 1) - Jetzt verbinden

19.10.2009 um 15:54 Uhr, 7591 Aufrufe, 5 Kommentare

Hallo,

Ich möchte über ein Javaprogramm mir alle Server, sowie deren Freigaben und Berechtigungen ausgeben lassen.
Als gutes Tool habe ich dazu SvrCheck.exe aus dem Windows Resource Kit gefunden und so in Java eingebunden:
01.
Process p2=Runtime.getRuntime().exec("cmd.exe /C srvcheck.exe "+pfad); 
02.
                    BufferedReader in2 = new BufferedReader(new InputStreamReader(p2.getInputStream())); 
03.
                    String s2; 
04.
                    while((s2 = in2.readLine()) != null) 
05.
06.
                        ta_erg.append(s2+System.getProperty("line.separator")); 
07.
                    }
Leider muss ich dass Programm als Domänenadministrator ausführen um ein geeignetes Ergebnis zu bekommen. Da wir aber 2 Domänen haben, kann ich es nicht über den normalen Benutzer (wer das Programm aufruft) laufen lassen, da er immer nur Administrator von einer Domäne ist.
Jetzt meine Frage, gibt es eine Möglichkeit die Date srvcheck bzw das cmd von einem anderen Benutzer aus zu starten?
Ich habe dazu dies gefunden:
01.
Process p2=Runtime.getRuntime().exec("cmd.exe runas /user:XYQ cmd.exe /C srvcheck.exe "+pfad);
Leider kommt dabei dann weder eine Fehlermeldung noch sonst irgendetwas. Der Befehl wird anscheinend einfach übersprungen.
Ist etwas an meinem Aufrug falsch oder muss ich vllt auch anders an die Sache ran gehen?

Gruß
seejay
Mitglied: ITIL-Harry
19.10.2009 um 16:04 Uhr
schau Dir mal die Parameter des Befehls RUNAS an

oder starte das Programm über eine Verknüpfung und gib in deren Eigenschaften
die Ausführung unter anderem Account an.

Gruß
ITIL-Harry
Bitte warten ..
Mitglied: DerWoWusste
20.10.2009 um 00:21 Uhr
Hallo.
Willst Du dem Benutzer ermöglichen, ein Skript als anderer Benutzer zu starten, nutze den Taskplaner. Da kannst Du Konteninformationen einspeichern und den schwachen Benutzer berechtigen, den Task zu starten. Die Ausführung des Tasks wird für ihn unsichtbar sein, es muss also eine Ausgabe in eine DAtei erfolgen, damit er das Ergebnis verwerten kann. Außerdem muss das Skript selbst tunlichst auf einer Freigabe liegen, auf die der Nutzer nur Leserechte hat.
Bitte warten ..
Mitglied: seejay
20.10.2009 um 08:20 Uhr
Hallo,
Vielen Dank schon einmal für eure Mühe.

Zitat von DerWoWusste:
Hallo.
Willst Du dem Benutzer ermöglichen, ein Skript als anderer
Benutzer zu starten, nutze den Taskplaner. Da kannst Du
Konteninformationen einspeichern und den schwachen Benutzer
berechtigen, den Task zu starten. Die Ausführung des Tasks wird
für ihn unsichtbar sein, es muss also eine Ausgabe in eine DAtei
erfolgen, damit er das Ergebnis verwerten kann. Außerdem muss
das Skript selbst tunlichst auf einer Freigabe liegen, auf die der
Nutzer nur Leserechte hat.

Also jein ;) Unsere Systemlandschaft hat mich zu diesem Schritt gebracht. Also eine Person bei uns hat einen Benutzer als lokalen Admin. Mit diesem ist die Person meistens angemeldet, bzw sollte maximal mit diesem angemeldet sein. Dazu hat die Person 2 weitere Accounts, die jeweils Domänenadmin für eine unserer Domänen ist.
Mein Programm soll jetzt Freigabeordner und Berechtigungen von beiden Domänen auslesen. Dafür müsste aber der jeweilige Domänenadministrator angemeldet sein. Da es 2 unterschiedliche Accounts sind geht es nicht. Damit jetzt nicht der User 3 Programme starten und sich jeweils anders anmelden muss, wollte ich es jeweils mit runas verwirklichen. Der Benutzer gibt seinen Usernamen und Passwort in das Programm und dieses startet im Hintergrund die jeweiligen Domänenabfragen (jeweils mir runas).

Ich hoffe es ist jetzt etwas klarer geworden, was ich machen möchte und wo mein Problem liegt.


@edit:
Beim Schreiben etwas aufgefallen:
01.
Process p2=Runtime.getRuntime().exec("cmd.exe /C runas /user:XYQ \"cmd.exe  srvcheck.exe "+pfad+ "\"");
Mit dem /C vorne funktioniert es, dass ich die Abfrage nach dem Passwort bekomme. Aber wie kann ich es dann an den Prozess übergeben?
Dachte hier an soetwas
01.
                    Process p2=Runtime.getRuntime().exec("cmd.exe /C runas /user:XYZ \"cmd  srvcheck.exe "+pfad+"\""); 
02.
                    OutputStreamWriter out2 = new OutputStreamWriter (p2.getOutputStream()) {}; 
03.
                    out2.append("PASSWORT"); 
04.
                    out2.flush(); 
05.
                    BufferedReader in2 = new BufferedReader(new InputStreamReader(p2.getInputStream())); 
06.
                    String s2; 
07.
                    while((s2 = in2.readLine()) != null) 
08.
09.
                        System.out.println(s2+System.getProperty("line.separator")); 
10.
                    }
Geht aber leider nicht. Wie muss ich da vorgehen?


Gruß
seejay
Bitte warten ..
Mitglied: ITIL-Harry
20.10.2009 um 10:47 Uhr
Hi seejay,

evtl. liegt es an der Authentisierung.
In Deinem Script schreibst Du ....... exec("cmd.exe /C runas /user:XYZ \" ........
Versuch es mal mit ....... exec("cmd.exe /C runas /user:Domäne\XYZ \" ........

Wenn ich das richtig verstanden habe möchtest Du domänenübergreifend Infos ermitteln.
Dann musst Du Dich auch mit dem jeweiligen Domänenaccount anmelden.

Alternativ könntest Du Trusts einrichten und die Domänenadmins gegenseitig in die
Domainadmingruppen eintragen.

Gruß
ITIL-Harry
Bitte warten ..
Mitglied: seejay
20.10.2009 um 13:31 Uhr
Hallo,

ne daran lag es nicht. Inzwischen habe ich es jetzt auch hinbekommen. Zwar umständlicher als gewollt aber wenigstens funktioniert es. Daten werden jetzt per srvcheck über cpau aufgerufen und in einer textdaien zwischengespeichert. Dort will ich sie danach wieder einlesen.

Gruß
seejay
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Cmd Befehle in Powershell GUI aufrufen (5)

Frage von Markus2016 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell: CMD Kommando mit Parameter aufrufen (8)

Frage von bonnerjung zum Thema Batch & Shell ...

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

Frage von Xaero1982 zum Thema Microsoft ...

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

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...