itallrounder
Goto Top

PS - Auswahl Menu mit Abläufen

Hallo liebe Mitstreiter,

ich bastele gerade an ein paar Powershell Skirpten um mir die Shell näher zu bringen und auch ggf. mal eine Testumgebung schneller aufbauen zu können.

Unten stehend findet ihr zwei Skripte von mir, welche ich auch ohne Fehler ausführen kann.
Lediglich folgende Ausgabe bekomme ich in VSCode im PowerShell Terminal:

PS D:\Entwicklung\Git\Powershell\Menu\> . "D:\Entwicklung\Git\Powershell\Menu\Menu-Role-Installation.ps1"  
PS D:\Entwicklung\Git\Powershell\Menu\> . "D:\Entwicklung\Git\Powershell\Menu\Menu-ComputerRename-DomJoin.ps1"  

Wie folgt habe ich versucht die Skripte auszuführen:
- Set-ExecutionPolicy bypass
- Aufruf über die Powershell.exe
- Aufruf über Powershell7.exe
- Code direkt in VSCode ausführen
- Code direkt in der ISE ausführen

Leider alles erfolglos.
Wenn denn wenigstens eine Fehlermeldung erscheinen würde....


Menu-Role-Installation.ps1

function DisplayMenu {
    Clear-Host
    Write-Host @"  
    +===============================================+
    |  POWERSHELL CONSOLE - Install Server Roles    | 
    +===============================================+
    |                                               |
    |    1) WDS Server Installation                 |
    |    2) WSUS Server Installation                |
    |    3) Active Directory Installation           |
    +===============================================+
    
"@  
    $MENU = Read-Host "OPTION"  
        Switch ($MENU)
            {
                1 {
                #Option One - WDS Server
                    $WDSServerName = Read-Host "HOST"  
                    $WDSServerRemInst = Read-Host "Enter the RemInstall Path; D:\RemoteInstall"  
                    Install-WindowsFeature -Name WDS -IncludeManagementTools
                    WDSUTIL /Verbose /Progress /Initialize-Server /Server:$WDSServerName /RemInst:"$WDSServerRemInst"  
                    WDSUTIL /Set-Server /AnswerClients:All
                    Start-Sleep -Seconds 15
                DisplayMenu
                }

                2 {
                #Option Two - WSUS Server
                    $WSUSDIR = Read-Host "Enter the WSUS Directory; D:\WSUS"  
                    Install-WindowsFeature -Name UpdateServices, UpdateServices-WidDB, UpdateServices-Services, UpdateServices-RSAT, UpdateServices-API, UpdateServices-UI
                    cmd /c "C:\Program Files\Update Services\Tools\wsusutil.exe" postinstall CONTENT_DIR=$WSUSDIR  
                    Start-Sleep -Seconds 15
                DisplayMenu
                }
                3 {
                #Option Three - Active Directory
                    $DomainName = Read-Host "Enter the AD Domain Name ; lab.company.com"  
                    $NetBIOSName = Read-Host "Enter the NetBIOS Name ; LAB"  
                    Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
                    Start-Sleep -Seconds 15
                    Install-ADDSForest -DomainName $DomainName -DomainNetBIOSName $NetBIOSName -InstallDNS -SafeModeAdministratorPassword (Read-Host -Prompt "Enter DSRM Password:" -AsSecureString)  
                DisplayMenu
                }
            }
        }



Menu-ComputerRename-DomJoin.ps1

function DisplayMenu {
    Clear-Host
    Write-Host @"  
    +===============================================+
    |  POWERSHELL CONSOLE - Manage Computer / Domain| 
    +===============================================+
    |    1) Rename Computer and Join Domain         |
    |    2) Rename Computer                         |
    |    3) Join Domain                             |
    +===============================================+
    
"@  
    $MENU = Read-Host "Bitte Option eintragen!"  
        Switch ($MENU)
            {
                1 {
                #Option One - Rename and Domain Join
                    $DomainName = Read-Host "Please enter the Domain Name ; ad.company.com"  
                    $ComputerHostName = $env:computername
                    $NewComputername =  Read-Host "Please enter the new Computername"  
                    Add-Computer -DomainName $DomainName -ComputerName $ComputerHostName -newname $NewComputername
                    Write-Host "Your Computer $NewComputerName joint the Domain $DomainName"   
                DisplayMenu
                }

                2 {
                #Option Two - Rename Computer
                    $ComputerHostName = $env:computername
                    $NewComputername =  Read-Host "Please enter the new Computername"  
                    Write-Host "Your current Computername is $ComputerName"  
                    Rename-Computer $NewComputerName
                    Start-Sleep -Seconds 15
                DisplayMenu
                }

                3 {
                #Option Three - Domain Join
                $DomainName = Read-Host "Please enter the Domain Name ; ad.company.com"  
                $ComputerHostName = $env:computername
                Add-Computer -DomainName $DomainName -ComputerName $ComputerHostName
                Write-Host "Your Computer $ComputerHostName joint the Domain $DomainName"   
                DisplayMenu
                }
            }
        }


Vielen Dank für eure Unterstützung.

Content-ID: 3371446937

Url: https://administrator.de/contentid/3371446937

Ausgedruckt am: 22.11.2024 um 02:11 Uhr

3063370895
3063370895 18.07.2022 um 15:35:45 Uhr
Goto Top
Du definierst die Funktionen, scheinst sie aber nie aufzurufen.
mbehrens
Lösung mbehrens 18.07.2022 um 15:37:23 Uhr
Goto Top
Zitat von @ITAllrounder:

Wenn denn wenigstens eine Fehlermeldung erscheinen würde....

Die Funktion wird korrekt deklariert, allerdings nirgends ausgerufen.
ITAllrounder
ITAllrounder 18.07.2022 um 16:49:21 Uhr
Goto Top
Zitat von @mbehrens:

Zitat von @ITAllrounder:

Wenn denn wenigstens eine Fehlermeldung erscheinen würde....

Die Funktion wird korrekt deklariert, allerdings nirgends ausgerufen.

Danke face-smile
Kaum kommt in Zeile 46 bzw. 47 "DisplayMenu" funktioniert das ganze.