Het grote Powershell topic

Pagina: 1 ... 8 ... 10 Laatste
Acties:

Onderwerpen


Acties:
  • +1 Henk 'm!

  • pjlgt
  • Registratie: Juli 1999
  • Niet online
Waar ik eerst echt weinig van powershell wou weten, grijp ik nu elke gelegenheid aan om een script in elkaar te knutselen. Echt leuk werk. Zo nu en dan is het even zoeken naar de juiste manier, maar word er steeds handiger in. En hergebruik veel code uit oude scripts. Waarom 2x het wiel uitvinden?

Acties:
  • +2 Henk 'm!

  • @r!k
  • Registratie: April 2000
  • Laatst online: 11-09 10:01

@r!k

It is I, Leclerq

Het is eindelijk zover, op 10 Januari heeft Microsoft Powershell core 6.0 vrijgegeven, zie ook dit artikel op de FP bericht.

Integenstelling tot Windows Powershell draait powershell core 6.0 op .net Core en mist daardoor sommige functionaliteit die Windows Powershell wel heeft.

Windows powershell wordt door microsoft beschouwd als Af en zal alleen nog bugfixes en security fixes krijgen waar Powershell core wordt gezien als de toekomst. Het is cross platform en volledig open source.

Ik ben zelf nu bezig om een sessie voor collega's in elkaar te zetten waarbij ik de verschillen belicht. Zijn er meer mensen hier die al met Powershell core 6 aan de slag zijn gegaan en wat zijn jullie ervaringen?

Wat mij het eerste opviel is dat de Active directory module niet werkt.

Een hele rij microsoft certificeringen.


Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 18:07
@r!k schreef op vrijdag 12 januari 2018 @ 14:15:
Het is eindelijk zover, op 10 Januari heeft Microsoft Powershell core 6.0 vrijgegeven, zie ook dit artikel op de FP bericht.

Integenstelling tot Windows Powershell draait powershell core 6.0 op .net Core en mist daardoor sommige functionaliteit die Windows Powershell wel heeft.

Windows powershell wordt door microsoft beschouwd als Af en zal alleen nog bugfixes en security fixes krijgen waar Powershell core wordt gezien als de toekomst. Het is cross platform en volledig open source.

Ik ben zelf nu bezig om een sessie voor collega's in elkaar te zetten waarbij ik de verschillen belicht. Zijn er meer mensen hier die al met Powershell core 6 aan de slag zijn gegaan en wat zijn jullie ervaringen?

Wat mij het eerste opviel is dat de Active directory module niet werkt.
Zie https://github.com/powershell/powershell/issues/4062 voor niet werkende modules.
De niet werkende AD module was mij ook al opgevallen.
Ik dacht eerst dat dit kwam door het ontbreken van System.DirectoryServices, echter zijn deze afgelopen november toegevoegd aan .NET core (maar als ik de betreffende assemblies toevoeg dan krijg ik weer een error op System.Configuration.ConfigurationManager).

Voorlopig nog geen echt alternatief voor mij om in productie te gebruiken aangezien een groot deel van mijn scripts in productie juist gebruik maken van AD.

Ook loop ik tegen het feit aan dat TAB autocomplete niet lekker werkt voor assemblies die ik toevoeg dmv Add-Type (of met Reflection). Ik moet echt de volledige class uittypen. Autocomplete for bv (static) methods werken dan weer wel.

[ Voor 7% gewijzigd door Killah_Priest op 12-01-2018 14:28 ]


Acties:
  • 0 Henk 'm!

  • punisher007
  • Registratie: Maart 2001
  • Laatst online: 15-09 05:36
En is werken via remoting geen optie?

http://blog.bjornhouben.com


Acties:
  • 0 Henk 'm!

  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 22:51
Weet iemand module om zip/rar/7zip/whatever bestanden te maken die ook met wachtwoorden en waar de archief files gesplitst kan worden? Ik gebruik op dit moment 7zip4powershell, en deze zou met VolumeSize gesplitste files aan kunnen maken, maar of ik zie de optie voor iets anders aan, of er zit een bugje in...

Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 18:07
punisher007 schreef op vrijdag 12 januari 2018 @ 17:54:
En is werken via remoting geen optie?
In mijn geval helaas niet (normaal gesproken heb ik niet eens de AD cmdlets lokaal staan maar doe ik import-pssession voor de AD cmdlets) aangezien ik niet kan remoten naar de DCs.

[ Voor 9% gewijzigd door Killah_Priest op 01-02-2018 18:02 ]


Acties:
  • 0 Henk 'm!

  • DigitalExorcist
  • Registratie: April 2004
  • Laatst online: 29-08 10:48
Stel dat ik een Powershell script wil genereren op basis van input in een Word document (met knoppen/invulveld in een tabel). Wáár zou ik dan moeten beginnen met zoeken? Macro's in Word?

Je ziet op internet wel wat linkjes over het genereren van een Word document vanuit een Powershell script, maar ik wil het dus andersom hebben...

Bijv. iemand van HR die een Word document invult met de juiste gegevens/groepen etc, dit naar Systeembeheer mailt, die er via een knop in het formulier een Powershell script van genereert en dit op de domaincontroller uitvoert.

Lijkt me een leuk hobbyprojectje....

There are 10 kinds of people on the planet. Those who understand binary, and those who don't. | http://twitch.tv/jaapGoose || AMD Ryzen 5 3600, Asus RX 6650 XT OC-Edition, 16GB, MSI B450 Gaming X


Acties:
  • 0 Henk 'm!

  • Oogje
  • Registratie: Oktober 2003
  • Niet online
DigitalExcorcist schreef op dinsdag 13 februari 2018 @ 14:16:
Stel dat ik een Powershell script wil genereren op basis van input in een Word document (met knoppen/invulveld in een tabel). Wáár zou ik dan moeten beginnen met zoeken? Macro's in Word?

Je ziet op internet wel wat linkjes over het genereren van een Word document vanuit een Powershell script, maar ik wil het dus andersom hebben...

Bijv. iemand van HR die een Word document invult met de juiste gegevens/groepen etc, dit naar Systeembeheer mailt, die er via een knop in het formulier een Powershell script van genereert en dit op de domaincontroller uitvoert.

Lijkt me een leuk hobbyprojectje....
Laat het HRM systeem een export maken naar csv met bepaalde velden die je vervolgens importeert met 1 Powershell-script in je AD. Scheelt HR weer een document invullen.
Groepen zul je dan wel op basis van functie moeten toekennen (grootste uitdaging van organisaties over t algemeen).

Wat je sowieso niet wil is telkens een powershell-script genereren. Je maakt 1 script en je vult de variabelen vanuit de HRM export.
Volgens mij kan dit zelfs wel vanuit een Word doc, maar daar heb ik me nog nooit aan gewaagd.

[ Voor 10% gewijzigd door Oogje op 13-02-2018 14:28 ]

Any errors in spelling, tact, or fact are transmission errors.


Acties:
  • 0 Henk 'm!

  • DigitalExorcist
  • Registratie: April 2004
  • Laatst online: 29-08 10:48
Oogje schreef op dinsdag 13 februari 2018 @ 14:26:
[...]

Laat het HRM systeem een export maken naar csv met bepaalde velden die je vervolgens importeert met 1 Powershell-script in je AD. Scheelt HR weer een document invullen.
Groepen zul je dan wel op basis van functie moeten toekennen (grootste uitdaging van organisaties over t algemeen).

Wat je sowieso niet wil is telkens een powershell-script genereren. Je maakt 1 script en je vult de variabelen vanuit de HRM export.
Volgens mij kan dit zelfs wel vanuit een Word doc, maar daar heb ik me nog nooit aan gewaagd.
Het HRM-systeem bestaat momenteel vooral uit iemand die een mail stuurt naar systeembeheer met 'oh, maandag begint Pietje bij ons, kun je nog ff een accountje maken? k thx bai' ... dan zou een HRM-systeem op zich al een hele vooruitgang zijn ;)

Nee allicht is die persoon ook wel binnen andere systemen bekend, maar wellicht denk ik er te makkelijk over. Even een Word documentje met een macrootje eraan die zelf de variabelen invult op basis van wat er in het documentje staat, handjevol radiobuttons en klaar is Klara..

There are 10 kinds of people on the planet. Those who understand binary, and those who don't. | http://twitch.tv/jaapGoose || AMD Ryzen 5 3600, Asus RX 6650 XT OC-Edition, 16GB, MSI B450 Gaming X


Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 18:07
DigitalExcorcist schreef op dinsdag 13 februari 2018 @ 14:42:
[...]


Het HRM-systeem bestaat momenteel vooral uit iemand die een mail stuurt naar systeembeheer met 'oh, maandag begint Pietje bij ons, kun je nog ff een accountje maken? k thx bai' ... dan zou een HRM-systeem op zich al een hele vooruitgang zijn ;)

Nee allicht is die persoon ook wel binnen andere systemen bekend, maar wellicht denk ik er te makkelijk over. Even een Word documentje met een macrootje eraan die zelf de variabelen invult op basis van wat er in het documentje staat, handjevol radiobuttons en klaar is Klara..
Waarom zou je dit vanuit Word genereren ipv vanuit Excel? Het is een koud kunstje om met PS van je Excel sheet een CSV te genereren OF om de velden uit te lezen (ik zou gaan voor omzetten naar CSV aangezien de COM object van Excel nogal wat performance issues heeft, Word is niet veel beter).
Als jullie Office365 hebben zou ik dit gewoon via een SharePoint formulier icm Flow doen oid.

Acties:
  • 0 Henk 'm!

  • DigitalExorcist
  • Registratie: April 2004
  • Laatst online: 29-08 10:48
Killah_Priest schreef op dinsdag 13 februari 2018 @ 15:07:
[...]

Als jullie Office365 hebben zou ik dit gewoon via een SharePoint formulier icm Flow doen oid.
Was het maar zo'n feest..

Maar, waarom Word ipv Excel? Ik denk vanwege de document-achtige opzet die ik in gedachten had. Gewoon een soortement invulformulier. Excel kan natuurlijk ook wel.

There are 10 kinds of people on the planet. Those who understand binary, and those who don't. | http://twitch.tv/jaapGoose || AMD Ryzen 5 3600, Asus RX 6650 XT OC-Edition, 16GB, MSI B450 Gaming X


Acties:
  • 0 Henk 'm!

  • Oogje
  • Registratie: Oktober 2003
  • Niet online
DigitalExcorcist schreef op dinsdag 13 februari 2018 @ 14:42:
[...]


Het HRM-systeem bestaat momenteel vooral uit iemand die een mail stuurt naar systeembeheer met 'oh, maandag begint Pietje bij ons, kun je nog ff een accountje maken? k thx bai' ... dan zou een HRM-systeem op zich al een hele vooruitgang zijn ;)

Nee allicht is die persoon ook wel binnen andere systemen bekend, maar wellicht denk ik er te makkelijk over. Even een Word documentje met een macrootje eraan die zelf de variabelen invult op basis van wat er in het documentje staat, handjevol radiobuttons en klaar is Klara..
Misschien off-topic, maar HRM heeft geen pakket waarin ze de personeelsadministratie bijhouden? Daar de export mogelijkheden van bekijken. Je wil zoveel mogelijk automatiseren ;)

[ Voor 5% gewijzigd door Oogje op 13-02-2018 15:27 ]

Any errors in spelling, tact, or fact are transmission errors.


Acties:
  • 0 Henk 'm!

  • DigitalExorcist
  • Registratie: April 2004
  • Laatst online: 29-08 10:48
Oogje schreef op dinsdag 13 februari 2018 @ 15:26:
[...]

Misschien off-topic, maar HRM heeft geen pakket waarin ze de personeelsadministratie bijhouden? Daar de export mogelijkheden van bekijken. Je wil zoveel mogelijk automatiseren ;)
Alleen online. Nu moet ik zeggen dat het één van m'n klanten is, maar een beetje universeel opgezet documentje zou ik bij meerdere klanten kunnen gebruiken in al dan niet wat aangepaste vorm.

There are 10 kinds of people on the planet. Those who understand binary, and those who don't. | http://twitch.tv/jaapGoose || AMD Ryzen 5 3600, Asus RX 6650 XT OC-Edition, 16GB, MSI B450 Gaming X


Acties:
  • 0 Henk 'm!

  • ElCondor
  • Registratie: Juni 2001
  • Laatst online: 15:16

ElCondor

Geluk is Onmisbaar

Lijkt me sterk dat er dan geen exportje gemaakt kan worden. Dat moet online ook kunnen... CSV bestand alten bakken door het online systeem, iedere donderdag, dan heb je de vrijdag om de output te controleren en voor het weekeinde met een sciprt een aantal nieuwe accounts uit te poepen.. :)

Hay 365 dias en un año y 366 occasiones para festejar (Boliviaans spreekwoord)


Acties:
  • 0 Henk 'm!

  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

Dit kun je toch simpel met een webinterface doen? Simpele .NET forms appje maken (of laten maken) is niet zo complex. Je kunt zelfs de complete logica in .NET doen i.p.v. in een PowerShell script.

Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 18:07
downtime schreef op dinsdag 13 februari 2018 @ 20:36:
Dit kun je toch simpel met een webinterface doen? Simpele .NET forms appje maken (of laten maken) is niet zo complex. Je kunt zelfs de complete logica in .NET doen i.p.v. in een PowerShell script.
En wat als het proces wijzigt? Wat als men bv overgaat naar Office 365 en het aanmaken van een user gaat ineens anders? Dan werkt de applicatie ook niet meer.

Overigens draait Powershell op het .NET platform. Sterker nog, ik gebruik soms zelfs CIL in mijn Powershell scripts (lang leve de Reflection namespace in .Net) als ik bepaalde specifieke doelen wil bereiken welke op geen andere manier mogelijk zijn.
Powershell is juist geschikt voor dit soort zaken omdat code zo makkelijk aan te passen is zonder code te hoeven compilen.

Verder voor de TS : probeer simpel te denken. Proberen om een script te genereren vanuit een Office document is lastig (ja, vbs gebruiken en daar Powershell mee aanroepen).
Maak gewoon een script om een Word of Excel document te parsen. De basic flow is dan als volgt :
- je krijgt een Word of Excel document (gestandariseerd uiteraard)
- Powershell script parsed het document (legio voorbeelden te vinden online) : script leest dus de velden uit en voert op basis van de ingevulde velden bepaalde acties uit.

Maak het jezelf niet te moeilijk door te complex te denken voor simpele oplossingen.

Acties:
  • 0 Henk 'm!

  • Vunzz
  • Registratie: Augustus 2001
  • Laatst online: 12-09 11:10
Ik heb pas een script gebouwd waarvan ik dacht: "dit kan nog wel een GUI gebruiken."
Via PoshGUI.com ben ik ooit met Windows Forms in PowerShell in aanraking gekomen, maar ik had het tot nu toe alleen nog gebruikt om gegevens wat chiquer weer te geven.

Ik heb nu een scriptje dat als enige doel heeft om te spelen met de verschillende controls, aangezien ik nog nooit eerder een (Windows-)GUI heb geprogrammeerd.

Het script opent een form met een panel. Door panels al dan niet visible te maken, zijn de verschillende onderdelen van het "programma" zichtbaar.

Nu heb ik een cancel knop $ButtonCancel die ik mooi dacht te kunnen hergebruiken op meerdere panels. Nu ik echter meerder panels heb, komt de knop op nog maar één panel daadwerkelijk tevoorschijn.

Ik heb dit nu "opgelost" door $ButtonCancel1 aan te maken, maar dat is natuurlijk geen nette oplossing.

Vraag: Hoe kan ik een button hergebruiken op meerdere panels?

PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<# This form was created using POSHGUI.com  a free online gui designer for PowerShell
.NAME
    Untitled
#>

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()

#region begin GUI{ 

$Form                            = New-Object system.Windows.Forms.Form
$Form.ClientSize                 = '400,400'
$Form.text                       = "Practice"
$Form.BackColor                  = "#50e3c2"
$Form.TopMost                    = $false
$Form.icon                       = "C:\Windows\WinSxS\amd64_microsoft-windows-dxp-deviceexperience_31bf3856ad364e35_10.0.16299.15_none_6a1157b66aebb1cb\settings.ico"

$PanelMenu                       = New-Object system.Windows.Forms.Panel
$PanelMenu.height                = 300
$PanelMenu.width                 = 300
$PanelMenu.location              = New-Object System.Drawing.Point(10,1)

$PanelTijd                       = New-Object System.Windows.Forms.Panel
$PanelTijd.height                = 300
$PanelTijd.width                 = 300
$PanelTijd.location              = New-Object System.Drawing.Point(10,1)
$PanelTijd.Visible               = $false                       

$PanelInvoer                       = New-Object System.Windows.Forms.Panel
$PanelInvoer.height                = 300
$PanelInvoer.width                 = 300
$PanelInvoer.location              = New-Object System.Drawing.Point(10,1)
$PanelInvoer.Visible               = $false  

$ButtonTijd                         = New-Object system.Windows.Forms.Button
$ButtonTijd.text                    = "Tijd"
$ButtonTijd.width                   = 60
$ButtonTijd.height                  = 30
$ButtonTijd.location                = New-Object System.Drawing.Point(7,21)
$ButtonTijd.Font                    = 'Microsoft Sans Serif,10'

$ButtonInvoer                         = New-Object system.Windows.Forms.Button
$ButtonInvoer.text                    = "Invoer"
$ButtonInvoer.width                   = 60
$ButtonInvoer.height                  = 30
$ButtonInvoer.location                = New-Object System.Drawing.Point(7,69)
$ButtonInvoer.Font                    = 'Microsoft Sans Serif,10'

$ButtonExit                         = New-Object system.Windows.Forms.Button
$ButtonExit.text                    = "Sluiten"
$ButtonExit.width                   = 60
$ButtonExit.height                  = 30
$ButtonExit.location                = New-Object System.Drawing.Point(7,(69+69-21))
$ButtonExit.Font                    = 'Microsoft Sans Serif,10'

$ButtonCancel                         = New-Object system.Windows.Forms.Button
$ButtonCancel.text                    = "Cancel"
$ButtonCancel.width                   = 60
$ButtonCancel.height                  = 30
$ButtonCancel.location                = New-Object System.Drawing.Point(7,50)
$ButtonCancel.Font                    = 'Microsoft Sans Serif,10'

$ButtonCancel1                         = New-Object system.Windows.Forms.Button
$ButtonCancel1.text                    = "Cancel"
$ButtonCancel1.width                   = 60
$ButtonCancel1.height                  = 30
$ButtonCancel1.location                = New-Object System.Drawing.Point(7,50)
$ButtonCancel1.Font                    = 'Microsoft Sans Serif,10'

$ButtonRefresh                         = New-Object system.Windows.Forms.Button
$ButtonRefresh.text                    = "Refresh"
$ButtonRefresh.width                   = 80
$ButtonRefresh.height                  = 30
$ButtonRefresh.location                = New-Object System.Drawing.Point(120,50)
$ButtonRefresh.Font                    = 'Microsoft Sans Serif,10'

$Tijd                          = New-Object System.Windows.Forms.Label
$Tijd.location                 = New-Object System.Drawing.Point(7,21)
$Tijd.Font                     = 'Microsoft Sans Serif,10'
$Tijd.AutoSize                 = $true

$Invoer                          = New-Object System.Windows.Forms.TextBox
$Invoer.location                 = New-Object System.Drawing.Point(7,21)
$Invoer.Font                     = 'Microsoft Sans Serif,10'

$Uitvoer                          = New-Object System.Windows.Forms.Label
$Uitvoer.location                 = New-Object System.Drawing.Point(120,25)
$Uitvoer.Font                     = 'Microsoft Sans Serif,10'
$Uitvoer.Text                     = '...'

$Form.controls.AddRange(@($PanelMenu,$PanelTijd,$PanelInvoer))
$PanelMenu.controls.AddRange(@($ButtonTijd,$ButtonInvoer,$ButtonExit))
$PanelTijd.controls.AddRange(@($Tijd,$ButtonCancel1))
$PanelInvoer.controls.AddRange(@($Invoer,$Uitvoer,$ButtonCancel,$ButtonRefresh))

#region gui events {

$ButtonTijd.Add_Click({
 $Tijd.Text = Get-Date
 $PanelMenu.Visible = $false
 $PanelTijd.Visible = $true })

$ButtonInvoer.Add_Click({
 $PanelMenu.Visible = $false
 $PanelInvoer.Visible = $true })

$ButtonRefresh.Add_Click({
 $Uitvoer.Text = $Invoer.Text
 $Uitvoer.Refresh() })

$ButtonCancel1.Add_Click({
 $PanelTijd.Visible = $false
 $PanelInvoer.Visible = $false
 $PanelMenu.Visible = $true })

$ButtonCancel.Add_Click({
 $PanelTijd.Visible = $false
 $PanelInvoer.Visible = $false
 $PanelMenu.Visible = $true })

$ButtonExit.Add_Click({
 $PanelTijd.Visible = $false
 $PanelMenu.Visible = $fale 
 $Form.Close()
 $Form.Dispose()})

#endregion events }

#endregion GUI }

#Close Encounters of the Third Kind
[console]::beep(900,400)
[console]::beep(1000,400)
[console]::beep(800,400)
[console]::beep(400,400)
[console]::beep(600,1600)

#Open het formulier
[void]$Form.ShowDialog()

#Dag hoor
$MenuForm.Dispose()
(new-object -com SAPI.SpVoice).speak('Have a good day!')

[ Voor 0% gewijzigd door Vunzz op 18-02-2018 17:27 . Reden: typootje ]

How can you conquer a hill top, if you are to busy at the bottom stepping over stones.


Acties:
  • 0 Henk 'm!

  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

Killah_Priest schreef op woensdag 14 februari 2018 @ 18:10:
[...]

En wat als het proces wijzigt? Wat als men bv overgaat naar Office 365 en het aanmaken van een user gaat ineens anders? Dan werkt de applicatie ook niet meer.
En? Dat PS script moet dan ook gewijzigd worden.
Overigens draait Powershell op het .NET platform. Sterker nog, ik gebruik soms zelfs CIL in mijn Powershell scripts (lang leve de Reflection namespace in .Net) als ik bepaalde specifieke doelen wil bereiken welke op geen andere manier mogelijk zijn.
Powershell is juist geschikt voor dit soort zaken omdat code zo makkelijk aan te passen is zonder code te hoeven compilen.
Alsof code compilen zo moeilijk is. Daarnaast hoeft een webforms formuliertje ook niet gecompileerd te worden. Ik heb wel eens een formulier zo in elkaar gezet en daar kwam geen compiler aan te pas. En als je .NET dan toch eng vindt dan maak je de site gewoon in PHP en laat je dat een PS scriptje aftrappen.
Verder voor de TS : probeer simpel te denken. Proberen om een script te genereren vanuit een Office document is lastig (ja, vbs gebruiken en daar Powershell mee aanroepen).
Maak gewoon een script om een Word of Excel document te parsen. De basic flow is dan als volgt :
- je krijgt een Word of Excel document (gestandariseerd uiteraard)
- Powershell script parsed het document (legio voorbeelden te vinden online) : script leest dus de velden uit en voert op basis van de ingevulde velden bepaalde acties uit.

Maak het jezelf niet te moeilijk door te complex te denken voor simpele oplossingen.
Gewoon niet aan Word of Excel formulieren beginnen. Ik ken dat: Je maakt een formulier en verspreidt het onder je klanten. Dan maak je 3 maanden later een kleine aanpassing, en die verspreid je ook, en dan blijf je nog maanden (en soms jaren) oude versies van dat formulier ontvangen omdat die klanten elke keer de vorige aanvraag weer openen, naam aanpassen, en dan dat formulier weer opsturen. En die klanten snappen niet waarom jij zo moeilijk doet over welke versie van het formulier ze invullen.
Daarom vind ik webformulieren veel fijner. Dan verspreid je gewoon de URL en je kunt het formulier blijven aanpassen zonder dat je klanten het zelfs maar hoeven te weten.

Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 18:07
Vunzz schreef op zaterdag 17 februari 2018 @ 10:56:
Ik heb pas een script gebouwd waarvan ik dacht: "dit kan nog wel een GUI gebruiken."
Via PoshGUI.com ben ik ooit met Windows Forms in PowerShell in aanraking gekomen, maar ik had het tot nu toe alleen nog gebruikt om gegevens wat chiquer weer te geven.

Ik heb nu een scriptje dat als enige doel heeft om te spelen met de verschillende controls, aangezien ik nog nooit eerder een (Windows-)GUI heb geprogrammeerd.

Het script opent een form met een panel. Door panels als dan niet visible te maken, zijn de verschillende onderdelen van het "programma" zichtbaar.

Nu heb ik een cancel knop $ButtonCancel die ik mooi dacht te kunnen hergebruiken op meerdere panels. Nu ik echter meerder panels heb, komt de knop op nog maar één panel daadwerkelijk tevoorschijn.

Ik heb dit nu "opgelost" door $ButtonCancel1 aan te maken, maar dat is natuurlijk geen nette oplossing.

Vraag: Hoe kan ik een button hergebruiken op meerdere panels?
Dit is niet zo heel simpel op te lossen : je hangt een button immers als een child onder een ander item, logischerwijs kun je dit dus maar 1x doen (je button is een child van de form).
In feite is je huidige oplossing al voldoende (naar mijn idee de meest simpele oplossing).

Acties:
  • 0 Henk 'm!

  • Vunzz
  • Registratie: Augustus 2001
  • Laatst online: 12-09 11:10
Ok, duidelijk, TNX!
Ik heb nu de MenuStrip ontdekt, wat denk een mooiere oplossing is om te navigeren binnen de applicatie.
De Buttons zijn dan alleen voor het bedienen van functionaliteiten.

How can you conquer a hill top, if you are to busy at the bottom stepping over stones.


Acties:
  • 0 Henk 'm!

  • BroWohsEdis
  • Registratie: Februari 2013
  • Laatst online: 00:24

BroWohsEdis

George Orwell was right.

Is er enige scripting/programmeer voorkennis nodig voor Powershell? Ik wil het boek ''learning powershell in a month of lunches'' aanschaffen en mij verdiepen in Powershell, is dit boek aan te raden?

"So that's how democracy dies, with a thunderous applause"


Acties:
  • +1 Henk 'm!

  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

BroWohsEdis schreef op maandag 26 maart 2018 @ 18:51:
Is er enige scripting/programmeer voorkennis nodig voor Powershell?
Nodig? Nee. Maar bij het leren van een nieuwe taal is ervaring met vergelijkbare andere talen altijd een voordeel. Maar er zijn uitzonderingen. Kennis van C#, Java, Python of Ruby zal je helpen als je met PowerShell begint. Kennis van batch files of Bash zal je eerder hinderen omdat je dan gemakkelijk in die traditionele manier van denken blijft hangen en vaak geneigd bent om oude oplossingen 1 op 1 naar PowerShell te vertalen.
Ik wil het boek ''learning powershell in a month of lunches'' aanschaffen en mij verdiepen in Powershell, is dit boek aan te raden?
Lees de reviews op Amazon gewoon eens. Maar ik betwijfel of dit boek geschikt voor jou is. Drie van de vier reviews voor de 2017 editie van dat boek geeft aan dat het niet voor beginners is:
Before ordering this book through Amazon Vine, I thought that this book was intended to be for beginners but after getting and reading a few chapters from this book, I can see that the target reader level is definitely not the beginner; the book is targetted for Intermediate-Advanced users of PowerShell.

Acties:
  • +1 Henk 'm!

  • nagasy
  • Registratie: Mei 2008
  • Laatst online: 29-11-2024

nagasy

Duck Duck Duck Goose

BroWohsEdis schreef op maandag 26 maart 2018 @ 18:51:
Is er enige scripting/programmeer voorkennis nodig voor Powershell? Ik wil het boek ''learning powershell in a month of lunches'' aanschaffen en mij verdiepen in Powershell, is dit boek aan te raden?
Je hebt 2 boeken van PowerShell in de 'month of lunches' reeks.
https://morelunches.com/2...-month-of-lunches-2nd-ed/ is zeker geen slecht beginnersboek.

Als je nog nooit geprogrammeerd/gescript hebt, kan het soms wat moeilijk zijn.
Het is alleszins één van mijn eerste boeken geweest dat ik indertijd gelezen heb inzake PowerShell

Battle.net: NagaByrd#2844


Acties:
  • 0 Henk 'm!

  • @r!k
  • Registratie: April 2000
  • Laatst online: 11-09 10:01

@r!k

It is I, Leclerq

BroWohsEdis schreef op maandag 26 maart 2018 @ 18:51:
Is er enige scripting/programmeer voorkennis nodig voor Powershell? Ik wil het boek ''learning powershell in a month of lunches'' aanschaffen en mij verdiepen in Powershell, is dit boek aan te raden?
Learn Powershell in a month of lunches is juist HET boek dat ik aanraad voor iedereen die wil beginnen met Powershell. De opvolger daarvan, Learn Powershell scripting in a month of lunches is pas aan te raden als je de eerste goed begrijpt en kan toepassen.

Scripting/programmeer voorkennis helpt uiteraard maar is niet nodig, je zult iets langer doen over het begrijpen ervan verwacht ik.

Een hele rij microsoft certificeringen.


Acties:
  • 0 Henk 'm!

  • BroWohsEdis
  • Registratie: Februari 2013
  • Laatst online: 00:24

BroWohsEdis

George Orwell was right.

@r!k schreef op dinsdag 27 maart 2018 @ 08:27:
[...]


Learn Powershell in a month of lunches is juist HET boek dat ik aanraad voor iedereen die wil beginnen met Powershell. De opvolger daarvan, Learn Powershell scripting in a month of lunches is pas aan te raden als je de eerste goed begrijpt en kan toepassen.
nagasy schreef op maandag 26 maart 2018 @ 19:46:
[...]


Je hebt 2 boeken van PowerShell in de 'month of lunches' reeks.
https://morelunches.com/2...-month-of-lunches-2nd-ed/ is zeker geen slecht beginnersboek.

Als je nog nooit geprogrammeerd/gescript hebt, kan het soms wat moeilijk zijn.
Het is alleszins één van mijn eerste boeken geweest dat ik indertijd gelezen heb inzake PowerShell
downtime schreef op maandag 26 maart 2018 @ 19:14:
[...]

.


[...]

Lees de reviews op Amazon gewoon eens. Maar ik betwijfel of dit boek geschikt voor jou is. Drie van de vier reviews voor de 2017 editie van dat boek geeft aan dat het niet voor beginners is:


[...]
Ik heb het boek al (Learning powershell in a month of lunches), ik heb de eerste 3 hoofdstukken gelezen en vind dat het tot nu toe erg duidelijk wordt uitgelegd. Al moet het moeilijk natuurlijk nog komen :P .

"So that's how democracy dies, with a thunderous applause"


Acties:
  • 0 Henk 'm!

  • punisher007
  • Registratie: Maart 2001
  • Laatst online: 15-09 05:36
'Learn Powershell in a month of lunches' en 'Learn Powershell scripting in a month of lunches' zijn beide goede boeken inderdaad.

Nadat ik deze boeken heb gelezen, vond ik Windows PowerShell Best Practices van Ed Wilson (Scripting Guy, maar inmiddels met pensioen) ook heel goed.

Verder heb ik zelf op mijn leeslijst ook nog staan:
-The PowerShell Scripting & Toolmaking book "Forever" Edition van Don Jones en Jeffery Hicks
-PowerShell 101 The No-Nonsense Beginner's Guide to PowerShell van Mike F Robbins
-The Pester Book van Adam Bertram
-The DSC book "Forever" Edition van Don Jones en Melissa Januszko

Iemand een of meerdere van deze al gelezen?

http://blog.bjornhouben.com


Acties:
  • 0 Henk 'm!

  • nagasy
  • Registratie: Mei 2008
  • Laatst online: 29-11-2024

nagasy

Duck Duck Duck Goose

punisher007 schreef op maandag 2 april 2018 @ 19:12:
'Learn Powershell in a month of lunches' en 'Learn Powershell scripting in a month of lunches' zijn beide goede boeken inderdaad.

Nadat ik deze boeken heb gelezen, vond ik Windows PowerShell Best Practices van Ed Wilson (Scripting Guy, maar inmiddels met pensioen) ook heel goed.

Verder heb ik zelf op mijn leeslijst ook nog staan:
-The PowerShell Scripting & Toolmaking book "Forever" Edition van Don Jones en Jeffery Hicks
-PowerShell 101 The No-Nonsense Beginner's Guide to PowerShell van Mike F Robbins
-The Pester Book van Adam Bertram
-The DSC book "Forever" Edition van Don Jones en Melissa Januszko

Iemand een of meerdere van deze al gelezen?
De laatste 2 heb ik reeds doorlezen.
Maar wel omdat ik daar dagelijks mee bezig ben op mijn werk (infra as code).
Het zijn voor mij boeken die PowerShell aanvullen en zeker interessant zijn.
Maar niet onmiddellijk nodig zijn voor het schrijven van (basic) tools.

Maar boeken van Don Jones zijn zeker een aanrader :).

Andere PowerShell boeken die ik heb staan zijn:

Windows Powershell in Action v3 van Bruce Payette

Battle.net: NagaByrd#2844


Acties:
  • 0 Henk 'm!

Verwijderd

Goedemorgen,

Zou een van jullie willen kijken naar mijn script?
Ik krijg een foutmelding zodra ik Get-Random uitvoer


# alle kleuren van de regenboog

$red = Write-host (1) -ForegroundColor red
$white = Write-Host (2) -ForegroundColor white
$blue = Write-Host (3)-ForegroundColor blue

Get-Random $red, $white, $blue

Acties:
  • +1 Henk 'm!

  • Jazzy
  • Registratie: Juni 2000
  • Laatst online: 12-09 16:29

Jazzy

Moderator SSC/PB

Moooooh!

Welke foutmelding?

Die variabelen zijn leeg, waarschijnlijk omdat je de output naar het scherm stuurt met Write-Host. Er valt voor Get-Random dus weinig random meer te kiezen.

Kijk zelf maar:
code:
1
2
$red = Write-host (1) -ForegroundColor red
$red

[ Voor 98% gewijzigd door Jazzy op 22-05-2018 09:30 ]

Exchange en Office 365 specialist. Mijn blog.


Acties:
  • 0 Henk 'm!

Verwijderd

Kijk als ik met Get-Random 1/tm 10 kies, dan komt er bijvoorbeeld 3 uit. (of een andere random tot 10 getal)
Doe ik dat met die variable $red, $white $blue dan komt er niks.Met Write-host stuur ik het dus naar het scherm?
Kan Get-Random dan niet uit variabelen selectereren?

Acties:
  • +1 Henk 'm!

  • Craven
  • Registratie: Februari 2007
  • Laatst online: 23:11
Je mist een stukje basis over hoe powershell werkt.

Wat je probeert te doen, een write-host met een kleurtje in een variabele stoppen, kan niet. Wat wel kan is een random getal in een variabele stoppen. Get-random in jou geval. Die kan je dan met write-host in een kleur tekst naar je console output wegschrijven.

Acties:
  • +2 Henk 'm!

  • punisher007
  • Registratie: Maart 2001
  • Laatst online: 15-09 05:36
Ik weet niet wat je probeert te doen, maar een soortgelijk voorbeeld staat in:
Volgens https://docs.microsoft.co...-random?view=powershell-6

Example 8:
Get-Random -InputObject "red", "yellow", "blue"

Dit lijkt op jouw code alleen heb jij het over $Red, $White en $Blue. Als je echter nog nergens de variabelen hebt gedefinieerd, gaat het niet werken natuurlijk want dan zijn de variabelen leeg.

Dit zou wel werken:
$Color1 = "Red"
$Color2 = "White"
$Color3 = "Blue"
$Colors = @($Color1,$Color2,$Color3)
Get-Random -InputObject $Colors

Maar makkelijker is:
$Colors = @("Red","White","Blue")
Get-Random -InputObject $Colors

Om het met Write-Host te combineren zou je dit kunnen doen:
$Colors = @("Red","White","Blue")
$RandomColor = Get-Random -InputObject $Colors
Write-Host -Object "Random color is $RandomColor" -ForeGroundColor $RandomColor

[ Voor 18% gewijzigd door punisher007 op 22-05-2018 19:02 ]

http://blog.bjornhouben.com


Acties:
  • +1 Henk 'm!

  • ralpje
  • Registratie: November 2003
  • Laatst online: 21:16

ralpje

Deugpopje

Voor de liefhebber: de aankondiging van de volgende DuPSUG: http://dupsug.com/2018/05/23/dupsug-12-visit-from-aws/

Freelance (Microsoft) Cloud Consultant & Microsoft Certified Trainer


Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Craven schreef op dinsdag 22 mei 2018 @ 17:36:
Je mist een stukje basis over hoe powershell werkt.

Wat je probeert te doen, een write-host met een kleurtje in een variabele stoppen, kan niet. Wat wel kan is een random getal in een variabele stoppen. Get-random in jou geval. Die kan je dan met write-host in een kleur tekst naar je console output wegschrijven.
Wat zowel @Jazzy , @Craven als @punisher007 je willen uitleggen heet de Powershell Pipeline.

Acties:
  • 0 Henk 'm!

Verwijderd

punisher007 schreef op dinsdag 22 mei 2018 @ 18:46:
Ik weet niet wat je probeert te doen, maar een soortgelijk voorbeeld staat in:
Volgens https://docs.microsoft.co...-random?view=powershell-6

Example 8:
Get-Random -InputObject "red", "yellow", "blue"

Dit lijkt op jouw code alleen heb jij het over $Red, $White en $Blue. Als je echter nog nergens de variabelen hebt gedefinieerd, gaat het niet werken natuurlijk want dan zijn de variabelen leeg.

Dit zou wel werken:
$Color1 = "Red"
$Color2 = "White"
$Color3 = "Blue"
$Colors = @($Color1,$Color2,$Color3)
Get-Random -InputObject $Colors

Maar makkelijker is:
$Colors = @("Red","White","Blue")
Get-Random -InputObject $Colors

Om het met Write-Host te combineren zou je dit kunnen doen:
$Colors = @("Red","White","Blue")
$RandomColor = Get-Random -InputObject $Colors
Write-Host -Object "Random color is $RandomColor" -ForeGroundColor $RandomColor
Thanks, dat is em.

[ Voor 96% gewijzigd door Verwijderd op 24-05-2018 07:37 ]


Acties:
  • 0 Henk 'm!

  • new_guy
  • Registratie: Oktober 2009
  • Laatst online: 21:35
Beetje slecht om hier zo te vragen, maar ik ga toch een poging doen. Jaren geleden had ik op internet een Powershell script gevonden wat een 'kruisjes tabel' in Excel kon maken van je AD users en groepen.

Een beetje dit idee:
code:
1
2
3
4
              Group 1   Group 2   Group 3
User 1        X
User 2                       X          X
User 3                                   X


Je snapt het wel, ik kan dat script nergens meer terug vinden. |:( Herkent iemand toevallig het bovenstaande en heeft de link?

Na het al het zoeken had ik het waarschijnlijk beter zelf kunnen maken, maar toch. 8)7

Edit: inmiddels toch zelf maar iets geschreven.

[ Voor 3% gewijzigd door new_guy op 29-05-2018 13:16 ]


Acties:
  • 0 Henk 'm!

  • punisher007
  • Registratie: Maart 2001
  • Laatst online: 15-09 05:36
@new_guy Ik denk dat je deze bedoelde: https://gallery.technet.m...37-4b5d-93f3-c409c6cf7a45

Maar ik ben wel benieuwd wat je er zelf van hebt gemaakt, kun je die delen?

Ik zou zelf nooit in Excel maken, maar in plaats hiervan een object outputten. Dan kan de gebruiker daarna zelf kiezen of hij het naar Excel, HTML, etc wil outputten.

http://blog.bjornhouben.com


Acties:
  • 0 Henk 'm!

Verwijderd

Nog een hoop te doen
Set-Location D:\mp3\

Write-Host '.\50 Cent - Im The Man (ft. Sonny Digital).mp3'
start '.\50 Cent - Im The Man (ft. Sonny Digital).mp3'
start-sleep -s 130
#volgende liedje zit 130 seconden tussen


Write-Host '.\50 Cent - Window Shopper.mp3'
start '.\50 Cent - Window Shopper.mp3'
start-sleep -s 130

#liedje
Write-Host '.\Eminem - Not Afraid.mp3'
start '.\Eminem - Not Afraid.mp3'
start-sleep -s 130
#doet het wel

start '.\Xzibit - Paparazzi.mp3'
start-sleep -s 130

start '.\Dr. Dre - Kush ft. Snoop Dogg, Akon.mp3'
start-sleep -s 130

start '.\Trinidad James - All Gold Everything (Explicit).mp3'
start-sleep -s 130

start '.\Rick Ross - Hustlin.mp3'
start-sleep -s 130

start '.\Rick Ross - You Know I Got It (Reprise).mp3'
start-sleep -s 130

start '.\Jeremih - Down On Me ft. 50 Cent.mp3'
start-sleep -s 130

start '.\Drake, Kanye West, Lil Wayne, Eminem - Forever (Explicit Version).mp3'
start-sleep -s 130

start '.\50 Cent - Many Men.mp3.mp3'
start-sleep -s 130

#einde playlist ga naar exit
exit
Had een .mp3 playlist gemaakt.
Ach, let niet op de muziek die er in een lijstje staat, want ik weet de meeste vinden het toch 'bagger' Haha

[ Voor 6% gewijzigd door Verwijderd op 15-06-2018 15:18 ]


Acties:
  • 0 Henk 'm!

  • Pimmerd
  • Registratie: Mei 2006
  • Laatst online: 22:18
Ik vraag me af wat de beste manier is om dit aan te pakken. Voorbeeldje uit de PowerCLI van VMware waar ik nu tegenaan loop.

code:
1
$var1 = Get-VM -name "VM1"


De variable $var1 heeft nu de velden Name, PowerState, NumCPUs en MemoryGB. Ik wil de laatste backup van deze VM zien, dus bijvoorbeeld:

code:
1
$var1 = Get-VM -name "VM1" | Get-Annotation -CustomAttribute "Last Backup"


Nu bevat de variable $var1 de velden AnnotatedEntity, Name, Value. (Name is naam van het customattribute. Nu wil ik een lijst maken (array zodat ik dit naar een CSV kan exporteren) met de naam van de VM en de laatste keer dat deze gebackupped is. Ik moet dus de naam van de VM uit het eerste commando combineren met de output van het laatste commando.

Op dit moment maak ik een custom array die ik zelf opbouw met de velden, maar ik vraag me af of er een betere manier is om dit te doen?

Acties:
  • 0 Henk 'm!

  • Squ1zZy
  • Registratie: April 2011
  • Niet online
Pimmerd schreef op vrijdag 15 juni 2018 @ 15:55:
Ik vraag me af wat de beste manier is om dit aan te pakken. Voorbeeldje uit de PowerCLI van VMware waar ik nu tegenaan loop.

code:
1
$var1 = Get-VM -name "VM1"


De variable $var1 heeft nu de velden Name, PowerState, NumCPUs en MemoryGB. Ik wil de laatste backup van deze VM zien, dus bijvoorbeeld:

code:
1
$var1 = Get-VM -name "VM1" | Get-Annotation -CustomAttribute "Last Backup"


Nu bevat de variable $var1 de velden AnnotatedEntity, Name, Value. (Name is naam van het customattribute. Nu wil ik een lijst maken (array zodat ik dit naar een CSV kan exporteren) met de naam van de VM en de laatste keer dat deze gebackupped is. Ik moet dus de naam van de VM uit het eerste commando combineren met de output van het laatste commando.

Op dit moment maak ik een custom array die ik zelf opbouw met de velden, maar ik vraag me af of er een betere manier is om dit te doen?
De naam haal je ergens uit toch? Nu staat die als string opgegeven. Ik neem aan dat je ergens doorheen gaat om de namen op te halen. Je kunt de naam en lastBackup toch in een aparte variable gooien in de loop?

code:
1
2
3
4
$name = "VM1"
$lastBackup = Get-VM -name $name | Get-Annotation -CustomAttribute "Last Backup"

Write-Host $name $lastBackup

Acties:
  • 0 Henk 'm!

  • Pimmerd
  • Registratie: Mei 2006
  • Laatst online: 22:18
Squ1zZy schreef op vrijdag 15 juni 2018 @ 16:44:
De naam haal je ergens uit toch? Nu staat die als string opgegeven. Ik neem aan dat je ergens doorheen gaat om de namen op te halen. Je kunt de naam en lastBackup toch in een aparte variable gooien in de loop?

code:
1
2
3
4
$name = "VM1"
$lastBackup = Get-VM -name $name | Get-Annotation -CustomAttribute "Last Backup"

Write-Host $name $lastBackup
Klopt, dit was misschien niet het beste voorbeeld, dit is wat ik nu doe met een foreach loop. Stel nou dat ik Name en PowerState uit het eerste commando wil halen en LastBackup uit het tweede, wat is het meest efficiente manier om dit te doen zonder de gehele array opnieuw op te bouwen?

Acties:
  • 0 Henk 'm!

  • Turdie
  • Registratie: Maart 2006
  • Laatst online: 20-08-2024
Hier een nieuwe PowerShell module waar je excel bestanden kan importeren zonder Excel geinstalleerd te hebben:
https://github.com/dfinke/ImportExcel

Acties:
  • +1 Henk 'm!

  • Neal
  • Registratie: Augustus 2002
  • Laatst online: 29-08 14:32
Voor mensen die veel met verschillende onderdelen (eventueel voor verschillende tenants) van de Microsoft Office365 Cloud werken, heeft een collega van me een handige module gemaakt:
https://github.com/martensnico/Office365.Connect

Deze connect voor je met de volgende services:
- Azure Active Directory (AzureAD)
- Microsoft Online (Msol)
- SharePoint Online (SPO
- Exchange Online
- Skype for Business Online
- Microsoft Teams
- Security & Compliance
- Connect PNP

Hierbij wordt gebruik gemaakt van de Credential Store van Windows zelf. Mocht je ergens mee willen verbinden en daarvoor nog aanvullende zaken op je systeem nodig hebt, dan wordt dit voor je gedownload.

Meer info: https://sharepointrelated...ll-easy-secure-office365/

Acties:
  • 0 Henk 'm!

  • Turdie
  • Registratie: Maart 2006
  • Laatst online: 20-08-2024
Neal schreef op maandag 18 juni 2018 @ 09:10:
Voor mensen die veel met verschillende onderdelen (eventueel voor verschillende tenants) van de Microsoft Office365 Cloud werken, heeft een collega van me een handige module gemaakt:
https://github.com/martensnico/Office365.Connect

Deze connect voor je met de volgende services:
- Azure Active Directory (AzureAD)
- Microsoft Online (Msol)
- SharePoint Online (SPO
- Exchange Online
- Skype for Business Online
- Microsoft Teams
- Security & Compliance
- Connect PNP

Hierbij wordt gebruik gemaakt van de Credential Store van Windows zelf. Mocht je ergens mee willen verbinden en daarvoor nog aanvullende zaken op je systeem nodig hebt, dan wordt dit voor je gedownload.

Meer info: https://sharepointrelated...ll-easy-secure-office365/
Dat soort modules bestaan al, ik heb ze al wel is voorbij zien komen, maar zeer zeker erg handig.

Acties:
  • 0 Henk 'm!

Verwijderd

#tafel van 1


$getal = 1,2,3,4,5,6,7,8,9,10


foreach ($getal in $d)

{


$getal * 1


}


#tafel van 2

$getal2 = 1,2,3,4,5,6,7,8,9,10


foreach ($getal2 in $d)

{

$getal2 * 2

}

#tafel van 3

$getal3 = 0,1,2,3,4,5,6,7,8,9,10


foreach ($getal3 in $d)

{

Write-host $getal3 * 3 -ForegroundColor red

}
Zodra ik het script wil draaien gebeurt er niks.


Afbeeldingslocatie: https://ibb.co/i2Ne28

[ Voor 17% gewijzigd door Verwijderd op 21-06-2018 16:05 . Reden: Powershell werkt niet meer ]


Acties:
  • 0 Henk 'm!

Verwijderd

Deze is ook handig: Show-Command -Height 500 -Width 350

Laat Commandos van Powershell zien in een gui

Acties:
  • +1 Henk 'm!

  • mufana
  • Registratie: Mei 2009
  • Laatst online: 05-06-2023
Verwijderd schreef op woensdag 20 juni 2018 @ 16:14:
Deze is ook handig: Show-Command -Height 500 -Width 350

Laat Commandos van Powershell zien in een gui
Of je doet gewoon 'Shcm | ogv'.
Scheelt je weer typen.

;)

Acties:
  • 0 Henk 'm!

  • punisher007
  • Registratie: Maart 2001
  • Laatst online: 15-09 05:36
Verwijderd schreef op woensdag 20 juni 2018 @ 10:34:
[...]


Zodra ik het script wil draaien gebeurt er niks.


[afbeelding]
Volgens mij klopt het script ook niet :)

Wat wil je precies doen?

http://blog.bjornhouben.com


Acties:
  • 0 Henk 'm!

  • Squ1zZy
  • Registratie: April 2011
  • Niet online
Verwijderd schreef op woensdag 20 juni 2018 @ 10:34:
[...]


Zodra ik het script wil draaien gebeurt er niks.


[afbeelding]
Je laat ook niets zien :)

Als je iets in een variabele zet dan vraag je niet om een output. Wat je b.v. kan doen is:

Witte-Host $getal

Je hebt een array aangemaakt, maar je zegt:
ForEach ($getal in $d)

Dat moet zijn:

ForEach ($d in $getal)

Dan in de loop $d gebruiken. Het script heeft wel wat aandacht nodig. Wat probeer je precies? Doe het stap voor stap en post eens wat je hebt gemaakt na het lezen van wat artikelen.

Acties:
  • 0 Henk 'm!

  • punisher007
  • Registratie: Maart 2001
  • Laatst online: 15-09 05:36
Versimpeld zou het zoiets als dit kunnen zijn:

$Tafels = 1..10
Foreach($Tafel in $Tafels)
{
Write-Output "Tafel van $Tafel"
1..10 | Foreach{
$_ * $Tafel
}
}

http://blog.bjornhouben.com


Acties:
  • 0 Henk 'm!

Verwijderd

Hoe zijn jullie zo goed geworden in programmeren.
Ik zie mezelf niet zo goed worden.

Acties:
  • 0 Henk 'm!

Verwijderd

punisher007 schreef op donderdag 21 juni 2018 @ 20:52:
Versimpeld zou het zoiets als dit kunnen zijn:

$Tafels = 1..10
Foreach($Tafel in $Tafels)
{
Write-Output "Tafel van $Tafel"
1..10 | Foreach{
$_ * $Tafel
}
}

[ Voor 18% gewijzigd door Verwijderd op 22-06-2018 11:59 ]


Acties:
  • +2 Henk 'm!

  • Oogje
  • Registratie: Oktober 2003
  • Niet online
Verwijderd schreef op vrijdag 22 juni 2018 @ 11:55:
Hoe zijn jullie zo goed geworden in programmeren.
Ik zie mezelf niet zo goed worden.
Doen, doen, doen. En had ik al gezegd doen?
Ipv in de GUI te klikken, kijk of je iets simpels met Powershell kan doen. Dan raak je ermee vertrouwd en ga je vanzelf scriptjes uitbreiden en ben je na verloop van tijd beter dan je dacht.

Any errors in spelling, tact, or fact are transmission errors.


Acties:
  • +1 Henk 'm!

Verwijderd

Verwijderd schreef op vrijdag 22 juni 2018 @ 11:55:
Hoe zijn jullie zo goed geworden in programmeren.
Ik zie mezelf niet zo goed worden.
Oefenen, boeken lezen. Zaken zoeken die je echt wilt automatiseren en voorbeelden van anderen overnemen en aanpassen naar eigen wens.

Acties:
  • +1 Henk 'm!

  • Sluuut
  • Registratie: Februari 2003
  • Laatst online: 17:25
Vraagje: Waarom zou je write-host gebruiken ipv write-output ? Write-host kan volgens mij niets loggen (althans niet met 'tee'), en write-output laat de output ook gewoon op het scherm zien.

57696520646974206c65657374206973206e657264


Acties:
  • +1 Henk 'm!

Verwijderd

Sluuut schreef op vrijdag 22 juni 2018 @ 14:37:
Vraagje: Waarom zou je write-host gebruiken ipv write-output ? Write-host kan volgens mij niets loggen (althans niet met 'tee'), en write-output laat de output ook gewoon op het scherm zien.
Het is iirc vooral dat het er wat anders uitziet (qua kleur, write-host kun je andere kleurtjes gebruiken)

Acties:
  • +1 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 18:07
Sluuut schreef op vrijdag 22 juni 2018 @ 14:37:
Vraagje: Waarom zou je write-host gebruiken ipv write-output ? Write-host kan volgens mij niets loggen (althans niet met 'tee'), en write-output laat de output ook gewoon op het scherm zien.
Write-host stuurt data naar de console, write-output stuurt data naar de output stream.
Simpel voorbeeld van het verschil :

PowerShell:
1
2
$a = Write-Host "test"
$b = Write-Output "test"

Het eerste commando (de write-host) geeft een output naar de console : de variable is leeg.
Write-output geeft in dit geval geen output naar de console maar wel in de variable $b.

Acties:
  • +1 Henk 'm!

  • Sluuut
  • Registratie: Februari 2003
  • Laatst online: 17:25
Verwijderd schreef op vrijdag 22 juni 2018 @ 14:43:
[...]

Het is iirc vooral dat het er wat anders uitziet (qua kleur, write-host kun je andere kleurtjes gebruiken)
Kan wel met write-output hoor;
PowerShell:
1
$host.ui.RawUI.ForegroundColor = "White"

[ Voor 4% gewijzigd door Sluuut op 22-06-2018 15:00 ]

57696520646974206c65657374206973206e657264


Acties:
  • +1 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 18:07
Sluuut schreef op vrijdag 22 juni 2018 @ 15:00:
[...]

Kan wel met write-output hoor;
PowerShell:
1
$host.ui.RawUI.ForegroundColor = "White"
$host.ui.RawUI.ForegroundColor is toch niet hetzelfde als write-output? Dit is gewoon direct de setting van de console aanpassen.

Acties:
  • +1 Henk 'm!

  • Sluuut
  • Registratie: Februari 2003
  • Laatst online: 17:25
Killah_Priest schreef op vrijdag 22 juni 2018 @ 15:01:
[...]

$host.ui.RawUI.ForegroundColor is toch niet hetzelfde als write-output? Dit is gewoon direct de setting van de console aanpassen.
Klopt, je hebt gelijk.

57696520646974206c65657374206973206e657264


Acties:
  • +1 Henk 'm!

  • punisher007
  • Registratie: Maart 2001
  • Laatst online: 15-09 05:36
Verwijderd schreef op vrijdag 22 juni 2018 @ 11:55:
Hoe zijn jullie zo goed geworden in programmeren.
Ik zie mezelf niet zo goed worden.
Zoals al genoemd. Vooral veel doen en vragen als je iets niet weet :). Maar beginnen met de basis boeken ook en wellicht ook inschrijven voor de daily PowerTip : http://community.idera.com/powershell/

http://blog.bjornhouben.com


Acties:
  • +1 Henk 'm!

  • mufana
  • Registratie: Mei 2009
  • Laatst online: 05-06-2023
Verwijderd schreef op vrijdag 22 juni 2018 @ 11:55:
Hoe zijn jullie zo goed geworden in programmeren.
Ik zie mezelf niet zo goed worden.
Vooral veel doen. 8)
Op de MVA staan ook twee hele leuke cursussen.
- PowerShell fundamentals
- PowerShell scripting and toolmaking

Daar kun je je prima een avondje mee vermaken.

Acties:
  • +1 Henk 'm!

  • Squ1zZy
  • Registratie: April 2011
  • Niet online
mufana schreef op vrijdag 22 juni 2018 @ 23:05:
[...]


Vooral veel doen. 8)
Op de MVA staan ook twee hele leuke cursussen.
- PowerShell fundamentals
- PowerShell scripting and toolmaking

Daar kun je je prima een avondje mee vermaken.
Ik raad deze aan op MVP:
https://mva.microsoft.com...276?l=r54IrOWy_2304984382

Acties:
  • 0 Henk 'm!

Verwijderd

En waarvoor is die @ sign? die word gebruikt in het script

Acties:
  • +1 Henk 'm!

  • Dwazer
  • Registratie: April 2000
  • Laatst online: 19-08 17:56

Acties:
  • 0 Henk 'm!

  • Neal
  • Registratie: Augustus 2002
  • Laatst online: 29-08 14:32
Verwijderd schreef op maandag 25 juni 2018 @ 12:15:
En waarvoor is die @ sign? die word gebruikt in het script
Beetje zelf onderzoeken:
http://lmgtfy.com/?q=powershell+at+sign

Acties:
  • +1 Henk 'm!

  • Roamor
  • Registratie: Mei 2004
  • Niet online
Weet iemand hoe ik de naam "A.txt" en "B.txt" kan opvragen via Powershell? Waar in de properties die verstopt zitten?

Als voorbeeld in het taakbeheer notepad; maar in de praktijk is het een ander process:

Afbeeldingslocatie: https://tweakers.net/ext/f/XHwJRgqZ3xFlZ8gTeaPKbF18/medium.png

Ik probeer het met varianten op:
code:
1
get-process -Name notepad | select name -ExpandProperty name


Maar misschien dat iemand het zo weet?

Edit:
Gevonden:
get-process -Name notepad | select MainWindowTitle 8)7 Soms kijk je te lang naar een probleem...

[ Voor 9% gewijzigd door Roamor op 27-06-2018 15:56 ]


Acties:
  • +1 Henk 'm!

  • MADG0BLIN
  • Registratie: Juni 2001
  • Laatst online: 17:35
Get-Process notepad |where {$_.mainWindowTItle} | Format-Table id, name, mainwindowtitle

Voortaan eerst ff refreshen. ;)

[ Voor 19% gewijzigd door MADG0BLIN op 27-06-2018 15:58 ]


Acties:
  • 0 Henk 'm!

Verwijderd

$gemoedstoestand = "positief"


if ($gemoedstoestand -eq "positief")

{

Write-Host "Ik ben positeif"

}
else {Write-Host "Helaas ik ben negatief"}
$password = 1

if ($password -eq "1")
{
Write-Host " $password je hebt toegang"


} {else
(Write-host "$password je hebt geen toegang") }
Natuurlijk is er ook de groter dan of le opties die ik heb bekeken.
Bijvoorbeeld als getal groter is dan 2 "getal is groter" of getal is kleiner dan 2.

Acties:
  • 0 Henk 'm!

  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

Verwijderd schreef op donderdag 28 juni 2018 @ 13:10:
[...]


$password = 1

if ($password -eq "1")
{

[...]
Werkt dat? Eerst ken je het getal 1 toe aan $password en dan vergelijk je dat getal met de string “1”. Ik zou een foutmelding verwachten.

Acties:
  • 0 Henk 'm!

  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

downtime schreef op donderdag 28 juni 2018 @ 17:46:
[...]

Werkt dat? Eerst ken je het getal 1 toe aan $password en dan vergelijk je dat getal met de string “1”. Ik zou een foutmelding verwachten.
Net thuisgekomen en het even uitgeprobeerd. Warempel, het werkt, PowerShell accepteert het gewoon als je een integer en een string vergelijkt.

Acties:
  • 0 Henk 'm!

Verwijderd

Hmm dat klopt.
#ik forceer mijzelf gewoon om voor dit te zitten.

Acties:
  • 0 Henk 'm!

  • Henkje.doc
  • Registratie: November 2005
  • Laatst online: 21:21
Nog een leuke die je kunt gebruiken voor logging: start-transcript en stop-transcript.
De complete output kan dan naar een logfile worden geschreven. Let wel: er wordt anders omgegaan met write-host en write-output.

Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 18:07
Henkje.doc schreef op donderdag 5 juli 2018 @ 06:27:
Nog een leuke die je kunt gebruiken voor logging: start-transcript en stop-transcript.
De complete output kan dan naar een logfile worden geschreven. Let wel: er wordt anders omgegaan met write-host en write-output.
Je kan dit via een GPO regelen (dit had ik bij een eerdere werkgever ingericht).
Het grootste nadeel hiervan vond ik (buiten het feit dat de transcript files echt enorm kunnen worden) dat bv plain text passwords (waar je soms niet onderuit komt met bepaalde web APIs) ook in de transcript verschijnen, dus 2x per week liep ik dmv een script de boel na op deze info om het uit de transcript te halen.

Acties:
  • +1 Henk 'm!

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Henkje.doc schreef op donderdag 5 juli 2018 @ 06:27:
Let wel: er wordt anders omgegaan met write-host en write-output.
"Every time you use Write-Host, you kill a puppy". - Don Jones
Behalve in PS5+:
https://twitter.com/jsnover/status/727902887183966208

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • rolfkunst
  • Registratie: Mei 2007
  • Laatst online: 14-08 09:12
Beste mede-tweakers,

Ik zit met een probleem. Er is mij gevraagd of ik een lijst kan aanleveren van pc's die nog in het oude domein zitten en wanneer deze voor het laatst gebruikt zijn. En door wie, zodat het zoeken naar de bewuste pc wat makkelijker gaat. (Het cmdb is nog niet op orde)

De eerste 2 stappen zijn relatief eenvoudig:
Op de domaincontroller vul ik het volgende in:

Get-ADComputer -Filter {OperatingSystem -notLike '*SERVER*' } -Properties lastlogondate,operatingsystem | Select name,lastlogondate,operatingsystem | Sort-Object -Property name | export-csv c:\list.csv -notypeinformation

Tot zover geen probleem, maar hoe krijg ik in dat lijstje ook nog de laatst aangemelde gebruiker? Is dat überhaupt bekend in de AD? Lijkt me toch wel..
:?

  • Oogje
  • Registratie: Oktober 2003
  • Niet online
Die info zal in de security log van je DC's staan, je zou een query kunnen bouwen met een bepaald eventid en welke de pcnaam bevat die je zoekt. Daar is dan wel de username uit te halen.
Info staat niet in de AD zelf afaik.

Any errors in spelling, tact, or fact are transmission errors.


  • Meekoh
  • Registratie: April 2005
  • Laatst online: 15:27
rolfkunst schreef op woensdag 12 september 2018 @ 11:36:
Beste mede-tweakers,

Ik zit met een probleem. Er is mij gevraagd of ik een lijst kan aanleveren van pc's die nog in het oude domein zitten en wanneer deze voor het laatst gebruikt zijn. En door wie, zodat het zoeken naar de bewuste pc wat makkelijker gaat. (Het cmdb is nog niet op orde)

De eerste 2 stappen zijn relatief eenvoudig:
Op de domaincontroller vul ik het volgende in:

Get-ADComputer -Filter {OperatingSystem -notLike '*SERVER*' } -Properties lastlogondate,operatingsystem | Select name,lastlogondate,operatingsystem | Sort-Object -Property name | export-csv c:\list.csv -notypeinformation

Tot zover geen probleem, maar hoe krijg ik in dat lijstje ook nog de laatst aangemelde gebruiker? Is dat überhaupt bekend in de AD? Lijkt me toch wel..
:?
Nee, wie als laatste op een computer is aangemeld staat niet in AD. Bovendien is dat ook niet echt representatief want wat als een service account is aangemeld? Met name bij servers willen er nog weleens meerdere service accounts aanmelden, want services draaien onder dat account. Aanmelden != inloggen op een desktop sessie.

Maar zodra je weet wat de naam van de pc is, kun je toch met een pssession ernaar verbinden en kijken welk gebruikers profiel het laatst is gemodified?
code:
1
Get-ChildItem "\\$computer\c$\Users" | Sort-Object LastWriteTime -Descending | Select-Object Name, LastWriteTime -first 1

Computer says no


  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

Meekoh schreef op woensdag 12 september 2018 @ 11:55:
[...]

Nee, wie als laatste op een computer is aangemeld staat niet in AD. Bovendien is dat ook niet echt representatief want wat als een service account is aangemeld? Met name bij servers willen er nog weleens meerdere service accounts aanmelden, want services draaien onder dat account. Aanmelden != inloggen op een desktop sessie.
Alle domain logins zou je in de logging van de DC moeten zien. Dus gewoon allemaal uitlezen en dan de laatste eruit filteren. Ik heb het niet geprobeerd maar het lijkt me niet zo moeilijk.

  • Squ1zZy
  • Registratie: April 2011
  • Niet online
downtime schreef op woensdag 12 september 2018 @ 20:42:
[...]

Alle domain logins zou je in de logging van de DC moeten zien. Dus gewoon allemaal uitlezen en dan de laatste eruit filteren. Ik heb het niet geprobeerd maar het lijkt me niet zo moeilijk.
PowerShell:
1
Get-WinEvent -Computer ComputerNaam -FilterHashtable @{Logname='Security';ID=4672} -MaxEvents 1 | select @{N='User';E={$_.Properties[1].Value}}

  • Meekoh
  • Registratie: April 2005
  • Laatst online: 15:27
downtime schreef op woensdag 12 september 2018 @ 20:42:
[...]

Alle domain logins zou je in de logging van de DC moeten zien. Dus gewoon allemaal uitlezen en dan de laatste eruit filteren. Ik heb het niet geprobeerd maar het lijkt me niet zo moeilijk.
Dan nog, nee niet in ad. Wel in een eventlog en wat als die eventlog al overschreven is? Ik ga er niet van uit dat iedereen zijn eventlog heeft groter gemaakt.

Computer says no


  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

Meekoh schreef op donderdag 13 september 2018 @ 08:05:
[...]

Dan nog, nee niet in ad. Wel in een eventlog en wat als die eventlog al overschreven is? Ik ga er niet van uit dat iedereen zijn eventlog heeft groter gemaakt.
Klopt. Maar het is beter dan niks.

  • markcoutinho
  • Registratie: Augustus 2004
  • Laatst online: 28-08 09:55
Even heel iets anders: ik heb zonder al te gefundeerde kennis een stuk of 20 PowerShell-scripts gemaakt die over het algemeen prima doen wat ze moeten doen.
Nu zijn we echter sinds vorige week over op Office 365, dus onze Exchange server is ook daarnaartoe verhuisd.

Ik heb van het internet deze regels gevonden:
Set-ExecutionPolicy RemoteSigned
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking

(sorry, ik weet niet hoe je die code in een apart dingetje zet)

maar dat werkt niet.
Ik heb inmiddels al 3 dagen doorgebracht met troubleshooten, maar ik kom geen steek verder.

Daarom...
Zoek ik nu *knip* hier geen vraag en aanbod van betaalde diensten * 1 script dusdanig aanpassen dat die z'n Exchange-onderdelen op de externe server doet. Ik gok erop dat ik aan de hand van dat voorbeeld alle andere scripts ook wel aan de praat krijg.

[ Voor 12% gewijzigd door F_J_K op 20-09-2018 14:50 ]


  • wagenveld
  • Registratie: Februari 2002
  • Niet online
Lijkt mij iets triviaals, heb je de instructies van MS wel helemaal gevolgd? OS/.NET zijn de juiste versies?
https://docs.microsoft.co...wershell?view=exchange-ps

  • markcoutinho
  • Registratie: Augustus 2004
  • Laatst online: 28-08 09:55
wagenveld schreef op donderdag 20 september 2018 @ 14:24:
Lijkt mij iets triviaals, heb je de instructies van MS wel helemaal gevolgd? OS/.NET zijn de juiste versies?
https://docs.microsoft.co...wershell?view=exchange-ps
Jazeker - ik kan die pagina wel dromen inmiddels... Maar daar kom ik dus niet mee verder.

[ Voor 4% gewijzigd door markcoutinho op 20-09-2018 14:37 ]


  • MADG0BLIN
  • Registratie: Juni 2001
  • Laatst online: 17:35
Wat is de exacte foutmelding die je krijgt? De connectie string lijkt juist.

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

@markcoutinho dit topic / dit forum is niet bedoeld voor vraag en aanbod van betaalde diensten. Dat kan je desgewenst in https://tweakers.net/aanbod/#highlightCat:892 kwijt.

Hier denken we wel graag mee, maar dan is het wel meedenken waarbij het meeste werk door jezelf gebeurt. Als je het zelf wilt oplossen met onze hulp, stel ik voor dat je even een los topic opent en daarbij ook bovenstaande meeneemt.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • wagenveld
  • Registratie: Februari 2002
  • Niet online
Web (uitgaande) proxy wellicht in de organisatie die in de weg zit?

  • markcoutinho
  • Registratie: Augustus 2004
  • Laatst online: 28-08 09:55
F_J_K schreef op donderdag 20 september 2018 @ 14:52:
@markcoutinho dit topic / dit forum is niet bedoeld voor vraag en aanbod van betaalde diensten. Dat kan je desgewenst in https://tweakers.net/aanbod/#highlightCat:892 kwijt.

Hier denken we wel graag mee, maar dan is het wel meedenken waarbij het meeste werk door jezelf gebeurt. Als je het zelf wilt oplossen met onze hulp, stel ik voor dat je even een los topic opent en daarbij ook bovenstaande meeneemt.
Dank je voor je reactie.
Ik heb m'n vraag op de door jou voorgestelde pagina gepost.
En geloof me: ik heb al heel wat uren zitten zoeken/testen/proberen, vandaar dat ik hier terecht kwam.

  • Jazzy
  • Registratie: Juni 2000
  • Laatst online: 12-09 16:29

Jazzy

Moderator SSC/PB

Moooooh!

Was je, naast het zoeken van iemand om het aan uit te besteden, ook nog op zoek naar concrete hulp van de experts hier? In dat geval, vertel even precies wat er niet werkt.

Exchange en Office 365 specialist. Mijn blog.


  • nagasy
  • Registratie: Mei 2008
  • Laatst online: 29-11-2024

nagasy

Duck Duck Duck Goose

@markcoutinho al nagekeken of de firewall niets blokkeert naar buiten toe?

[ Voor 8% gewijzigd door nagasy op 20-09-2018 16:54 ]

Battle.net: NagaByrd#2844


  • Squ1zZy
  • Registratie: April 2011
  • Niet online
markcoutinho schreef op donderdag 20 september 2018 @ 14:20:
Even heel iets anders: ik heb zonder al te gefundeerde kennis een stuk of 20 PowerShell-scripts gemaakt die over het algemeen prima doen wat ze moeten doen.
Nu zijn we echter sinds vorige week over op Office 365, dus onze Exchange server is ook daarnaartoe verhuisd.

Ik heb van het internet deze regels gevonden:
Set-ExecutionPolicy RemoteSigned
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking

(sorry, ik weet niet hoe je die code in een apart dingetje zet)

maar dat werkt niet.
Ik heb inmiddels al 3 dagen doorgebracht met troubleshooten, maar ik kom geen steek verder.

Daarom...
Zoek ik nu ~[mbr]*knip* hier geen vraag en aanbod van betaalde diensten * ~[/] 1 script dusdanig aanpassen dat die z'n Exchange-onderdelen op de externe server doet. Ik gok erop dat ik aan de hand van dat voorbeeld alle andere scripts ook wel aan de praat krijg.
Als ik je code kopieer en uitvoer werkt het gewoon. Welke melding krijg je? Access denied?

Als je access denied krijgt kan het zijn dat MFA enabled is of je de rechten niet hebt. Vergeet ook niet PowerShell als admin uit te voeren gezien je set-executionpolicy gebruikt. PowerShell geeft daar echter een melding over dus ga er vanuit dat dat het niet is.

Als je PowerShell code wilt posten kan je [ code=PowerShell]bla bla[/code] gebruiken. Alleen dan de spatie weg tussen [ en code ;)

Acties:
  • 0 Henk 'm!

  • markcoutinho
  • Registratie: Augustus 2004
  • Laatst online: 28-08 09:55
Interessante suggesties, Nazy en Squ1zZy - ik ga ermee aan de slag en laat mijn bevindingen weten.

Acties:
  • 0 Henk 'm!

  • punisher007
  • Registratie: Maart 2001
  • Laatst online: 15-09 05:36
Voor Exchange Online MFA PowerShell zie : https://docs.microsoft.co...wershell?view=exchange-ps

http://blog.bjornhouben.com


Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 18:07
Ik heb voor deze doeleinden eigenlijk altijd een app password gebruikt, dat werkt ook (hoewel niet echt secure)

Acties:
  • 0 Henk 'm!

  • mswp
  • Registratie: Mei 2016
  • Laatst online: 05-08-2024

mswp

Wie Niet?

Waar ik eerder mijn scriptjes via een tooltje liet draaien op meerdere computers wil ik dit nu vanaf mijn eigen pc doen, dus niet meer afhankelijk zijn van de tool.

Ik had een commando die een itempropery ophaalde uit het register, die heb ik verwerkt in een if om een logfile aan te maken. In de if had ik ook een variable zitten die de hostname ophaalde alleen als ik het commando uitvoer met foreach of invoke-command dan haalt hij mijn computer naam naar voren omdat ik vanaf mijn computer het script uitvoer. Opzich logisch..

Ik wil eigenlijk 1 logfile waar alle computernamen met de register value in een tabel instaan. Nu zat ik al te denken om 2 verschillende itemproperty's op te vragen en die dan te verwerken in 1 out-file regel. Heeft iemand enig idee of dat werkt? Met de ene property de waarde die ik wil weten en de andere property de hostname.

Ik zoek ook nog een handigheidje in het remote powershellen met de computers die uitstaan. Met de tool wordt het script uitgevoerd als de computer aangaat. Hij onthoud als het ware zijn commando tot het mogelijk is om het uit te voeren. Ik wachtte meestal een week met uitlezen van de loggings en had ik een mooi overzicht, nu zou ik het script meerdere keren moeten draaien om alle computers te krijgen. Als iemand hier tips voor heeft hoor ik het graag!

😲


Acties:
  • 0 Henk 'm!

  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

mswp schreef op donderdag 21 maart 2019 @ 21:24:
Waar ik eerder mijn scriptjes via een tooltje liet draaien op meerdere computers wil ik dit nu vanaf mijn eigen pc doen, dus niet meer afhankelijk zijn van de tool.

Ik had een commando die een itempropery ophaalde uit het register, die heb ik verwerkt in een if om een logfile aan te maken. In de if had ik ook een variable zitten die de hostname ophaalde alleen als ik het commando uitvoer met foreach of invoke-command dan haalt hij mijn computer naam naar voren omdat ik vanaf mijn computer het script uitvoer. Opzich logisch..
Ik snap het niet. Je wilt het script toch vanaf je eigen computer draaien? Dan weet je toch welke externe computers je benadert? Waarom wil je de computernaam nog een keer ophalen terwijl je die al kent?

En waarom gebruik je invoke-command? Je kunt de registry gewoon remote uitlezen. https://stackoverflow.com...get-remote-registry-value
Ik wil eigenlijk 1 logfile waar alle computernamen met de register value in een tabel instaan. Nu zat ik al te denken om 2 verschillende itemproperty's op te vragen en die dan te verwerken in 1 out-file regel. Heeft iemand enig idee of dat werkt? Met de ene property de waarde die ik wil weten en de andere property de hostname.
Makkelijk zat. Doe zoiets als
code:
1
2
3
4
5
6
$Array = @()
$Array += New-Object -Typename PSObject -Property { 
    ComputerName = $HostName
    RegistryValue = $ThatValue
}
$Array | Export-CSV -Path 'C:\Dit.is.een.csv'
Ik zoek ook nog een handigheidje in het remote powershellen met de computers die uitstaan. Met de tool wordt het script uitgevoerd als de computer aangaat. Hij onthoud als het ware zijn commando tot het mogelijk is om het uit te voeren. Ik wachtte meestal een week met uitlezen van de loggings en had ik een mooi overzicht, nu zou ik het script meerdere keren moeten draaien om alle computers te krijgen. Als iemand hier tips voor heeft hoor ik het graag!
Jij had er toch al een tool voor? Gebruik die dan.

Acties:
  • 0 Henk 'm!

  • Turdie
  • Registratie: Maart 2006
  • Laatst online: 20-08-2024
rolfkunst schreef op woensdag 12 september 2018 @ 11:36:
Beste mede-tweakers,

Ik zit met een probleem. Er is mij gevraagd of ik een lijst kan aanleveren van pc's die nog in het oude domein zitten en wanneer deze voor het laatst gebruikt zijn. En door wie, zodat het zoeken naar de bewuste pc wat makkelijker gaat. (Het cmdb is nog niet op orde)

De eerste 2 stappen zijn relatief eenvoudig:
Op de domaincontroller vul ik het volgende in:

Get-ADComputer -Filter {OperatingSystem -notLike '*SERVER*' } -Properties lastlogondate,operatingsystem | Select name,lastlogondate,operatingsystem | Sort-Object -Property name | export-csv c:\list.csv -notypeinformation

Tot zover geen probleem, maar hoe krijg ik in dat lijstje ook nog de laatst aangemelde gebruiker? Is dat überhaupt bekend in de AD? Lijkt me toch wel..
:?
Ik zou iets anders doen voor de last login van de computer
PowerShell:
1
2
3
$DaysInactive = 90
$time = (Get-Date).Adddays(-($DaysInactive))
Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} -ResultPageSize 2000 -resultSetSize $null -Properties Name, OperatingSystem, SamAccountName, DistinguishedName


Ik zou hem eerst even draaien zonder export-csv en als je dan een goede output krijgt , dan kun je hem daarna exporteren, en dan kun je in de lijst zelf filteren op client os. Je zult hier trouwens niet de aangemelde gebruiker inzien, alleen naam en het os van het computeraccount.




Als je de gebruiker erbij wil hebben wordt het wat ingewikkelder:
PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Find DC list from Active Directory
$DCs = Get-ADDomainController -Filter *

# Define time for report (default is 1 day)
$startDate = (get-date).AddDays(-1)

# Store successful logon events from security logs with the specified dates and workstation/IP in an array
foreach ($DC in $DCs){
$slogonevents = Get-Eventlog -LogName Security -ComputerName $DC.Hostname -after $startDate | where {$_.eventID -eq 4624 }}

  foreach ($e in $slogonevents){
    # Logon Successful Events
    # Local (Logon Type 2)
    if (($e.EventID -eq 4624 ) -and ($e.ReplacementStrings[8] -eq 2)){
      write-host "Type: Local Logon`tDate: "$e.TimeGenerated "`tStatus: Success`tUser: "$e.ReplacementStrings[5] "`tWorkstation: "$e.ReplacementStrings[11]
    }
    # Remote (Logon Type 10)
    if (($e.EventID -eq 4624 ) -and ($e.ReplacementStrings[8] -eq 10)){
      write-host "Type: Remote Logon`tDate: "$e.TimeGenerated "`tStatus: Success`tUser: "$e.ReplacementStrings[5] "`tWorkstation: "$e.ReplacementStrings[11] "`tIP Address: "$e.ReplacementStrings[18]
    }}


Hiermee zie je alle login historie in dat hele domein (alle succesvolle logins). Hopelijk worden je event logs op je DC wel lang genoeg bewaard ;). Als je users hebt die op servers inloggen zul je dat ook zien, maar daar ga ik nu even niet vanuit ;)

Hopelijk ben je hiermee geholpen

[ Voor 55% gewijzigd door Turdie op 22-03-2019 00:51 ]


Acties:
  • +1 Henk 'm!

  • punisher007
  • Registratie: Maart 2001
  • Laatst online: 15-09 05:36
downtime schreef op donderdag 21 maart 2019 @ 23:12:
[...]

Ik snap het niet. Je wilt het script toch vanaf je eigen computer draaien? Dan weet je toch welke externe computers je benadert? Waarom wil je de computernaam nog een keer ophalen terwijl je die al kent?

En waarom gebruik je invoke-command? Je kunt de registry gewoon remote uitlezen. https://stackoverflow.com...get-remote-registry-value


[...]

Makkelijk zat. Doe zoiets als
code:
1
2
3
4
5
6
$Array = @()
$Array += New-Object -Typename PSObject -Property { 
    ComputerName = $HostName
    RegistryValue = $ThatValue
}
$Array | Export-CSV -Path 'C:\Dit.is.een.csv'



[...]

Jij had er toch al een tool voor? Gebruik die dan.
Voor remote registry moet natuurlijk ook de service draaien, de FW open staan, etc. Dus dan kan het makkelijker zijn om invoke-command te gebruiken als hiervoor wel alles in place is.

http://blog.bjornhouben.com


Acties:
  • 0 Henk 'm!

  • mswp
  • Registratie: Mei 2016
  • Laatst online: 05-08-2024

mswp

Wie Niet?

downtime schreef op donderdag 21 maart 2019 @ 23:12:
[...]

Ik snap het niet. Je wilt het script toch vanaf je eigen computer draaien? Dan weet je toch welke externe computers je benadert? Waarom wil je de computernaam nog een keer ophalen terwijl je die al kent?

En waarom gebruik je invoke-command? Je kunt de registry gewoon remote uitlezen. https://stackoverflow.com...get-remote-registry-value


[...]

Makkelijk zat. Doe zoiets als
code:
1
2
3
4
5
6
$Array = @()
$Array += New-Object -Typename PSObject -Property { 
    ComputerName = $HostName
    RegistryValue = $ThatValue
}
$Array | Export-CSV -Path 'C:\Dit.is.een.csv'



[...]

Jij had er toch al een tool voor? Gebruik die dan.
Ik wil de computernaam ophalen om weg te schrijven in een logfile. Ik heb het nu draaien via invoke-command. Hiermee draait hij dus het scriptje op de betreffende computer. Ik ga morgen testen hoe dit gaat om met 10 computers tegelijk in 1 file te schrijven, ik ben ook wel benieuwd hoe dit gaat met 80 tegelijk. Iemand ervaring mee?

Alles wat ik nieuw ga maken wil ik zonder de tool gaan maken, hoe mooi is het om zometeen niet meer tool afhankelijk te zijn? M'n baas betaald er nu voor en volgens mij moet het ook 'gratis' met PowerShell kunnen?

😲

Pagina: 1 ... 8 ... 10 Laatste