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

PowerShell: "Es wurde kein Positionsparameter gefunden, der das Argument "+" akzeptiert." Wie löse ich das?

Hi

Es geht um Reports... Programmiert wurde es mit PowerShell ISE

Hier der Fehler:

Rename-Item : Es wurde kein Positionsparameter gefunden, der das    Argument  "+" akzeptiert.
In Zeile:34 Zeichen:1
+ rename-item "c:\Reporting\Report_Telephone_" + $todaydate[0] +'-' + $todaydate[1 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Rename-Item], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.RenameItemCommand

hier mein Code:

#today's date (year-month-day)
$todaydate = Get-Date -Format yyyy-MM-dd

#arrays  (today => systemtime)
$todaydate = $todaydate.Split('-')
$todaydate[0] #year
$todaydate[1] #month
$todaydate[2] #day

#arrays yesterday (systemtime - one day)
$yesterdaysdate = Get-Date((Get-Date).AddDays(-1)) -Format yyyy-MM-dd
$yesterdaysdate = $yesterdaysdate.Split('-')
$yesterdaysdate[0] #year
$yesterdaysdate[1] #month
$yesterdaysdate[2] #day

#arrays yesterday (systemtime - one day)
$lastmonth = Get-Date((Get-Date).AddMonths(-1)) -Format yyyy-MM-dd
$lastmonth = $lastmonth.Split('-')
$lastmonth[0] #year
$lastmonth[1] #month
$lastmonth[2] #day


#Example 1:  Filename "Report_Telephone_yyyy-mm" => in this case "Report_Telephone_2016-12"
#it renames the file -> minus one month, so the name must be "Report_Telephone_2016-11"
$filename='Report_Telephone_'+ $lastmonth[0]+'-'+ $lastmonth[1] + '.xlsx'
$filemonth = [int][regex]::Match($filename, '\w+_\d+_(\d+)').Groups[1].Value
$filemonth = "{0:D2}" -f ($filemonth - 1)

write-host $filename
rename-item "c:\Reporting\Report_Telephone_" + $todaydate[0] +'-' + $todaydate[1] + ".xlsx" -NewName $filename

$sourcepath='C:\Reporting\'+ $filename
write-host $sourcepath
$destinationpath='C:\Reporting\'+ $lastmonth[0]+'\'+ $lastmonth[1]
write-host $destinationpath
if(test-path $destinationpath)
{

} 
else 
  {
     mkdir $destinationpath
  }
move-item -path $sourcepath -destination $destinationpath

Hat einer ne Idee, wie ich das lösen könnte? Thx im vorraus :3

...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

Wie kann man in Powershell Ergebnisse von Properties herausfiltern?

Ich habe eine Abfrage in PS geschrieben, um in Erfahrung zu bringen, auf ob und welche Berechtigungen eine bestimmte Gruppe auf Ordner in einem bestimmten Pfad haben.

$sName = GRUPPE
Get-ChildItem PFAD -Recurse | Where-Object {$_.PSIsContainer} | Get-Acl | Where-Object {$_.AccessToString -like $sName} | Select-Object PSParentPath,Path,AccessToString | fl

Als Ergebnis werden mir nun alle Gruppen wiedergegeben, die auf die aufgelisteten Ordner Zugriff haben. Wie kann ich diese herausfiltern bzw. wie kann ich mir nur meine gesuchte Gruppe mit Rechten anzeigen lassen?

Danke!

...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 mach ich falsch Batch?

  • if /I %ki%==was geht (
  • echo Rias: Nix, bei dir?
  • set kit-text=Nothing.
  • pause>nul
  • )

Es crasht immer :o was kann ich machen?

...zur Frage

Ausgabe der Netzwerkaktivität über die Windows-PowerShell?

Hallo, Ich beschäftige mich seit neuestem mit der Windows PowerShell und möchte jetzt ein paar nützliche Scripts schreiben. Eines davon ist ein "Internet-Boost". In diesem Script sollen alle Prozesse die eine hohe Netzwerkaktivität (so wie im Ressource-Monitor) haben beenden werden. Es gibt ja den Befehl "ps", dort wird jedoch nur die CPU ausgegeben und nicht die Netzwerkaktivität.

Kann mir jemand von euch weiterhelfen?

...zur Frage

Was möchtest Du wissen?