none
Powershell Script zum ändern der fDisableCdm

    Frage

  • Hallo alle zusammen,

    ich bin grade dabei mir ein paar Scripte zu schreiben die meine administrative Aufgaben erleichtern sollen.

    Aktuell kommt es immer wieder vor das sich von Nutzern die Regedit Einstellungen ändern für ihre Remotefreigaben.

    Jetzt möchte ich nicht jedes mal auf die Maschine gehen, die Pfade durch klicken um dann den Wert umzustellen.
    Jetzt suche ich seit ein paar Tagen nach einer Lösung, leider habe hierzu noch nicht den richtigen Codeschnipsel gefunden.

    Aktuell habe ich es mit:

    Get-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\fDisableCdm: 0x00000001

    probiert, jedoch ohne Erfolg.
    Leider hab ich auch kein so richtigen Ansatz wie ich da anfangen soll, bzw. wie man eine RegEdit Datei bearbeitet bzw. den Wert umstellt.

    Über ein paar Tipps oder Hilfe würde ich mich freuen.

    Donnerstag, 13. April 2017 10:40

Antworten

Alle Antworten

  • Hi,

    nuja, "Get" sagt ja schon, dass man einen Wert holt/liest. Um einen Wert zu setzen, wäre die "Set" Variante hilfreicher.

    Einen Überblick über Registrymanipulationen über Powershell findest Du bspw. hier:

      https://blogs.technet.microsoft.com/heyscriptingguy/2012/05/12/weekend-scripter-use-powershell-to-easily-modify-registry-property-values/

      https://blogs.technet.microsoft.com/heyscriptingguy/2015/04/02/update-or-add-registry-key-value-with-powershell/


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 13. April 2017 11:06
  • Ups sollte kein Get sondern Set sein :)

    Ich habe mit die Seiten durchgelesen und es scheint auch sehr einfach zu sein, wenn ich jetzt:

    Set-ItemProperty-PathHKLM:\Software\Policies\Microsoft\WindowsNT\TerminalServices-NamefDisableCdm-Value0

    ausführe, sagt er mir folgende Meldung:

    Set-ItemProperty : Es wurde kein Positionsparameter gefunden, der das Argument "NT\Terminal" akzeptiert.
    In C:\Dokumentenablage\01_Powershellscripte\Remote_laufwerkfreigabe.ps1:1 Zeichen:2
    +  Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows NT\ ...
    +  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [Set-ItemProperty], ParameterBindingException
        + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetItemPropertyCommand
    Ich verstehe jetzt nicht warum er NT/Terminal als Argument erkennt?

    Dienstag, 18. April 2017 09:15
  • Pfade, Argumente, Strings und solche Sachen müssen mindestens dann in Anführungszeichen eingeschlossen werden, wenn sie Leerzeichen enthalten.

    Sollte also so funktionieren:

    Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows NT\TerminalServices' -Name 'fDisableCdm' -Value 0

    und BTW: bitte keinen farbigen Code posten, de sieht hier im Forum nicht gut aus und ist im Zweifelsfall kaum zu lesen. Einfach die Formatierungsoption für Code benutzen.

    Danke


    Grüße - Best regards

    PS:> (79,108,97,102|%{[char]$_})-join''

    • Als Antwort markiert Zyrusvirus Dienstag, 18. April 2017 10:22
    Dienstag, 18. April 2017 09:29
  • Hallo Zyrusvirus,

    warum verwendest du dafür keine Gruppenrichtlinien?


    Chris

    Dienstag, 18. April 2017 16:58