Powershell: Computernamen eingeben
Hallo,
ich versuche gerade, ein Powershell-Skript zu schreiben, welches dem Benutzer auffordern soll, einen Computernamen einzugeben. Wenn der Computername nicht eingegeben wird bzw. wenn dieser Vorgang abgebrochen wird, soll die Meldung wieder auftreten und zwar so lange, bis ein Computername eingegeben wurde.
Ich bin leider kein Powershell-Profi. Wie gehe ich am besten vor?
ich versuche gerade, ein Powershell-Skript zu schreiben, welches dem Benutzer auffordern soll, einen Computernamen einzugeben. Wenn der Computername nicht eingegeben wird bzw. wenn dieser Vorgang abgebrochen wird, soll die Meldung wieder auftreten und zwar so lange, bis ein Computername eingegeben wurde.
Ich bin leider kein Powershell-Profi. Wie gehe ich am besten vor?
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null
$name = [Microsoft.VisualBasic.Interaction]::InputBox("Bitte Computernamen eingeben:")
$computerName = Get-WmiObject Win32_ComputerSystem
$computerName.Rename($name)
if ($name -eq $null) {
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null
$name = [Microsoft.VisualBasic.Interaction]::InputBox("Bitte Computernamen eingeben:")
$computerName = Get-WmiObject Win32_ComputerSystem
$computerName.Rename($name)
}
else {
Write-Host ""
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 328109
Url: https://administrator.de/forum/powershell-computernamen-eingeben-328109.html
Ausgedruckt am: 14.05.2025 um 08:05 Uhr
10 Kommentare
Neuester Kommentar
Moin,
etwa so:
lg,
slainte
etwa so:
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null
do {
$name = [Microsoft.VisualBasic.Interaction]::InputBox("Bitte Computernamen eingeben:")
}
while ($name -eq $null)
$computerName = Get-WmiObject Win32_ComputerSystem
$computerName.Rename($name)
lg,
slainte

[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null
$name = ""
while($name -eq ""){
$name = [Microsoft.VisualBasic.Interaction]::InputBox("Bitte Computernamen eingeben:")
}
write-host $name

Ist doch logisch warum, schau mal zu den Parametern in die Doku:
https://msdn.microsoft.com/en-us/library/aa393056(v=vs.85).aspx
Warum nimmst du nicht gleich Rename-Computer???
https://msdn.microsoft.com/en-us/library/aa393056(v=vs.85).aspx
Warum nimmst du nicht gleich Rename-Computer???

$Null funktioniert hier nicht, da ein leerer String vom Dialog zurückgegeben wird. Deswegen habe ich das oben ja extra mit "" gemacht
.

Zitat von @honeybee:
Weil es anscheinend in Windows 7 nicht funktioniert. Habe diese Meldung bekommen:
Wenn du dort noch die alte PS 2.0 nutzt dann klar Weil es anscheinend in Windows 7 nicht funktioniert. Habe diese Meldung bekommen:
Rename-Computer
This cmdlet was introduced in Windows PowerShell 3.0.
@honeybee
Nur als Anregung, falls du mal "PS-only" Inputboxen erstellen willst:
Gruß
Ankh
Nur als Anregung, falls du mal "PS-only" Inputboxen erstellen willst:
$global:x = ''
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$objForm = New-Object System.Windows.Forms.Form
$objForm.Text = "Eingabe-Form"
$objForm.Size = New-Object System.Drawing.Size(300,200)
$objForm.StartPosition = "CenterScreen"
$objForm.KeyPreview = $True
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Enter")
{$global:x=$objTextBox.Text;$objForm.Close()}})
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape")
{$objForm.Close()}})
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(75,120)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Text = "OK"
$OKButton.Add_Click({$global:x=$objTextBox.Text;$objForm.Close()})
$objForm.Controls.Add($OKButton)
$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Size(150,120)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = "Cancel"
$CancelButton.Add_Click({$objForm.Close()})
$objForm.Controls.Add($CancelButton)
$objLabel = New-Object System.Windows.Forms.Label
$objLabel.Location = New-Object System.Drawing.Size(10,20)
$objLabel.Size = New-Object System.Drawing.Size(280,20)
$objLabel.Text = "Bitte Computernamen eingeben:"
$objForm.Controls.Add($objLabel)
$objTextBox = New-Object System.Windows.Forms.TextBox
$objTextBox.Location = New-Object System.Drawing.Size(10,40)
$objTextBox.Size = New-Object System.Drawing.Size(260,20)
$objForm.Controls.Add($objTextBox)
$objForm.Topmost = $True
$objForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()
$global:x
Gruß
Ankh