ONTAP Discussions

powershell script

Ashun
50 Views

I am recently learning powershell scripting, how can I write scripts to successfully access adv permissions,

I tried to pass y after set adv, but it didn't work, I don't know how to solve this problem, hope someone can help modify my script

 

 

my script

# Set connection information
$ONTAPHost = Read-Host "Enter the IP address of the ONTAP cluster"
$User = Read-Host "Enter username"
$Password = Read-Host "Enter password"
$OutputFile = "commands_output.txt" # Output file path


# Import Posh-SSH module from removable drive, need to change the drive letter
Import-Module F:\Posh-SSH

# Create an SSH session and pass credentials
$securePassword = $Password | ConvertTo-SecureString -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($User, $securePassword)

# Define command array
$commands = @(
"cluster show",
"set adv",
"system node image show"
)

# Try to connect to the ONTAP cluster
try {
# Creating an SSH Session
$session = New-SSHSession -ComputerName $ONTAPHost -Credential $credential -ErrorAction Stop
Write-Host "SSH session established successfully."

# If the file already exists, clear the file contents
if (Test-Path $OutputFile) {
Clear-Content -Path $OutputFile
}

# Loop through the array of commands and execute them in turn
foreach ($command in $commands) {
Write-Host "`nExecuting command: $command"

try {
# Execute the current command and get the result
$result = Invoke-SSHCommand -SessionId $session.SessionId -Command $command -ErrorAction Stop

# Record the command execution to a file
Add-Content -Path $OutputFile -Value "`n::> $command"

# Output the result of the command
if ($result.Output) {
$result.Output -split "`n" | ForEach-Object {
Add-Content -Path $OutputFile -Value $_
}
} else {
Add-Content -Path $OutputFile -Value "No output received for '$command'."
}
} catch {
Write-Host "Error executing command: $command"
Add-Content -Path $OutputFile -Value "Error executing command: $command - $_"
}
}
} catch {
Write-Host "Failed to establish SSH session or execute command: $_"
Add-Content -Path $OutputFile -Value "Failed to establish SSH session or execute command: $_"
exit
} finally {
# Make sure to close the SSH session at the end of the script
if ($session) {
Remove-SSHSession -SessionId $session.SessionId
Write-Host "SSH session closed."
}
}

 

outputfile


::> cluster show


Last login time: 11/25/2024 16:21:20

Node Health Eligibility
--------------------- ------- ------------
FAS2720-01 true true
FAS2720-02 true true
2 entries were displayed.


::> set adv


Last login time: 11/25/2024 16:22:14

 

::> system node image show


Last login time: 11/25/2024 16:22:14


Error: "image" is not a recognized command

 

0 REPLIES 0
Public