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

Powershell Remote-Registry

Frage Microsoft Windows Tools

Mitglied: lenny4me

lenny4me (Level 2) - Jetzt verbinden

03.05.2013, aktualisiert 04.05.2013, 6164 Aufrufe, 15 Kommentare

Grüße,

mich verwundert ein wenig das Verhalten meiner Powershell.
Ich möchte eigentlich nur in einem Script einen RegKey remote von einem Client löschen...

also los gehts
Enter-pssession Clientname

set-location HLKM:\software...

klappt wunderbar. Wenn ich dies aber in einem Script aufrufe bin ich plötzlich in der registy MEINER Maschine und nicht auf der des Clients.

[Code]
Enter-PSSession $Computer.DNSHostName


Set-Location HKLM:\SOFTWARE
dir
[/Code]

so schaut es bei mir aus. Das sollte doch eigentlich problemlos funktionieren... Oder wo mache ich meinen Denkfehler?

Grüße Lenny
Mitglied: colinardo
03.05.2013, aktualisiert um 13:35 Uhr
Hallo Lenny,
versuch mal in deinem Script dem Befehl Enter-PSSession Login-Credentials mitzugeben:

01.
$cred = get-credential DOMAIN\User 
02.
enter-pssession Clientname -Credential $cred
wahrscheinlich klappt das Anmelden der Remote-Session deshalb nicht, und die PS nimmt dann natürlich deine Registry als Referenz...

Grüße Uwe
Bitte warten ..
Mitglied: lenny4me
03.05.2013, aktualisiert um 13:40 Uhr
Hallo colinardo,

das anmelden klappt super... ich bin danach auf seinem Filesystem... kann browsen usw.
wenn ich Zeile für Zeile eintippe löscht er auch auf dem remote PC nur eben nicht wenn ich das Script als ganzen Konstrukt ausführe.

Grüße

PS: auch enter-pssession client

.... erfolgreich hergestellt

rename-item -Path C:\irgendwas -newname C:\irgendwasanderes -force

funktioniert auf der Konsole wunderbar... Im Script versucht er dann bei mir auf der lokalen Maschine den Befehl durchzuführen.
Bitte warten ..
Mitglied: colinardo
03.05.2013, aktualisiert um 14:11 Uhr
stimmt ja ... enter-pssession ist nur für den interaktiven Gebrauch bestimmt und funktioniert in einem Script nicht.

probier mal folgendes und lass das enter-pssession weg:
01.
Set-Location \\Clientname\HKLM:\SOFTWARE
glaube aber das HKLM via Remote nicht nutzbar ist.. muss ich nachschauen...

--edit--
wenn das obige nicht geht:
01.
Invoke-Command -ComputerName Clientname { Set-Location HKLM:\SOFTWARE }
Hinweis: Benötigt mindestens Powershell v2, der Remote-Computer muss zur Trusted-Hosts-Liste hinzugefügt werden, und der Dienst WinRM muss laufen:
winrm set winrm/config/client '@{TrustedHosts="RemoteComputerName"}'
Bitte warten ..
Mitglied: lenny4me
03.05.2013 um 14:48 Uhr
Hallo,

danke für die schnelle Antwort, ich werde das die nächsten Tage mal ausprobieren.
Bitte warten ..
Mitglied: lenny4me
06.05.2013, aktualisiert um 13:28 Uhr
Hallo,

Invoke-Command -ComputerName Clientname { Set-Location HKLM:\SOFTWARE } macht was es soll.
Nun habe ich nur noch ein paar kleinere Probleme den Regpfad aus Varriablen zusammenzubauen.

Invoke-Command -ComputerName Clientname { remove-item "HKLM:\SOFTWARE\Microsoft$REST"}

Er will beharrlich den Schlüssel Microsoft löschen und interessiert sich nicht für $rest.

auch wenn ich sage.
$reg1 = "HKLM:\SOFTWARE\Microsoft"
$rest = "test"
Invoke-Command -ComputerName Clientname { remove-item $reg$REST}
bekomme ich einen Fehler

Das Argument kann nicht an den Parameter "Path" gebunden werden, da es sich um eine leere Zeichenfolge handelt.
+ CategoryInfo : InvalidData: ( [Remove-Item], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.RemoveItemCommand
+ PSComputerName : Computername


Grüße
Bitte warten ..
Mitglied: colinardo
06.05.2013, aktualisiert um 15:25 Uhr
Zitat von lenny4me:
auch wenn ich sage.
$reg1 = "HKLM:\SOFTWARE\Microsoft"
$rest = "test"
Invoke-Command -ComputerName Clientname { remove-item $reg$REST}
bekomme ich einen Fehler
da fehlt doch ein Backslash zwischen den Variablen bzw. im Pfad und die Variablen haben den falschen Namen -->$reg anstatt $reg1
Bitte warten ..
Mitglied: lenny4me
06.05.2013, aktualisiert um 13:41 Uhr
Hallo,

entschuldige das \ hat meine Copy und paste aktion nicht "mitgenommen"
{ remove-item "HKLM:\SOFTWARE\Microsoft\$reg"}

Trotzdem sagt er... hey es gibt unterschlüssel unter HKLM:\SOFTWARE\Microsoft\ möchtest du die auch löschen....

bvei einem write-host "HKLM:\SOFTWARE\Microsoft\$reg" bekomme ich den richtigen String angezeigt.

Grüße
Bitte warten ..
Mitglied: colinardo
06.05.2013, aktualisiert um 13:49 Uhr
wenn in deinem Key noch weitere Unterschlüssel exisitieren die du auch löschen möchtest musst du noch den -recurse Parameter anhängen:
remove-item -Path "HKLM:\SOFTWARE\Microsoft\$SID" -recurse -force
Bitte warten ..
Mitglied: lenny4me
06.05.2013 um 13:56 Uhr
Hallo,
Sobald er in das richtige Verzeichnis springt hänge ich die Keys gerne an. Aber wenn er mir bei jedem Testlauf "HKLM:\SOFTWARE\Microsoft" weglöscht ist das eher kontraproduktiv
Bitte warten ..
Mitglied: colinardo
06.05.2013 um 15:20 Uhr
dann leg halt mal einen Key zu testen an. Hier geht das ganze ohne Probleme...
Bitte warten ..
Mitglied: lenny4me
06.05.2013 um 16:08 Uhr
Hallo,

ich versuche es ja mit testkeys...

Invoke-Command -ComputerName $client { remove-item "HKLM:\SOFTWARE\test"}

-> Erfolg
$AA = "test"
Invoke-Command -ComputerName $client { remove-item "HKLM:\SOFTWARE\$AA"}
-> wollen Sie sicher alle Keys unter HKLM:Software löschen?

Ist zum Haareraufen
Bitte warten ..
Mitglied: colinardo
06.05.2013 um 16:24 Uhr
probier mal die Variable innerhalb der Klammer von Invoke-Command zu setzen . Die Variable wird Remote so wie jetzt wahrscheinlich nicht aufgelöst:
01.
 Invoke-Command -ComputerName $client { $AA = "Test"; remove-item "HKLM:\SOFTWARE\$AA"}
Bitte warten ..
Mitglied: lenny4me
06.05.2013, aktualisiert um 16:46 Uhr
Hallo,

mein Held
Danke dafür. Aber das ist doch auch nicht wirklich logisch oder?
Ich kann meine gnaze Varriablendeklaration nicht in diesen Invoke Befehl basteln.....
Bitte warten ..
Mitglied: colinardo
06.05.2013, aktualisiert um 17:09 Uhr
eigentlich schon logisch weil der Befehl der in den Klammern steht, Remote ausgeführt wird und da ist die lokale Variable nun mal nicht sichtbar. Wie du sie sichtbar machst kannst du hier nachlesen:
http://blogs.msdn.com/b/powershell/archive/2009/12/29/arguments-for-rem ...

To use local variables in a command, use the following command format: {param($<name1>[, $<name2>]...) <command-with-local-variables>} -ArgumentList <value> -or- <local-variable>
The "param" keyword lists the local variables that are used in the command. The ArgumentList parameter supplies the values of the variables, in the order that they are listed.

01.
Invoke-Command -ComputerName $client { param($par1) remove-item "HKLM:\SOFTWARE\$par1"} -Argumentlist $AA
Bitte warten ..
Mitglied: lenny4me
07.05.2013 um 07:44 Uhr
Hallo,

ich bedanke mich für Deine Hilfe. Super Geschichte! Muss was PS angeht wohl noch einiges lernen.

Grüße
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Windows Server
Windows Powershell Remote Domain Controller (4)

Frage von FabianBaumgart zum Thema Windows Server ...

Batch & Shell
gelöst Powershell Registry (1)

Frage von Marabunta zum Thema Batch & Shell ...

Windows Tools
gelöst Powershell Remotezugriff auf Registry (15)

Frage von kushMichi zum Thema Windows Tools ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...