AMD_Rulez
Lieutenant
- Registriert
- Feb. 2010
- Beiträge
- 582
hallo,
habe im netz ein ps skript gefunden mit dem es möglich sein soll einem ordner jeden benutzer als owner zu verpassen:
Function Set-Owner ($user, $Path) {
if (!(Test-Path $Path)) {Write-Warning "Specified path is incorrect"}
else {
# replace path from C:\Folder to C:\\Folder
$path = $path.replace("\", "\\")
# create SecurityDescriptor appropriated classes
$SD = ([WMIClass] "Win32_SecurityDescriptor").CreateInstance()
$Trustee = ([WMIClass] "Win32_Trustee").CreateInstance()
# translate user/group name to SID and write information to
# Trustee properties
$SID = (new-object security.principal.ntaccount $user).translate([security.principal.securityidentifier])
[byte[]] $SIDArray = ,0 * $SID.BinaryLength
$SID.GetBinaryForm($SIDArray,0)
$Trustee.Name = $user
$Trustee.SID = $SIDArray
$SD.Owner = $Trustee
# set control flag
$SD.ControlFlags="0x8000"
# get file or folder object
$wPrivilege = gwmi Win32_LogicalFileSecuritySetting -filter "path='$path'"
# enable SeRestorePrivilege (for Windows Vista and Windows Server 2008
# not neccessary if running in privileged mode)
$wPrivilege.psbase.Scope.Options.EnablePrivileges = $true
# Write new SecurityDescriptor to file/folder object
$wPrivilege.setsecuritydescriptor($SD)
} #if
#script usage: Set-Owner everyone D:\Users
} #function
$path="C:\Users\Karl\blabla"
$newOwner="Administrator@meinpc"
$NewOwner="meinpc\Administrator"
$Null=Set-Owner $NewOwner $path
"Neuer Owner von {0} ist {1}" -f $path,$((get-acl $path).owner)
funktioniert bei mir leider garnicht und lässt den owner auf dem alten stehen. in dem fall auf Karl.
dann habe ich ein weiteres skrip gefunden:
Link
auch dieses funktioniert nicht. wenn ich wie dort beschrieben den unc pfad angebe, also: \\.\C:\Users\Karl\blabla
wird gesagt dass der pfad nicht vorhanden ist.
wenn ich das ganze ohne unc pfad mache bekomme ich die fehlermeldung dass ich den owner nur auf den nutzer ändern kann mit dem ich momentan angemeldet bin.
weiß jemand weiter?
habe im netz ein ps skript gefunden mit dem es möglich sein soll einem ordner jeden benutzer als owner zu verpassen:
Function Set-Owner ($user, $Path) {
if (!(Test-Path $Path)) {Write-Warning "Specified path is incorrect"}
else {
# replace path from C:\Folder to C:\\Folder
$path = $path.replace("\", "\\")
# create SecurityDescriptor appropriated classes
$SD = ([WMIClass] "Win32_SecurityDescriptor").CreateInstance()
$Trustee = ([WMIClass] "Win32_Trustee").CreateInstance()
# translate user/group name to SID and write information to
# Trustee properties
$SID = (new-object security.principal.ntaccount $user).translate([security.principal.securityidentifier])
[byte[]] $SIDArray = ,0 * $SID.BinaryLength
$SID.GetBinaryForm($SIDArray,0)
$Trustee.Name = $user
$Trustee.SID = $SIDArray
$SD.Owner = $Trustee
# set control flag
$SD.ControlFlags="0x8000"
# get file or folder object
$wPrivilege = gwmi Win32_LogicalFileSecuritySetting -filter "path='$path'"
# enable SeRestorePrivilege (for Windows Vista and Windows Server 2008
# not neccessary if running in privileged mode)
$wPrivilege.psbase.Scope.Options.EnablePrivileges = $true
# Write new SecurityDescriptor to file/folder object
$wPrivilege.setsecuritydescriptor($SD)
} #if
#script usage: Set-Owner everyone D:\Users
} #function
$path="C:\Users\Karl\blabla"
$newOwner="Administrator@meinpc"
$NewOwner="meinpc\Administrator"
$Null=Set-Owner $NewOwner $path
"Neuer Owner von {0} ist {1}" -f $path,$((get-acl $path).owner)
funktioniert bei mir leider garnicht und lässt den owner auf dem alten stehen. in dem fall auf Karl.
dann habe ich ein weiteres skrip gefunden:
Link
auch dieses funktioniert nicht. wenn ich wie dort beschrieben den unc pfad angebe, also: \\.\C:\Users\Karl\blabla
wird gesagt dass der pfad nicht vorhanden ist.
wenn ich das ganze ohne unc pfad mache bekomme ich die fehlermeldung dass ich den owner nur auf den nutzer ändern kann mit dem ich momentan angemeldet bin.
weiß jemand weiter?