Powershell - Problemen met importeren Fsrm filegroup

Pagina: 1
Acties:

Vraag


  • Samsonait
  • Registratie: Januari 2011
  • Laatst online: 18-08 10:22

Samsonait

Lekker weertje, he?

Topicstarter
Mijn vraag:

Ik ben een taak binnen FSRM aan het automatiseren,
Een script heb ik geschreven voor het downloaden van een lijst van https://fsrm.experiant.ca/api/v1/get die een lijst met meest geupdate extensies hebben.

code:
1
2
3
4
5
6
7
8
9
$website = "https://fsrm.experiant.ca/api/v1/get"
$filePath = "C:\Users\***\Desktop\"
$fileName ="ExtensionList"

$webclient = New-Object System.Net.WebClient
$jsonString = $webclient.DownloadString($website)

$filePath = $filePath + $fileName
$jsonString | Out-File $filePath


Vervolgens check ik deze op wijzigingen met het laatst gebruikte bestand met extensies

code:
1
2
3
4
$File1 = "C:\Users\***\Desktop\ExtensionList"
$File2 = "C:\Users\***\Desktop\ExtensionList1"
$Location = "C:\Users\***\Desktop\verschil"
Compare-Object -referenceObject $(Get-Content $File1) -differenceObject $(Get-Content $File2) | %{$_.Inputobject + $_.SideIndicator} | ft -auto | out-file $Location -width 5000


Ik had in eerste instantie deze code, maar omdat deze site gecomprimeerd kan worden of er ineens .doc in de lijst komt te staan wil ik deze altijd eerst checken op wijzigingen.

Deze variant gebruik ik dus niet, maar werkte wel.
code:
1
2
remove-FsrmFileGroup -name "Anti-Ransomware File Groups" -confirm:$false
new-FsrmFileGroup -name "Anti-Ransomware File Groups" -IncludePattern @((Invoke-WebRequest -Uri "https://fsrm.experiant.ca/api/v1/get").content | convertfrom-json | % {$_.filters})


Deze heb ik nu gefabriceerd maar loopt vast op invalid arguments:

code:
1
2
3
4
5
remove-FsrmFileGroup -name "Anti-Ransomware File Groups" -confirm:$false
$FGroup = Get-Content "C:\users\***\desktop\ExtensionList" 
new-FsrmFileGroup -name "Anti-Ransomware File Groups" -IncludePattern @($FGroup)
#Send-MailMessage -From blabla@blabla.nl -Subject "Ransomware update $env:COMPUTERNAME" -To blabla@blabla.nl -Body "Update geslaagd op $env:COMPUTERNAME met IP: $(Get-NetIPAddress) op $(Get-Date)" -BodyAsHtml -DeliveryNotificationOption OnSuccess -SmtpServer *
#Send-MailMessage -From blabla@blabla.nl -Subject "Ransomware update $env:COMPUTERNAME" -To blabla@blabla.nl -Body "Update mislukt op $env:COMPUTERNAME met IP: $(Get-NetIPAddress) op $(Get-Date)" -BodyAsHtml -DeliveryNotificationOption OnFailure -SmtpServer *


Deze error kreeg ik:
code:
1
2
3
4
5
6
new-FsrmFileGroup : 0x80070057, The parameter is incorrect.
At C:\Users\***\Desktop\UpdateRansonwareLijst-test.ps1:4 char:1
+ new-FsrmFileGroup -name "Anti-Ransomware File Groups" -IncludePattern @($FGroup)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (MSFT_FSRMFileGroup:Root/Microsoft/...T_FSRMFileGroup) [New-FsrmFileGroup], CimException
    + FullyQualifiedErrorId : MI RESULT 4,New-FsrmFileGroup


Daarbij werk ik dus ook nog aan een script dat als er geen wijzigingen zijn hij geen aanpassingen hoeft te doen, en als er wijzigingen zijn ik daarvan op de hoogte gesteld word, dit is nog work in progress.

Erbij gezegd hebbene dat dit mijn eerste code is die ik schrijf met cmdlets en verder totaal zero ervaring heb met Powershell dus be easy with me :-)
Probeer het KISS principe een beetje aan te houden zodat ik het kan blijven lezen haha.

Draai op dit moment in een machine met Server 2012 R2 met Powershell ICE.

Bij voorbaat alvast dank! :+

Wie niet wegklikt is gezien!

Alle reacties


  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Lijkt erop dat je de parameter die je meegeeft niet klopt. Heb je het al met het handje geprobeerd?

Less alienation, more cooperation.


  • Samsonait
  • Registratie: Januari 2011
  • Laatst online: 18-08 10:22

Samsonait

Lekker weertje, he?

Topicstarter
Sandor_Clegane schreef op donderdag 13 september 2018 @ 09:41:
Lijkt erop dat je de parameter die je meegeeft niet klopt. Heb je het al met het handje geprobeerd?
Jazeker, blijft roepen dat er een parameter niet klopt, snap ik echter niet want dit parameter trek ik rechtstreeks uit Powershell ICE.

code:
1
New-FsrmFileGroup -Name "Anti-Ransomware File Groups" -Description "Up to date extensies" -IncludePattern $FGroup

code:
1
2
3
4
5
6
New-FsrmFileGroup : 0x80070057, The parameter is incorrect.
At line:1 char:1
+ New-FsrmFileGroup -Name "Anti-Ransomware File Groups" -Description "Up to date e ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (MSFT_FSRMFileGroup:Root/Microsoft/...T_FSRMFileGroup) [New-FsrmFileGroup], CimException
    + FullyQualifiedErrorId : MI RESULT 4,New-FsrmFileGroup


Snap dus niet waarom hij dit niet pakt. De file die wordt gedownload veranderd in principe niet van format, dan de code die wel werkte als ik hem rechtstreeks van de website afhaal. Is in beide gevallen plaintext.

|:(

Wie niet wegklikt is gezien!


  • Samsonait
  • Registratie: Januari 2011
  • Laatst online: 18-08 10:22

Samsonait

Lekker weertje, he?

Topicstarter
code:
1
2
$FGroup = Get-Content -Path C:\Users\***\Desktop\ExtensionList | convertfrom-json | % {$_.filters}
new-FsrmFileGroup -Name "Temporary Filess" -IncludePattern $FGroup


Werkt Holla dijee! Thanks!

Wie niet wegklikt is gezien!


Acties:
  • +1 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 00:06
Samsonait schreef op donderdag 13 september 2018 @ 09:35:
Probeer het KISS principe een beetje aan te houden zodat ik het kan blijven lezen haha.

Draai op dit moment in een machine met Server 2012 R2 met Powershell ICE.

Bij voorbaat alvast dank! :+
Samsonait schreef op donderdag 13 september 2018 @ 10:09:
code:
1
2
$FGroup = Get-Content -Path C:\Users\***\Desktop\ExtensionList | convertfrom-json | % {$_.filters}
new-FsrmFileGroup -Name "Temporary Filess" -IncludePattern $FGroup


Werkt Holla dijee! Thanks!
Ipv de hele structuur met een Webclient maken, content wegschrijven naar disk etc kun je gewoon met één call die gehele lijst van de betreffende API ophalen :

PowerShell:
1
(Invoke-RestMethod -Uri 'https://fsrm.experiant.ca/api/v1/get').filters


- Invoke-RestMethod is een wrapper om Invoke-WebRequest welke automatisch JSON of XML welke je retour krijgt weergeeft als een object. Door dit te enclosen en dan de property "filters" op te vragen krijg je met één (leesbare) regel code ook de data binnen (welke je in feite gewoon direct in een variable kan stoppen).

  • Samsonait
  • Registratie: Januari 2011
  • Laatst online: 18-08 10:22

Samsonait

Lekker weertje, he?

Topicstarter
Killah_Priest schreef op donderdag 13 september 2018 @ 16:02:
[...]


[...]


Ipv de hele structuur met een Webclient maken, content wegschrijven naar disk etc kun je gewoon met één call die gehele lijst van de betreffende API ophalen :

PowerShell:
1
(Invoke-RestMethod -Uri 'https://fsrm.experiant.ca/api/v1/get').filters



- Invoke-RestMethod is een wrapper om Invoke-WebRequest welke automatisch JSON of XML welke je retour krijgt weergeeft als een object. Door dit te enclosen en dan de property "filters" op te vragen krijg je met één (leesbare) regel code ook de data binnen (welke je in feite gewoon direct in een variable kan stoppen).
Thanks die kende ik nog niet! Bedankt voor je moeite om even te reageren :-)

[ Voor 9% gewijzigd door Samsonait op 13-09-2018 16:04 ]

Wie niet wegklikt is gezien!

Pagina: 1