Leser: 20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl
use strict;
use warnings;
use Win32::Registry;
my ($node) = '\\\\node_ip';
my $Register='SOFTWARE';
my ($hNode, $hKey, @key_list);
print "win?\n";
$HKEY_LOCAL_MACHINE->Connect ($node, $hNode) or die "Cannot connect to
$node: $^E\n";
$hNode->Open ("$Register", $hKey) or die "Cannot open registry: $^E\n";
$hKey->GetKeys(\@key_list);
print "WIN!\n@key_list n";
$hKey->Close ();
$hNode->Close ();
QuoteConnect
$reg_obj->Connect($node_name, $new_reg_obj);
Connects to a remote Registry on the node specified by $node_name, returning it in $new_reg_obj. Returns false if it fails.
2009-12-29T11:03:06 reneeAllerdings steht nirgends in der Doku etwas von Authentifizierung...
2009-12-29T11:35:57 reneeUnd ich habe hier auch keine Umgebung, in der ich das mal testen könnte.
Guest ContraFackÜber Regedit wird eine user/passwort abfrage gestartet wenn der remote host den lokalen user nicht kennt. Ich denke es ist das selbe Prinzip wie bei Netzwerkfreigaben. Ist dies unter Perl der Fall heisst es (siehe Code) "Access is denied".
In verschiedenen Dokumenten zu Win32API:Registry, Win32::Registry oder Win32::TieRegistry habe ich keine Möglichkeit der Authentifizierung gefunden.
Guest ContraFackNun, ich kann das Problem umgehen indem ich einfach lokal einen entpsrechenden Administrator Account erstelle oder mein eigenes Administratorkonto Passwort anpasse.
2009-12-29T11:03:06 reneeWindows authentifiziert über lokale Konten auf dem entfernten Rechner mit den rcihtigen Befugnissen. Wenn dort ein Konto mit dem Windows-Loginnamen und -Passwort vorhanden ist, geht es.Allerdings steht nirgends in der Doku etwas von Authentifizierung...
QuoteAnsonsten könnte auch ein Domänencontroller die Kontenverwaltung übernehmen.
net use \\<entfernter-rechner-oder-ip>\IPC$ /USER:<remote-user> <remote-passwort>
1 2 3 4 5 6 7 8 9 10 11
if (Win32::NetResource::AddConnection({ 'Scope' => 0, 'Type' => 0, 'DisplayType' => 0, # RESOURCEDISPLAYTYPE_GENERIC 'Usage' => 0, 'RemoteName' => "\\\\".$remotecomputer."\\IPC\$", 'LocalName' => '', 'Comment' => "check_logfiles", #'Provider' => "Microsoft Windows Network" }, $password, $username, 0)) { #!!! auf die Reihenfolge achten trace("created ipc channel");