Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

PS script med logon mod servere

Af Monsterbruger Katmus | 23-10-2023 15:44 | 1563 visninger | 8 svar, hop til seneste
Hej forum Jeg er måske et forkert sted. men prøver alligevel. Søger et PS script eller hint til hvor jeg kan finde noget. Jeg har en terminal server med adgang til forskellige domæner. På de domæner er der en stak servere. Jeg har brug for at køre et PS script på terminal server mod servere i et domain. På de servere i domænet skal der køres et PS kommando. Resultat af den kommando skal skrives i en fil på min terminalserver. Det involverer vel noget logon til de her servere i domænet. kan man putte det ind i sådan et script. Alternativet er at bruge en local admin som er ens på alle servere, hvis det er nemmere.
--
#1
Katmus
Monsterbruger
23-10-2023 15:55

Rapporter til Admin
jeg er kommet så langt at den her virker Invoke-Command -ComputerName SERVER -Credential DOMAIN\USER -ScriptBlock {Get-HotFix} jeg får password boks og logger på og får så resultat. Kan jeg udvide den til at gøre det på 10 servere fra en txt fil som er i samme domæne og så lægge resultat i en txt eller csv fil?
--
Sidst redigeret 23-10-2023 15:55
#2
Katmus
Monsterbruger
23-10-2023 16:07

Rapporter til Admin
Fik også save til txt file til at virke. Så det jeg mangler er at køre det mod 10 servere. forestiller mig at jeg kan logge på i logon boks og så kører den mod første server i en fil og gemmer resultat i min outputfil og går videre til næste server o.s.v. er det muligt?
--
#3
StarF
Nørd
23-10-2023 16:28

Rapporter til Admin
Er serverne i domæne? Jeg har før bare læst en server liste ud af ad og lavet en for each loop på objekterne. Alternativt kan du læse en txt fil som er komma repeteret og lave det til et array og loope over
--
#4
Fido-dk
Monsterbruger
23-10-2023 17:32

Rapporter til Admin
jeg mener du bare kan: Invoke-Command -ComputerName SERVER1,Server2,server3 -Credential DOMAIN\USER -ScriptBlock {Get-HotFix} men husk "altid" at kigge på MS Documentation, der er næsten altid gode eksempler på hvordan du kommer i gang https://learn.microsoft.com[...] kig på eksempel 6 og 7 /Fido-dk
--
#5
SimonJensen
Nørd
23-10-2023 21:17

Rapporter til Admin
2 sekunder på ChatGPT: # Define the credentials $credential = Get-Credential -Credential "DOMAIN\USER" # Read the list of servers from the text file $serverList = Get-Content -Path "ServerList.txt" # Iterate through the server list and run Invoke-Command foreach ($server in $serverList) { $scriptBlock = { Get-HotFix } Invoke-Command -ComputerName $server -Credential $credential -ScriptBlock $scriptBlock }
--
Tjek min side omkring Tog og Modeltog: http://www.simontog.dk[...]
#6
Katmus
Monsterbruger
24-10-2023 15:22

Rapporter til Admin
super... yes har set MS vejledninger og nået hvor jeg nåede til. det var lige det med de amnge servere der drillede. Kigger og afprøver. tak for tip
--
#7
nikolaj1
Bruger Aspirant
24-10-2023 21:08

Rapporter til Admin
Hej, Som #5 skriver burde det virke. Du bør nok lige læse på noget basis Powershell. Bemærk at: 1. Når du benytter "Invoke-Command" mod andre computere går det via Powershell remoting, som måske/måske ikke er slået til på de computere du prøver at ramme. 2. Get-HotFix kræver formentlig en nyere computer, dvs nok kun Windows 10+. Du kan også blot lave simpelt array og loop igennem det: # Define the credentials $credential = Get-Credential -Credential "DOMAIN\USER" # Read the list of servers from variable string array $serverList = "server1","server2","server3" $scriptBlock = { Get-HotFix } # Iterate through the server list and run Invoke-Command foreach ($server in $serverList) { Invoke-Command -ComputerName $server -Credential $credential -ScriptBlock $scriptBlock }
--
#8
exhertz
Elitebruger
06-12-2023 22:02

Rapporter til Admin
Mange af ovenstående svar er korrekte, men den pæne måde, i min optik, vil være følgende: # Lav en variabel, hvor du gemmer dine credentials $Creds = Get-Credential (husk at specificere domæne i dit username) # Har du serverne i et text-dokument kan du hente indholdet via. Get-Content $Servers = Get-Content -Path C:\Din\Fix.txt # Hvis du har servere i en Variabel $Servers = 'ServerA','ServerB','ServerC' # For at køre koden ude på en anden server er der 2 muligheder 1. Invoke-Command (denne kører en scriptblock på serverenl, og returnerer det. Supporterer flere servere) 2. Enter-PSSession (denne skaber blot en session, og er mere tiltænkt at få en vedholdende session) # I dette tilfælde bruges Invoke-Command, og vi gemmer det i en variabel, der hedder Output $Output = Invoke-Command -ComputerName $Servers -Credential $Creds -Scriptblock { Get-HotFix} I $Output vil du nu have din information :)
--
“I will not let anyone walk through my mind with their dirty feet.” -Mahatma Gandhi

Opret svar til indlægget: PS script med logon mod servere

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning


ANNONCE