Active IQ Unified Manager Discussions
Active IQ Unified Manager Discussions
WFA Powershell code:
param (
[parameter(Mandatory=$true, HelpMessage="Cluster name or IP address")]
[string]$Cluster
)
# connect to controller
Connect-WfaCluster -Node $Cluster
if($Cluster)
{
Get-WFALogger -Info -message $("Setting Security Audit on: " + $Cluster)
Set-NcAudit -CliSet $true -OntapiSet $true -Controller $Cluster
}
Above is a simple code to manipulate the audit setting.
The code is pretty straight forward but I am not sure why I keep on getting the below error even after making connection.
please advice!!!
15:38:48.959 INFO [TSS Cluster Settings] ### Command 'TSS Cluster Settings' in 'POWER_SHELL' ###
15:39:21.068 INFO [TSS Cluster Settings] Get-WfaCredentials -Host ABCD
15:39:21.115 INFO [TSS Cluster Settings] Credentials successfully provided for 'ABCD'
15:39:21.162 INFO [TSS Cluster Settings] Connect-Controller -Type CLUSTER -Name ABCD -Credential System.Management.Automation.PSCredential -Vserver -SSLversion TLSv1
15:39:21.209 INFO [TSS Cluster Settings] Credentials successfully provided for 'ABCD'
15:39:21.271 INFO [TSS Cluster Settings] Connect-NcController (with credentials) -Name ABCD -Timeout 60000 -ErrorAction Stop -Port 443 -SSLVersion TLSv1
15:39:22.381 INFO [TSS Cluster Settings] Connected to cluster node
15:39:22.443 INFO [TSS Cluster Settings] Setting Security Audit on: ABCD
15:39:28.303 ERROR [TSS Cluster Settings] Command failed for Workflow ' TSS Cluster Settings cDOT' with error : Incorrect credentials for ABCD
15:39:28.318 INFO [TSS Cluster Settings] ***** Workflow Execution Failed *****
Solved! See The Solution
Hi,
Have you tried it without passing the -Controller variable. The "global:CurrentNcController" variable is already set by the "Connect-WFACluster" function, you shouldn't need to pass the -controller parameter. Have you tried commenting out the line that contains -Controller and replacing the command to omit the -Controller parameter. EG:
#'------------------------------------------------------------------------------ #'Set-NcAudit -CliSet $true -OntapiSet $true -Controller $Cluster #'------------------------------------------------------------------------------ Set-NcAudit -CliSet $true -OntapiSet $true #'------------------------------------------------------------------------------
Also have you tried it externally to WFA? If you do a "get-help set-ncaudit -full" you'll notice many of those parameter are specific to ontap versions. I noticed there were error warnings, you might want to check the paramaters apply to the version of ONTAP that your cluster is running.
Import-Module DataONTAP $credentials = Get-Credential -Credential admin connect-nccontroller -name cluster1.testlab.local -https -Credential $credentials | Out-Null Set-NcAudit -CliSet $true -OntapiSet $true WARNING: CliSet, HttpSet, OntapiSet, SnmpSet are not supported in Data ONTAP 9.0 and later. Ignoring value(s).
/Matt
Hi,
Have you tried it without passing the -Controller variable. The "global:CurrentNcController" variable is already set by the "Connect-WFACluster" function, you shouldn't need to pass the -controller parameter. Have you tried commenting out the line that contains -Controller and replacing the command to omit the -Controller parameter. EG:
#'------------------------------------------------------------------------------ #'Set-NcAudit -CliSet $true -OntapiSet $true -Controller $Cluster #'------------------------------------------------------------------------------ Set-NcAudit -CliSet $true -OntapiSet $true #'------------------------------------------------------------------------------
Also have you tried it externally to WFA? If you do a "get-help set-ncaudit -full" you'll notice many of those parameter are specific to ontap versions. I noticed there were error warnings, you might want to check the paramaters apply to the version of ONTAP that your cluster is running.
Import-Module DataONTAP $credentials = Get-Credential -Credential admin connect-nccontroller -name cluster1.testlab.local -https -Credential $credentials | Out-Null Set-NcAudit -CliSet $true -OntapiSet $true WARNING: CliSet, HttpSet, OntapiSet, SnmpSet are not supported in Data ONTAP 9.0 and later. Ignoring value(s).
/Matt
Hi Vikramjeet,
Here is the command code that contains all input parameters for the "Set-NcAudit" cmdlet and tests the ONTAP version
Param(
[Parameter(Mandatory=$True, HelpMessage="The Cluster name or IP address")]
[String]$Cluster,
[Parameter(Mandatory=$True, HelpMessage="The DataONTAP version number running on the cluster")]
[String]$Version,
[Parameter(Mandatory=$False, HelpMessage="If true, enable auditing of CLI set operations. If false, disable auditing of CLI set operations. If not specified, the setting will remain unchanged")]
[Bool]$CliSet,
[Parameter(Mandatory=$False, HelpMessage="If true, enable auditing of CLI get operations. If false, disable auditing of CLI get operations. If not specified, the setting will remain unchanged")]
[Bool]$CliGet,
[Parameter(Mandatory=$False, HelpMessage="If true, enable auditing of HTTP set operations. If false, disable auditing of HTTP set operations. If not specified, the setting will remain unchanged")]
[Bool]$HttpSet,
[Parameter(Mandatory=$False, HelpMessage="If true, enable auditing of HTTP get operations. If false, disable auditing of HTTP get operations. If not specified, the setting will remain unchanged")]
[Bool]$HttpGet,
[Parameter(Mandatory=$False, HelpMessage="If true, enable auditing of SNMP set operations. If false, disable auditing of SNMP set operations. If not specified, the setting will remain unchanged")]
[Bool]$SnmpSet,
[Parameter(Mandatory=$False, HelpMessage="If true, enable auditing of SNMP get operations. If false, disable auditing of SNMP get operations. If not specified, the setting will remain unchanged")]
[Bool]$SnmpGet,
[Parameter(Mandatory=$False, HelpMessage="If true, enable auditing of ONTAPI set operations. If false, disable auditing of ONTAPI set operations. If not specified, the setting will remain unchanged")]
[Bool]$OntapiSet,
[Parameter(Mandatory=$False, HelpMessage="If true, enable auditing of ONTAPI get operations. If false, disable auditing of ONTAPI get operations. If not specified, the setting will remain unchanged")]
[Bool]$OntapiGet,
[Parameter(Mandatory=$False, HelpMessage="The maximum number of ZAPI retry attempts")]
[Int]$ZapiRetryCount
)
#'------------------------------------------------------------------------------
#'Connect to the cluster.
#'------------------------------------------------------------------------------
Connect-WfaCluster -Node $Cluster
#'------------------------------------------------------------------------------
#'Set the command to enable security auditing.
#'------------------------------------------------------------------------------
[Int]$versionComparisionValue900 = Compare-OntapVersions $Version "9.0.0"
[String]$command = "Set-NcAudit "
If($CliSet){
If($versionComparisionValue900 -ne -1){
Get-WFALogger -Warn -Message "The ""CliSet"" parameter is not supported in Data ONTAP 9.0 and later. Ignoring value"
}Else{
[String]$command += "-CliSet `$True "
}
}
If($CliGet){
[String]$command += "-CliGet `$True "
}
If($HttpSet){
If($versionComparisionValue900 -ne -1){
Get-WFALogger -Warn -Message "The ""HttpSet"" parameter is not supported in Data ONTAP 9.0 and later. Ignoring value"
}Else{
[String]$command += "-HttpSet `$True "
}
}
If($HttpGet){
[String]$command += "-HttpGet `$True "
}
If($SnmpSet){
If($versionComparisionValue900 -ne -1){
Get-WFALogger -Warn -Message "The ""SnmpSet"" parameter is not supported in Data ONTAP 9.0 and later. Ignoring value"
}Else{
[String]$command += "-SnmpSet `$True "
}
}
If($SnmpGet){
[String]$command += "-SnmpGet `$True "
}
If($OntapiSet){
If($versionComparisionValue900 -ne -1){
Get-WFALogger -Warn -Message "The ""OntapiSet"" parameter is not supported in Data ONTAP 9.0 and later. Ignoring value"
}Else{
[String]$command += "-OntapiSet `$True "
}
}
If($OntapiGet){
[String]$command += "-OntapiGet `$True "
}
If($ZapiRetryCount){
[String]$command += "-ZapiRetryCount $ZapiRetryCount "
}
[String]$command += "-ErrorAction Stop"
#'------------------------------------------------------------------------------
#'Ensure an input parameter was providied.
#'------------------------------------------------------------------------------
If(($command.Contains("true")) -Or ($command.Contains("false"))){
[Bool]$enable = $True
}Else{
[Bool]$enable = $False
}
#'------------------------------------------------------------------------------
#'Set security auditing.
#'------------------------------------------------------------------------------
If($enable){
Get-WFALogger -Info -message "Setting security audit on cluster ""$Cluster"" running DataONTAP version ""$Version"""
Try{
Invoke-Expression -Command $command -ErrorAction Stop
Get-WFALogger -Info -Message "Executed Command`: $command"
}Catch{
Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error " + $_.Exception.Message)
Throw "Failed setting security audit on cluster ""$Cluster"""
}
}Else{
Get-WFALogger -Info -Message "No input parameters were provide to set security auditing on cluster ""$Cluster"" running DataONTAP version ""$Version"""
}
#'------------------------------------------------------------------------------
/Matt
Thanks Mbeattie, you were right SET command is not supported in 9.0, my bad. Should have looked carefully at Get-NcAudit parameters, silly mistake.
Thanks again 🙂