mrheisenberg
Goto Top

Powershell "local Admin"

Moin,

ich hab folgendes Problem, ich erstelle mit meinem Skript einen Lokalen Admin auf den Geräten, nur laufen die Passwörter ab, ich hab hier irgendwo einen Fehler, jetzt würde ich auf euer Schwarm-Wissen hoffen.

$username = "XXXXXXX"     
$password = ConvertTo-SecureString "XXXXXXXXXXXX" -AsPlainText -Force    
$logFile = "\\XXXXXXX\log\XXX_XXXX.txt"  
Function Write-Log {
  param(
      [Parameter(Mandatory = $true)][string] $message,
      [Parameter(Mandatory = $false)]
      [ValidateSet("INFO","WARN","ERROR")]  
      [string] $level = "INFO"  
  )
    $timestamp = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")  
   Add-Content -Path $logFile -Value "$timestamp [$level] - $message"  
}
Function Create-LocalAdmin {
    process {
      try {
        New-LocalUser "$username" -Password $password -FullName "$username" -Description "local admin" -ErrorAction stop  
        Write-Log -message "$username local user crated"  
               Add-LocalGroupMember -Group "IT Systemadministratoren" -Member "$username" -ErrorAction stop  
        Write-Log -message "$username added to the local administrator group"  
      }catch{
        Write-log -message "Creating local account failed" -level "ERROR"  
      }
    }    
}
Write-Log -message "#########"  
Write-Log -message "$env:COMPUTERNAME - Create local admin account"  
Create-LocalAdmin
Write-Log -message "#########"  


Grüße

Content-ID: 5932173021

Url: https://administrator.de/forum/powershell-local-admin-5932173021.html

Ausgedruckt am: 31.03.2025 um 13:03 Uhr

Nils02
Nils02 10.02.2023 um 11:35:41 Uhr
Goto Top
Moin,

gibts einen Grund, dass du das per PS und nicht via GPO machst?

LG
141986
141986 10.02.2023 um 11:37:23 Uhr
Goto Top
Moin,

gibts einen Grund, dass du das per PS und nicht via GPO machst?
und/oder mit/per MS LAPS?

VG
MrHeisenberg
MrHeisenberg 10.02.2023 um 11:41:20 Uhr
Goto Top
Mir ist hier die PS lieber da ich dies via RMM auch an Geräte verteilen kann welche selten mit dem AD verbunden sind.

LG
5175293307
5175293307 10.02.2023 aktualisiert um 11:46:23 Uhr
Goto Top
nur laufen die Passwörter ab
-PasswordNeverExpires Switch-Parameter
New-LocalUser
würde ich auf euer Schwarm-Wissen hoffen.
Oder am Freitag gleich RTFM in die Tonne kloppen.

Wurstl
MrHeisenberg
MrHeisenberg 10.02.2023 um 11:49:35 Uhr
Goto Top
Zitat von @5175293307:

nur laufen die Passwörter ab
-PasswordNeverExpires Switch-Parameter
New-LocalUser
würde ich auf euer Schwarm-Wissen hoffen.
Oder am Freitag gleich RTFM in die Tonne kloppen.

Wurstl

na sorry dass ich Frage.... BadDay hm?!
MrHeisenberg
Lösung MrHeisenberg 10.02.2023 um 11:56:03 Uhr
Goto Top
$username = "XXXXX"     
$password = ConvertTo-SecureString "XXXXX" -AsPlainText -Force    
$logFile = "\\XXXXX\log\XXXXX.txt"  
Function Write-Log {
  param(
      [Parameter(Mandatory = $true)][string] $message,
      [Parameter(Mandatory = $false)]
      [ValidateSet("INFO","WARN","ERROR")]  
      [string] $level = "INFO"  
  )
    $timestamp = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")  
   Add-Content -Path $logFile -Value "$timestamp [$level] - $message"  
}
Function Create-LocalAdmin {
    process {
      try {
        New-LocalUser "$username" -Password $password -PasswordNeverExpires -UserMayNotChangePassword -FullName "$username" -Description "local admin" -ErrorAction stop  
        Write-Log -message "$username local user crated"  
               Add-LocalGroupMember -Group "IT Systemadministratoren" -Member "$username" -ErrorAction stop  
        Write-Log -message "$username added to the local administrator group"  
      }catch{
        Write-log -message "Creating local account failed" -level "ERROR"  
      }
    }    
}
Write-Log -message "#########"  
Write-Log -message "$env:COMPUTERNAME - Create local admin account"  
Create-LocalAdmin
Write-Log -message "#########"  

so schaut nun das Skript aus, Kennwort läuft nicht ab, und kann nicht geändert werden .... soviel zum Thema RTFM
5175293307
5175293307 10.02.2023 aktualisiert um 12:07:33 Uhr
Goto Top
$password = ConvertTo-SecureString "XXXXXXXXXXXX" -AsPlainText -Force
Da kannst du den Usern das Admin-Passwort auch gleich als Zettel an den Monitor pappen face-smile.
Sicherer Umgang mit Supportkonten
erikro
erikro 10.02.2023 um 12:09:47 Uhr
Goto Top
Zitat von @5175293307:

$password = ConvertTo-SecureString "XXXXXXXXXXXX" -AsPlainText -Force
Da kannst du den Usern das Admin-Passwort auch gleich als Zettel an den Monitor pappen face-smile.
Sicherer Umgang mit Supportkonten

Wie? Das macht man doch so. Das vermindert den Supportaufwand ungemein. face-wink
MrHeisenberg
MrHeisenberg 10.02.2023 aktualisiert um 14:22:23 Uhr
Goto Top
Zitat von @5175293307:

$password = ConvertTo-SecureString "XXXXXXXXXXXX" -AsPlainText -Force
Da kannst du den Usern das Admin-Passwort auch gleich als Zettel an den Monitor pappen face-smile.
Sicherer Umgang mit Supportkonten

Nö, warum?
Jetz erklär mir mal wie es einem User gelingen soll dieses Kennwort des lokalen Admin auszulesen, btw. ohne Admin rechte sowie kein Zugriff auf die Systemsteuerung, mmc sowie Regedit.
Wäre mir jetzt sehr spannend dies zu erfahren.
Ach und damits nicht zu einfach ist, unsere User haben keine Zugriffe auf irgendwelche Windows System Verzeichnisse.
Nachtrag: Dir ist bewusst dass die "X" nicht das Passwort darstellen oder?
5175293307
5175293307 10.02.2023 aktualisiert um 14:57:59 Uhr
Goto Top
Zitat von @MrHeisenberg:

btw. ohne Admin rechte sowie kein Zugriff auf die Systemsteuerung, mmc sowie Regedit.
Braucht er in dem Fall gar nicht.
Die Details verbieten aber leider die Forenregeln hier.
Nachtrag: Dir ist bewusst dass die "X" nicht das Passwort darstellen oder?
Bei Verwendung von -AsPlaintext ist das zwingend der Fall, ohne ja aber mit nein.
erikro
erikro 15.02.2023 um 09:18:24 Uhr
Goto Top
Moin,

Zitat von @MrHeisenberg:
Jetz erklär mir mal wie es einem User gelingen soll dieses Kennwort des lokalen Admin auszulesen, btw. ohne Admin rechte sowie kein Zugriff auf die Systemsteuerung, mmc sowie Regedit.
Wäre mir jetzt sehr spannend dies zu erfahren.

Sie haben Leserechte auf das Verzeichnis, in dem das Skript liegt.

Ach und damits nicht zu einfach ist, unsere User haben keine Zugriffe auf irgendwelche Windows System Verzeichnisse.

Unsinn. Wenn die User keinen lesenden Zugriff hätten, könnten sie mit Windows nicht arbeiten.

Liebe Grüße

Erik
MrHeisenberg
MrHeisenberg 16.02.2023 um 07:32:48 Uhr
Goto Top

Sie haben Leserechte auf das Verzeichnis, in dem das Skript liegt.

Falsch, wie oben bereits erwähnt, wir spielen dieses Skript via RMM raus, also wie sollen die Zugriff haben?


Unsinn. Wenn die User keinen lesenden Zugriff hätten, könnten sie mit Windows nicht arbeiten.

lesen ja, aber der User kann in kein Systemrelevantes Verzeichnis schreiben, braucht er auch nicht für seine Arbeit
erikro
erikro 16.02.2023 um 11:40:30 Uhr
Goto Top
Moin,

Zitat von @MrHeisenberg:


Sie haben Leserechte auf das Verzeichnis, in dem das Skript liegt.

Falsch, wie oben bereits erwähnt, wir spielen dieses Skript via RMM raus, also wie sollen die Zugriff haben?

Und wo liegt das Skript dann?

Unsinn. Wenn die User keinen lesenden Zugriff hätten, könnten sie mit Windows nicht arbeiten.

lesen ja, aber der User kann in kein Systemrelevantes Verzeichnis schreiben, braucht er auch nicht für seine Arbeit

Lesen reicht ja, um aus einem Skript das Passwort auszulesen.

Egal. Macht, was Ihr wollt.

Liebe Grüße

Erik
MrHeisenberg
MrHeisenberg 16.02.2023 um 11:59:31 Uhr
Goto Top
Zitat von @erikro:

Moin,

Zitat von @MrHeisenberg:


Sie haben Leserechte auf das Verzeichnis, in dem das Skript liegt.

Falsch, wie oben bereits erwähnt, wir spielen dieses Skript via RMM raus, also wie sollen die Zugriff haben?

Und wo liegt das Skript dann?

Im RMM-Tool, hier wird der Code geschrieben und dann über den RMM-Client ans jeweilige Gerät gesendet, also liegt am Gerät original nix vom Skript ;)
MrHeisenberg
MrHeisenberg 16.02.2023 um 11:59:55 Uhr
Goto Top

Egal. Macht, was Ihr wollt.


i will do ;)