Einfaches Powershell Script was den Windows Script Host deaktivieren soll funktioniert nicht?

1 Antwort

Nun abgesehen davon, dass du den Pfad einfach so versuchst reinzuschreiben (du brauchst Anführungszeichen links und rechts), wird er es vmtl auch nicht annehmen, da die Syntax glaube ich HKLM: (also die Kurzschreibweise+Doppelpunkt) benötigt.

Zudem solltest du darauf achten, dass der Eintrag "Enable" überhaupt existiert (tut er bei mir z.B. nicht). Ansonsten brauchst du zum Ändern glaube ich Administratorrechte.

https://bitbucket.org/snippets/Ettar/5jEq7

Das ist mal meine Lösung dazu. Habs bei mir probiert, hat bei jedem Test funktioniert.

Es wird geprüft, ob das Script mit Administratorrechten ausgeführt wird. Wenn nicht wird ein Hinweis eingeblendet mit der Bitte um Bestätigung.

Wenn "Enable" mit 1 gesetzt ist, dann wird der Eintrag auf 0 gesetzt. Falls er nicht existiert, wird der Eintrag mit 0 angelegt.

Falls noch Fragen sind oder du Probleme hast, kannste dich gerne melden.

Die Anführungszeichen hatten gefehlt stimmt. Das hatte ich nicht bedacht. mit HKLM: hatte ich es auch probiert, da ging es aber auch nicht. Der Eintrag Enable existiert natürlich, weil ich ja weiß was ich da eigentlich bezwecken will. ^^ (kommt vielleicht nicht so rüber, weil ich vom Scripten nichts verstehe und mir das nur logisch zusammenreime). Adminrechte hatte ich natürlich auch. Powershell über cmd geöffnet als admin. Daran konnte es also auch nich liegen.
Ich schau mir mal deine Lösung an und vergleiche mal.
Danke dir trotzdem erst einmal für die Mühe. Hätte nich gedacht, dass da noch was kommt :P

0
@Stuck1234

Dass du weißt, was du bezwecken willst, davon gehe ich aus ^^.

Ich wollte damit nur sagen, dass man abfangen sollte, dass der Eintrag gar nicht existiert (ist bei mit Win 8.1 standardmäßig so gewesen). Wenn man dann versucht den Value zu ändern, bekommt man auch einen Fehler raus ;)

"Hätte nich gedacht, dass da noch was kommt :P"

Joa kann manchmal etwas dauern, da ich immer mal sporadisch in das Thema sehe, da recht wenig los ist ;)

1
@Etter

Was ich eigentlich machen wollte war das automatisierte Runterladen einer Host Datei aus einem Https Pfad ausm netz und das ersetzen mit der derzeitigen Host Datei. Dazu hatte ich auch was zusammen geschrieben, wollte aber sichergehen, dass bevor das Script ausgeführt wird im regedit der Wert von WSH schnell geändert wird und nach Beendigung wieder rückgängig gemacht wird. Dann kann ich jetzt das Teil in den Windows Aufgabenplaner stecken und muss mich darum nich mehr kümmern. Prima :D

0

ahh ich hab noch rausfinden können, dass der Zeichenwert Enabled heißt und nicht Enable. Das war auch noch ein Fehler. Naja, es war spät und es war warm und ich mag Scripts nich. ;D

Vielen Dank klappt jetzt alles. Von 0 auf 1 und andersrum klappt prima :)

0
@Stuck1234

Perfekt ^^.

Ach spätestens wenn du 200 mal das selbe machen sollst, dann bist du dankbar für Scripte ;)

Dann mal viel Spaß damit ^^.

0
@Etter

Ich bin ja als Sysadmin irgendwo abhängig davon abundzu mal en Script zu schreiben. Aber wenn man halt die ganze Zeit auf Arbeit nur Firewalls und Router konfiguriert und Powershell Scripting nich übt, lernt man es nie. :/

0

Wieso funktioniert diese powershell nicht?

$text = Get-Clipboard

Write-Host $text

Out-File -Append  -filepath \\filexx\tsprofile$\lge\Documents\code\psh\process.txt -InputObject $text

sleep 10

$text2 = Get-Clipboard

Write-Host $text2

            While($true){

            $text = Get-Clipboard

            if($text -eq $text2 ){$i = 1}else{$i =2}

            Switch($i) {

                            1 {Write-Host "gleich"}

                               2 {

                                Write-Host "unterschiedlich"

                                $text = Get-Clipboard

                                Write-Host $text

                                Out-File -Append  -filepath \\filexx\tsprofile$\lge\Documents\code\psh\process.txt -InputObject $text

                                sleep 10

                                $text2 = Get-Clipboard}

                       }

                               

                        }

...zur Frage

Mit PowerShell rechnen?

Hallo zusammen

Ich habe folgendes Problem:

Mit Hilfe von PowerShell lese ich eine Zahl (zb. 16:00:00) ein und speichere diese in einer Variable (zb. $time). Nun möchte ich diese Zahl minus rechnen (zb. 08:00:00). Allerdings kommt immer die Fehlermeldung, dass [System.String][] keine Methode mit dem Namen "op_Subtraction" enthält. Wie muss ich also diese Zahl konvertieren? Oder wie kann ich diese Zahl einfach Minus rechnen?

lg

...zur Frage

Ist in einem Windows 2012 R2 das cmdlets Standardmäßig mit installiert ?

Hallo,

Ich bin Azubi und habe mir auf der Arbeit einen Testserver (Windows 2012 R2) installiert.

Das Netzwerk steht auch schon. (AD,DHCP etc.)

Ich habe jetzt die Aufgabe bekommen, mich auf meinem Server einmal mit PowerShell scripting zu befassen. Hierzu will ich für die Anlage von Benutzern und Gruppen die cmdlets verwenden und das ganze in ein Script schreiben welches ich innerhalb einer Datei.ps1 dann ausführe. Da ich mehrfach Benutzer anlegen soll, habe ich mir auch schon Gedanken dazu gemacht eine CSV mit ein zu implementieren.

Ich bin relativ neu in dem Thema und was PowerShell angeht vom Verständnis her noch nicht soweit.

Der Fehler kommt für mich so rüber, als würde er keinen der Parameter die cmdlets mitliefern sollte verstehen... Werden die cmdlets für die Anlage von AdUsern nicht Standardmäßig mitgeliefert?

(Hier mal ein Beispiel welches ich direkt über die PowerShell ausgeführt habe.)

Eingabe:

$password="default12345"|ConvertTo -SecureString -AsPlainText -Force
New-ADUser -Name a.benutzer -GivenName a -Surname benutzer -Path "CN=Users,DC=test,DC=netzwerk,DC=azubi" -AccountPassword $Password -ChangePasswordAtLogon $True -Enabled $True

Fehler

-SecureString : Die Benennung "-SecureString" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei
oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist
(sofern enthalten), und wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:26
+ $password="default12345"|-SecureString -AsPlainText -Force
+                          ~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (-SecureString:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

Auch bei anderen Scripten, z.B bei dem Versuch einen Import einer CSV-Datei mit einzubringen schmiert er ab. Der Hinweis des Fehler geht immer auf die selbe Stelle, nämlich die des Parameters.

Beispiel CSV Script:

$Import= Import-CSV "C:\Users\a.test\Desktop\PowerShell\test.csv"
$ou= "CN=Users,DC=test,DC=netzwerk,DC=azubi"
Foreach($user in $import)
{
$password=$user.password|ConvertTo -SecureString -AsPlainText -Force
New-ADUser -Name $user.Name -GivenName $user.Vorname -Surname $user.nachname -Path $ou -AccountPassword $Password -ChangePasswordAtLogon $True -Enabled $True
}

Ich bin schon soweit gekommen das ich einen Hinweis auf den Fehler gefunden habe...

https://support.microsoft.com/de-de/kb/2669552

Muss ich Windows Azure Active extra mit einbeziehen? --> Hierzu noch keine Kenntnisse

Wenn ja... :) Wisst Ihr auch noch einen Weg wie ich das in einem Testnetz ans Laufen bekomme?

Mein Netzwerk ist nicht ans Internet angebunden. Wodurch ich Schwierigkeiten habe mir das per Webplattform Installer zu installieren.

Ist bisschen was auf einmal... Ich hoffe mir kann jemand helfen

Gruß Andy

...zur Frage

Avira Free Antivirus hat Versteckte Objekte gefunden.

ich habe eben einen Viren Scann gemacht, und es wurde kein Virus gefunden. Aber dafür wurden 5 Versteckte Objekte gefunden, mit denen ich nicht viel Anfangen kann. Die ersten Versteckten Objekte konnte ich zuordnen, sie gehörten zu den Drucker Treibern usw. Aber bei den letzten bin ich mir nicht Sicher. Könnt ihr mir weiter helfen?

Die Dateien:

Der Suchlauf nach versteckten Objekten wird begonnen. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Media Player NSS\3.0\Events{B95ECA99-2E0C-4999-B3FC-5FB266D34076} [HINWEIS] Der Registrierungseintrag ist nicht sichtbar. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Print\Printers\HP Officejet 4500 G510g-m\ChangeID [HINWEIS] Der Registrierungseintrag ist nicht sichtbar. HKEY_LOCAL_MACHINE\Software\Wow6432Node\Hewlett-Packard\DigitalImaging\HP Officejet 4500 G510g-m\DeviceInstances\1393869744\Functions\Scan\LastScanToRestore [HINWEIS] Der Registrierungseintrag ist nicht sichtbar.

HKEY_USERS\S-1-5-21-44197346-3835963953-362077522-1001\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\DefaultConnectionSettings [HINWEIS] Der Registrierungseintrag ist nicht sichtbar.

HKEY_USERS\S-1-5-21-44197346-3835963953-362077522-1001\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\SavedLegacySettings [HINWEIS] Der Registrierungseintrag ist nicht sichtbar.

Bei den letzen zwei Einträgen bin ich mir nicht sicher.

...zur Frage

Powershell und das CSV Problem

Hey @all

brauche mal wieder Hilfe... Ich arbeite zur Zeit mit Powershell und möchte eine Spalte aus einem CSV in eine Variable schreiben.

Das CSV ist als Trennzeichen Getrennt gespeichert und sieht (siehe unten) wie Folgt aus... Ich hätte nun gern alle Einträge welche mit "TC_" beginnen in einer Variable. Die Ausgabe müsste so aussehen -> TC_SRV058, TC_SRV003 und so weiter. (Ich will die Maschinen in weiterer Folge über diese Namen anscripten)

Kann mir hier jemand helfen??? Bitte danke :)

...zur Frage

Was möchtest Du wissen?