- /Daily_Backup_review/database_s3_check.ps1 - /Daily_Backup_review/Get-StorageContainerContent.ps1 - /Daily_Backup_review/Global_Checks.ps1 - /Daily_Backup_review/list_table_within_databases.ps1 - /Daily_Backup_review/Start-AzureSQLExport.ps1 - /Daily_Backup_review/Start-BackupCheckBpScus.ps1 - /Daily_Backup_review/Start-BackupCheckBpWeu.ps1 - /Daily_Backup_review/Start-BackupCheckRoserAttachments.ps1 - /Daily_Backup_review/Start-BackupCheckRoserCloud.ps1 - /Daily_Backup_review/Start-BackupCheckTotal.ps1 - /Daily_Backup_review/Start-DatabaseExport.ps1 - /Daily_Backup_review/Start-PointInTimeRestore.ps1 - /Daily_Backup_review/list_databases_within_instances.py - /Daily_Citrix_VDA_and_Server_Utilization_review/Cloudwatch_review/cloudwatch_alarm_ap-southeast-2.json - /Daily_Citrix_VDA_and_Server_Utilization_review/Cloudwatch_review/Cloudwatch_review.ps1 - /Ansible/audit-netscaler-exp.yaml - /Ansible/concurrent-user.yaml - /Ansible/do-something.yaml - /Ansible/hello-world.yaml - /Ansible/p6-log-cleanup.yaml - /Ansible/Roser_DB_backup_one_off.yaml - /Ansible/test-sql.yaml - /Ansible/test-sql-double-creds.yaml - /RoserUsefull/access_bulk_servers.ps1 - /RoserUsefull/access_bulk_servers_cezar.ps1 - /RoserUsefull/Bulk_copy_files.ps1 - /RoserUsefull/Besfort_data.ps1 - /RoserUsefull/check_permissions_bulk_servers.ps1 - /RoserUsefull/Check-p6interface-checksum.ps1 - /RoserUsefull/compare_files.ps1 - /RoserUsefull/connections_parser.ps1 - /RoserUsefull/drop_rds_registry_key.ps1 - /RoserUsefull/EmergencyAccessRemote.ps1 - /RoserUsefull/Keycloak_TestConnection.ps1 - /RoserUsefull/Kickoff_disconnected_users.ps1 - /RoserUsefull/launch_jira.ps1 - /RoserUsefull/launch_jira_gui.ps1 - /RoserUsefull/ownership_taker_anonymized.ps1 - /RoserUsefull/purge_files.ps1 - /RoserUsefull/remove_local_profiles_PowerShell.PS1 - /RoserUsefull/retrieve_attachements.ps1 - /RoserUsefull/Send_patch_multiple_servers.ps1 - /RoserUsefull/Test-RSAAPI-BP.ps1 - /RoserUsefull/Linux_identify_big_files.sh
146 lines
4.7 KiB
PowerShell
146 lines
4.7 KiB
PowerShell
#########################################################################################
|
|
#
|
|
# Ownership taker
|
|
#
|
|
#########################################################################################
|
|
# this script can be use to take the ownership of an account
|
|
# specify your name in the list of $list_of_known_users with your autologonname (put your login name if you don't know your Pbkdf2 Hash)
|
|
# and put the name of your object in the variable $own_user_objectName
|
|
# then execute the script, specifiy the targeted user and the targeted database(s)
|
|
# if you want to revert back the configuration, replace the variable $own_user_objectName with the name of the object of the person you took the ownership
|
|
|
|
#########################################################################################
|
|
#
|
|
# Database Value
|
|
#
|
|
#########################################################################################
|
|
|
|
|
|
|
|
#other
|
|
#$DBInstance = 'DB NAME'#
|
|
|
|
|
|
#$DBACredential = Get-Credential -UserName pgadmin -Message "Credentials for $DBInstance"
|
|
#DBPassword = $DBACredential.GetNetworkCredential().Password
|
|
#$DBUsername = $DBACredential.UserName
|
|
|
|
|
|
#Database=$database
|
|
$ConnectionString = "Server=$DBInstance;User Id=$DBUsername;Password=$DBPassword;TrustServerCertificate=True"
|
|
$VerbosePreference = 'Continue'
|
|
|
|
|
|
#########################################################################################
|
|
#
|
|
# User value
|
|
#
|
|
#########################################################################################
|
|
|
|
$list_of_known_users = [ordered]@{
|
|
Admin = [PSCustomObject]@{
|
|
"Name"="Admin"
|
|
"username"="admin"
|
|
"autologonname"=""
|
|
};
|
|
Administrator = [PSCustomObject]@{
|
|
"Name"="Administrator"
|
|
"username"="administrator"
|
|
"autologonname"=""
|
|
};
|
|
Anastasia = [PSCustomObject]@{
|
|
"Name"="Anastasia"
|
|
"username"="akroupkina"
|
|
"autologonname"=""
|
|
};
|
|
Henry = [PSCustomObject]@{
|
|
"Name"="Henry"
|
|
"username"="hchung"
|
|
"autologonname"=""
|
|
};
|
|
Frans = [PSCustomObject]@{
|
|
"Name"="Frans"
|
|
"username"="frans"
|
|
"autologonname"=""
|
|
};
|
|
Blake = [PSCustomObject]@{
|
|
"Name"="Blake"
|
|
"username"="bparrish"
|
|
"autologonname"=""
|
|
};
|
|
Besfort = [PSCustomObject]@{
|
|
"Name"="Besfort"
|
|
"username"="bhyseni"
|
|
"autologonname"=""
|
|
};
|
|
Kyle = [PSCustomObject]@{
|
|
"Name"="Kyle"
|
|
"username"="kpatel"
|
|
"autologonname"=""
|
|
};
|
|
Pierre = [PSCustomObject]@{
|
|
"Name"="Pierre"
|
|
"username"="pierretotal"
|
|
"autologonname"=""
|
|
}
|
|
}
|
|
|
|
#########################################################################################
|
|
# Fill with your user object name
|
|
#########################################################################################
|
|
$own_user_objectName = 'Pierre'
|
|
|
|
$ownAutologonname = $list_of_known_users.$own_user_objectName.autologonname
|
|
|
|
|
|
#get the target
|
|
$targetObjectName = $list_of_known_users.keys |Out-GridView -PassThru -Title "Select the target"
|
|
|
|
$targetName = $list_of_known_users.$targetObjectName.Name
|
|
$targetUserName = $list_of_known_users.$targetObjectName.Username
|
|
|
|
Write-output "You selected the user $targetName to take ownership "
|
|
|
|
$QuerySelectDatabases= "SELECT name FROM sys.databases order by name"
|
|
$targeted_DB= Invoke-Sqlcmd -ConnectionString $ConnectionString -Query $QuerySelectDatabases |Out-GridView -PassThru -Title "Select the targeted databases"
|
|
|
|
|
|
foreach( $database in $targeted_DB ) {
|
|
$DB_name = $database.Name
|
|
write-output "updating $DB_name"
|
|
|
|
|
|
|
|
$queryVerifyPresenceUser = "
|
|
SELECT
|
|
CASE WHEN EXISTS
|
|
(
|
|
select pk_userid,username, createcomputer , firstname, lastname , autologonname, isactive from $DB_name.dbo.tblUser where username = '$targetUserName'
|
|
)
|
|
THEN 'TRUE'
|
|
ELSE 'FALSE'
|
|
END
|
|
"
|
|
write-output $queryVerifyPresenceUser
|
|
$boolean_presence_users = Invoke-Sqlcmd -ConnectionString $ConnectionString -Query $queryVerifyPresenceUser
|
|
write-verbose $boolean_presence_users.Column1
|
|
if($boolean_presence_users.Column1 -eq "FALSE"){
|
|
write-output "the user doesn't exist in the following database : $DB_name"
|
|
continue
|
|
}
|
|
|
|
$QueryUpdatingUser= "
|
|
update $DB_name.dbo.tblUser
|
|
set isactive = 1,
|
|
autologonname = '$ownAutologonname'
|
|
where username = '$targetUserName';
|
|
"
|
|
Write-Output "Query to execute :"
|
|
Write-Output $QueryUpdatingUser
|
|
Write-Warning "Are you sure to proceed ?" -WarningAction Inquire
|
|
Invoke-Sqlcmd -ConnectionString $ConnectionString -Query $QueryUpdatingUser
|
|
|
|
}
|
|
|
|
|